Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
popstar7 authored Nov 21, 2024
0 parents commit 18f4fef
Show file tree
Hide file tree
Showing 109 changed files with 12,208 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Supabase settings
PUBLIC_SUPABASE_URL='https://REPLACE_ME.supabase.co'
PUBLIC_SUPABASE_ANON_KEY='REPLACE_ME'
PRIVATE_SUPABASE_SERVICE_ROLE='REPLACE_ME'

# Stripe settings
PRIVATE_STRIPE_API_KEY='REPLACE_ME'

# Optional - settings for email

# Email address admin messages will be sent to
# PRIVATE_ADMIN_EMAIL='your_email@example.com'
# Email address messages will be sent from
# PRIVATE_FROM_ADMIN_EMAIL='no_reply@example.com'
# Resend API key
# PRIVATE_RESEND_API_KEY='your_resend_api_key'
13 changes: 13 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example

# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock
48 changes: 48 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
module.exports = {
root: true,
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:svelte/recommended",
"prettier",
],
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint"],
parserOptions: {
sourceType: "module",
ecmaVersion: 2020,
extraFileExtensions: [".svelte"],
},
overrides: [
{
files: ["*.svelte"],
parser: "svelte-eslint-parser",
parserOptions: {
parser: {
// Specify a parser for each lang.
ts: "@typescript-eslint/parser",
js: "espree",
typescript: "@typescript-eslint/parser",
},
},
},
{
// Apply to all test files. Proper type checking in tests with mocks can be tedious and counterproductive.
files: ["**/*.test.ts", "**/*.spec.ts"],
rules: {
"@typescript-eslint/no-explicit-any": "off",
},
},
],
env: {
browser: true,
es2017: true,
node: true,
},
rules: {
"no-undef": "off",
// no-undef has been turned off because of this:
// basically, it causes issues and TS does those checks so it's redundant
// https://typescript-eslint.io/linting/troubleshooting#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors
},
}
23 changes: 23 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Build

on: [push, pull_request]

env:
PUBLIC_SUPABASE_URL: "https://fake_test_url.supabase.co"
PUBLIC_SUPABASE_ANON_KEY: "fake_anon_key"
PRIVATE_SUPABASE_SERVICE_ROLE: "fake_service_role"
PRIVATE_STRIPE_API_KEY: "fake_strip_api_key"

jobs:
build_and_test:
name: Build
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: NPM install
run: npm install

- name: SvelteKit Build
run: npm run build
30 changes: 30 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Format Check

on: [push, pull_request]

env:
PUBLIC_SUPABASE_URL: "https://fake_test_url.supabase.co"
PUBLIC_SUPABASE_ANON_KEY: "fake_anon_key"
PRIVATE_SUPABASE_SERVICE_ROLE: "fake_service_role"
PRIVATE_STRIPE_API_KEY: "fake_strip_api_key"

jobs:
build_and_test:
name: Code Format Check
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5

- name: NPM install
run: npm install

- name: Check Code Format
run: npm run format_check

- name: Download go misspell utility
run: go install github.com/client9/misspell/cmd/misspell@latest

- name: Run misspell to fine misspelled words
run: misspell -error ./src README.md
26 changes: 26 additions & 0 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Linting

on: [push, pull_request]

env:
PUBLIC_SUPABASE_URL: "https://fake_test_url.supabase.co"
PUBLIC_SUPABASE_ANON_KEY: "fake_anon_key"
PRIVATE_SUPABASE_SERVICE_ROLE: "fake_service_role"
PRIVATE_STRIPE_API_KEY: "fake_strip_api_key"

jobs:
build_and_test:
name: Linting and Typechecking
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: NPM install
run: npm install

- name: Linting
run: npm run lint

- name: Typechecking
run: npm run check
23 changes: 23 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Tests

on: [push, pull_request]

env:
PUBLIC_SUPABASE_URL: "https://fake_test_url.supabase.co"
PUBLIC_SUPABASE_ANON_KEY: "fake_anon_key"
PRIVATE_SUPABASE_SERVICE_ROLE: "fake_service_role"
PRIVATE_STRIPE_API_KEY: "fake_strip_api_key"

jobs:
build_and_test:
name: Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: NPM install
run: npm install

- name: Tests
run: npm run test_run
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
engine-strict=true
resolution-mode=highest
7 changes: 7 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
**/.svelte-kit/
**/node_modules/
**/package-lock.json

# Don't format plaintext email templates, the new lines are important
src/lib/emails/*_text.svelte
src/lib/emails/*_text.hbs
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"plugins": ["prettier-plugin-svelte"],
"useTabs": false,
"tabWidth": 2,
"semi": false,
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
}
14 changes: 14 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"editor.formatOnSave": true,
"[svelte]": {
"editor.defaultFormatter": "svelte.svelte-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"eslint.validate": ["javascript", "javascriptreact", "typescript", "svelte"],
"editor.tabSize": 2
}
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2023 Chesterfield Laboratoires Inc

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading

0 comments on commit 18f4fef

Please sign in to comment.