From 7c340991e97ee8c02a4c545b18bb4dc308a51aee Mon Sep 17 00:00:00 2001 From: houssenedao Date: Wed, 22 Dec 2021 22:07:44 +0000 Subject: [PATCH] chore(): initial project --- .commitlintrc.json | 27 + .eslintignore | 5 + .eslintrc.js | 24 + .github/ISSUE_TEMPLATE/.gitkeep | 0 .github/PULL_REQUEST_TEMPLATE.md | 42 + .github/workflows/publisher.yml | 17 + .github/workflows/release.yml | 25 + .gitignore | 34 + .husky/commit-msg | 4 + .husky/pre-commit | 5 + .prettierrc | 4 + .releaserc.js | 22 + CODE_OF_CONDUCT.md | 128 + CONTRIBUTING.md | 230 + LICENSE | 21 + README.md | 13 + index.d.ts | 1 + index.js | 26 + index.ts | 1 + package-lock.json | 10088 +++++++++++++++++++++++++++++ package.json | 113 + tsconfig.json | 18 + 22 files changed, 10848 insertions(+) create mode 100644 .commitlintrc.json create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .github/ISSUE_TEMPLATE/.gitkeep create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/publisher.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100755 .husky/commit-msg create mode 100755 .husky/pre-commit create mode 100644 .prettierrc create mode 100644 .releaserc.js create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 index.d.ts create mode 100644 index.js create mode 100644 index.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 tsconfig.json diff --git a/.commitlintrc.json b/.commitlintrc.json new file mode 100644 index 0000000..be984a4 --- /dev/null +++ b/.commitlintrc.json @@ -0,0 +1,27 @@ +{ + "extends": ["@commitlint/config-angular"], + "rules": { + "subject-case": [ + 2, + "always", + ["sentence-case", "start-case", "pascal-case", "upper-case", "lower-case"] + ], + "type-enum": [ + 2, + "always", + [ + "build", + "chore", + "ci", + "docs", + "feat", + "fix", + "perf", + "refactor", + "revert", + "style", + "test" + ] + ] + } +} diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..20249c5 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +lib/**/*.test.ts +lib/**/files/** +lib/channels/** +test/** +*.spec.ts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..f6c62be --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,24 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/.github/ISSUE_TEMPLATE/.gitkeep b/.github/ISSUE_TEMPLATE/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..932abfb --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,42 @@ +## PR Checklist + +Please check if your PR fulfills the following requirements: + +- [ ] The commit message follows our guidelines: https://github.com/themartiangeeks/nest-hasher/blob/main/CONTRIBUTING.md +- [ ] Tests for the changes have been added (for bug fixes / features) +- [ ] Docs have been added / updated (for bug fixes / features) + +## PR Type + +What kind of change does this PR introduce? + + + +``` +[ ] Bugfix +[ ] Feature +[ ] Code style update (formatting, local variables) +[ ] Refactoring (no functional changes, no api changes) +[ ] Build related changes +[ ] CI related changes +[ ] Other... Please describe: +``` + +## What is the current behavior? + + + +Issue Number: N/A + +## What is the new behavior? + +## Does this PR introduce a breaking change? + +``` +[ ] Yes +[ ] No +``` + + + +## Other information diff --git a/.github/workflows/publisher.yml b/.github/workflows/publisher.yml new file mode 100644 index 0000000..d064caa --- /dev/null +++ b/.github/workflows/publisher.yml @@ -0,0 +1,17 @@ +#name: Publish Package to npmjs +#on: +# release: +# types: [created] +#jobs: +# npm-publish: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v2 +# - uses: actions/setup-node@v2 +# with: +# node-version: '16.x' +# registry-url: 'https://registry.npmjs.org' +# - run: npm ci +# - run: npm run publish:npm +# env: +# NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f2864bc --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,25 @@ +#name: RELEASER +# +#on: +# push: +# branches: [main] +# +#jobs: +# Realeaser: +# runs-on: ubuntu-latest +# steps: +# - name: Checkout source code +# uses: actions/checkout@v2 +# +# - name: Use NodeJS v16 +# uses: actions/setup-node@v1 +# with: +# node-version: 16 +# +# - name: Install dependencies +# run: npm ci +# +# - name: Create new release +# env: +# GH_TOKEN: ${{secrets.GH_TOKEN}} +# run: npx semantic-release diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c16ef02 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# compiled output +/dist +/node_modules + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# OS +.DS_Store + +# Tests +/coverage +/.nyc_output + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json \ No newline at end of file diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 0000000..fe4c17a --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx --no-install commitlint --edit "" diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..06d7d16 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,5 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged +npm run lint diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..a20502b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} diff --git a/.releaserc.js b/.releaserc.js new file mode 100644 index 0000000..4e376ec --- /dev/null +++ b/.releaserc.js @@ -0,0 +1,22 @@ +module.exports = { + plugins: [ + '@semantic-release/commit-analyzer', + '@semantic-release/github', + [ + '@semantic-release/npm', + { + npmPublish: false, + }, + ], + ['@semantic-release/release-notes-generator'], + [ + '@semantic-release/git', + { + assets: ['package.json'], + message: 'chore(release): release ${nextRelease.version}', + }, + ], + ], + branches: ['main'], + preset: 'angular', +}; diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..ee186db --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or + advances of any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email + address, without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +dao.houssene[at]gmail.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..9b9ff40 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,230 @@ +# Contributing to Nest + +We would love for you to contribute to Twilio channel and help make it even better than it is +today! As a contributor, here are the guidelines we would like you to follow: + +- [Code of Conduct](#coc) +- [Question or Problem?](#question) +- [Issues and Bugs](#issue) +- [Feature Requests](#feature) +- [Submission Guidelines](#submit) +- [Coding Rules](#rules) +- [Commit Message Guidelines](#commit) + +## Code of Conduct + +Help us keep Nest open and inclusive. Please read and follow our [Code of Conduct][coc]. + +## Got a Question or Problem? + +**Do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests.** You've got much better chances of getting your question answered on [Stack Overflow][stackoverflow] where the questions should be tagged with tag `nestjs-notification`. + +Stack Overflow is a much better place to ask questions since: + +- questions and answers stay available for public viewing, so your question / answer might help someone else +- Stack Overflow's voting system assures that the best answers are prominently visible. + +To save your and our time, we will systematically close all issues that are requests for general support and redirect people to Stack Overflow. + +## Found a Bug? + +If you find a bug in the source code, you can help us by +[submitting an issue](#submit-issue) to our [GitHub Repository][github]. Even better, you can +[submit a Pull Request](#submit-pr) with a fix. + +## Missing a Feature? + +You can _request_ a new feature by [submitting an issue](#submit-issue) to our GitHub +Repository. If you would like to _implement_ a new feature, please submit an issue with +a proposal for your work first, to be sure that we can use it. +Please consider what kind of change it is: + +- For a **Major Feature**, first open an issue and outline your proposal so that it can be + discussed. This will also allow us to better coordinate our efforts, prevent duplication of work, + and help you to craft the change so that it is successfully accepted into the project. For your issue name, please prefix your proposal with `[discussion]`, for example "[discussion]: your feature idea". +- **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr). + +## Submission Guidelines + +### Submitting an Issue + +Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available. + +We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs we will systematically ask you to provide a minimal reproduction scenario using a repository or [Gist](https://gist.github.com/). Having a live, reproducible scenario gives us wealth of important information without going back & forth to you with additional questions like: + +- version of Twilio channel used +- 3rd-party libraries and their versions +- and most importantly - a use-case that fails + +Unfortunately, we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you, we are going to close an issue that don't have enough info to be reproduced. + +You can file new issues by filling out our [new issue form](https://github.com/nestjs-notification-channels/twilio/issues/new). + +### Submitting a Pull Request (PR) + +Before you submit your Pull Request (PR) consider the following guidelines: + +1. Search [GitHub](https://github.com/nestjs-notification-channels/twilio/pulls) for an open or closed PR + that relates to your submission. You don't want to duplicate effort. +1. Fork the sinuoslabs/nestjs-notification repo. +1. Make your changes in a new git branch: + + ```shell + git checkout -b my-fix-branch main + ``` + +1. Create your patch, **including appropriate test cases**. +1. Follow our [Coding Rules](#rules). +1. Commit your changes using a descriptive commit message that follows our + [commit message conventions](#commit). Adherence to these conventions + is necessary because release notes are automatically generated from these messages. + + ```shell + git commit -a + ``` + + Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. + +1. Push your branch to GitHub: + + ```shell + git push origin my-fix-branch + ``` + +1. In GitHub, send a pull request to `twilio:main`. + +- If we suggest changes then: + + - Make the required updates. + - Re-run the Nest test suites to ensure tests are still passing. + - Rebase your branch and force push to your GitHub repository (this will update your Pull Request): + + ```shell + git rebase main -i + git push -f + ``` + +That's it! Thank you for your contribution! + +#### After your pull request is merged + +After your pull request is merged, you can safely delete your branch and pull the changes +from the main (upstream) repository: + +- Delete the remote branch on GitHub either through the GitHub web UI, or your local shell as follows: + + ```shell + git push origin --delete my-fix-branch + ``` + +- Check out the main branch: + + ```shell + git checkout main -f + ``` + +- Delete the local branch: + + ```shell + git branch -D my-fix-branch + ``` + +- Update your main with the latest upstream version: + + ```shell + git pull --ff upstream main + ``` + +## Coding Rules + +To ensure consistency throughout the source code, keep these rules in mind as you are working: + +- All features or bug fixes **must be tested** by one or more specs (unit-tests). +- We follow [Google's JavaScript Style Guide][js-style-guide], but wrap all code at + **100 characters**. An automated formatter is available. + +## Commit Message Guidelines + +We have very precise rules over how our git commit messages can be formatted. This leads to **more +readable messages** that are easy to follow when looking through the **project history**. But also, +we use the git commit messages to **generate the Twilio channel change log**. + +### Commit Message Format + +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special +format that includes a **type**, a **scope**, and a **subject**: + +``` +(): + + + +