diff --git a/.eslintignore b/.eslintignore index 563df111ab7..f8ea09c9779 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,5 @@ .git coverage node_modules +yarn.lock +package.json diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/.github/workflows/lint.all.yml b/.github/workflows/lint.all.yml new file mode 100644 index 00000000000..d3bd31e580b --- /dev/null +++ b/.github/workflows/lint.all.yml @@ -0,0 +1,40 @@ +name: ESLint + +on: + push: + branches: + - develop + paths: + - '**' + - '!**/README.md' + pull_request: + branches: + - develop + paths: + - '**' + - '!**/README.md' + +jobs: + test: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x] + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Setup Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Install dependencies + run: npx lerna bootstrap + env: + CI: true + - name: Build all + run: npm run buildall + - name: Run eslint + run: npm run lint diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000000..5a182ef106d --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn lint-staged diff --git a/.node-version b/.node-version deleted file mode 100644 index 66df3b7ab2d..00000000000 --- a/.node-version +++ /dev/null @@ -1 +0,0 @@ -12.16.1 diff --git a/.prettierignore b/.prettierignore index ec967556865..45663b6a19e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,4 +3,8 @@ # So let's not *.yml *.md - +yarn.lock +.husky/pre-commit +.prettierignore +.gitignore +.eslintignore diff --git a/README.md b/README.md index f570fed4e36..41cfa664dd3 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/config/dependencies.yaml b/config/dependencies.yaml index eb73f12d527..e85429c6203 100644 --- a/config/dependencies.yaml +++ b/config/dependencies.yaml @@ -59,6 +59,7 @@ core: 'lodash.set': '^4.3.2' 'lodash.unset': '^4.5.2' dev: + 'eslint': '^8.23.1' 'nyc': '^15.1.0' diana: peer: diff --git a/config/scripts.yaml b/config/scripts.yaml index 4164e6ef078..0fa0c5ec4e5 100644 --- a/config/scripts.yaml +++ b/config/scripts.yaml @@ -3,15 +3,16 @@ _: clean: 'rimraf dist' mbuild: 'NO_MINIFY=1 node build.mjs' symlink: 'mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -' - test: ¬ests 'echo "{{name}}: No tests configured. Perhaps you''d like to do this?" && exit 0' + test: 'echo "{{name}}: No tests configured. Perhaps you could write some?" && exit 0' vbuild: 'VERBOSE=1 node build.mjs' - lab: "cd ../../sites/lab && yarn start" - tips: "node ../../scripts/help.mjs" + lab: 'cd ../../sites/lab && yarn start' + tips: 'node ../../scripts/help.mjs' + lint: "npx eslint 'src/**' 'tests/*.mjs'" _types: design: prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'" test: &test 'npx mocha tests/*.test.mjs' - testci: &testci "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js" + testci: &testci 'npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js' plugin: prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'" test: *test @@ -19,19 +20,25 @@ _types: core: report: 'c8 report' test: 'c8 mocha tests/*.test.mjs' - testci: "mocha tests/*.test.mjs" + testci: 'mocha tests/*.test.mjs' prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'" + lint: "npx eslint 'src/*.mjs' 'tests/*.mjs'" i18n: prebuild: 'node scripts/prebuilder.mjs' - test: *test - testci: *testci models: - test: "npx mocha tests/*.test.mjs" + test: 'npx mocha tests/*.test.mjs' new-design: i18n-only: "node ../../sites/shared/prebuild/i18n-only.mjs" - build: "SITE=new-design/shared yarn run i18n-only && cp ../../scripts/banner.mjs ./lib && node build.mjs" - wbuild: "set SITE=new-design/shared&& node ../../sites/shared/prebuild/i18n-only.mjs && copy ..\\..\\scripts\\banner.mjs .\\lib\\banner.mjs /Y && node build.mjs && set SITE=" + build: "SITE=new-design/shared yarn i18n-only && cp ../../scripts/banner.mjs ./lib && node build.mjs" + wbuild: "set SITE=new-design/shared&& yarn i18n-only && copy ..\\..\\scripts\\banner.mjs .\\lib\\banner.mjs /Y && node build.mjs && set SITE=" + lint: "npx eslint 'lib/*.mjs'" mbuild: '!' test: '!' testci: '!' vbuild: '!' +rehype-jargon: + lint: "npx eslint 'src/*.mjs'" +snapseries: + lint: "npx eslint 'src/*.mjs'" +backend: + lint: '!' diff --git a/config/templates/data.dflt.mjs b/config/templates/data.dflt.mjs.mustache similarity index 100% rename from config/templates/data.dflt.mjs rename to config/templates/data.dflt.mjs.mustache diff --git a/config/templates/design.test.mjs b/config/templates/design.test.mjs.mustache similarity index 100% rename from config/templates/design.test.mjs rename to config/templates/design.test.mjs.mustache diff --git a/config/templates/eslintrc.yml b/config/templates/eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/config/templates/eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/config/templates/plugin.test.mjs b/config/templates/plugin.test.mjs index fdf846844b0..216a74b956b 100644 --- a/config/templates/plugin.test.mjs +++ b/config/templates/plugin.test.mjs @@ -1,5 +1,5 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests diff --git a/designs/aaron/.eslintrc.yml b/designs/aaron/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/aaron/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/aaron/README.md b/designs/aaron/README.md index 340d00a7a07..6ec332040dc 100644 --- a/designs/aaron/README.md +++ b/designs/aaron/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/aaron/package.json b/designs/aaron/package.json index 9d5785dd171..c7a0aadf4fc 100644 --- a/designs/aaron/package.json +++ b/designs/aaron/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/albert/.eslintrc.yml b/designs/albert/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/albert/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/albert/README.md b/designs/albert/README.md index 74ba20d8058..a695b05f293 100644 --- a/designs/albert/README.md +++ b/designs/albert/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/albert/package.json b/designs/albert/package.json index 3b2d24dd7ba..5145d0c82f4 100644 --- a/designs/albert/package.json +++ b/designs/albert/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/bee/.eslintrc.yml b/designs/bee/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/bee/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/bee/README.md b/designs/bee/README.md index 2b0e758aa96..e7836f23889 100644 --- a/designs/bee/README.md +++ b/designs/bee/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/bee/package.json b/designs/bee/package.json index 07ecb00a198..d9702ed7513 100644 --- a/designs/bee/package.json +++ b/designs/bee/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/bella/.eslintrc.yml b/designs/bella/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/bella/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/bella/README.md b/designs/bella/README.md index 3f171ec7942..8188e4b634a 100644 --- a/designs/bella/README.md +++ b/designs/bella/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/bella/package.json b/designs/bella/package.json index 6757fe50e3c..01c53e9488c 100644 --- a/designs/bella/package.json +++ b/designs/bella/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step3": "node build.mjs", diff --git a/designs/benjamin/.eslintrc.yml b/designs/benjamin/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/benjamin/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/benjamin/README.md b/designs/benjamin/README.md index 79a60e15342..ab142351235 100644 --- a/designs/benjamin/README.md +++ b/designs/benjamin/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/benjamin/package.json b/designs/benjamin/package.json index fb8f838178a..37fd3eddef2 100644 --- a/designs/benjamin/package.json +++ b/designs/benjamin/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/bent/.eslintrc.yml b/designs/bent/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/bent/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/bent/README.md b/designs/bent/README.md index 61e37e804b6..13677ecd2e8 100644 --- a/designs/bent/README.md +++ b/designs/bent/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/bent/package.json b/designs/bent/package.json index cc335ce7551..43bd06b0cc0 100644 --- a/designs/bent/package.json +++ b/designs/bent/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step4": "node build.mjs", diff --git a/designs/bob/.eslintrc.yml b/designs/bob/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/bob/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/bob/README.md b/designs/bob/README.md index bd546788940..1c5046883b8 100644 --- a/designs/bob/README.md +++ b/designs/bob/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/bob/package.json b/designs/bob/package.json index 24a36502501..8c24b2b9194 100644 --- a/designs/bob/package.json +++ b/designs/bob/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/bob/src/box.mjs b/designs/bob/src/box.mjs index 8ffdfe2b51b..738df2aeae1 100644 --- a/designs/bob/src/box.mjs +++ b/designs/bob/src/box.mjs @@ -10,6 +10,7 @@ export default function ({ sa, paperless, macro, + part, }) { const w = 500 * options.size points.topLeft = new Point(0, 0) diff --git a/designs/breanna/.eslintrc.yml b/designs/breanna/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/breanna/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/breanna/README.md b/designs/breanna/README.md index 368b4a9d0b8..61b45aa70ba 100644 --- a/designs/breanna/README.md +++ b/designs/breanna/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/breanna/package.json b/designs/breanna/package.json index 052a93b7a33..daf67c6b05a 100644 --- a/designs/breanna/package.json +++ b/designs/breanna/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step3": "node build.mjs", diff --git a/designs/breanna/src/front-primary-1100.mjs b/designs/breanna/src/front-primary-1100.mjs index c2777631015..730e304760d 100644 --- a/designs/breanna/src/front-primary-1100.mjs +++ b/designs/breanna/src/front-primary-1100.mjs @@ -14,7 +14,6 @@ export function frontWithPrimaryAt1100(part) { .line(points.hps) .noop('secondary') .curve_(points.hpsCp2, points.primaryBustDart1) - break case 1200: return new Path() .move(points.primaryBustDart1) @@ -28,7 +27,6 @@ export function frontWithPrimaryAt1100(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.primaryBustDart1) - break case 1230: return new Path() .move(points.primaryBustDart1) @@ -41,7 +39,6 @@ export function frontWithPrimaryAt1100(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.primaryBustDart1) - break case 1300: return new Path() .move(points.primaryBustDart1) @@ -54,7 +51,6 @@ export function frontWithPrimaryAt1100(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.primaryBustDart1) - break case 1330: return new Path() .move(points.primaryBustDart1) @@ -67,7 +63,6 @@ export function frontWithPrimaryAt1100(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.primaryBustDart1) - break case 1400: case 1500: case 1600: @@ -83,7 +78,6 @@ export function frontWithPrimaryAt1100(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.primaryBustDart1) - break case 1700: return new Path() .move(points.primaryBustDart1) @@ -96,7 +90,6 @@ export function frontWithPrimaryAt1100(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.primaryBustDart1) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-1130.mjs b/designs/breanna/src/front-primary-1130.mjs index 601b69046d1..3751ce86559 100644 --- a/designs/breanna/src/front-primary-1130.mjs +++ b/designs/breanna/src/front-primary-1130.mjs @@ -15,7 +15,6 @@ export function frontWithPrimaryAt1130(part) { .noop('primary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1230: return new Path() .move(points.cfNeck) @@ -28,7 +27,6 @@ export function frontWithPrimaryAt1130(part) { .line(points.hps) .noop('primary') .curve_(points.hpsCp2, points.cfNeck) - break case 1300: return new Path() .move(points.cfNeck) @@ -41,7 +39,6 @@ export function frontWithPrimaryAt1130(part) { .line(points.hps) .noop('primary') .curve_(points.hpsCp2, points.cfNeck) - break case 1330: return new Path() .move(points.cfNeck) @@ -54,7 +51,6 @@ export function frontWithPrimaryAt1130(part) { .line(points.hps) .noop('primary') .curve_(points.hpsCp2, points.cfNeck) - break case 1400: case 1500: case 1600: @@ -70,7 +66,6 @@ export function frontWithPrimaryAt1130(part) { .line(points.hps) .noop('primary') .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -83,7 +78,6 @@ export function frontWithPrimaryAt1130(part) { .line(points.hps) .noop('primary') .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-1200.mjs b/designs/breanna/src/front-primary-1200.mjs index 154f757e710..8fae8de287e 100644 --- a/designs/breanna/src/front-primary-1200.mjs +++ b/designs/breanna/src/front-primary-1200.mjs @@ -15,7 +15,6 @@ export function frontWithPrimaryAt1200(part) { .noop('primary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1300: return new Path() .move(points.cfNeck) @@ -29,7 +28,6 @@ export function frontWithPrimaryAt1200(part) { .noop('primary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1330: return new Path() .move(points.cfNeck) @@ -43,7 +41,6 @@ export function frontWithPrimaryAt1200(part) { .noop('primary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1400: case 1500: case 1600: @@ -60,7 +57,6 @@ export function frontWithPrimaryAt1200(part) { .noop('primary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -74,7 +70,6 @@ export function frontWithPrimaryAt1200(part) { .noop('primary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-1300.mjs b/designs/breanna/src/front-primary-1300.mjs index 242c480b3ed..1f256dfbe1a 100644 --- a/designs/breanna/src/front-primary-1300.mjs +++ b/designs/breanna/src/front-primary-1300.mjs @@ -14,7 +14,6 @@ export function frontWithPrimaryAt1300(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1400: case 1500: case 1600: @@ -30,7 +29,6 @@ export function frontWithPrimaryAt1300(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -43,7 +41,6 @@ export function frontWithPrimaryAt1300(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-1330.mjs b/designs/breanna/src/front-primary-1330.mjs index e9636d4f875..18aaae52e6e 100644 --- a/designs/breanna/src/front-primary-1330.mjs +++ b/designs/breanna/src/front-primary-1330.mjs @@ -17,7 +17,6 @@ export function frontWithPrimaryAt1330(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -30,7 +29,6 @@ export function frontWithPrimaryAt1330(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-1400.mjs b/designs/breanna/src/front-primary-1400.mjs index 22191c1cf9b..a2be5d7404d 100644 --- a/designs/breanna/src/front-primary-1400.mjs +++ b/designs/breanna/src/front-primary-1400.mjs @@ -16,7 +16,6 @@ export function frontWithPrimaryAt1400(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -29,7 +28,6 @@ export function frontWithPrimaryAt1400(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-600.mjs b/designs/breanna/src/front-primary-600.mjs index 5732412e1b2..2620e4fbf76 100644 --- a/designs/breanna/src/front-primary-600.mjs +++ b/designs/breanna/src/front-primary-600.mjs @@ -13,7 +13,6 @@ export function frontWithPrimaryAt600(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 800: case 900: case 1000: @@ -28,7 +27,6 @@ export function frontWithPrimaryAt600(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1100: return new Path() .move(points.cfNeck) @@ -41,7 +39,6 @@ export function frontWithPrimaryAt600(part) { .line(points.hps) .curve_(points.hpsCp2, points.secondaryBustDart1) .noop('secondary') - break case 1130: return new Path() .move(points.cfNeck) @@ -54,7 +51,6 @@ export function frontWithPrimaryAt600(part) { .line(points.hps) .noop('secondary') .curve_(points.hpsCp2, points.cfNeck) - break case 1200: return new Path() .move(points.cfNeck) @@ -68,7 +64,6 @@ export function frontWithPrimaryAt600(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1230: return new Path() .move(points.cfNeck) @@ -81,7 +76,6 @@ export function frontWithPrimaryAt600(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1300: return new Path() .move(points.cfNeck) @@ -94,7 +88,6 @@ export function frontWithPrimaryAt600(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1330: return new Path() .move(points.cfNeck) @@ -107,7 +100,6 @@ export function frontWithPrimaryAt600(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1400: case 1500: case 1600: @@ -123,7 +115,6 @@ export function frontWithPrimaryAt600(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -136,7 +127,6 @@ export function frontWithPrimaryAt600(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-700.mjs b/designs/breanna/src/front-primary-700.mjs index 73ef1bfee89..68a32fa1f09 100644 --- a/designs/breanna/src/front-primary-700.mjs +++ b/designs/breanna/src/front-primary-700.mjs @@ -15,7 +15,6 @@ export function frontWithPrimaryAt700(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1100: return new Path() .move(points.cfNeck) @@ -27,7 +26,6 @@ export function frontWithPrimaryAt700(part) { .line(points.hps) .curve_(points.hpsCp2, points.secondaryBustDart1) .noop('secondary') - break case 1130: return new Path() .move(points.cfNeck) @@ -39,7 +37,6 @@ export function frontWithPrimaryAt700(part) { .line(points.hps) .noop('secondary') .curve_(points.hpsCp2, points.cfNeck) - break case 1200: return new Path() .move(points.cfNeck) @@ -52,7 +49,6 @@ export function frontWithPrimaryAt700(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1230: return new Path() .move(points.cfNeck) @@ -64,7 +60,6 @@ export function frontWithPrimaryAt700(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1300: return new Path() .move(points.cfNeck) @@ -76,7 +71,6 @@ export function frontWithPrimaryAt700(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1330: return new Path() .move(points.cfNeck) @@ -88,7 +82,6 @@ export function frontWithPrimaryAt700(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1400: case 1500: case 1600: @@ -103,7 +96,6 @@ export function frontWithPrimaryAt700(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -115,7 +107,6 @@ export function frontWithPrimaryAt700(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-800.mjs b/designs/breanna/src/front-primary-800.mjs index 559f29b85f4..26aa38bc456 100644 --- a/designs/breanna/src/front-primary-800.mjs +++ b/designs/breanna/src/front-primary-800.mjs @@ -16,7 +16,6 @@ export function frontWithPrimaryAt800(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1100: return new Path() .move(points.secondaryBustDart1) @@ -30,7 +29,6 @@ export function frontWithPrimaryAt800(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.secondaryBustDart1) - break case 1130: return new Path() .move(points.cfNeck) @@ -44,7 +42,6 @@ export function frontWithPrimaryAt800(part) { .line(points.hps) .noop('secondary') .curve_(points.hpsCp2, points.cfNeck) - break case 1200: return new Path() .move(points.cfNeck) @@ -58,7 +55,6 @@ export function frontWithPrimaryAt800(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1230: return new Path() .move(points.cfNeck) @@ -71,7 +67,6 @@ export function frontWithPrimaryAt800(part) { .noop('secondary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1300: return new Path() .move(points.cfNeck) @@ -84,7 +79,6 @@ export function frontWithPrimaryAt800(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1330: return new Path() .move(points.cfNeck) @@ -97,7 +91,6 @@ export function frontWithPrimaryAt800(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1400: case 1500: case 1600: @@ -113,7 +106,6 @@ export function frontWithPrimaryAt800(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1700: return new Path() .move(points.cfNeck) @@ -126,7 +118,6 @@ export function frontWithPrimaryAt800(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break default: return new Path() } diff --git a/designs/breanna/src/front-primary-only.mjs b/designs/breanna/src/front-primary-only.mjs index d7384beba2d..ce1bb8ff1d1 100644 --- a/designs/breanna/src/front-primary-only.mjs +++ b/designs/breanna/src/front-primary-only.mjs @@ -13,7 +13,6 @@ export function frontWithPrimaryOnly(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 700: return new Path() .move(points.cfNeck) @@ -24,7 +23,6 @@ export function frontWithPrimaryOnly(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 800: case 900: case 1000: @@ -38,7 +36,6 @@ export function frontWithPrimaryOnly(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1100: return new Path() .move(points.primaryBustDart1) @@ -50,7 +47,6 @@ export function frontWithPrimaryOnly(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.primaryBustDart1) - break case 1130: return new Path() .move(points.cfNeck) @@ -62,7 +58,6 @@ export function frontWithPrimaryOnly(part) { .line(points.hps) .noop('primary') .curve_(points.hpsCp2, points.cfNeck) - break case 1200: case 1230: return new Path() @@ -75,7 +70,6 @@ export function frontWithPrimaryOnly(part) { .noop('primary') .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1300: return new Path() .move(points.cfNeck) @@ -87,7 +81,6 @@ export function frontWithPrimaryOnly(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1330: return new Path() .move(points.cfNeck) @@ -99,7 +92,6 @@ export function frontWithPrimaryOnly(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break case 1400: case 1500: case 1600: @@ -114,6 +106,5 @@ export function frontWithPrimaryOnly(part) { .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder) .line(points.hps) .curve_(points.hpsCp2, points.cfNeck) - break } } diff --git a/designs/breanna/src/sleevecap.mjs b/designs/breanna/src/sleevecap.mjs index c02945154b2..f2029315e64 100644 --- a/designs/breanna/src/sleevecap.mjs +++ b/designs/breanna/src/sleevecap.mjs @@ -34,7 +34,7 @@ function sleevecapAdjust(store, twoBacks = false, options = null) { } function draftSleevecap(params, run) { - let { store, measurements, options, Point, points, Path, paths, part } = params + const { store, measurements, options, Point, points, Path, paths, part } = params // Sleeve center axis points.centerBiceps = new Point(0, 0) points.centerCap = points.centerBiceps.shift( @@ -151,6 +151,8 @@ function draftSleevecap(params, run) { // Uncomment this line to see all sleevecap iterations //paths[run] = paths.sleevecap; } + + return part } function redrawSleevecapFront(params, delta) { diff --git a/designs/brian/.eslintrc.yml b/designs/brian/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/brian/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/brian/README.md b/designs/brian/README.md index 77a36af4722..d8a9f85f402 100644 --- a/designs/brian/README.md +++ b/designs/brian/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/brian/package.json b/designs/brian/package.json index bc72208f78e..9ae35f5578c 100644 --- a/designs/brian/package.json +++ b/designs/brian/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step3": "node build.mjs", diff --git a/designs/brian/src/back.mjs b/designs/brian/src/back.mjs index 20cbd53ab47..74b8e05980e 100644 --- a/designs/brian/src/back.mjs +++ b/designs/brian/src/back.mjs @@ -184,5 +184,5 @@ export const back = { } return part - } + }, } diff --git a/designs/brian/src/base.mjs b/designs/brian/src/base.mjs index 78c63f91e4a..48bfd141ac3 100644 --- a/designs/brian/src/base.mjs +++ b/designs/brian/src/base.mjs @@ -13,7 +13,7 @@ export const base = { 'shoulderSlope', 'waistToHips', ], - optionalMeasurements: [ 'highBust' ], + optionalMeasurements: ['highBust'], options: { // Static brianFitSleeve: true, @@ -37,7 +37,7 @@ export const base = { frontArmholeDeeper: { pct: 0.2, min: 0, max: 0.5, menu: 'advanced' }, shoulderSlopeReduction: { pct: 0, min: 0, max: 80, menu: 'advanced' }, }, - plugins: [ pluginBundle, bustPlugin ], + plugins: [pluginBundle, bustPlugin], draft: ({ measurements, options, @@ -53,7 +53,6 @@ export const base = { macro, part, }) => { - store.set('shoulderEase', (measurements.shoulderToShoulder * options.shoulderEase) / 2) // Center back (cb) vertical axis @@ -63,7 +62,10 @@ export const base = { points.cbHips = new Point(0, points.cbWaist.y + measurements.waistToHips) // Shoulder line - points.neck = new Point((measurements.neck * (1 + options.collarEase)) / options.collarFactor, 0) + points.neck = new Point( + (measurements.neck * (1 + options.collarEase)) / options.collarFactor, + 0 + ) points.hps = points.neck.clone() // We started using HPS in many measurements // Shoulder point using shoulderSlope degree measurement points.shoulder = utils.beamsIntersect( @@ -76,7 +78,8 @@ export const base = { points.cbShoulder = new Point(0, points.shoulder.y) points.cbArmhole = new Point( 0, - points.shoulder.y + measurements.biceps * (1 + options.bicepsEase) * options.armholeDepthFactor + points.shoulder.y + + measurements.biceps * (1 + options.bicepsEase) * options.armholeDepthFactor ) // Now take shoulder slope reduction into account @@ -87,7 +90,10 @@ export const base = { points.cbHem = new Point(0, points.cbHips.y * (1 + options.lengthBonus)) // Side back (cb) vertical axis - points.armhole = new Point((measurements.chest * (1 + options.chestEase)) / 4, points.cbArmhole.y) + points.armhole = new Point( + (measurements.chest * (1 + options.chestEase)) / 4, + points.cbArmhole.y + ) points.waist = new Point(points.armhole.x, points.cbWaist.y) points.hips = new Point(points.armhole.x, points.cbHips.y) points.hem = new Point(points.armhole.x, points.cbHem.y) @@ -170,10 +176,10 @@ export const base = { points.gridAnchor = points.cbHem /* - * People would like to have the option to shift the shoulder seam - * See https://github.com/freesewing/freesewing/issues/642 - * So let's make the people happy - */ + * People would like to have the option to shift the shoulder seam + * See https://github.com/freesewing/freesewing/issues/642 + * So let's make the people happy + */ // Front armhole is a bit deeper, add those points let deeper = measurements.chest * options.frontArmholeDeeper for (const p of ['', 'Cp1', 'Cp2']) { @@ -210,6 +216,5 @@ export const base = { } return part - } + }, } - diff --git a/designs/brian/src/front.mjs b/designs/brian/src/front.mjs index 3183b8ad7bf..d274f4ed1fb 100644 --- a/designs/brian/src/front.mjs +++ b/designs/brian/src/front.mjs @@ -20,7 +20,6 @@ export const front = { utils, part, }) => { - // Re-use points for deeper armhole at the front points.armholePitchCp1 = points.frontArmholePitchCp1 points.armholePitch = points.frontArmholePitch @@ -62,7 +61,9 @@ export const front = { .curve_(points.mirroredNeckCp2, points.mirroredCbNeck) .split(points.s3CollarSplit)[0] .reverse() - .join(new Path().move(points.hps).curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck)) + .join( + new Path().move(points.hps).curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck) + ) .setRender(false) } if (options.s3Armhole < 0.1 && options.s3Armhole > -0.1) { @@ -194,5 +195,5 @@ export const front = { } return part - } + }, } diff --git a/designs/brian/src/index.mjs b/designs/brian/src/index.mjs index 167d3b52ba2..6e454756f9b 100644 --- a/designs/brian/src/index.mjs +++ b/designs/brian/src/index.mjs @@ -10,7 +10,7 @@ import { sleevecap } from './sleevecap.mjs' // Setup our new design const Brian = new Design({ data, - parts: [ back, front, sleeve ] + parts: [back, front, sleeve], }) // Named exports diff --git a/designs/brian/src/sleeve.mjs b/designs/brian/src/sleeve.mjs index d848829be54..5de02cfd6af 100644 --- a/designs/brian/src/sleeve.mjs +++ b/designs/brian/src/sleeve.mjs @@ -4,12 +4,9 @@ export const sleeve = { from: sleevecap, name: 'brian.sleeve', options: { - sleeveLengthBonus: { pct: 0, min: -40, max: 10, menu: 'style' } + sleeveLengthBonus: { pct: 0, min: -40, max: 10, menu: 'style' }, }, - measurements: [ - 'shoulderToWrist', - 'wrist', - ], + measurements: ['shoulderToWrist', 'wrist'], draft: ({ store, sa, @@ -26,7 +23,6 @@ export const sleeve = { macro, part, }) => { - // Remove things inherited macro('cutonfold', false) macro('rmad') @@ -40,7 +36,10 @@ export const sleeve = { // Wrist points.centerWrist = points.sleeveTop.shift(-90, store.get('sleeveLength')) - points.wristRight = points.centerWrist.shift(0, (measurements.wrist * (1 + options.cuffEase)) / 2) + points.wristRight = points.centerWrist.shift( + 0, + (measurements.wrist * (1 + options.cuffEase)) / 2 + ) points.wristLeft = points.wristRight.rotate(180, points.centerWrist) // Paths @@ -70,7 +69,9 @@ export const sleeve = { macro('scalebox', { at: points.scalebox }) points.frontNotch = paths.sleevecap.shiftAlong(store.get('frontArmholeToArmholePitch')) - points.backNotch = paths.sleevecap.reverse().shiftAlong(store.get('backArmholeToArmholePitch')) + points.backNotch = paths.sleevecap + .reverse() + .shiftAlong(store.get('backArmholeToArmholePitch')) snippets.frontNotch = new Snippet('notch', points.frontNotch) snippets.backNotch = new Snippet('bnotch', points.backNotch) if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') @@ -104,5 +105,5 @@ export const sleeve = { }) } return part - } + }, } diff --git a/designs/brian/src/sleevecap.mjs b/designs/brian/src/sleevecap.mjs index 23cd27ad52e..00d8d54ec14 100644 --- a/designs/brian/src/sleevecap.mjs +++ b/designs/brian/src/sleevecap.mjs @@ -166,7 +166,6 @@ export const sleevecap = { sleeveWidthGuarantee: { pct: 90, min: 25, max: 100, menu: 'advanced' }, }, draft: ({ store, units, options, Point, points, paths, log, snippets, macro, part }) => { - // Clean up from fron for (const path in paths) delete paths[path] delete snippets.logo @@ -190,5 +189,5 @@ export const sleevecap = { points.gridAnchor = new Point(0, 0) return part - } + }, } diff --git a/designs/bruce/.eslintrc.yml b/designs/bruce/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/bruce/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/bruce/README.md b/designs/bruce/README.md index 648e596ff53..9a7ae862a4d 100644 --- a/designs/bruce/README.md +++ b/designs/bruce/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/bruce/package.json b/designs/bruce/package.json index 69f4e4fd7fe..c67c578403c 100644 --- a/designs/bruce/package.json +++ b/designs/bruce/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/carlita/.eslintrc.yml b/designs/carlita/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/carlita/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/carlita/README.md b/designs/carlita/README.md index 41f8ba6fe54..c44d5fd9186 100644 --- a/designs/carlita/README.md +++ b/designs/carlita/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/carlita/package.json b/designs/carlita/package.json index 2ecf2bc005c..ab2c4c31e83 100644 --- a/designs/carlita/package.json +++ b/designs/carlita/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/carlton/.eslintrc.yml b/designs/carlton/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/carlton/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/carlton/README.md b/designs/carlton/README.md index 7978a88299e..d7e2dae9f0f 100644 --- a/designs/carlton/README.md +++ b/designs/carlton/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/carlton/package.json b/designs/carlton/package.json index 59ad419b1cf..9bdad79f2ef 100644 --- a/designs/carlton/package.json +++ b/designs/carlton/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step4": "node build.mjs", diff --git a/designs/cathrin/.eslintrc.yml b/designs/cathrin/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/cathrin/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/cathrin/README.md b/designs/cathrin/README.md index d2887d2546f..b0c4eb8a301 100644 --- a/designs/cathrin/README.md +++ b/designs/cathrin/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/cathrin/package.json b/designs/cathrin/package.json index 1bf5d2953d4..1e145a4df63 100644 --- a/designs/cathrin/package.json +++ b/designs/cathrin/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/charlie/.eslintrc.yml b/designs/charlie/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/charlie/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/charlie/README.md b/designs/charlie/README.md index 67fcc982a75..d047473f48e 100644 --- a/designs/charlie/README.md +++ b/designs/charlie/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/charlie/package.json b/designs/charlie/package.json index c9d16233bb9..e54c86efad2 100644 --- a/designs/charlie/package.json +++ b/designs/charlie/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/cornelius/.eslintrc.yml b/designs/cornelius/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/cornelius/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/cornelius/README.md b/designs/cornelius/README.md index 657034aa183..f6f18e4a7dc 100644 --- a/designs/cornelius/README.md +++ b/designs/cornelius/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/cornelius/package.json b/designs/cornelius/package.json index 886fa9c0874..39c435e593b 100644 --- a/designs/cornelius/package.json +++ b/designs/cornelius/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/diana/.eslintrc.yml b/designs/diana/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/diana/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/diana/README.md b/designs/diana/README.md index caed23be366..af24e397399 100644 --- a/designs/diana/README.md +++ b/designs/diana/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/diana/package.json b/designs/diana/package.json index 083eab9627e..1135027b615 100644 --- a/designs/diana/package.json +++ b/designs/diana/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/examples/.eslintrc.js b/designs/examples/.eslintrc.js deleted file mode 100644 index ee6effdccbd..00000000000 --- a/designs/examples/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: "standard" -}; diff --git a/designs/examples/.eslintrc.yml b/designs/examples/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/examples/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/examples/README.md b/designs/examples/README.md index 2af1c3ba6af..31fba58bc1f 100644 --- a/designs/examples/README.md +++ b/designs/examples/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/examples/package.json b/designs/examples/package.json index e2ef8220de3..4c8d457a039 100644 --- a/designs/examples/package.json +++ b/designs/examples/package.json @@ -33,6 +33,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/examples/src/index.mjs b/designs/examples/src/index.mjs index aeb6149af4a..50cdfa2a04f 100644 --- a/designs/examples/src/index.mjs +++ b/designs/examples/src/index.mjs @@ -109,6 +109,17 @@ import { snippet_logo, } from './snippets.mjs' +// Stacks +import { + stacks_top, + stacks_left, + stacks_right, + stacks_bottom, + stacks_leftEye, + stacks_rightEye, + stacks_mouth, +} from './stacks.mjs' + // Settings import { settings_sa } from './settings.mjs' @@ -216,6 +227,22 @@ const Examples = new Design({ snippet_snapsocket, snippet_snapstud, snippet_logo, + + // Stacks + stacks_top, + stacks_left, + stacks_right, + stacks_bottom, + stacks_leftEye, + stacks_rightEye, + stacks_mouth, + + // Settings + settings_sa, + + // Docs + docs_coords, + docs_overview, ], plugins: [pluginBundle, gorePlugin], }) @@ -319,5 +346,18 @@ export { snippet_snapsocket, snippet_snapstud, snippet_logo, + + // Stacks + stacks_top, + stacks_left, + stacks_right, + stacks_bottom, + stacks_leftEye, + stacks_rightEye, + stacks_mouth, + + // Docs + docs_coords, + docs_overview, Examples, } diff --git a/designs/examples/src/settings.mjs b/designs/examples/src/settings.mjs index 686351ed158..a8ffe9ea574 100644 --- a/designs/examples/src/settings.mjs +++ b/designs/examples/src/settings.mjs @@ -1,6 +1,6 @@ export const settings_sa = { name: 'examples.settings_sa', - draft: ({ Point, points, Path, path, part }) => { + draft: ({ Point, points, Path, paths, part }) => { points.A = new Point(45, 60) points.B = new Point(10, 30) points.BCp2 = new Point(40, 20) diff --git a/designs/examples/src/stacks.mjs b/designs/examples/src/stacks.mjs new file mode 100644 index 00000000000..8b0cd0255f6 --- /dev/null +++ b/designs/examples/src/stacks.mjs @@ -0,0 +1,128 @@ +const stack = (settings, partName) => { + if (settings?.options?.stackIt === 'Do stack') return 'example' + else return partName +} + +export const stacks_top = { + name: 'examples.stacks_top', + stack, + measurements: ['head'], + options: { + size: { pct: 50, min: 5, max: 100, menu: 'stack' }, + x: { pct: 0, min: -100, max: 100, menu: 'stack' }, + y: { pct: 0, min: -100, max: 100, menu: 'stack' }, + stackIt: { dflt: 'Do stack', list: ['Do stack', 'Do not stack'], menu: 'stack' }, + }, + draft: ({ store, Point, points, Path, paths, options, measurements, part }) => { + store.set('size', measurements.head * options.size) + store.set('x', measurements.head * options.x) + store.set('y', measurements.head * options.y) + points.from = new Point(store.get('x'), store.get('y')) + points.to = points.from.shift(0, store.get('size')) + paths.line = new Path().move(points.from).line(points.to).attr('class', 'fabric stroke-4xl') + + return part + }, +} + +export const stacks_right = { + name: 'examples.stacks_right', + stack, + after: stacks_top, + draft: ({ store, Point, points, Path, paths, part }) => { + points.from = new Point(store.get('x') + store.get('size'), store.get('y')) + points.to = points.from.shift(-90, store.get('size')) + paths.line = new Path().move(points.from).line(points.to).attr('class', 'fabric stroke-4xl') + + return part + }, +} + +export const stacks_bottom = { + name: 'examples.stacks_bottom', + stack, + after: stacks_top, + draft: ({ store, Point, points, Path, paths, part }) => { + points.from = new Point(store.get('x') + store.get('size'), store.get('y') + store.get('size')) + points.to = points.from.shift(180, store.get('size')) + paths.line = new Path().move(points.from).line(points.to).attr('class', 'fabric stroke-4xl') + + return part + }, +} + +export const stacks_left = { + name: 'examples.stacks_left', + stack, + after: stacks_top, + draft: ({ store, Point, points, Path, paths, part }) => { + points.from = new Point(store.get('x'), store.get('y') + store.get('size')) + points.to = points.from.shift(90, store.get('size')) + paths.line = new Path().move(points.from).line(points.to).attr('class', 'fabric stroke-4xl') + + return part + }, +} + +export const stacks_leftEye = { + name: 'examples.stacks_leftEye', + stack, + after: stacks_top, + draft: ({ store, Point, points, part }) => { + points.leftEye = new Point( + store.get('x') + store.get('size') * 0.35, + store.get('y') + store.get('size') * 0.4 + ) + .attr('data-circle', store.get('size') * 0.1) + .attr('data-circle-class', 'stroke-6xl') + + return part + }, +} + +export const stacks_rightEye = { + name: 'examples.stacks_rightEye', + stack, + after: stacks_top, + draft: ({ store, Point, points, part }) => { + points.rightEye = new Point( + store.get('x') + store.get('size') * 0.65, + store.get('y') + store.get('size') * 0.4 + ) + .attr('data-circle', store.get('size') * 0.08) + .attr('data-circle-class', 'stroke-7xl') + + return part + }, +} + +export const stacks_mouth = { + name: 'examples.stacks_mouth', + stack, + after: stacks_top, + draft: ({ store, Point, points, paths, Path, part }) => { + points.left = new Point( + store.get('x') + store.get('size') * 0.15, + store.get('y') + store.get('size') * 0.5 + ) + points.right = new Point( + store.get('x') + store.get('size') * 0.85, + store.get('y') + store.get('size') * 0.5 + ) + points.leftCp = new Point( + store.get('x') + store.get('size') * 0.35, + store.get('y') + store.get('size') * 0.8 + ) + points.rightCp = new Point( + store.get('x') + store.get('size') * 0.65, + store.get('y') + store.get('size') * 0.8 + ) + + paths.mouth = new Path() + .move(points.left) + .curve(points.leftCp, points.rightCp, points.right) + .attr('class', 'fabric stroke-7xl') + + return part + }, +} diff --git a/designs/florence/.eslintrc.yml b/designs/florence/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/florence/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/florence/README.md b/designs/florence/README.md index 1e369cd825c..9b5feb779e9 100644 --- a/designs/florence/README.md +++ b/designs/florence/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/florence/package.json b/designs/florence/package.json index d3e929cd3b4..bb013a28323 100644 --- a/designs/florence/package.json +++ b/designs/florence/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/florent/.eslintrc.yml b/designs/florent/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/florent/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/florent/README.md b/designs/florent/README.md index 24fa78d72c6..c0c87a8b434 100644 --- a/designs/florent/README.md +++ b/designs/florent/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/florent/package.json b/designs/florent/package.json index 21175fe744b..4ee845292be 100644 --- a/designs/florent/package.json +++ b/designs/florent/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/hi/.eslintrc.yml b/designs/hi/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/hi/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/hi/README.md b/designs/hi/README.md index 87fe433d665..3b2457d82fb 100644 --- a/designs/hi/README.md +++ b/designs/hi/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/hi/package.json b/designs/hi/package.json index 80474d7c306..731718a79ef 100644 --- a/designs/hi/package.json +++ b/designs/hi/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/hi/src/teeth.mjs b/designs/hi/src/teeth.mjs index c11cf72981e..7909c77e8ad 100644 --- a/designs/hi/src/teeth.mjs +++ b/designs/hi/src/teeth.mjs @@ -10,9 +10,7 @@ export function createTeeth(pnts, toothCount, toothStartSize, toothEndSize, part // Deconstruct what we need from the part via shorthand() const { Path, points, Point, options } = part.shorthand() - // These 4 points make up our cubic bezier curve which in turn is half of the mouth - const [start, cp1, cp2, end] = pnts - + // pnts holds 4 points that make up our cubic bezier curve which in turn is half of the mouth // Create the Bezier object from the 4 points const halfMouth = new Bezier(...pnts) diff --git a/designs/holmes/.eslintrc.yml b/designs/holmes/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/holmes/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/holmes/README.md b/designs/holmes/README.md index e58feec418a..1c886f50dd8 100644 --- a/designs/holmes/README.md +++ b/designs/holmes/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/holmes/package.json b/designs/holmes/package.json index fde6518bc27..cac77c2dd11 100644 --- a/designs/holmes/package.json +++ b/designs/holmes/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/hortensia/.eslintrc.yml b/designs/hortensia/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/hortensia/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/hortensia/README.md b/designs/hortensia/README.md index 381c08ef523..94c53b5d385 100644 --- a/designs/hortensia/README.md +++ b/designs/hortensia/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/hortensia/package.json b/designs/hortensia/package.json index 6db90eabf0e..feaed28bf4f 100644 --- a/designs/hortensia/package.json +++ b/designs/hortensia/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/huey/.eslintrc.yml b/designs/huey/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/huey/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/huey/README.md b/designs/huey/README.md index edcae8d13f6..d0ef01509eb 100644 --- a/designs/huey/README.md +++ b/designs/huey/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/huey/package.json b/designs/huey/package.json index 2bc0ec94503..2890b835383 100644 --- a/designs/huey/package.json +++ b/designs/huey/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/hugo/.eslintrc.yml b/designs/hugo/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/hugo/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/hugo/README.md b/designs/hugo/README.md index 6a8694c7e37..d2b3e80ce92 100644 --- a/designs/hugo/README.md +++ b/designs/hugo/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/hugo/package.json b/designs/hugo/package.json index 03414f19c3a..20541d92929 100644 --- a/designs/hugo/package.json +++ b/designs/hugo/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/hugo/src/front.mjs b/designs/hugo/src/front.mjs index 630b441f935..f0033445328 100644 --- a/designs/hugo/src/front.mjs +++ b/designs/hugo/src/front.mjs @@ -31,9 +31,9 @@ function hugoFront({ part, }) { // Remove clutter - const seam = paths.seam - paths = {} - paths.seam = seam + for (const key in paths) { + if (key !== 'seam') delete paths[key] + } // Remove notch inherited from Brian delete snippets.armholePitchNotch diff --git a/designs/hugo/src/pocket.mjs b/designs/hugo/src/pocket.mjs index 90782b01c77..299374ce790 100644 --- a/designs/hugo/src/pocket.mjs +++ b/designs/hugo/src/pocket.mjs @@ -1,13 +1,25 @@ import { front } from './front.mjs' -function hugoPocket({ utils, store, sa, points, Path, paths, complete, paperless, macro, part }) { - return part +function hugoPocket({ + utils, + store, + sa, + points, + Path, + paths, + complete, + paperless, + macro, + snippets, + part, +}) { // Remove clutter - const pocket = part.paths.pocket - part.paths = {} - part.snippets = {} + for (const key in paths) { + if (key !== 'pocket') delete paths[key] + } + for (const key in snippets) delete snippets[key] - paths.seam = pocket + paths.seam = paths.pocket .line(points.cfRibbing) .line(points.pocketHem) .close() diff --git a/designs/hugo/src/pocketfacing.mjs b/designs/hugo/src/pocketfacing.mjs index bed881e4b47..e8f5388e608 100644 --- a/designs/hugo/src/pocketfacing.mjs +++ b/designs/hugo/src/pocketfacing.mjs @@ -1,12 +1,13 @@ import { pocket } from './pocket.mjs' function hugoPocketFacing({ sa, points, Path, paths, complete, paperless, macro, store, part }) { - return part // Remove clutter - const facing = part.paths.facing - part.paths = {} + for (const key in paths) { + if (key !== 'facing') delete paths[key] + } - paths.seam = facing + paths.seam = paths.facing + .clone() .line(points.pocketTop) .curve(points.pocketTopCp, points.pocketTip, points.pocketTip) .line(points.facingEnd) diff --git a/designs/jaeger/.eslintrc.yml b/designs/jaeger/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/jaeger/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/jaeger/README.md b/designs/jaeger/README.md index bebef290c46..d9618799946 100644 --- a/designs/jaeger/README.md +++ b/designs/jaeger/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/jaeger/package.json b/designs/jaeger/package.json index 841fcb09969..4815d1653aa 100644 --- a/designs/jaeger/package.json +++ b/designs/jaeger/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/legend/.eslintrc.js b/designs/legend/.eslintrc.js deleted file mode 100644 index 2ff6e0a1366..00000000000 --- a/designs/legend/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: 'standard' -} diff --git a/designs/legend/.eslintrc.yml b/designs/legend/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/legend/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/legend/README.md b/designs/legend/README.md index 0fd992ef451..70cffff3854 100644 --- a/designs/legend/README.md +++ b/designs/legend/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/legend/package.json b/designs/legend/package.json index c4cb026cca2..e90fabb976d 100644 --- a/designs/legend/package.json +++ b/designs/legend/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/legend/src/bartack.mjs b/designs/legend/src/bartack.mjs index 14489f604cb..9dda86d6193 100644 --- a/designs/legend/src/bartack.mjs +++ b/designs/legend/src/bartack.mjs @@ -1,16 +1,7 @@ import { box } from './shared.mjs' import { pluginBundle } from '@freesewing/plugin-bundle' -const bartackOptions = (options) => ({ - angle: options.bartackAngle, - length: options.bartackLength, - density: options.bartackDensity, - width: options.bartackWidth, - start: options.bartackStart, - end: options.bartackEnd, -}) - -function legendBartack({ points, Point, paths, Path, macro, options, part }) { +function legendBartack({ points, Point, macro, part }) { points.bartack = new Point(40, 20).attr('data-text', 'bartack').attr('data-text-dy', -2) macro('bartack', { anchor: points.bartack, diff --git a/designs/lucy/.eslintrc.yml b/designs/lucy/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/lucy/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/lucy/README.md b/designs/lucy/README.md index a314b02f550..bcb1d29946c 100644 --- a/designs/lucy/README.md +++ b/designs/lucy/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/lucy/package.json b/designs/lucy/package.json index e0446878294..5145776a846 100644 --- a/designs/lucy/package.json +++ b/designs/lucy/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/lunetius/.eslintrc.yml b/designs/lunetius/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/lunetius/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/lunetius/README.md b/designs/lunetius/README.md index b566b8bed46..14dca9b6522 100644 --- a/designs/lunetius/README.md +++ b/designs/lunetius/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/lunetius/package.json b/designs/lunetius/package.json index a110ae7bdba..90b417efc06 100644 --- a/designs/lunetius/package.json +++ b/designs/lunetius/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/noble/.eslintrc.yml b/designs/noble/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/noble/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/noble/README.md b/designs/noble/README.md index 97e70f415d8..f46e6fcb08d 100644 --- a/designs/noble/README.md +++ b/designs/noble/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/noble/package.json b/designs/noble/package.json index 9a6c9b3e6ac..ad5f047bbc1 100644 --- a/designs/noble/package.json +++ b/designs/noble/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/octoplushy/.eslintrc.yml b/designs/octoplushy/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/octoplushy/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/octoplushy/README.md b/designs/octoplushy/README.md index b54034fd92d..8f0dbb31f79 100644 --- a/designs/octoplushy/README.md +++ b/designs/octoplushy/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/octoplushy/package.json b/designs/octoplushy/package.json index d6b3ff3ed95..6a3e35cf821 100644 --- a/designs/octoplushy/package.json +++ b/designs/octoplushy/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/paco/.eslintrc.yml b/designs/paco/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/paco/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/paco/README.md b/designs/paco/README.md index 65e5e6c254a..637aba233e2 100644 --- a/designs/paco/README.md +++ b/designs/paco/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/paco/package.json b/designs/paco/package.json index eea79826bb0..f0307780d69 100644 --- a/designs/paco/package.json +++ b/designs/paco/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/penelope/.eslintrc.yml b/designs/penelope/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/penelope/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/penelope/README.md b/designs/penelope/README.md index ee70f385630..72d33e77e78 100644 --- a/designs/penelope/README.md +++ b/designs/penelope/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/penelope/package.json b/designs/penelope/package.json index 224e3249a63..4cf2c179788 100644 --- a/designs/penelope/package.json +++ b/designs/penelope/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/penelope/src/waistband.mjs b/designs/penelope/src/waistband.mjs index d92533ed5c8..d802ecbced4 100644 --- a/designs/penelope/src/waistband.mjs +++ b/designs/penelope/src/waistband.mjs @@ -92,6 +92,7 @@ export const waistband = { name: 'penelope.waistband', measurements: ['waist', 'waistToKnee'], options: { + waistEase, waistBandOverlap: 25, waistBand: { bool: true, menu: 'style' }, waistBandWidth: { pct: 10, min: 5, max: 20, menu: 'style' }, diff --git a/designs/plugintest/.eslintrc.yml b/designs/plugintest/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/plugintest/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/plugintest/README.md b/designs/plugintest/README.md index 94c17264d18..e0ea6d9ab9b 100644 --- a/designs/plugintest/README.md +++ b/designs/plugintest/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/plugintest/package.json b/designs/plugintest/package.json index 2f44b1ce41f..0afda36ccb8 100644 --- a/designs/plugintest/package.json +++ b/designs/plugintest/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/rendertest/.eslintrc.yml b/designs/rendertest/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/rendertest/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/rendertest/README.md b/designs/rendertest/README.md index b964f56be1a..b75f185bcee 100644 --- a/designs/rendertest/README.md +++ b/designs/rendertest/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/rendertest/package.json b/designs/rendertest/package.json index 0d5f7ccb9af..bd45d902d9f 100644 --- a/designs/rendertest/package.json +++ b/designs/rendertest/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/rendertest/src/demo.mjs b/designs/rendertest/src/demo.mjs index 412a2d94ab8..f70d92ef677 100644 --- a/designs/rendertest/src/demo.mjs +++ b/designs/rendertest/src/demo.mjs @@ -51,7 +51,7 @@ export const demo = { if (options.only === 'false' || options.only === 'widths') addWidths(params, true) if (options.only === 'false' || options.only === 'styles') addStyles(params, true) if (options.only === 'false' || options.only === 'combos') addCombos(params, true) - if (options.only === 'false' || options.only === 'circles') addCircles(params, true) + if (options.only === 'false' || options.only === 'circles') addCircles(params) if (options.only === 'false' || options.only === 'text') addText(params, true) if (options.only === 'false' || options.only === 'snippets') addSnippets(params, true) if (options.only === 'false' || options.only === 'macros') addMacros(params, true) @@ -66,7 +66,7 @@ export const demo = { }, } -function addCircles({ Point, points, store, options }) { +function addCircles({ Point, points, store, options, part }) { if (options.only === 'circles') { let y = store.get('y') const w = store.get('w') @@ -101,7 +101,7 @@ function addCircles({ Point, points, store, options }) { return part } -function addColors({ Point, Path, points, paths, store, options }, demo = false) { +function addColors({ Point, Path, points, paths, store, options, part }, demo = false) { if (options.only === 'colors' || demo) { let y = store.get('y') const w = store.get('w') @@ -134,7 +134,7 @@ function addColors({ Point, Path, points, paths, store, options }, demo = false) return part } -function addCombos({ Point, Path, points, paths, store, options }, demo = false) { +function addCombos({ Point, Path, points, paths, store, options, part }, demo = false) { if (options.only === 'combos' || demo) { let y = store.get('y') const w = store.get('w') @@ -175,7 +175,7 @@ function addCombos({ Point, Path, points, paths, store, options }, demo = false) return part } -function addMacros({ macro, Point, Path, points, paths, store, options }, demo = false) { +function addMacros({ macro, Point, Path, points, paths, store, options, part }, demo = false) { if (options.only === 'macros' || demo) { let y = store.get('y') const w = store.get('w') @@ -266,7 +266,7 @@ function addMacros({ macro, Point, Path, points, paths, store, options }, demo = } function addSnippets( - { Point, Path, points, paths, snippets, Snippet, store, options }, + { Point, Path, points, paths, snippets, Snippet, store, options, part }, demo = false ) { if (options.only === 'snippets' || demo) { @@ -331,7 +331,7 @@ function addSnippets( return part } -function addStyles({ Point, Path, points, paths, store, options }, demo = false) { +function addStyles({ Point, Path, points, paths, store, options, part }, demo = false) { if (options.only === 'styles' || demo) { let y = store.get('y') const w = store.get('w') @@ -364,7 +364,7 @@ function addStyles({ Point, Path, points, paths, store, options }, demo = false) return part } -function addText({ Point, Path, points, paths, store, options }, demo = false) { +function addText({ Point, Path, points, paths, store, options, part }, demo = false) { if (options.only === 'text' || demo) { let y = store.get('y') const w = store.get('w') @@ -438,7 +438,7 @@ function addText({ Point, Path, points, paths, store, options }, demo = false) { return part } -function addWidths({ Point, Path, points, paths, store, options }, demo = false) { +function addWidths({ Point, Path, points, paths, store, options, part }, demo = false) { if (options.only === 'widths' || demo) { let y = store.get('y') const w = store.get('w') diff --git a/designs/sandy/.eslintrc.yml b/designs/sandy/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/sandy/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/sandy/README.md b/designs/sandy/README.md index 5ac6aa73019..a9f861d2059 100644 --- a/designs/sandy/README.md +++ b/designs/sandy/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/sandy/package.json b/designs/sandy/package.json index 2c95f226107..a671a85d3df 100644 --- a/designs/sandy/package.json +++ b/designs/sandy/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/shin/.eslintrc.yml b/designs/shin/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/shin/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/shin/README.md b/designs/shin/README.md index 171f498d530..a87eca50798 100644 --- a/designs/shin/README.md +++ b/designs/shin/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/shin/package.json b/designs/shin/package.json index 7b99eb47e80..6a95e5ee8a3 100644 --- a/designs/shin/package.json +++ b/designs/shin/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/simon/.eslintrc.yml b/designs/simon/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/simon/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/simon/README.md b/designs/simon/README.md index dde0764c016..90e03b06349 100644 --- a/designs/simon/README.md +++ b/designs/simon/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/simon/package.json b/designs/simon/package.json index 4315e5d41c1..a447963eff1 100644 --- a/designs/simon/package.json +++ b/designs/simon/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step4": "node build.mjs", diff --git a/designs/simon/src/frontright-seamless.mjs b/designs/simon/src/frontright-seamless.mjs index 71b350ca337..80d02d40d73 100644 --- a/designs/simon/src/frontright-seamless.mjs +++ b/designs/simon/src/frontright-seamless.mjs @@ -10,7 +10,7 @@ export const draftFrontRightSeamless = ({ complete, paperless, macro, - option, + options, part, }) => { const width = store.get('buttonPlacketWidth') diff --git a/designs/simon/src/sleeve.mjs b/designs/simon/src/sleeve.mjs index a957d5257b2..3f2c430a4b2 100644 --- a/designs/simon/src/sleeve.mjs +++ b/designs/simon/src/sleeve.mjs @@ -283,6 +283,7 @@ function simonSleeve({ export const sleeve = { name: 'simon.sleeve', from: brianSleeve, + after: front, hideDependencies: true, options: { cuffOverlap, diff --git a/designs/simone/.eslintrc.yml b/designs/simone/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/simone/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/simone/README.md b/designs/simone/README.md index 4a45bbd3fa2..2e079191ee9 100644 --- a/designs/simone/README.md +++ b/designs/simone/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/simone/package.json b/designs/simone/package.json index bef14831015..9acee5f30a7 100644 --- a/designs/simone/package.json +++ b/designs/simone/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/sven/.eslintrc.yml b/designs/sven/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/sven/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/sven/README.md b/designs/sven/README.md index 3e0bb710e27..ce5bb9d728a 100644 --- a/designs/sven/README.md +++ b/designs/sven/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/sven/package.json b/designs/sven/package.json index 2510dad816d..c916a8c351c 100644 --- a/designs/sven/package.json +++ b/designs/sven/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/sven/src/cuff.mjs b/designs/sven/src/cuff.mjs index f165ead7e0b..04550a42d1f 100644 --- a/designs/sven/src/cuff.mjs +++ b/designs/sven/src/cuff.mjs @@ -3,7 +3,7 @@ import { ribbing } from './frontback.mjs' import { sleeve } from './sleeve.mjs' function svenCuff(params) { - const { measurements, sa, points, complete, paperless, macro, options, part } = params + const { measurements, sa, points, complete, macro, options, part } = params if (!options.ribbing) return part const length = measurements.wrist * (1 + options.cuffEase) * (1 - options.ribbingStretch) @@ -21,10 +21,6 @@ function svenCuff(params) { } } - // Paperless? - if (paperless) { - } - return part } diff --git a/designs/sven/src/waistband.mjs b/designs/sven/src/waistband.mjs index f2c21b5c97d..a04898a28ee 100644 --- a/designs/sven/src/waistband.mjs +++ b/designs/sven/src/waistband.mjs @@ -3,7 +3,7 @@ import { ribbing, hipsEase } from './frontback.mjs' import { ribbingStretch } from './cuff.mjs' function svenWaistband(params) { - const { measurements, sa, points, complete, paperless, macro, options, part } = params + const { measurements, points, complete, macro, options, part } = params if (!options.ribbing) return part @@ -17,13 +17,6 @@ function svenWaistband(params) { nr: 4, title: 'waistband', }) - if (sa) { - // FIXME: Don't we need SA here? - } - } - - // Paperless? - if (paperless) { } return part diff --git a/designs/tamiko/.eslintrc.yml b/designs/tamiko/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/tamiko/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/tamiko/README.md b/designs/tamiko/README.md index a8772bb3d1f..6498633b60d 100644 --- a/designs/tamiko/README.md +++ b/designs/tamiko/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/tamiko/package.json b/designs/tamiko/package.json index 0a3f7340d22..9a100cbae94 100644 --- a/designs/tamiko/package.json +++ b/designs/tamiko/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/teagan/.eslintrc.yml b/designs/teagan/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/teagan/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/teagan/README.md b/designs/teagan/README.md index 2c46b5d183e..33eba9e35ec 100644 --- a/designs/teagan/README.md +++ b/designs/teagan/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/teagan/package.json b/designs/teagan/package.json index 470a7f5b091..54adbcaf2ad 100644 --- a/designs/teagan/package.json +++ b/designs/teagan/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/tiberius/.eslintrc.yml b/designs/tiberius/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/tiberius/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/tiberius/README.md b/designs/tiberius/README.md index 28e2370d2ae..8d9c3f7eefe 100644 --- a/designs/tiberius/README.md +++ b/designs/tiberius/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/tiberius/package.json b/designs/tiberius/package.json index cfec9d57fb2..f408b42ed20 100644 --- a/designs/tiberius/package.json +++ b/designs/tiberius/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/titan/.eslintrc.yml b/designs/titan/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/titan/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/titan/README.md b/designs/titan/README.md index 46a592b95b9..a804d2e7ba4 100644 --- a/designs/titan/README.md +++ b/designs/titan/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/titan/package.json b/designs/titan/package.json index 83ff81749eb..5aa224f394d 100644 --- a/designs/titan/package.json +++ b/designs/titan/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step3": "node build.mjs", diff --git a/designs/trayvon/.eslintrc.yml b/designs/trayvon/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/trayvon/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/trayvon/README.md b/designs/trayvon/README.md index 8afb1d50516..c7dbfd04207 100644 --- a/designs/trayvon/README.md +++ b/designs/trayvon/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/trayvon/package.json b/designs/trayvon/package.json index faea0d9bf9e..9de1f209f3a 100644 --- a/designs/trayvon/package.json +++ b/designs/trayvon/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/trayvon/src/fabric.mjs b/designs/trayvon/src/fabric.mjs index aa5b3d56307..6418fe6fe53 100644 --- a/designs/trayvon/src/fabric.mjs +++ b/designs/trayvon/src/fabric.mjs @@ -23,7 +23,7 @@ function trayvonFabricTail(params) { rotation: -90, }) - if (sa) seamAllowance(part, 'fabric') + if (sa) seamAllowance(params, 'fabric') } // Paperless? @@ -80,12 +80,12 @@ function trayvonFabricTip(params) { points.logo = points.tip.shiftFractionTowards(points.mid, 0.4) snippets.logo = new Snippet('logo', points.logo) - if (sa) seamAllowance(part, 'fabric') + if (sa) seamAllowance(params, 'fabric') } // Paperless? if (paperless) { - tieShapeDimensions(part) + tieShapeDimensions(params) macro('ld', { from: points.tip, to: points.notch1, diff --git a/designs/trayvon/src/interfacing.mjs b/designs/trayvon/src/interfacing.mjs index 33cffa041fd..fc9fbf89c4c 100644 --- a/designs/trayvon/src/interfacing.mjs +++ b/designs/trayvon/src/interfacing.mjs @@ -51,7 +51,7 @@ function trayvonInterfacingTip(params) { // Paperless? if (paperless) { - tieShapeDimensions(part) + tieShapeDimensions(params) paths.n45 = new Path() .move(points.midLeft) .line(points.midRight) diff --git a/designs/trayvon/src/lining.mjs b/designs/trayvon/src/lining.mjs index 33736ca44b9..4acbfe7c484 100644 --- a/designs/trayvon/src/lining.mjs +++ b/designs/trayvon/src/lining.mjs @@ -51,11 +51,11 @@ function trayvonLiningTail(params) { }) snippets.notch = new Snippet('notch', points.tip) - if (sa) seamAllowance(part, 'lining') + if (sa) seamAllowance(params, 'lining') } // Paperless? - if (paperless) tieShapeDimensions(part, true) + if (paperless) tieShapeDimensions(params, true) return params.part } @@ -103,12 +103,12 @@ function trayvonLiningTip(params) { snippets.notch = new Snippet('notch', points.tip) macro('miniscale', { at: points.gridAnchor }) - if (sa) seamAllowance(part, 'lining') + if (sa) seamAllowance(params, 'lining') } // Paperless? if (paperless) { - tieShapeDimensions(part, true) + tieShapeDimensions(params, true) } return params.part diff --git a/designs/tutorial/.eslintrc.yml b/designs/tutorial/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/tutorial/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/tutorial/README.md b/designs/tutorial/README.md index 430d326e0dc..492336b6e5f 100644 --- a/designs/tutorial/README.md +++ b/designs/tutorial/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/tutorial/package.json b/designs/tutorial/package.json index 8f95f3d38c9..f0a0fbf526b 100644 --- a/designs/tutorial/package.json +++ b/designs/tutorial/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/tutorial/src/bib.mjs b/designs/tutorial/src/bib.mjs index 1777302f6ee..454513f84c9 100644 --- a/designs/tutorial/src/bib.mjs +++ b/designs/tutorial/src/bib.mjs @@ -17,7 +17,6 @@ export const bib = { paperless, part, }) => { - // Construct the neck opening let tweak = 1 let target = (measurements.head * options.neckRatio) / 4 @@ -230,5 +229,5 @@ export const bib = { } return part - } + }, } diff --git a/designs/tutorial/src/configpart.mjs b/designs/tutorial/src/configpart.mjs index 224a88f74a3..8d2bc0cf751 100644 --- a/designs/tutorial/src/configpart.mjs +++ b/designs/tutorial/src/configpart.mjs @@ -5,7 +5,7 @@ import { pluginBundle } from '@freesewing/plugin-bundle' export const configpart = { name: 'tutorial.configpart', measurements: ['head'], - plugins: [ pluginBundle ], + plugins: [pluginBundle], options: { size: { pct: 50, min: 10, max: 100 }, neckRatio: { pct: 80, min: 70, max: 90 }, @@ -13,6 +13,5 @@ export const configpart = { lengthRatio: { pct: 75, min: 55, max: 85 }, }, hide: true, - draft: ({part}) => part + draft: ({ part }) => part, } - diff --git a/designs/tutorial/src/index.mjs b/designs/tutorial/src/index.mjs index ec94a399899..314a78eec1d 100644 --- a/designs/tutorial/src/index.mjs +++ b/designs/tutorial/src/index.mjs @@ -8,20 +8,7 @@ import { bib } from './bib.mjs' // Setup our new design const Tutorial = new Design({ data, - parts: [ - step1, - step2, - step3, - step4, - step5, - step6, - step7, - step8, - step9, - step10, - step11, - bib, - ] + parts: [step1, step2, step3, step4, step5, step6, step7, step8, step9, step10, step11, bib], }) // Named exports @@ -38,6 +25,5 @@ export { step10, step11, bib, - Tutorial + Tutorial, } - diff --git a/designs/tutorial/src/step1-4.mjs b/designs/tutorial/src/step1-4.mjs index 877ad0fd7b1..dd73e6e29a8 100644 --- a/designs/tutorial/src/step1-4.mjs +++ b/designs/tutorial/src/step1-4.mjs @@ -17,7 +17,6 @@ export const step1 = { macro, part, }) => { - let w = 500 * options.size points.topLeft = new Point(0, 0) points.topRight = new Point(w, 0) @@ -62,46 +61,31 @@ export const step1 = { } return part - } + }, } export const step2 = { name: 'tutorial.step2', after: configpart, - draft: ({ - Point, - points, - Path, - paths, - measurements, - part, - }) => { - + draft: ({ Point, points, Path, paths, measurements, part }) => { points.right = new Point(measurements.head / 10, 0) points.bottom = new Point(0, measurements.head / 12) points.rightCp1 = points.right.shift(90, points.bottom.dy(points.right) / 2) points.bottomCp2 = points.bottom.shift(0, points.bottom.dx(points.right) / 2) - paths.neck = new Path().move(points.right).curve(points.rightCp1, points.bottomCp2, points.bottom) + paths.neck = new Path() + .move(points.right) + .curve(points.rightCp1, points.bottomCp2, points.bottom) return part - } + }, } export const step3 = { name: 'tutorial.step3', after: configpart, - draft: ({ - Point, - points, - Path, - paths, - measurements, - options, - part, - }) => { - + draft: ({ Point, points, Path, paths, measurements, options, part }) => { let tweak = 1 let target = (measurements.head * options.neckRatio) / 4 let delta @@ -122,19 +106,13 @@ export const step3 = { } while (Math.abs(delta) > 1) return part - } + }, } export const step4 = { name: 'tutorial.step4', from: step3, - draft: ({ - points, - Path, - paths, - part, - }) => { - + draft: ({ points, Path, paths, part }) => { points.rightCp2 = points.rightCp1.flipY() points.bottomCp1 = points.bottomCp2.flipX() @@ -155,6 +133,5 @@ export const step4 = { .close() return part - } + }, } - diff --git a/designs/tutorial/src/step5-8.mjs b/designs/tutorial/src/step5-8.mjs index 23cd5726b10..18926631d00 100644 --- a/designs/tutorial/src/step5-8.mjs +++ b/designs/tutorial/src/step5-8.mjs @@ -3,16 +3,7 @@ import { step4 } from './step1-4.mjs' export const step5 = { name: 'tutorial.step5', from: step4, - draft: ({ - Point, - points, - Path, - paths, - measurements, - options, - part, - }) => { - + draft: ({ Point, points, Path, paths, measurements, options, part }) => { const width = measurements.head * options.widthRatio const length = measurements.head * options.lengthRatio @@ -30,20 +21,13 @@ export const step5 = { .close() return part - } + }, } export const step6 = { name: 'tutorial.step6', from: step5, - draft: ({ - Point, - points, - Path, - paths, - part, - }) => { - + draft: ({ Point, points, Path, paths, part }) => { points.edgeLeft = new Point(points.topLeft.x, points.left.y) points.edgeRight = new Point(points.topRight.x, points.right.y) points.edgeTop = new Point(0, points.topLeft.y) @@ -63,19 +47,13 @@ export const step6 = { .close() return part - } + }, } export const step7 = { name: 'tutorial.step7', from: step6, - draft: ({ - Point, - points, - macro, - part, - }) => { - + draft: ({ Point, points, macro, part }) => { const strap = points.edgeTop.dy(points.top) points.tipRight = points.edgeTop.translate(strap / 2, strap / 2) @@ -98,20 +76,13 @@ export const step7 = { }) return part - } + }, } export const step8 = { name: 'tutorial.step8', from: step7, - draft: ({ - points, - Path, - paths, - macro, - part, - }) => { - + draft: ({ points, Path, paths, macro, part }) => { const rotateThese = [ 'edgeTopLeftCp', 'edgeTop', @@ -160,6 +131,5 @@ export const step8 = { .close() return part - } + }, } - diff --git a/designs/tutorial/src/step9-11.mjs b/designs/tutorial/src/step9-11.mjs index 5b2ae8c1bbd..e5cc05629b4 100644 --- a/designs/tutorial/src/step9-11.mjs +++ b/designs/tutorial/src/step9-11.mjs @@ -3,13 +3,7 @@ import { step8 } from './step5-8.mjs' export const step9 = { name: 'tutorial.step9', from: step8, - draft: ({ - points, - Path, - paths, - part, - }) => { - + draft: ({ points, Path, paths, part }) => { points.edgeTopRightCp = points.edgeTopLeftCp.flipX() points.topCp1 = points.topCp2.flipX() points.tipLeftTopStart = points.tipRightTopStart.flipX() @@ -44,20 +38,13 @@ export const step9 = { delete paths.rect return part - } + }, } export const step10 = { name: 'tutorial.step10', from: step9, - draft: ({ - points, - Path, - paths, - macro, - part, - }) => { - + draft: ({ points, Path, paths, macro, part }) => { macro('round', { from: points.topLeft, to: points.bottomRight, @@ -95,23 +82,13 @@ export const step10 = { .close() return part - } + }, } export const step11 = { name: 'tutorial.step11', from: step10, - draft: ({ - Point, - points, - paths, - macro, - complete, - snippets, - Snippet, - part, - }) => { - + draft: ({ Point, points, paths, macro, complete, snippets, Snippet, part }) => { // Complete? if (complete) { snippets.snapStud = new Snippet('snap-stud', points.snapLeft) @@ -138,6 +115,5 @@ export const step11 = { } return part - } + }, } - diff --git a/designs/ursula/.eslintrc.yml b/designs/ursula/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/ursula/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/ursula/README.md b/designs/ursula/README.md index 89dcf73efba..3396a0775a5 100644 --- a/designs/ursula/README.md +++ b/designs/ursula/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/ursula/package.json b/designs/ursula/package.json index 5994f8a7dd6..e510e27fe23 100644 --- a/designs/ursula/package.json +++ b/designs/ursula/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step4": "node build.mjs", diff --git a/designs/ursula/src/back.mjs b/designs/ursula/src/back.mjs index 80e95ac2155..57e755673de 100644 --- a/designs/ursula/src/back.mjs +++ b/designs/ursula/src/back.mjs @@ -17,7 +17,6 @@ function ursulaBack({ macro, part, }) { - // Design pattern here // Create points diff --git a/designs/ursula/src/elastic.mjs b/designs/ursula/src/elastic.mjs index 692bdc12389..22f1cdd2aff 100644 --- a/designs/ursula/src/elastic.mjs +++ b/designs/ursula/src/elastic.mjs @@ -12,7 +12,6 @@ function ursulaElastic({ macro, part, }) { - // Stretch utility method store.set('elasticScale', utils.stretchToScale(options.elasticStretch)) diff --git a/designs/ursula/src/front.mjs b/designs/ursula/src/front.mjs index 95151e09065..57152e43d1f 100644 --- a/designs/ursula/src/front.mjs +++ b/designs/ursula/src/front.mjs @@ -17,7 +17,6 @@ function ursulaFront({ macro, part, }) { - // Stretch utility method store.set('xScale', utils.stretchToScale(options.fabricStretch)) @@ -217,6 +216,6 @@ export const front = { frontDip: { pct: 5.0, min: -5, max: 15, menu: 'style' }, taperToGusset: { pct: 70, min: 5, max: 100, menu: 'style' }, }, - plugins: [ pluginBundle ], + plugins: [pluginBundle], draft: ursulaFront, } diff --git a/designs/ursula/src/gusset.mjs b/designs/ursula/src/gusset.mjs index c33f3869c7c..6a23601efe3 100644 --- a/designs/ursula/src/gusset.mjs +++ b/designs/ursula/src/gusset.mjs @@ -14,7 +14,6 @@ function ursulaGusset({ macro, part, }) { - // Create points points.frontGussetLeft = new Point(store.get('frontGussetLeft').x, 0) points.backGussetLeft = new Point( diff --git a/designs/wahid/.eslintrc.yml b/designs/wahid/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/wahid/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/wahid/README.md b/designs/wahid/README.md index 40ec47415ea..f217f0138bd 100644 --- a/designs/wahid/README.md +++ b/designs/wahid/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/wahid/package.json b/designs/wahid/package.json index 4f053e5438a..e71e981debe 100644 --- a/designs/wahid/package.json +++ b/designs/wahid/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/wahid/src/back.mjs b/designs/wahid/src/back.mjs index 87ad04c5c8d..2483f8c394d 100644 --- a/designs/wahid/src/back.mjs +++ b/designs/wahid/src/back.mjs @@ -16,7 +16,6 @@ function wahidBack({ snippets, part, }) { - // Cleanup from Brian for (let i of Object.keys(paths)) delete paths[i] delete snippets.armholePitchNotch diff --git a/designs/wahid/src/front.mjs b/designs/wahid/src/front.mjs index 544f70d07de..5d8b0fdf138 100644 --- a/designs/wahid/src/front.mjs +++ b/designs/wahid/src/front.mjs @@ -35,7 +35,6 @@ function wahidFront({ store, part, }) { - // Cleanup from Brian for (let i of Object.keys(paths)) delete paths[i] delete snippets.armholePitchNotch diff --git a/designs/wahid/src/frontfacing.mjs b/designs/wahid/src/frontfacing.mjs index abe31374acb..50c3350c031 100644 --- a/designs/wahid/src/frontfacing.mjs +++ b/designs/wahid/src/frontfacing.mjs @@ -13,7 +13,6 @@ function wahidFrontFacing({ sa, part, }) { - // Cleanup from front part for (let i of Object.keys(paths).filter((name) => name !== 'grainline')) delete paths[i] for (let i of Object.keys(snippets)) delete snippets[i] diff --git a/designs/wahid/src/frontlining.mjs b/designs/wahid/src/frontlining.mjs index c6580b19753..a36a8285675 100644 --- a/designs/wahid/src/frontlining.mjs +++ b/designs/wahid/src/frontlining.mjs @@ -13,7 +13,6 @@ function wahidFrontLining({ sa, part, }) { - // Cleanup from Brian for (let i of Object.keys(paths)) delete paths[i] for (let i of Object.keys(snippets)) delete snippets[i] diff --git a/designs/wahid/src/pocketbag.mjs b/designs/wahid/src/pocketbag.mjs index 12fa4b7700d..cd17afeee0a 100644 --- a/designs/wahid/src/pocketbag.mjs +++ b/designs/wahid/src/pocketbag.mjs @@ -13,7 +13,6 @@ function wahidPocketbag({ store, part, }) { - let pw = measurements.hips * options.pocketWidth // Pocket width let ph = store.get('pocketBagLength') // Pocket height points.topLeft = new Point(0, 0) diff --git a/designs/wahid/src/pocketfacing.mjs b/designs/wahid/src/pocketfacing.mjs index 1228a022b3e..4d4eda64245 100644 --- a/designs/wahid/src/pocketfacing.mjs +++ b/designs/wahid/src/pocketfacing.mjs @@ -13,7 +13,6 @@ function wahidPocketFacing({ store, part, }) { - const pw = measurements.hips * options.pocketWidth // Pocket width const pwh = pw * options.weltHeight // Pocket welt height const ph = store.get('pocketBagLength') + pwh // Pocket height diff --git a/designs/wahid/src/pocketinterfacing.mjs b/designs/wahid/src/pocketinterfacing.mjs index 4f9ccb11aea..d2bb0a61c9b 100644 --- a/designs/wahid/src/pocketinterfacing.mjs +++ b/designs/wahid/src/pocketinterfacing.mjs @@ -12,7 +12,6 @@ function wahidPocketInterfacing({ paperless, part, }) { - const pw = measurements.hips * options.pocketWidth // Pocket width const pwh = pw * options.weltHeight // Pocket welt height points.topLeft = new Point(0, 0) diff --git a/designs/wahid/src/pocketwelt.mjs b/designs/wahid/src/pocketwelt.mjs index 0858ca38d48..2802861dd46 100644 --- a/designs/wahid/src/pocketwelt.mjs +++ b/designs/wahid/src/pocketwelt.mjs @@ -12,7 +12,6 @@ function wahidPocketWelt({ paperless, part, }) { - const pw = measurements.hips * options.pocketWidth // Pocket width const pwh = pw * options.weltHeight // Pocket welt height points.topLeft = new Point(0, 0) diff --git a/designs/walburga/.eslintrc.yml b/designs/walburga/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/walburga/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/walburga/README.md b/designs/walburga/README.md index aa844307dea..7c44b4d5632 100644 --- a/designs/walburga/README.md +++ b/designs/walburga/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/walburga/package.json b/designs/walburga/package.json index 6bd7157df44..82cdcc2d743 100644 --- a/designs/walburga/package.json +++ b/designs/walburga/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/walburga/src/back.mjs b/designs/walburga/src/back.mjs index 7898324a1a0..3f192cd8d11 100644 --- a/designs/walburga/src/back.mjs +++ b/designs/walburga/src/back.mjs @@ -1,14 +1,6 @@ import { base } from './base.mjs' -function walburgaBack({ - points, - macro, - complete, - snippets, - Snippet, - part, -}) { - +function walburgaBack({ points, macro, complete, snippets, Snippet, part }) { // Complete? if (complete) { // logo & title diff --git a/designs/walburga/src/base.mjs b/designs/walburga/src/base.mjs index 3294f1af65b..76602909c63 100644 --- a/designs/walburga/src/base.mjs +++ b/designs/walburga/src/base.mjs @@ -17,7 +17,6 @@ function walburgaBase({ utils, part, }) { - // define some variables const hem_pos = options.length === 'toKnee' diff --git a/designs/walburga/src/front.mjs b/designs/walburga/src/front.mjs index 25b8adee08f..6f85c6d718b 100644 --- a/designs/walburga/src/front.mjs +++ b/designs/walburga/src/front.mjs @@ -16,7 +16,6 @@ function walburgaFront({ utils, part, }) { - const head = store.get('hhead') * 2 const goldenRatio = store.get('goldenRatio') const ratio = goldenRatio * options.neckoRatio @@ -36,10 +35,12 @@ function walburgaFront({ // checks to ensure that neck opening does not become too small if (neckotop < measurements.neck / 4) { - ;(neckotop = measurements.neck / 4), (neckomid = (2 * measurements.neck) / 4 / goldenRatio) + neckotop = measurements.neck / 4 + neckomid = (2 * measurements.neck) / 4 / goldenRatio } if (neckomid < measurements.neck / 4) { - ;(neckomid = measurements.neck / 4), (neckotop = ((measurements.neck / 4) * goldenRatio) / 2) + neckomid = measurements.neck / 4 + neckotop = ((measurements.neck / 4) * goldenRatio) / 2 } points.neckotop = points.top.shift(0, -neckotop) diff --git a/designs/waralee/.eslintrc.yml b/designs/waralee/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/waralee/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/waralee/README.md b/designs/waralee/README.md index cb86fde383a..1a555547b4a 100644 --- a/designs/waralee/README.md +++ b/designs/waralee/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/waralee/package.json b/designs/waralee/package.json index 7ceb33f8a72..74b1c0d247e 100644 --- a/designs/waralee/package.json +++ b/designs/waralee/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/waralee/src/backpocket.mjs b/designs/waralee/src/backpocket.mjs index 040742d3de6..fc9b926ce2a 100644 --- a/designs/waralee/src/backpocket.mjs +++ b/designs/waralee/src/backpocket.mjs @@ -15,7 +15,6 @@ function waraleeBackPocket({ sa, part, }) { - if (false == options.backPocket) { return part } diff --git a/designs/waralee/src/cutout.mjs b/designs/waralee/src/cutout.mjs index 14120c94657..afe2906a1a6 100644 --- a/designs/waralee/src/cutout.mjs +++ b/designs/waralee/src/cutout.mjs @@ -13,7 +13,6 @@ function waraleeCutout({ macro, part, }) { - let separateWaistband = options.separateWaistband if ('waistband' == options.frontPocketStyle) { separateWaistband = true diff --git a/designs/waralee/src/facings.mjs b/designs/waralee/src/facings.mjs index c92269a6e65..fc322ceb76a 100644 --- a/designs/waralee/src/facings.mjs +++ b/designs/waralee/src/facings.mjs @@ -15,7 +15,6 @@ function waraleeFacings({ sa, part, }) { - let frontPocketSize = options.frontPocketSize * measurements.crotchDepth /*- measurements.waistToHips*/ let backPocketSize = diff --git a/designs/waralee/src/index.mjs b/designs/waralee/src/index.mjs index ed9b0203222..4fa4ec537d1 100644 --- a/designs/waralee/src/index.mjs +++ b/designs/waralee/src/index.mjs @@ -39,5 +39,6 @@ export { waistbandBack, strapFront, strapBack, + pantsProto, Waralee, } diff --git a/designs/waralee/src/mini.mjs b/designs/waralee/src/mini.mjs index 3489c3b933f..bb959c1671a 100644 --- a/designs/waralee/src/mini.mjs +++ b/designs/waralee/src/mini.mjs @@ -4,18 +4,7 @@ import { pantsProto } from './pantsproto.mjs' // To keep you from printing it completely, you could print this part in paperless mode // and only have a single sheet with all the dimensions on it. -function waraleeMini({ - options, - Path, - points, - paths, - complete, - sa, - macro, - store, - part, -}) { - +function waraleeMini({ options, Path, points, paths, complete, sa, macro, store, part }) { let mini = options.minimizer let separateWaistband = options.separateWaistband if ('waistband' == options.frontPocketStyle) { diff --git a/designs/waralee/src/pants.mjs b/designs/waralee/src/pants.mjs index 864e8e24aa8..4880f855322 100644 --- a/designs/waralee/src/pants.mjs +++ b/designs/waralee/src/pants.mjs @@ -14,7 +14,6 @@ function waraleePants({ store, part, }) { - let separateWaistband = options.separateWaistband if ('waistband' == options.frontPocketStyle) { separateWaistband = true diff --git a/designs/waralee/src/pantsproto.mjs b/designs/waralee/src/pantsproto.mjs index 96fd58ba2bf..3389ceed47d 100644 --- a/designs/waralee/src/pantsproto.mjs +++ b/designs/waralee/src/pantsproto.mjs @@ -1,17 +1,7 @@ import { pluginBundle } from '@freesewing/plugin-bundle' import * as options from './options.mjs' -function waraleePantsProto({ - options, - measurements, - Point, - Path, - points, - paths, - store, - part, -}) { - +function waraleePantsProto({ options, measurements, Point, Path, points, paths, store, part }) { let seatDepth = measurements.crotchDepth /* - measurements.waistToHips */ * (1 + options.waistRaise) * diff --git a/designs/waralee/src/pocket.mjs b/designs/waralee/src/pocket.mjs index cd00dd15ca4..a86b0ebc926 100644 --- a/designs/waralee/src/pocket.mjs +++ b/designs/waralee/src/pocket.mjs @@ -15,7 +15,6 @@ function waraleePocket({ macro, part, }) { - if (false == options.frontPocket) { return part } diff --git a/designs/waralee/src/waistband.mjs b/designs/waralee/src/waistband.mjs index afc8698ea3b..c53998b68c3 100644 --- a/designs/waralee/src/waistband.mjs +++ b/designs/waralee/src/waistband.mjs @@ -1,22 +1,24 @@ import { pantsProto } from './pantsproto.mjs' -function waraleeWaistband(type, { - options, - measurements, - Point, - Path, - points, - paths, - Snippet, - snippets, - complete, - paperless, - macro, - sa, - store, - part, -}) { - +function waraleeWaistband( + type, + { + options, + measurements, + Point, + Path, + points, + paths, + Snippet, + snippets, + complete, + paperless, + macro, + sa, + store, + part, + } +) { const WidthReduction = 6 let waistBand = store.get('waistBand') let waistBandLengthFront = points.fWaistSideHem.dist(points.fWaistFrontOverlapHem) @@ -26,7 +28,6 @@ function waraleeWaistband(type, { let strapLength = measurements.waist + measurements.crotchDepth * 1.75 let partNr = 0 - let partN = 0 switch (type) { case 'waistBandFront': diff --git a/designs/yuri/.eslintrc.yml b/designs/yuri/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/designs/yuri/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/designs/yuri/README.md b/designs/yuri/README.md index f430a14cc21..43a6feb930a 100644 --- a/designs/yuri/README.md +++ b/designs/yuri/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/designs/yuri/package.json b/designs/yuri/package.json index dc5d7dc8cc5..778dbf3c57e 100644 --- a/designs/yuri/package.json +++ b/designs/yuri/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step5": "node build.mjs", diff --git a/designs/yuri/src/back.mjs b/designs/yuri/src/back.mjs index 38eddff5de3..8008a9d0f57 100644 --- a/designs/yuri/src/back.mjs +++ b/designs/yuri/src/back.mjs @@ -15,7 +15,6 @@ function yuriBack({ measurements, part, }) { - // Clear paths from Brian for (const i in paths) { if (['backArmhole', 'backCollar'].indexOf(i) === -1) delete paths[i] diff --git a/designs/yuri/src/front.mjs b/designs/yuri/src/front.mjs index d526fd14284..b8bb1649e17 100644 --- a/designs/yuri/src/front.mjs +++ b/designs/yuri/src/front.mjs @@ -17,7 +17,6 @@ function yuriFront({ Snippet, part, }) { - // Clear paths from Brian for (const i in paths) { if (['frontArmhole', 'frontCollar'].indexOf(i) === -1) delete paths[i] diff --git a/designs/yuri/src/gusset.mjs b/designs/yuri/src/gusset.mjs index 20a6c14bc3a..2e833038604 100644 --- a/designs/yuri/src/gusset.mjs +++ b/designs/yuri/src/gusset.mjs @@ -14,7 +14,6 @@ function yuriGusset({ store, part, }) { - const w = store.get('gussetLength') points.top = new Point(0, 0) points.bottom = new Point(0, w) diff --git a/designs/yuri/src/hoodcenter.mjs b/designs/yuri/src/hoodcenter.mjs index e0593460896..4c9051525fb 100644 --- a/designs/yuri/src/hoodcenter.mjs +++ b/designs/yuri/src/hoodcenter.mjs @@ -13,7 +13,6 @@ function yuriHoodCenter({ units, part, }) { - const width = store.get('hoodCenterWidth') const length = complete ? width * 2.5 : store.get('hoodCenterLength') points.topLeft = new Point(0, 0) diff --git a/designs/yuri/src/hoodside.mjs b/designs/yuri/src/hoodside.mjs index 07773132a74..76f24256c68 100644 --- a/designs/yuri/src/hoodside.mjs +++ b/designs/yuri/src/hoodside.mjs @@ -16,7 +16,6 @@ function yuriHoodSide({ macro, part, }) { - const neckOpening = store.get('frontNeckSeamLength') + store.get('backNeckSeamLength') const hoodOpening = measurements.head const neckCutoutDelta = store.get('neckCutoutFront') - store.get('neckCutoutBack') diff --git a/designs/yuri/src/sleeve.mjs b/designs/yuri/src/sleeve.mjs index 14a3d1d7a3e..0264a1181d5 100644 --- a/designs/yuri/src/sleeve.mjs +++ b/designs/yuri/src/sleeve.mjs @@ -1,17 +1,6 @@ import { sleeve as brianSleeve } from '@freesewing/brian' -function yuriSleeve({ - Point, - Path, - points, - paths, - complete, - sa, - paperless, - macro, - part, -}) { - +function yuriSleeve({ Point, Path, points, paths, complete, sa, paperless, macro, part }) { // Clear paths from Brian, but keep sleevecap for (let p of Object.keys(paths)) { if (p !== 'sleevecap') delete paths[p] diff --git a/markdown/dev/guides/v3-migration/readme.md b/markdown/dev/guides/v3-migration/readme.md new file mode 100644 index 00000000000..3a6f7fa7b99 --- /dev/null +++ b/markdown/dev/guides/v3-migration/readme.md @@ -0,0 +1,14 @@ +--- +title: FreeSewing v3 Migration Guide +--- + +## About this guide + +This guide is intended for people who are using FreeSewing v2 and want to know what changes are required for FreeSewing version 3. +If your experience with/exposure to FreeSewing started with version 3, you can safely ignore this guide. + +## Part-based configuration + +### Motivation + +Onn diff --git a/package.json b/package.json index a250807d8be..d2bf59f52e0 100644 --- a/package.json +++ b/package.json @@ -15,17 +15,21 @@ "?": "node scripts/help.mjs", "tips": "node scripts/help.mjs", "lab": "cd sites/lab && yarn start", - "kickstart": "npx lerna bootstrap && yarn buildall && yarn tips", - "kickstart:windows": "npx lerna bootstrap && yarn wbuildall && yarn tips", + "kickstart": "npx lerna bootstrap && yarn buildall && && yarn prepare && yarn tips", + "kickstart:windows": "npx lerna bootstrap && yarn wbuildall && yarn prepare && yarn tips", "cleanall": "lerna run clean", "test": "lerna run test", - "prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/i18n/src/locales/**/*.*' 'packages/**/tests/*.mjs'", + "prettier": "npx prettier --write 'packages/**/src/*.mjs' 'packages/**/src/*.js' 'packages/i18n/src/locales/**/*.*' 'packages/**/tests/*.mjs'", "reconfigure": "all-contributors generate && node --experimental-json-modules --no-warnings scripts/reconfigure.mjs", "prerelease": "lerna version --no-git-tag-version --no-push && yarn reconfigure && yarn buildall", "buildall": "lerna run cibuild_step0 && lerna run cibuild_step1 && lerna run cibuild_step2 && lerna run cibuild_step3 && lerna run cibuild_step4 && lerna run cibuild_step5 && lerna run cibuild_step6 && lerna run cibuild_step7", "build": "yarn buildall", "wbuild": "yarn wbuildall", "testall": "node scripts/testall.js", + "lint": "lerna run lint -- ", + "qa": "yarn qa:prettier && yarn qa:lint", + "qa:prettier": "npx prettier", + "qa:lint": "npx eslint", "release": "lerna exec --no-bail -- npm publish", "postrelease": "git add . && git commit -m ':bookmark: v$npm_package_version' && git tag -a v$npm_package_version -m ':bookmark: FreeSewing v$npm_package_version'", "ship": "lerna exec --no-bail -- npm publish", @@ -37,7 +41,8 @@ "checkdocs": "remark markdown --quiet --frail", "strapi:translate": "node scripts/strapi-en-to-other.mjs", "fixdocs": "remark markdown --quiet --frail --output", - "wbuildall": "lerna run wcibuild_step0 && lerna run wcibuild_step1 && lerna run wcibuild_step2 && lerna run wcibuild_step3 && lerna run wcibuild_step4 && lerna run wcibuild_step5 && lerna run wcibuild_step6 && lerna run wcibuild_step7" + "wbuildall": "lerna run wcibuild_step0 && lerna run wcibuild_step1 && lerna run wcibuild_step2 && lerna run wcibuild_step3 && lerna run wcibuild_step4 && lerna run wcibuild_step5 && lerna run wcibuild_step6 && lerna run wcibuild_step7", + "prepare": "husky install" }, "repository": { "type": "git", @@ -47,10 +52,11 @@ "url": "https://github.com/freesewing/freesewing/issues" }, "prettier": "@freesewing/prettier-config", - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged" - } + "lint-staged": { + "*": [ + "npx prettier --write", + "npx eslint" + ] }, "devDependencies": { "@commitlint/cli": "^17.0.2", @@ -69,15 +75,18 @@ "cross-env": "^7.0.2", "esbuild": "^0.15.3", "esbuild-plugin-yaml": "^0.0.1", + "eslint": "^8.23.1", + "eslint-plugin-yaml": "^0.5.0", "esm": "^3.2.25", "handlebars": "^4.7.7", "husky": "^8.0.1", "js-yaml": "^4.0.0", "lerna": "^5.1.4", + "lint-staged": "^13.0.3", "mocha": "^10.0.0", "mustache": "^4.0.1", "nyc": "^15.1.0", - "prettier": "^2.3.0", + "prettier": "^2.7.1", "pretty-quick": "^3.0.0", "prop-types": "^15.7.2", "react": "^17.0.2", diff --git a/packages/core/.eslintrc.js b/packages/core/.eslintrc.js deleted file mode 100644 index ee6effdccbd..00000000000 --- a/packages/core/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: "standard" -}; diff --git a/packages/core/.eslintrc.yml b/packages/core/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/packages/core/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/packages/core/README.md b/packages/core/README.md index 37608147a8e..acc96a03964 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/packages/core/package.json b/packages/core/package.json index b4e8b2f90a6..779d5f00910 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -39,6 +39,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/*.mjs' 'tests/*.mjs'", "report": "c8 report", "testci": "mocha tests/*.test.mjs", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", @@ -56,6 +57,7 @@ "lodash.unset": "^4.5.2" }, "devDependencies": { + "eslint": "^8.23.1", "nyc": "^15.1.0" }, "files": [ diff --git a/packages/core/src/design.mjs b/packages/core/src/design.mjs index 77b3e002710..5f8d568c5df 100644 --- a/packages/core/src/design.mjs +++ b/packages/core/src/design.mjs @@ -1,5 +1,4 @@ import { Pattern } from './pattern.mjs' -import { addPartConfig } from './utils.mjs' import { loadDesignDefaults } from './config.mjs' /* diff --git a/packages/core/src/index.mjs b/packages/core/src/index.mjs index 9a3aa19091d..2707e475770 100644 --- a/packages/core/src/index.mjs +++ b/packages/core/src/index.mjs @@ -32,7 +32,7 @@ import { rad2deg, pctBasedOn, Bezier, - generatePartTransform, + generateStackTransform, macroName, } from './utils.mjs' import { version } from '../data.mjs' @@ -71,7 +71,7 @@ export { deg2rad, rad2deg, pctBasedOn, - generatePartTransform, + generateStackTransform, macroName, isCoord, version, diff --git a/packages/core/src/part.mjs b/packages/core/src/part.mjs index 99f12603d41..42494aea7f5 100644 --- a/packages/core/src/part.mjs +++ b/packages/core/src/part.mjs @@ -26,11 +26,12 @@ export function Part() { this.points = {} this.paths = {} this.snippets = {} + this.name = null return this } -Part.prototype.macroClosure = function (args) { +Part.prototype.macroClosure = function () { let self = this let method = function (key, args) { let macro = utils.macroName(key) @@ -58,7 +59,7 @@ Part.prototype.getId = function (prefix = '') { } /** Returns a value formatted for units provided in settings */ -Part.prototype.unitsClosure = function (value) { +Part.prototype.unitsClosure = function () { const self = this const method = function (value) { if (typeof value !== 'number') @@ -110,31 +111,15 @@ Part.prototype.boundary = function () { if (topLeft.y === Infinity) topLeft.y = 0 if (bottomRight.x === -Infinity) bottomRight.x = 0 if (bottomRight.y === -Infinity) bottomRight.y = 0 - // Add margin - let margin = this.context.settings.margin - if (this.context.settings.paperless && margin < 10) margin = 10 - this.topLeft = new Point(topLeft.x - margin, topLeft.y - margin) - this.bottomRight = new Point(bottomRight.x + margin, bottomRight.y + margin) + + this.topLeft = topLeft + this.bottomRight = bottomRight this.width = this.bottomRight.x - this.topLeft.x this.height = this.bottomRight.y - this.topLeft.y return this } -/** Stacks part so that its top left corner is in (0,0) */ -Part.prototype.stack = function () { - if (this.topLeft !== false) return this - else this.boundary() - if (this.topLeft.x == 0 && this.topLeft.y == 0) return this - else { - this.attr('transform', `translate(${this.topLeft.x * -1}, ${this.topLeft.y * -1})`) - this.layout.move.x = this.topLeft.x * -1 - this.layout.move.y = this.topLeft.y * -1 - } - - return this -} - /** Adds an attribute. This is here to make this call chainable in assignment */ Part.prototype.attr = function (name, value, overwrite = false) { if (overwrite) this.attributes.set(name, value) @@ -282,8 +267,8 @@ Part.prototype.shorthand = function () { shorthand.paths = new Proxy(this.paths || {}, pathsProxy) // Proxy the snippets object const snippetsProxy = { - get: function (target, prop, receiver) { - return Reflect.get(...arguments) + get: function (...args) { + return Reflect.get(...args) }, set: (snippets, name, value) => { // Constructor checks @@ -351,25 +336,16 @@ Part.prototype.shorthand = function () { return shorthand } -Part.prototype.generateTransform = function (transforms) { - const { move, rotate, flipX, flipY } = transforms - const generated = utils.generatePartTransform(move.x, move.y, rotate, flipX, flipY, this) - - for (var t in generated) { - this.attr(t, generated[t], true) - } -} - Part.prototype.isEmpty = function () { if (Object.keys(this.snippets).length > 0) return false if (Object.keys(this.paths).length > 0) { - for (var p in this.paths) { + for (const p in this.paths) { if (this.paths[p].render && this.paths[p].length()) return false } } - for (var p in this.points) { + for (const p in this.points) { if (this.points[p].attributes.get('data-text')) return false if (this.points[p].attributes.get('data-circle')) return false } diff --git a/packages/core/src/path.mjs b/packages/core/src/path.mjs index 73e762350f0..867f69d9413 100644 --- a/packages/core/src/path.mjs +++ b/packages/core/src/path.mjs @@ -393,7 +393,7 @@ function asPath(bezier, debug = false, log = false) { } /** Joins path segments together into one path */ -function joinPaths(paths, closed = false, log = false) { +function joinPaths(paths, closed = false) { let joint = new Path(paths[0].debug).withLog(paths[0].log).move(paths[0].ops[0].to) let current for (let p of paths) { diff --git a/packages/core/src/pattern.mjs b/packages/core/src/pattern.mjs index 9322d644ce3..24c5854db75 100644 --- a/packages/core/src/pattern.mjs +++ b/packages/core/src/pattern.mjs @@ -4,11 +4,11 @@ import { addNonEnumProp, macroName, sampleStyle, - capitalize, addPartConfig, mergeDependencies, } from './utils.mjs' import { Part } from './part.mjs' +import { Stack } from './stack.mjs' import { Point } from './point.mjs' import { Path } from './path.mjs' import { Snippet } from './snippet.mjs' @@ -23,7 +23,7 @@ export function Pattern(config) { addNonEnumProp(this, 'plugins', {}) addNonEnumProp(this, 'width', 0) addNonEnumProp(this, 'height', 0) - addNonEnumProp(this, 'autoLayout', { parts: {} }) + addNonEnumProp(this, 'autoLayout', { stacks: {} }) addNonEnumProp(this, 'is', '') addNonEnumProp(this, 'hooks', new Hooks()) addNonEnumProp(this, 'Point', Point) @@ -41,6 +41,7 @@ export function Pattern(config) { // Enumerable properties this.config = config // Design config this.parts = {} // Drafted parts container + this.stacks = {} // Drafted stacks container this.store = new Store() // Store for sharing data across parts return this @@ -86,6 +87,7 @@ Pattern.prototype.__createPartWithContext = function (name) { // Context object to add to Part closure const part = new Part() part.name = name + part.stack = this.__parts[name]?.stack || name part.context = { parts: this.parts, config: this.config, @@ -101,6 +103,19 @@ Pattern.prototype.__createPartWithContext = function (name) { return part } +Pattern.prototype.__createStackWithContext = function (name) { + // Context object to add to Stack closure + const stack = new Stack() + stack.name = name + stack.context = { + config: this.config, + settings: this.settings, + store: this.store, + } + + return stack +} + // Merges default for options with user-provided options Pattern.prototype.__loadOptionDefaults = function () { if (Object.keys(this.config.options).length < 1) return this @@ -135,7 +150,7 @@ Pattern.prototype.getConfig = function () { /* Utility method to get the (initialized) part list */ Pattern.prototype.getPartList = function () { this.init() - return Object.keys(this.config.parts) || [] + return Object.keys(this.config.parts) } function snappedOption(option, pattern) { @@ -295,7 +310,6 @@ Pattern.prototype.sampleParts = function () { Pattern.prototype.sampleRun = function (parts, anchors, run, runs, extraClass = false) { this.draft() for (let i in this.parts) { - let anchor = false let dx = 0 let dy = 0 if (this.parts[i].points.anchor) { @@ -459,7 +473,7 @@ Pattern.prototype.__loadPlugins = function () { return this } -Pattern.prototype.__loadPlugin = function (plugin, data, explicit = false) { +Pattern.prototype.__loadPlugin = function (plugin, data) { this.plugins[plugin.name] = plugin if (plugin.hooks) this.__loadPluginHooks(plugin, data) if (plugin.macros) this.__loadPluginMacros(plugin) @@ -536,40 +550,47 @@ Pattern.prototype.macro = function (key, method) { this.macros[key] = method } -/** Packs parts in a 2D space and sets pattern size */ +/** Packs stacks in a 2D space and sets pattern size */ Pattern.prototype.pack = function () { if (this.store.logs.error.length > 0) { this.store.log.warning(`One or more errors occured. Not packing pattern parts`) return this } + // First, create all stacks + this.stacks = {} + for (const [name, part] of Object.entries(this.parts)) { + const stackName = + typeof part.stack === 'function' ? part.stack(this.settings, name) : part.stack + if (typeof this.stacks[stackName] === 'undefined') + this.stacks[stackName] = this.__createStackWithContext(stackName) + this.stacks[stackName].addPart(part) + } + let bins = [] - for (let key in this.parts) { - let part = this.parts[key] - // Avoid multiple render calls to cause stacking of transforms - part.attributes.remove('transform') - if (part.render) { - part.stack() - let width = part.bottomRight.x - part.topLeft.x - let height = part.bottomRight.y - part.topLeft.y - if (this.settings.layout === true) bins.push({ id: key, width, height }) + for (const [key, stack] of Object.entries(this.stacks)) { + // Avoid multiple render calls to cause addition of transforms + stack.attributes.remove('transform') + if (!this.isStackHidden(key)) { + stack.home() + if (this.settings.layout === true) + bins.push({ id: key, width: stack.width, height: stack.height }) else { - if (this.width < width) this.width = width - if (this.height < height) this.height = height + if (this.width < stack.width) this.width = stack.width + if (this.height < stack.height) this.height = stack.height } } } if (this.settings.layout === true) { let size = pack(bins, { inPlace: true }) for (let bin of bins) { - this.autoLayout.parts[bin.id] = { move: {} } - let part = this.parts[bin.id] + this.autoLayout.stacks[bin.id] = { move: {} } + let stack = this.stacks[bin.id] if (bin.x !== 0 || bin.y !== 0) { - part.attr('transform', `translate(${bin.x}, ${bin.y})`) + stack.attr('transform', `translate(${bin.x}, ${bin.y})`) } - - this.autoLayout.parts[bin.id].move = { - x: bin.x + part.layout.move.x, - y: bin.y + part.layout.move.y, + this.autoLayout.stacks[bin.id].move = { + x: bin.x + stack.layout.move.x, + y: bin.y + stack.layout.move.y, } } this.width = size.width @@ -577,11 +598,11 @@ Pattern.prototype.pack = function () { } else if (typeof this.settings.layout === 'object') { this.width = this.settings.layout.width this.height = this.settings.layout.height - for (let partId of Object.keys(this.settings.layout.parts)) { + for (let stackId of Object.keys(this.settings.layout.stacks)) { // Some parts are added by late-stage plugins - if (this.parts[partId]) { - let transforms = this.settings.layout.parts[partId] - this.parts[partId].generateTransform(transforms) + if (this.stacks[stackId]) { + let transforms = this.settings.layout.stacks[stackId] + this.stacks[stackId].generateTransform(transforms) } } } @@ -689,7 +710,7 @@ Pattern.prototype.__resolveParts = function (count = 0) { // If so, resolve recursively if (len > count) return this.__resolveParts(len) - for (const [name, part] of Object.entries(this.__parts)) { + for (const part of Object.values(this.__parts)) { this.config = addPartConfig(part, this.config, this.store) } @@ -783,6 +804,23 @@ Pattern.prototype.isHidden = function (partName) { return false } +/* Checks whether (all parts in) a stack is hidden in the config */ +Pattern.prototype.isStackHidden = function (stackName) { + if (!this.stacks[stackName]) return true + const parts = this.stacks[stackName].getPartNames() + if (Array.isArray(this.settings.only)) { + for (const partName of parts) { + if (this.settings.only.includes(partName)) return false + } + } + for (const partName of parts) { + if (this.__parts?.[partName]?.hide) return true + if (this.__parts?.[partName]?.hideAll) return true + } + + return false +} + /** Returns props required to render this pattern through * an external renderer (eg. a React component) */ @@ -821,6 +859,12 @@ Pattern.prototype.getRenderProps = function () { } } } + props.stacks = {} + for (let s in this.stacks) { + if (!this.isStackHidden(s)) { + props.stacks[s] = this.stacks[s] + } + } return props } diff --git a/packages/core/src/stack.mjs b/packages/core/src/stack.mjs new file mode 100644 index 00000000000..3375696c87e --- /dev/null +++ b/packages/core/src/stack.mjs @@ -0,0 +1,144 @@ +import { Attributes } from './attributes.mjs' +import { Point } from './point.mjs' +import * as utils from './utils.mjs' + +export function Stack(name = null) { + // Non-enumerable properties + utils.addNonEnumProp(this, 'freeId', 0) + utils.addNonEnumProp(this, 'layout', { move: { x: 0, y: 0 } }) + + // Enumerable properties + this.attributes = new Attributes() + this.parts = new Set() + this.name = name + this.topLeft = false + this.bottomRight = false + this.width = false + this.height = false + + return this +} + +/* Adds a part to the stack */ +Stack.prototype.addPart = function (part) { + if (part) this.parts.add(part) + + return this +} + +/* Returns a list of parts in this stack */ +Stack.prototype.getPartList = function () { + return [...this.parts] +} + +/* Returns a list of names of parts in this stack */ +Stack.prototype.getPartNames = function () { + return [...this.parts].map((p) => p.name) +} + +/** Homes the stack so that its top left corner is in (0,0) */ +//Stack.prototype.home = function () { +// const parts = this.getPartList() +// if (parts.length < 1) return this +// for (const part of this.getPartList()) { +// part.home() +// } +// +// if (parts.length === 1) { +// this.topLeft = part.topLeft +// this.bottomRigth = part.bottomRight +// this.width = part.width +// this.height = part.height +// +// return this +// } +// +// return this.boundary() +//} + +/** Calculates the stack's bounding box and sets it */ +Stack.prototype.home = function () { + if (this.topLeft) return this // Cached + this.topLeft = new Point(Infinity, Infinity) + this.bottomRight = new Point(-Infinity, -Infinity) + for (const part of this.getPartList()) { + part.boundary() + if (part.topLeft.x < this.topLeft.x) this.topLeft.x = part.topLeft.x + if (part.topLeft.y < this.topLeft.y) this.topLeft.y = part.topLeft.y + if (part.bottomRight.x > this.bottomRight.x) this.bottomRight.x = part.bottomRight.x + if (part.bottomRight.y > this.bottomRight.y) this.bottomRight.y = part.bottomRight.y + } + + // Fix infinity if it's not overwritten + if (this.topLeft.x === Infinity) this.topLeft.x = 0 + if (this.topLeft.y === Infinity) this.topLeft.y = 0 + if (this.bottomRight.x === -Infinity) this.bottomRight.x = 0 + if (this.bottomRight.y === -Infinity) this.bottomRight.y = 0 + + // Add margin + let margin = this.context.settings.margin + if (this.context.settings.paperless && margin < 10) margin = 10 + this.topLeft.x -= margin + this.topLeft.y -= margin + this.bottomRight.x += margin + this.bottomRight.y += margin + + // Set dimensions + this.width = this.bottomRight.x - this.topLeft.x + this.height = this.bottomRight.y - this.topLeft.y + this.width = this.bottomRight.x - this.topLeft.x + this.height = this.bottomRight.y - this.topLeft.y + + // Add transform + //this.anchor = this.getAnchor() + // FIXME: Can we be certain this is always (0,0) / + this.anchor = new Point(0, 0) + + if (this.topLeft.x === this.anchor.x && this.topLeft.y === this.anchor.y) return this + else { + this.attr( + 'transform', + `translate(${this.anchor.x - this.topLeft.x}, ${this.anchor.y - this.topLeft.y})` + ) + this.layout.move.x = this.anchor.x - this.topLeft.x + this.layout.move.y = this.anchor.y - this.topLeft.y + } + + return this +} + +/** Finds the anchor to align parts in this stack */ +Stack.prototype.getAnchor = function () { + let anchorPoint = true + let gridAnchorPoint = true + const parts = this.getPartList() + for (const part of parts) { + if (typeof part.points.anchor === 'undefined') anchorPoint = false + if (typeof part.points.gridAnchor === 'undefined') gridAnchorPoint = false + } + + if (anchorPoint) return parts[0].points.anchor + if (gridAnchorPoint) return parts[0].points.gridAnchor + + return new Point(0, 0) +} + +/** Adds an attribute. This is here to make this call chainable in assignment */ +Stack.prototype.attr = function (name, value, overwrite = false) { + if (overwrite) this.attributes.set(name, value) + else this.attributes.add(name, value) + + return this +} + +/** Generates the transform for a stack */ +Stack.prototype.generateTransform = function (transforms) { + const { move, rotate, flipX, flipY } = transforms + const generated = utils.generateStackTransform(move.x, move.y, rotate, flipX, flipY, this) + + for (var t in generated) { + this.attr(t, generated[t], true) + } +} + +export default Stack diff --git a/packages/core/src/store.mjs b/packages/core/src/store.mjs index b1ff749afe3..bf162122916 100644 --- a/packages/core/src/store.mjs +++ b/packages/core/src/store.mjs @@ -5,12 +5,6 @@ import get from 'lodash.get' const avoid = ['set', 'setIfUnset', 'push', 'unset', 'get', 'extend'] export function Store(methods = []) { - for (const method of methods) { - if (avoid.indexOf(method[0]) !== -1) { - console.log(`WARNING: You can't squat ${method[0]}in the store`) - } else set(this, ...method) - } - /* * Default logging methods * You can override these with a plugin @@ -37,6 +31,12 @@ export function Store(methods = []) { } this.logs = logs + for (const method of methods) { + if (avoid.indexOf(method[0]) !== -1) { + this.logs.warning(`You cannot squat ${method[0]} in the store`) + } else set(this, ...method) + } + return this } diff --git a/packages/core/src/svg.mjs b/packages/core/src/svg.mjs index c4ac90df033..6bd155aa16d 100644 --- a/packages/core/src/svg.mjs +++ b/packages/core/src/svg.mjs @@ -224,7 +224,7 @@ Svg.prototype.renderText = function (point) { } Svg.prototype.escapeText = function (text) { - return text.replace(/\"/g, '“') + return text.replace(/"/g, '“') } Svg.prototype.renderCircle = function (point) { @@ -234,7 +234,7 @@ Svg.prototype.renderCircle = function (point) { } /** Returns SVG code for a snippet */ -Svg.prototype.renderSnippet = function (snippet, part) { +Svg.prototype.renderSnippet = function (snippet) { let x = round(snippet.anchor.x) let y = round(snippet.anchor.y) let scale = snippet.attributes.get('data-scale') || 1 diff --git a/packages/core/src/utils.mjs b/packages/core/src/utils.mjs index 7a9aed989e6..824dcc52842 100644 --- a/packages/core/src/utils.mjs +++ b/packages/core/src/utils.mjs @@ -361,8 +361,8 @@ export function pctBasedOn(measurement) { } } -/** Generates the transform attributes needed for a given part */ -export const generatePartTransform = (x, y, rotate, flipX, flipY, part) => { +/** Generates the transform attributes needed for a given stack */ +export const generateStackTransform = (x, y, rotate, flipX, flipY, part) => { const transforms = [] let xTotal = x || 0 let yTotal = y || 0 diff --git a/packages/core/tests/design.test.mjs b/packages/core/tests/design.test.mjs index 98225bd8ff3..0a74e387afd 100644 --- a/packages/core/tests/design.test.mjs +++ b/packages/core/tests/design.test.mjs @@ -27,7 +27,6 @@ describe('Design', () => { const settings = {} settings[key] = ['one', 'two'] const Pattern = new Design(settings) - const m = Pattern.config.parts expect(Pattern.config[key].length).to.equal(2) expect(Pattern.config[key][0]).to.equal('one') expect(Pattern.config[key][1]).to.equal('two') diff --git a/packages/core/tests/part.test.mjs b/packages/core/tests/part.test.mjs index 659bd95c9ac..d3350ee866b 100644 --- a/packages/core/tests/part.test.mjs +++ b/packages/core/tests/part.test.mjs @@ -1,5 +1,5 @@ import chai from 'chai' -import { Design, Pattern, Path } from '../src/index.mjs' +import { Design, Pattern } from '../src/index.mjs' const expect = chai.expect @@ -124,7 +124,7 @@ describe('Part', () => { ) }) - it('Should calculate the part boundary with default margin', () => { + it('Should calculate the part boundary', () => { const design = new Design() const pattern = new design() const part = pattern.__createPartWithContext() @@ -134,52 +134,15 @@ describe('Part', () => { part.points.to = new short.Point(19, 76) part.paths.test = new short.Path().move(part.points.from).line(part.points.to) let boundary = part.boundary() - expect(boundary.topLeft.x).to.equal(17) - expect(boundary.topLeft.y).to.equal(74) - expect(boundary.bottomRight.x).to.equal(125) - expect(boundary.bottomRight.y).to.equal(458) + expect(boundary.topLeft.x).to.equal(19) + expect(boundary.topLeft.y).to.equal(76) + expect(boundary.bottomRight.x).to.equal(123) + expect(boundary.bottomRight.y).to.equal(456) boundary = part.boundary() - expect(boundary.width).to.equal(108) - expect(boundary.height).to.equal(384) + expect(boundary.width).to.equal(104) + expect(boundary.height).to.equal(380) }) - it('Should calculate the part boundary with custom margin', () => { - const design = new Design() - const pattern = new design({ margin: 5 }) - const part = pattern.__createPartWithContext() - pattern.init() - const short = part.shorthand() - part.points.from = new short.Point(123, 456) - part.points.to = new short.Point(19, 76) - part.paths.test = new short.Path().move(part.points.from).line(part.points.to) - let boundary = part.boundary() - expect(boundary.topLeft.x).to.equal(14) - expect(boundary.topLeft.y).to.equal(71) - expect(boundary.bottomRight.x).to.equal(128) - expect(boundary.bottomRight.y).to.equal(461) - boundary = part.boundary() - expect(boundary.width).to.equal(114) - expect(boundary.height).to.equal(390) - }) - - it('Should calculate the part boundary for paperless', () => { - const design = new Design() - const pattern = new design({ paperless: true }) - const part = pattern.__createPartWithContext() - pattern.init() - const short = part.shorthand() - part.points.from = new short.Point(123, 456) - part.points.to = new short.Point(19, 76) - part.paths.test = new short.Path().move(part.points.from).line(part.points.to) - let boundary = part.boundary() - expect(boundary.topLeft.x).to.equal(9) - expect(boundary.topLeft.y).to.equal(66) - expect(boundary.bottomRight.x).to.equal(133) - expect(boundary.bottomRight.y).to.equal(466) - boundary = part.boundary() - expect(boundary.width).to.equal(124) - expect(boundary.height).to.equal(400) - }) /* it('Should stack a part', () => { const part = { @@ -195,7 +158,7 @@ describe('Part', () => { const design = new Design({ parts: [ part ]}) const pattern = new design({ paperless: true }) pattern.draft() - pattern.parts.test.stack() + pattern.parts.test.home() console.log(pattern.parts.test.attributes) expect(part.attributes.get('transform')).to.equal('translate(-17, -74)') }) @@ -208,9 +171,9 @@ describe('Part', () => { part.points.from = new short.Point(2, 2) part.points.to = new short.Point(19, 76) part.paths.test = new short.Path().move(part.points.from).line(part.points.to) - part.stack() + part.home() expect(part.attributes.get('transform')).to.equal(false) - part.stack() + part.home() expect(part.attributes.get('transform')).to.equal(false) }) */ @@ -221,7 +184,7 @@ describe('Part', () => { const part = pattern.__createPartWithContext() part.hooks.preDraft = [ { - method: function (p) { + method: function () { count++ }, }, @@ -243,25 +206,6 @@ describe('Part', () => { ) }) - it('Should generate the part transforms', () => { - const design = new Design() - const pattern = new design({ margin: 5 }) - const part = pattern.__createPartWithContext() - pattern.init() - let short = part.shorthand() - part.points.from = new short.Point(2, 2) - part.points.to = new short.Point(19, 76) - part.paths.test = new short.Path().move(part.points.from).line(part.points.to) - part.stack() - part.generateTransform({ - move: { - x: 10, - y: 20, - }, - }) - expect(part.attributes.list.transform.length).to.equal(1) - expect(part.attributes.list.transform[0]).to.equal('translate(10 20)') - }) describe('isEmpty', () => { it('Should return true if the part has no paths or snippets', () => { const design = new Design() @@ -274,7 +218,7 @@ describe('Part', () => { const design = new Design() const pattern = new design() const part = pattern.__createPartWithContext() - const { Path, paths, Point } = part.shorthand() + const { Path, paths } = part.shorthand() paths.seam = new Path() expect(part.isEmpty()).to.be.true }) diff --git a/packages/core/tests/path.test.mjs b/packages/core/tests/path.test.mjs index 440cb9a036f..9bd5ba15529 100644 --- a/packages/core/tests/path.test.mjs +++ b/packages/core/tests/path.test.mjs @@ -1035,7 +1035,7 @@ describe('Path', () => { const b = new Point(10, 10) const p1 = new Path().move(a).line(b) expect(invalid).to.equal(false) - const p2 = new Path().withLog(log).noop('test').insop(false, p1) + new Path().withLog(log).noop('test').insop(false, p1) expect(invalid).to.equal(true) }) @@ -1044,7 +1044,7 @@ describe('Path', () => { const log = { warning: () => (invalid = true) } const a = new Point(0, 0) const b = new Point(10, 10) - const p1 = new Path().move(a).line(b) + new Path().move(a).line(b) expect(invalid).to.equal(false) try { new Path().withLog(log).noop('test').insop('test') @@ -1058,7 +1058,7 @@ describe('Path', () => { let invalid = false const log = { warning: () => (invalid = true) } expect(invalid).to.equal(false) - const p1 = new Path().withLog(log).attr() + new Path().withLog(log).attr() expect(invalid).to.equal(true) }) @@ -1066,7 +1066,7 @@ describe('Path', () => { let invalid = false const log = { warning: () => (invalid = true) } expect(invalid).to.equal(false) - const p1 = new Path().withLog(log).attr('test') + new Path().withLog(log).attr('test') expect(invalid).to.equal(true) }) @@ -1142,7 +1142,7 @@ describe('Path', () => { it('Should log a warning when calling shiftFractionalong but fraction is not a number', () => { const part = { name: 'test', - draft: ({ paths, Path, Point, points }) => { + draft: ({ Path, Point, points }) => { points.a = new Path().move(new Point(0, 0)).line(new Point(0, 40)).shiftFractionAlong() return part }, @@ -1158,7 +1158,7 @@ describe('Path', () => { it('Should log a warning when splitting a path on a non-point', () => { const part = { name: 'test', - draft: ({ paths, Path, Point, points }) => { + draft: ({ Path, Point, points }) => { points.a = new Path().move(new Point(0, 0)).line(new Point(0, 40)).split() return part }, diff --git a/packages/core/tests/pattern-draft.test.mjs b/packages/core/tests/pattern-draft.test.mjs index ad3a1a3e8d9..2005d901098 100644 --- a/packages/core/tests/pattern-draft.test.mjs +++ b/packages/core/tests/pattern-draft.test.mjs @@ -1,57 +1,10 @@ import chai from 'chai' -import { round, Pattern, Design, pctBasedOn } from '../src/index.mjs' +import { Design } from '../src/index.mjs' const expect = chai.expect describe('Pattern', () => { describe('Pattern.draft()', () => { - const partA = { - name: 'test.partA', - measurements: ['head', 'knee'], - optionalMeasurements: ['chest', 'waist'], - options: { - optA: { pct: 40, min: 20, max: 80 }, - }, - draft: () => {}, - } - const partB = { - name: 'test.partB', - measurements: ['head', 'knee'], - optionalMeasurements: ['knee'], - after: partA, - plugins: [ - { - name: 'testPlugin', - hooks: { - preRender: () => {}, - }, - }, - ], - options: { - optB: { deg: 40, min: 20, max: 80 }, - }, - draft: () => {}, - } - const partC = { - name: 'test.partC', - measurements: ['head', 'knee'], - optionalMeasurements: ['knee'], - from: partB, - options: { - optC: { pct: 20, min: 10, max: 30 }, - }, - draft: () => {}, - } - - const Pattern = new Design({ - data: { - name: 'test', - version: '1.2.3', - }, - parts: [partC], - }) - const pattern = new Pattern() - it('Pattern.draft() should draft according to settings', () => { let count = 0 const back = { diff --git a/packages/core/tests/pattern-init.test.mjs b/packages/core/tests/pattern-init.test.mjs index 258ac0cb1d7..326fd4ea4b1 100644 --- a/packages/core/tests/pattern-init.test.mjs +++ b/packages/core/tests/pattern-init.test.mjs @@ -1,5 +1,5 @@ import chai from 'chai' -import { round, Design, Point, pctBasedOn } from '../src/index.mjs' +import { Design } from '../src/index.mjs' const expect = chai.expect @@ -18,7 +18,7 @@ describe('Pattern', () => { expect(typeof pattern.config).to.equal('object') expect(typeof pattern.parts).to.equal('object') expect(typeof pattern.store).to.equal('object') - expect(Object.keys(pattern).length).to.equal(4) + expect(Object.keys(pattern).length).to.equal(5) }) it('Pattern constructor should add non-enumerable properties', () => { @@ -204,7 +204,7 @@ describe('Pattern', () => { options: { optionB: { pct: 12, min: 2, max: 20 } }, measurements: ['measieB'], optionalMeasurements: ['optmeasieB', 'measieA'], - draft: ({ points, Point, paths, Path }) => { + draft: ({ points, Point, paths, Path, part }) => { points.b1 = new Point(2, 2) points.b2 = new Point(22, 22) paths.b = new Path().move(points.b1).line(points.b2) @@ -217,7 +217,7 @@ describe('Pattern', () => { options: { optionC: { deg: 5, min: 0, max: 15 } }, measurements: ['measieC'], optionalMeasurements: ['optmeasieC', 'measieA'], - draft: ({ points, Point, paths, Path }) => { + draft: ({ points, Point, paths, Path, part }) => { points.c1 = new Point(3, 3) points.c2 = new Point(33, 33) paths.c = new Path().move(points.c1).line(points.c2) @@ -232,7 +232,7 @@ describe('Pattern', () => { options: { optionR: { dflt: 'red', list: ['red', 'green', 'blue'] } }, measurements: ['measieR'], optionalMeasurements: ['optmeasieR', 'measieA'], - draft: ({ points, Point, paths, Path }) => { + draft: ({ points, Point, paths, Path, part }) => { points.r1 = new Point(4, 4) points.r2 = new Point(44, 44) paths.r = new Path().move(points.r1).line(points.r2) @@ -355,7 +355,7 @@ describe('Pattern', () => { options: { optionB: { pct: 12, min: 2, max: 20 } }, measurements: ['measieB'], optionalMeasurements: ['optmeasieB', 'measieA'], - draft: ({ points, Point, paths, Path }) => { + draft: ({ points, Point, paths, Path, part }) => { points.b1 = new Point(2, 2) points.b2 = new Point(22, 22) paths.b = new Path().move(points.b1).line(points.b2) @@ -368,7 +368,7 @@ describe('Pattern', () => { options: { optionC: { deg: 5, min: 0, max: 15 } }, measurements: ['measieC'], optionalMeasurements: ['optmeasieC', 'measieA'], - draft: ({ points, Point, paths, Path }) => { + draft: ({ points, Point, paths, Path, part }) => { points.c1 = new Point(3, 3) points.c2 = new Point(33, 33) paths.c = new Path().move(points.c1).line(points.c2) @@ -381,7 +381,7 @@ describe('Pattern', () => { options: { optionD: { dflt: 'red', list: ['red', 'green', 'blue'] } }, measurements: ['measieD'], optionalMeasurements: ['optmeasieD', 'measieA'], - draft: ({ points, Point, paths, Path }) => { + draft: ({ points, Point, paths, Path, part }) => { points.d1 = new Point(4, 4) points.d2 = new Point(44, 44) paths.d = new Path().move(points.d1).line(points.d2) @@ -483,8 +483,8 @@ describe('Pattern', () => { name: 'example', version: 1, hooks: { - preRender: function (svg, attributes) { - svg.attributes.add('freesewing:plugin-example', version) + preRender: function (svg) { + svg.attributes.add('freesewing:plugin-example', 1) }, }, } @@ -504,8 +504,8 @@ describe('Pattern', () => { name: 'example1', version: 1, hooks: { - preRender: function (svg, attributes) { - svg.attributes.add('freesewing:plugin-example1', version) + preRender: function (svg) { + svg.attributes.add('freesewing:plugin-example1', 1) }, }, } @@ -513,8 +513,8 @@ describe('Pattern', () => { name: 'example2', version: 2, hooks: { - preRender: function (svg, attributes) { - svg.attributes.add('freesewing:plugin-example2', version) + preRender: function (svg) { + svg.attributes.add('freesewing:plugin-example2', 2) }, }, } @@ -529,8 +529,8 @@ describe('Pattern', () => { name: 'example', version: 1, hooks: { - preRender: function (svg, attributes) { - svg.attributes.add('freesewing:plugin-example', version) + preRender: function (svg) { + svg.attributes.add('freesewing:plugin-example', 1) }, }, } @@ -546,8 +546,8 @@ describe('Pattern', () => { name: 'example', version: 1, hooks: { - preRender: function (svg, attributes) { - svg.attributes.add('freesewing:plugin-example', version) + preRender: function (svg) { + svg.attributes.add('freesewing:plugin-example', 1) }, }, } @@ -562,8 +562,8 @@ describe('Pattern', () => { name: 'example', version: 1, hooks: { - preRender: function (svg, attributes) { - svg.attributes.add('freesewing:plugin-example', version) + preRender: function (svg) { + svg.attributes.add('freesewing:plugin-example', 1) }, }, } @@ -584,7 +584,7 @@ describe('Pattern', () => { const Pattern = new Design() const pattern = new Pattern() let count = 0 - pattern.on('preDraft', function (pattern) { + pattern.on('preDraft', function () { count++ }) pattern.draft() @@ -600,7 +600,7 @@ describe('Pattern', () => { name: 'test', version: '0.1-test', hooks: { - preDraft: function (pattern) { + preDraft: function () { count++ }, }, @@ -616,10 +616,10 @@ describe('Pattern', () => { version: '0.1-test', hooks: { preDraft: [ - function (pattern) { + function () { count++ }, - function (pattern) { + function () { count++ }, ], diff --git a/packages/core/tests/pattern-sample.test.mjs b/packages/core/tests/pattern-sample.test.mjs index 5b781cf9703..219a6e55c66 100644 --- a/packages/core/tests/pattern-sample.test.mjs +++ b/packages/core/tests/pattern-sample.test.mjs @@ -1,10 +1,14 @@ import chai from 'chai' -import { round, Pattern, Design, pctBasedOn } from '../src/index.mjs' +//import { round, Pattern, Design, pctBasedOn } from '../src/index.mjs' const expect = chai.expect describe('Pattern', () => { describe('Pattern.sample()', () => { + it('FIXME: Write some tests here', () => { + expect(true).to.equal(true) + }) + /* it('Should sample an option', () => { let pattern = new Pattern({ diff --git a/packages/core/tests/point.test.mjs b/packages/core/tests/point.test.mjs index d50589a3e3b..ffa6e440278 100644 --- a/packages/core/tests/point.test.mjs +++ b/packages/core/tests/point.test.mjs @@ -253,7 +253,7 @@ describe('Point', () => { const p1 = new Point(10, 10).withRaise(raise) const p2 = new Point(20, 20).withRaise(raise) expect(invalid).to.equal(false) - const p3 = p1.rotate('a', p2) + p1.rotate('a', p2) expect(invalid).to.equal(true) }) @@ -274,7 +274,6 @@ describe('Point', () => { let invalid = false const raise = { warning: () => (invalid = true) } const p1 = new Point(10, 10).withRaise(raise) - const p2 = new Point(20, 20).withRaise(raise) expect(invalid).to.equal(false) try { p1.flipX('a') @@ -288,7 +287,6 @@ describe('Point', () => { let invalid = false const raise = { warning: () => (invalid = true) } const p1 = new Point(10, 10).withRaise(raise) - const p2 = new Point(20, 20).withRaise(raise) expect(invalid).to.equal(false) try { p1.flipY('a') @@ -342,7 +340,6 @@ describe('Point', () => { let invalid = false const raise = { warning: () => (invalid = true) } const p1 = new Point(10, 10).withRaise(raise) - const p2 = new Point(20, 20).withRaise(raise) expect(invalid).to.equal(false) try { p1.shiftTowards('a', 10) @@ -370,7 +367,6 @@ describe('Point', () => { let invalid = false const raise = { warning: () => (invalid = true) } const p1 = new Point(10, 10).withRaise(raise) - const p2 = new Point(20, 20).withRaise(raise) expect(invalid).to.equal(false) try { p1.shiftFractionTowards('a', 0.1) @@ -398,7 +394,6 @@ describe('Point', () => { let invalid = false const raise = { warning: () => (invalid = true) } const p1 = new Point(10, 10).withRaise(raise) - const p2 = new Point(20, 20).withRaise(raise) expect(invalid).to.equal(false) try { p1.shiftOutwards('a', 0.1) diff --git a/packages/core/tests/stacks.test.mjs b/packages/core/tests/stacks.test.mjs new file mode 100644 index 00000000000..33545c67c55 --- /dev/null +++ b/packages/core/tests/stacks.test.mjs @@ -0,0 +1,176 @@ +import chai from 'chai' +import { Design } from '../src/index.mjs' + +const expect = chai.expect + +describe('Stacks', () => { + describe('Pattern.init()', () => { + const partA = { + name: 'test.partA', + measurements: ['head'], + options: { + size: { pct: 40, min: 20, max: 80 }, + }, + draft: ({ points, Point, paths, Path, part, store, measurements, options }) => { + store.set('size', measurements.head * options.size) + points.from = new Point(0, 0) + points.to = new Point(0, store.get('size')) + paths.line = new Path().move(points.from).line(points.to) + return part + }, + stack: 'box', + } + const partB = { + name: 'test.partB', + measurements: ['head'], + after: partA, + draft: ({ points, Point, paths, Path, part, store }) => { + points.from = new Point(0, store.get('size')) + points.to = new Point(store.get('size'), store.get('size')) + paths.line = new Path().move(points.from).line(points.to) + return part + }, + stack: 'box', + } + const partC = { + name: 'test.partC', + after: partB, + draft: ({ points, Point, paths, Path, part, store }) => { + points.from = new Point(store.get('size'), store.get('size')) + points.to = new Point(store.get('size'), 0) + paths.line = new Path().move(points.from).line(points.to) + return part + }, + stack: 'box', + } + const partD = { + name: 'test.partD', + after: partC, + draft: ({ points, Point, paths, Path, part, store }) => { + points.from = new Point(store.get('size'), 0) + points.to = new Point(0, 0) + paths.line = new Path().move(points.from).line(points.to) + return part + }, + // stack: 'box', + } + + const Pattern = new Design({ + data: { + name: 'test', + version: '1.2.3', + }, + parts: [partD], + }) + const pattern = new Pattern({ + measurements: { + head: 400, + }, + }) + pattern.draft() + //console.log(pattern.parts) + //pattern.render() + + it('Pattern.init() should resolve dependencies', () => { + expect(typeof pattern.config.resolvedDependencies).to.equal('object') + expect(Array.isArray(pattern.config.resolvedDependencies['test.partA'])).to.equal(true) + expect(pattern.config.resolvedDependencies['test.partA'].length).to.equal(0) + expect(Array.isArray(pattern.config.resolvedDependencies['test.partB'])).to.equal(true) + expect(pattern.config.resolvedDependencies['test.partB'].length).to.equal(1) + expect(pattern.config.resolvedDependencies['test.partB'][0]).to.equal('test.partA') + expect(Array.isArray(pattern.config.resolvedDependencies['test.partC'])).to.equal(true) + expect(pattern.config.resolvedDependencies['test.partC'].length).to.equal(2) + expect( + pattern.config.resolvedDependencies['test.partC'].indexOf('test.partA') !== -1 + ).to.equal(true) + expect( + pattern.config.resolvedDependencies['test.partC'].indexOf('test.partB') !== -1 + ).to.equal(true) + }) + + it('Should calculate the part boundary', () => { + const part = { + name: 'test', + draft: ({ points, Point, paths, Path, part }) => { + points.from = new Point(123, 456) + points.to = new Point(19, 76) + paths.test = new Path().move(points.from).line(points.to) + + return part + }, + } + const design = new Design({ parts: [part] }) + const pattern = new design() + pattern.draft().render() + expect(pattern.stacks.test.topLeft.x).to.equal(17) + expect(pattern.stacks.test.topLeft.y).to.equal(74) + expect(pattern.stacks.test.bottomRight.x).to.equal(125) + expect(pattern.stacks.test.bottomRight.y).to.equal(458) + expect(pattern.stacks.test.width).to.equal(108) + expect(pattern.stacks.test.height).to.equal(384) + }) + + it('Should calculate the part boundary with custom margin', () => { + const part = { + name: 'test', + draft: ({ points, Point, paths, Path, part }) => { + points.from = new Point(123, 456) + points.to = new Point(19, 76) + paths.test = new Path().move(points.from).line(points.to) + + return part + }, + } + const design = new Design({ parts: [part] }) + const pattern = new design({ margin: 5 }) + pattern.draft().render() + expect(pattern.stacks.test.topLeft.x).to.equal(14) + expect(pattern.stacks.test.topLeft.y).to.equal(71) + expect(pattern.stacks.test.bottomRight.x).to.equal(128) + expect(pattern.stacks.test.bottomRight.y).to.equal(461) + expect(pattern.stacks.test.width).to.equal(114) + expect(pattern.stacks.test.height).to.equal(390) + }) + + it('Should calculate the part boundary for paperless', () => { + const part = { + name: 'test', + draft: ({ points, Point, paths, Path, part }) => { + points.from = new Point(123, 456) + points.to = new Point(19, 76) + paths.test = new Path().move(points.from).line(points.to) + + return part + }, + } + const design = new Design({ parts: [part] }) + const pattern = new design({ paperless: true }) + pattern.draft().render() + expect(pattern.stacks.test.topLeft.x).to.equal(9) + expect(pattern.stacks.test.topLeft.y).to.equal(66) + }) + it('Should generate the part transforms', () => { + const part = { + name: 'test', + draft: ({ points, Point, paths, Path, part }) => { + points.from = new Point(2, 2) + points.to = new Point(19, 76) + paths.test = new Path().move(points.from).line(points.to) + + return part + }, + } + const design = new Design({ parts: [part] }) + const pattern = new design() + pattern.draft().render() + pattern.stacks.test.generateTransform({ + move: { + x: 10, + y: 20, + }, + }) + expect(pattern.stacks.test.attributes.list.transform.length).to.equal(1) + expect(pattern.stacks.test.attributes.list.transform[0]).to.equal('translate(10 20)') + }) + }) +}) diff --git a/packages/core/tests/store.test.mjs b/packages/core/tests/store.test.mjs index 2508ba6e3b9..b4534beda13 100644 --- a/packages/core/tests/store.test.mjs +++ b/packages/core/tests/store.test.mjs @@ -30,7 +30,6 @@ describe('Store', () => { }) it('Should emit a warning when retrieving a invalid key', () => { - const warning = (msg) => events.push(msg) const store = new Store() store.get('nope') expect(store.get('logs.warning').length).to.equal(1) @@ -63,6 +62,8 @@ describe('Store', () => { draft: ({ store, part }) => { store.test.example.warning('hello warning') store.test.example.info('hello info') + + return part }, } const Test = new Design({ plugins: [plugin], parts: [part] }) diff --git a/packages/core/tests/svg.test.mjs b/packages/core/tests/svg.test.mjs index b957e01404b..1423f2335c1 100644 --- a/packages/core/tests/svg.test.mjs +++ b/packages/core/tests/svg.test.mjs @@ -1,12 +1,17 @@ import chai from 'chai' import chaiString from 'chai-string' -import { Design, Pattern } from '../src/index.mjs' -import pkg from '../package.json' assert { type: 'json' } -import render from './fixtures/render.mjs' +//import { Design, Pattern } from '../src/index.mjs' +//import pkg from '../package.json' assert { type: 'json' } +//import render from './fixtures/render.mjs' chai.use(chaiString) const expect = chai.expect -const { version } = pkg +//const { version } = pkg + +it('FIXME: Write some tests here', () => { + expect(true).to.equal(true) +}) + /* describe('Svg', () => { const part = { diff --git a/packages/core/tests/utils.test.mjs b/packages/core/tests/utils.test.mjs index 22880596544..0540b0a97f5 100644 --- a/packages/core/tests/utils.test.mjs +++ b/packages/core/tests/utils.test.mjs @@ -1,6 +1,5 @@ import chai from 'chai' import { - Pattern, Point, isCoord, capitalize, @@ -20,17 +19,13 @@ import { circlesIntersect, beamIntersectsCircle, lineIntersectsCircle, - curveEdge, stretchToScale, round, sampleStyle, deg2rad, rad2deg, pctBasedOn, - Bezier, - generatePartTransform, macroName, - Design, } from '../src/index.mjs' const { expect } = chai diff --git a/packages/i18n/.eslintrc.yml b/packages/i18n/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/packages/i18n/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/packages/i18n/README.md b/packages/i18n/README.md index 14427b51914..128a20d7004 100644 --- a/packages/i18n/README.md +++ b/packages/i18n/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 49b662792f8..9803bd622e3 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -31,12 +31,12 @@ "clean": "rimraf dist", "mbuild": "NO_MINIFY=1 node build.mjs", "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "test": "npx mocha tests/*.test.mjs", + "test": "echo \"i18n: No tests configured. Perhaps you could write some?\" && exit 0", "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prebuild": "node scripts/prebuilder.mjs", - "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "precibuild_step7": "node scripts/prebuilder.mjs", "prewbuild": "node scripts/prebuilder.mjs", "cibuild_step7": "node build.mjs", diff --git a/packages/i18n/src/locales/de/app.yaml b/packages/i18n/src/locales/de/app.yaml index 59c01790f8b..40ba893a51f 100644 --- a/packages/i18n/src/locales/de/app.yaml +++ b/packages/i18n/src/locales/de/app.yaml @@ -13,7 +13,7 @@ applyThisLayout: Dieses Layout anwenden areYouSureYouWantToContinue: Bist du sicher, dass du fortfahren möchtest? askForHelp: Nach Hilfe fragen automatic: Automatisch -averagePeopleDoNotExist: "Durchschnittliche Menschen existieren nicht" +averagePeopleDoNotExist: 'Durchschnittliche Menschen existieren nicht' awesome: Großartig back: Zurück becauseThatWouldBeReallyHelpful: Weil das wirklich hilfreich wäre. @@ -76,7 +76,7 @@ drafts: Entwürfe draftSettings: Entwurfseinstellungen dragAndDropImageHere: Du kannst das Bild hier per Drag-and-Drop ablegen oder es unten manuell auswählen emailAddress: E-Mail-Adresse -emailWorksToo: "Falls du deinen Benutzername nicht weißt: deine E-Mail-Adresse funktioniert auch" +emailWorksToo: 'Falls du deinen Benutzername nicht weißt: deine E-Mail-Adresse funktioniert auch' enterEmailPickPassword: Gib deine E-Mail Adresse ein und wähle ein Passwort export: Exportieren exportTiledPDF: Exportieren als paginiertes PDF @@ -85,7 +85,7 @@ fieldRemoved: '{field} entfernt' fieldSaved: '{field} gespeichert' filterByPattern: Filtern nach Schnittmuster filterPatterns: Schnittmuster filtern -forgotLoginInstructions: "Wenn du dein Passwort nicht mehr weißt: Benutzername oder E-Mail-Adresse eingeben und den Passwort zurücksetzen Knopf drücken" +forgotLoginInstructions: 'Wenn du dein Passwort nicht mehr weißt: Benutzername oder E-Mail-Adresse eingeben und den Passwort zurücksetzen Knopf drücken' freesewing: Freesewing freesewingOnGithub: Freesewing auf GitHub garmentPatterns: Bekleidungsschnittmuster @@ -163,7 +163,7 @@ remove: Entfernen removeThing: '{thing} entfernen' reportThisOnGithub: Melde dies auf GitHub requiredMeasurements: Erforderliche Maße -resendActivationEmailMessage: "Trage die E-Mail-Adresse ein, mit der du dich angemeldet hast, und wir senden dir eine neue Bestätigungsnachricht." +resendActivationEmailMessage: 'Trage die E-Mail-Adresse ein, mit der du dich angemeldet hast, und wir senden dir eine neue Bestätigungsnachricht.' resendActivationEmail: Aktivierungs-E-Mail erneut senden resetPassword: Passwort zurücksetzen reset: Zurücksetzen @@ -205,7 +205,7 @@ twitter: Twitter txt-footer: Freesewing wird erstellt von einer Gemeinschaft von Mitwirkenden
mit der finanziellen Unterstützung unserer Förderer/-innen txt-tier2: Unsere Kategorie mit dem demokratischsten Preis. Es ist vielleicht weniger als der Preis eines Lattes, aber deine Unterstützung bedeutet uns sehr viel. txt-tier4: Wähle diese Stufe, und wir senden dir etwas von unserem heiß begehrten Freesewing-Swag nach Hause. Egal, wo in der Welt das auch sein mag. -txt-tier8: "Wenn du uns nicht nur unterstützen möchtest, sondern Freesewing zum Gedeihen bringen willst, ist das die Stufe für dich. Außerdem: extra Swag!" +txt-tier8: 'Wenn du uns nicht nur unterstützen möchtest, sondern Freesewing zum Gedeihen bringen willst, ist das die Stufe für dich. Außerdem: extra Swag!' txt-tiers: 'FreeSewing wird durch ein freiwilliges Abonnement-Modell unterstützt' unitsInfo: Freesewing unterstützt sowohl das metrische System als auch imperiale Einheiten. Wähle einfach aus, was von beiden du hier verwenden möchtest. (Standardmäßig werden die in deinem Account konfigurierten Einheiten verwendet). updated: Aktualisiert @@ -248,8 +248,8 @@ noPattern: Du hast (noch) keine Schnittmuster. Erstelle ein neues Schnittmuster modelFirst: Beginne damit, Maße hinzuzufügen noModel: Du hast (noch) keine Maße hinzugefügt. FreeSewing kann maßgeschneiderte Schnittmuster erzeugen. Dafür benötigen wir jedoch Maße. noModel2: Das erste, was du tun solltest, ist, eine Person hinzuzufügen und das Maßband auszupacken. -noUserBrowsingTitle: "Du kannst nicht einfach alle Benutzer durchsuchen" -noUserBrowsingText: "Wir haben Tausende von ihnen. Sicher gibt es Interessanteres auf unserer Seite zu tun?" +noUserBrowsingTitle: 'Du kannst nicht einfach alle Benutzer durchsuchen' +noUserBrowsingText: 'Wir haben Tausende von ihnen. Sicher gibt es Interessanteres auf unserer Seite zu tun?' usePatternMeasurements: 'Verwende die Maße des Originalschnittmusters' createReplica: Duplikat erstellen showDetails: Details anzeigen diff --git a/packages/i18n/src/locales/de/components/common.yaml b/packages/i18n/src/locales/de/components/common.yaml index 139be3da822..bbcf25be524 100644 --- a/packages/i18n/src/locales/de/components/common.yaml +++ b/packages/i18n/src/locales/de/components/common.yaml @@ -11,4 +11,3 @@ showcase: Showcase sloganCome: Komm für die Schnittmuster sloganStay: Bleib für die Community support: Support - diff --git a/packages/i18n/src/locales/de/components/ograph.yaml b/packages/i18n/src/locales/de/components/ograph.yaml index 3200c166ab6..f2f860780a2 100644 --- a/packages/i18n/src/locales/de/components/ograph.yaml +++ b/packages/i18n/src/locales/de/components/ograph.yaml @@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org devTitle: Welcome to FreeSewing.dev labTitle: Welcome to lab.FreeSewing.lab devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog - diff --git a/packages/i18n/src/locales/de/components/patrons.yaml b/packages/i18n/src/locales/de/components/patrons.yaml index 57432af8a77..b86503b0167 100644 --- a/packages/i18n/src/locales/de/components/patrons.yaml +++ b/packages/i18n/src/locales/de/components/patrons.yaml @@ -3,4 +3,3 @@ becomeAPatron: Become a patron supportFreesewing: Support FreeSewing patronLead: FreeSewing is fuelled by a voluntary subscription model patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work - diff --git a/packages/i18n/src/locales/de/components/posts.yaml b/packages/i18n/src/locales/de/components/posts.yaml index aa3442f208a..86f2dcb7659 100644 --- a/packages/i18n/src/locales/de/components/posts.yaml +++ b/packages/i18n/src/locales/de/components/posts.yaml @@ -1,3 +1,3 @@ --- -xMadeThis: "{x} made this" -xWroteThis: "{x} wrote this" +xMadeThis: '{x} made this' +xWroteThis: '{x} wrote this' diff --git a/packages/i18n/src/locales/de/docs.yaml b/packages/i18n/src/locales/de/docs.yaml index 18a35c37801..e8d010720b1 100644 --- a/packages/i18n/src/locales/de/docs.yaml +++ b/packages/i18n/src/locales/de/docs.yaml @@ -1,3 +1,3 @@ --- -thingIsDeprecated: "{thing} is deprecated" -weRecommendThingInstead: "We recommend {thing} instead" +thingIsDeprecated: '{thing} is deprecated' +weRecommendThingInstead: 'We recommend {thing} instead' diff --git a/packages/i18n/src/locales/de/email.yaml b/packages/i18n/src/locales/de/email.yaml index e45a2b99161..d5d3bb8d290 100644 --- a/packages/i18n/src/locales/de/email.yaml +++ b/packages/i18n/src/locales/de/email.yaml @@ -3,32 +3,32 @@ chatWithUs: 'Chatte mit uns' emailchangeActionText: 'Bestätige deine neue E-Mail-Adresse' emailchangeCopy1: 'Du hast um die Änderung der E-Mail-Adresse gebeten, die mit deinem Account unter freesewing.org verknüpft ist.

Bevor du dies tust, musst du deine neue E-Mail-Adresse bestätigen. Bitte klicke auf den folgenden Link, um dies zu tun:' emailchangeHeaderOpeningLine: 'Wir stellen nur sicher, dass wir dich bei Bedarf erreichen können' -emailchangeHiddenIntro: "Lass uns deine neue E-Mail-Adresse bestätigen" +emailchangeHiddenIntro: 'Lass uns deine neue E-Mail-Adresse bestätigen' emailchangeSubject: 'Bitte bestätige deine neue E-Mail-Adresse' emailchangeTitle: 'Bitte bestätige deine neue E-Mail-Adresse' emailchangeWhy: 'Du hast diese E-Mail erhalten, weil du die mit deinem Konto auf freesewing.org verknüpfte E-Mail-Adresse geändert hast' footerCredits: 'Kreiert von Joost & Mitwirkenden, mit der finanziellen Unterstützung unserer Förderer ❤️ ' footerSlogan: 'Freesewing ist eine Open-Source Plattform für Schnittmuster nach Maß' -goodbyeCopy1: "Wenn du uns mitteilen möchtest, warum du uns verlässt, kannst du gerne auf diese Nachricht antworten.
Von unserer Seite aus werden wir dich nicht weiter stören." +goodbyeCopy1: 'Wenn du uns mitteilen möchtest, warum du uns verlässt, kannst du gerne auf diese Nachricht antworten.
Von unserer Seite aus werden wir dich nicht weiter stören.' goodbyeHeaderOpeningLine: 'Sei dir nur bewusst, dass du jederzeit wiederkommen kannst' goodbyeHiddenIntro: 'Vielen Dank, dass du Freesewing eine Chance gegeben hast' -goodbyeSubject: 'Mach''s gut! 👋' +goodbyeSubject: "Mach's gut! 👋" goodbyeTitle: 'Vielen Dank, dass du Freesewing eine Chance gegeben hast' goodbyeWhy: 'Du hast diese E-Mail als endgültiges Lebewohl erhalten, nachdem du deinen Account auf freesewing.org entfernt hast' joostFromFreesewing: 'Joost von Freesewing' passwordresetActionText: 'Erhalte erneut Zugang zu deinem Account' passwordresetCopy1: 'Du hast dein Passwort für deinen Account bei freesewing.org vergessen.

Klicke auf den folgenden Link, um dein Passwort zurückzusetzen:' -passwordresetHeaderOpeningLine: "Keine Sorge, solche Dinge passieren uns allen" +passwordresetHeaderOpeningLine: 'Keine Sorge, solche Dinge passieren uns allen' passwordresetHiddenIntro: 'Erhalte erneut Zugang zu deinem Account' passwordresetSubject: 'Erhalte erneut Zugang zu deinem Account auf freesewing.org' passwordresetTitle: 'Setze dein Passwort zurück und erhalte erneut Zugang zu deinem Account' passwordresetWhy: 'Du hast diese E-Mail erhalten, weil du die Anfrage gestellt hast, dein Passwort von freesewing.org zurückzusetzen' -questionsJustReply: "Wenn du Fragen hast, antworte einfach auf diese E-Mail. Ich bin immer gerne bereit zu helfen. 🙂" +questionsJustReply: 'Wenn du Fragen hast, antworte einfach auf diese E-Mail. Ich bin immer gerne bereit zu helfen. 🙂' signature: 'Liebe Grüße' signupActionText: 'Bestätige deine E-Mail-Adresse' signupCopy1: 'Danke, dass du dich bei freesewing.org angemeldet hast.

Bevor wir beginnen, musst du deine E-Mail-Adresse bestätigen. Bitte klicke auf den folgenden Link, um das zu tun:' -signupHeaderOpeningLine: "Wir freuen uns sehr darüber, dass du ein Teil der Freesewing-Community wirst." -signupHiddenIntro: "Lass uns deine E-Mail-Adresse bestätigen" +signupHeaderOpeningLine: 'Wir freuen uns sehr darüber, dass du ein Teil der Freesewing-Community wirst.' +signupHiddenIntro: 'Lass uns deine E-Mail-Adresse bestätigen' signupSubject: 'Willkommen bei freesewing.org' signupTitle: 'Willkommen an Bord' signupWhy: 'Du hast diese E-Mail erhalten, weil du dich gerade auf freesewing.org angemeldet hast' diff --git a/packages/i18n/src/locales/de/intro.yaml b/packages/i18n/src/locales/de/intro.yaml index add1ecdc3b5..4552ad32fb2 100644 --- a/packages/i18n/src/locales/de/intro.yaml +++ b/packages/i18n/src/locales/de/intro.yaml @@ -2,11 +2,11 @@ txt-blog: Neuigkeiten, Updates und Ankündigungen des Freesewing-Teams txt-community: 'Alles wird von freiwilligen Mitwirkenden am Leben erhalten. Es existieren keine kommerziellen Absichten im Zusammenhang mit diesem Projekt.' txt-different: Was uns von anderen unterscheidet -txt-draft: "Wähle eines deiner Schnittmuster, wähle ein Modell und lege die Optionen fest. Den Rest erledigen wir." +txt-draft: 'Wähle eines deiner Schnittmuster, wähle ein Modell und lege die Optionen fest. Den Rest erledigen wir.' txt-how: So funktioniert es txt-join: Schließe dich Tausenden anderer an und erstelle einen kostenlosen Account auf freesewing.org. txt-model: Alle unsere Schnittmuster werden nach individuellen Maßen gefertigt. Nimm daher zuallererst das Maßband zur Hand. -txt-newHere: "Wenn du hier neu bist, ist unsere Demo der beste Startpunkt:" +txt-newHere: 'Wenn du hier neu bist, ist unsere Demo der beste Startpunkt:' txt-opensource: 'Unsere Plattform, unsere Schnittmuster und sogar diese Website: Unser gesamter Code ist auf GitHub zugänglich. Pull-Requests sind jederzeit herzlich willkommen!' txt-patrons: Freesewing wird durch die finanzielle Unterstützung unserer Förderer/-innen überhaupt erst ermöglicht. Scrolle nach unten, um mehr über unser Abonnementmodell zu erfahren. txt-showcase: Abgeschlossene Projekte aus der Freesewing-Community diff --git a/packages/i18n/src/locales/de/ograph.yaml b/packages/i18n/src/locales/de/ograph.yaml index 891f0bcce83..6d6780ef847 100644 --- a/packages/i18n/src/locales/de/ograph.yaml +++ b/packages/i18n/src/locales/de/ograph.yaml @@ -4,4 +4,3 @@ devTitle: Welcome to FreeSewing.dev labTitle: Welcome to lab.FreeSewing.lab orgDescription: Come for the sewing patterns
Stay for the community devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog - diff --git a/packages/i18n/src/locales/de/welcome.yaml b/packages/i18n/src/locales/de/welcome.yaml index 0e3b34c5924..0d26906066b 100644 --- a/packages/i18n/src/locales/de/welcome.yaml +++ b/packages/i18n/src/locales/de/welcome.yaml @@ -6,5 +6,5 @@ bio: Erzähle uns ein wenig über dich social: Lass uns wissen, wo wir dir folgen können newsletter: Teile uns deine Newsletter-Präferenz mit letUsSetupYourAccount: Lass uns deinen Account einrichten. -walkYouThrough: "Wir führen dich durch die folgenden Schritte:" +walkYouThrough: 'Wir führen dich durch die folgenden Schritte:' someOptional: Obwohl alle diese Schritte optional sind, empfehlen wir dir sie durchzugehen, um das Beste aus FreeSewing herauszuholen. diff --git a/packages/i18n/src/locales/en/components/common.yaml b/packages/i18n/src/locales/en/components/common.yaml index 9a875c4143c..81721a69a4d 100644 --- a/packages/i18n/src/locales/en/components/common.yaml +++ b/packages/i18n/src/locales/en/components/common.yaml @@ -10,4 +10,3 @@ showcase: Showcase sloganCome: Come for the sewing patterns sloganStay: Stay for the community support: Support - diff --git a/packages/i18n/src/locales/en/components/ograph.yaml b/packages/i18n/src/locales/en/components/ograph.yaml index 5ec36c28e58..29a941c006c 100644 --- a/packages/i18n/src/locales/en/components/ograph.yaml +++ b/packages/i18n/src/locales/en/components/ograph.yaml @@ -2,4 +2,3 @@ orgTitle: Welcome to FreeSewing.org devTitle: Welcome to FreeSewing.dev labTitle: Welcome to lab.FreeSewing.lab devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog - diff --git a/packages/i18n/src/locales/en/components/patrons.yaml b/packages/i18n/src/locales/en/components/patrons.yaml index a92f87d638b..0a1b243166e 100644 --- a/packages/i18n/src/locales/en/components/patrons.yaml +++ b/packages/i18n/src/locales/en/components/patrons.yaml @@ -2,4 +2,3 @@ becomeAPatron: Become a patron supportFreesewing: Support FreeSewing patronLead: FreeSewing is fuelled by a voluntary subscription model patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work - diff --git a/packages/i18n/src/locales/en/components/posts.yaml b/packages/i18n/src/locales/en/components/posts.yaml index 0d3aeb7b418..241aa07c8a1 100644 --- a/packages/i18n/src/locales/en/components/posts.yaml +++ b/packages/i18n/src/locales/en/components/posts.yaml @@ -1,2 +1,2 @@ -xMadeThis: "{x} made this" -xWroteThis: "{x} wrote this" +xMadeThis: '{x} made this' +xWroteThis: '{x} wrote this' diff --git a/packages/i18n/src/locales/en/docs.yaml b/packages/i18n/src/locales/en/docs.yaml index 8f6cba3e931..d7979fe22c1 100644 --- a/packages/i18n/src/locales/en/docs.yaml +++ b/packages/i18n/src/locales/en/docs.yaml @@ -1,2 +1,2 @@ -thingIsDeprecated: "{thing} is deprecated" -weRecommendThingInstead: "We recommend {thing} instead" +thingIsDeprecated: '{thing} is deprecated' +weRecommendThingInstead: 'We recommend {thing} instead' diff --git a/packages/i18n/src/locales/es/app.yaml b/packages/i18n/src/locales/es/app.yaml index 244da873cdf..240572c9b86 100644 --- a/packages/i18n/src/locales/es/app.yaml +++ b/packages/i18n/src/locales/es/app.yaml @@ -13,7 +13,7 @@ applyThisLayout: Aplicar este diseño areYouSureYouWantToContinue: '¿Seguro que quieres continuar?' askForHelp: Pide ayuda automatic: Automático -averagePeopleDoNotExist: "La gente promedio no existe" +averagePeopleDoNotExist: 'La gente promedio no existe' awesome: Genial back: Atrás becauseThatWouldBeReallyHelpful: Porque eso sería realmente útil. @@ -76,7 +76,7 @@ drafts: Bocetos draftSettings: Ajustes del boceto dragAndDropImageHere: Arrastra y suelta una imagen aquí, o selecciona una manualmente con el botón de abajo emailAddress: Dirección de correo electrónico -emailWorksToo: "Si no conoces tu nombre de usuario, tu dirección de correo electrónico también funcionará" +emailWorksToo: 'Si no conoces tu nombre de usuario, tu dirección de correo electrónico también funcionará' enterEmailPickPassword: Introduce tu dirección de email y elige una contraseña export: Exportar exportTiledPDF: Exportar PDF paginado @@ -85,7 +85,7 @@ fieldRemoved: '{field} eliminado' fieldSaved: '{field} guardado' filterByPattern: Filtrar por patrón filterPatterns: Filtrar los patrones -forgotLoginInstructions: "Entra tu nombre de usuario o correo electrónico debajo y pulsa el botón de Restablecer contraseña" +forgotLoginInstructions: 'Entra tu nombre de usuario o correo electrónico debajo y pulsa el botón de Restablecer contraseña' freesewing: Freesewing freesewingOnGithub: Freesewing en GitHub garmentPatterns: Patrones de prendas @@ -163,7 +163,7 @@ remove: Eliminar removeThing: Eliminar {thing} reportThisOnGithub: Notifícalo en GitHub requiredMeasurements: Medidas requeridas -resendActivationEmailMessage: "Complete la dirección de correo electrónico con la que se registró y le enviaremos un nuevo mensaje de confirmación." +resendActivationEmailMessage: 'Complete la dirección de correo electrónico con la que se registró y le enviaremos un nuevo mensaje de confirmación.' resendActivationEmail: Reenviar email de activación resetPassword: Restablecer contraseña reset: Reiniciar @@ -205,7 +205,7 @@ twitter: Twitter txt-footer: Freesewing está hecho por una comunidad de colaboradores
con el apoyo financiero de nuestros Patrones txt-tier2: Nuestro nivel más democrático de precios. Puede ser menor que el precio de un café con leche, pero su apoyo significa mucho para nosotros. txt-tier4: Suscríbase a este nivel y le enviaremos parte de nuestro codiciado botín de diseño gratuito a su hogar en cualquier parte del mundo. -txt-tier8: "Si no solo desea apoyarnos, sino que quiere ver prosperar en la libertad, este es el nivel para usted. También: botín extra!" +txt-tier8: 'Si no solo desea apoyarnos, sino que quiere ver prosperar en la libertad, este es el nivel para usted. También: botín extra!' txt-tiers: 'FreeSewing es alimentado por un modelo de suscripción voluntario' unitsInfo: Freesewing es compatible con el sistema métrico y las unidades imperiales. Simplemente elige cuál querrías usar aquí (por defecto usamos las unidades configuradas en tu cuenta). updated: Actualizado @@ -248,8 +248,8 @@ noPattern: No tienes ningún patrón (todavía). Crea un nuevo patrón, luego gu modelFirst: Empezar añadiendo mediciones noModel: No has añadido ninguna medición (aún). La Coser libre puede generar patrones de costura hechos a medida. Pero para eso necesitamos mediciones. noModel2: Así que lo primero que debes hacer es añadir una persona y agitar tu cinta de medición. -noUserBrowsingTitle: "No puedes navegar por todos los usuarios" -noUserBrowsingText: "Tenemos miles de ellos. ¿Seguro que tienes cosas mejores que hacer?" +noUserBrowsingTitle: 'No puedes navegar por todos los usuarios' +noUserBrowsingText: 'Tenemos miles de ellos. ¿Seguro que tienes cosas mejores que hacer?' usePatternMeasurements: 'Usar las medidas del patrón original' createReplica: Crear una réplica showDetails: Mostrar detalles diff --git a/packages/i18n/src/locales/es/cfp.yaml b/packages/i18n/src/locales/es/cfp.yaml index 1a03a859e15..4bc764d52b9 100644 --- a/packages/i18n/src/locales/es/cfp.yaml +++ b/packages/i18n/src/locales/es/cfp.yaml @@ -7,7 +7,7 @@ patternType: Tipo de patrón patternCreated: Tu esqueleto de patrón ha sido creado en runTheseCommands: Para empezar, ejecuta este comando startRollup: En una terminal, inicia el paquete de rollup en modo reloj -startWebpack: "Entrará en la carpeta \"ejemplo\" e iniciará el entorno de desarrollo." +startWebpack: 'Entrará en la carpeta "ejemplo" e iniciará el entorno de desarrollo.' devDocsAvailableAt: Documentación para desarrolladores está disponible en talkToUs: Para preguntas, comentarios o sugerencias, únete a nuestro servidor de Discord draftYourPattern: Traza tu patrón diff --git a/packages/i18n/src/locales/es/components/common.yaml b/packages/i18n/src/locales/es/components/common.yaml index d1b5752dca2..7017f90915b 100644 --- a/packages/i18n/src/locales/es/components/common.yaml +++ b/packages/i18n/src/locales/es/components/common.yaml @@ -11,4 +11,3 @@ showcase: Showcase sloganCome: Come for the sewing patterns sloganStay: Stay for the community support: Support - diff --git a/packages/i18n/src/locales/es/components/ograph.yaml b/packages/i18n/src/locales/es/components/ograph.yaml index 3200c166ab6..f2f860780a2 100644 --- a/packages/i18n/src/locales/es/components/ograph.yaml +++ b/packages/i18n/src/locales/es/components/ograph.yaml @@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org devTitle: Welcome to FreeSewing.dev labTitle: Welcome to lab.FreeSewing.lab devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog - diff --git a/packages/i18n/src/locales/es/components/patrons.yaml b/packages/i18n/src/locales/es/components/patrons.yaml index 57432af8a77..b86503b0167 100644 --- a/packages/i18n/src/locales/es/components/patrons.yaml +++ b/packages/i18n/src/locales/es/components/patrons.yaml @@ -3,4 +3,3 @@ becomeAPatron: Become a patron supportFreesewing: Support FreeSewing patronLead: FreeSewing is fuelled by a voluntary subscription model patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work - diff --git a/packages/i18n/src/locales/es/components/posts.yaml b/packages/i18n/src/locales/es/components/posts.yaml index aa3442f208a..86f2dcb7659 100644 --- a/packages/i18n/src/locales/es/components/posts.yaml +++ b/packages/i18n/src/locales/es/components/posts.yaml @@ -1,3 +1,3 @@ --- -xMadeThis: "{x} made this" -xWroteThis: "{x} wrote this" +xMadeThis: '{x} made this' +xWroteThis: '{x} wrote this' diff --git a/packages/i18n/src/locales/es/docs.yaml b/packages/i18n/src/locales/es/docs.yaml index 18a35c37801..e8d010720b1 100644 --- a/packages/i18n/src/locales/es/docs.yaml +++ b/packages/i18n/src/locales/es/docs.yaml @@ -1,3 +1,3 @@ --- -thingIsDeprecated: "{thing} is deprecated" -weRecommendThingInstead: "We recommend {thing} instead" +thingIsDeprecated: '{thing} is deprecated' +weRecommendThingInstead: 'We recommend {thing} instead' diff --git a/packages/i18n/src/locales/es/email.yaml b/packages/i18n/src/locales/es/email.yaml index a4398c50ffc..5d55673244d 100644 --- a/packages/i18n/src/locales/es/email.yaml +++ b/packages/i18n/src/locales/es/email.yaml @@ -3,13 +3,13 @@ chatWithUs: 'Habla con nosotros' emailchangeActionText: 'Confirme su nueva dirección de correo electrónico' emailchangeCopy1: 'Solicitó cambiar la dirección de correo electrónico vinculada a su cuenta en freesewing.org .

Antes de hacerlo, debe confirmar su nueva dirección de correo electrónico. Por favor haga clic en el enlace de abajo para hacer eso:' emailchangeHeaderOpeningLine: 'Solo asegurándonos de que podamos contactarlo cuando sea necesario' -emailchangeHiddenIntro: "Confirmemos tu nueva dirección de correo electrónico" +emailchangeHiddenIntro: 'Confirmemos tu nueva dirección de correo electrónico' emailchangeSubject: 'Por favor confirme su nueva dirección de correo electrónico' emailchangeTitle: 'Por favor confirme su nueva dirección de correo electrónico' emailchangeWhy: 'Ha recibido este correo electrónico porque ha cambiado la dirección de correo electrónico vinculada a su cuenta en freesewing.org' footerCredits: 'Hecho por joost & contributors con el apoyo financiero de nuestros clientes ❤️ ' footerSlogan: 'Freesewing es una plataforma open source para patrones de costura a medida' -goodbyeCopy1: "Si desea compartir por qué se va, puede responder a este mensaje.
Por nuestra parte, no volveremos a molestarlo." +goodbyeCopy1: 'Si desea compartir por qué se va, puede responder a este mensaje.
Por nuestra parte, no volveremos a molestarlo.' goodbyeHeaderOpeningLine: 'Solo se sabe que siempre se puede volver.' goodbyeHiddenIntro: 'Gracias por darle una oportunidad a freesewing' goodbyeSubject: 'Despedida 👋' @@ -18,17 +18,17 @@ goodbyeWhy: 'Recibió este correo electrónico como último adiós después de e joostFromFreesewing: 'Joost de Freesewing' passwordresetActionText: 'Recupere el acceso a su cuenta' passwordresetCopy1: 'Olvidó su contraseña para su cuenta en freesewing.org .

Haga clic en el enlace de abajo para restablecer su contraseña:' -passwordresetHeaderOpeningLine: "No te preocupes, estas cosas nos pasan a todos." +passwordresetHeaderOpeningLine: 'No te preocupes, estas cosas nos pasan a todos.' passwordresetHiddenIntro: 'Recupere el acceso a su cuenta' passwordresetSubject: 'Recupere el acceso a su cuenta en freesewing.org' passwordresetTitle: 'Restablece tu contraseña y vuelve a obtener acceso a tu cuenta' passwordresetWhy: 'Recibió este correo electrónico porque solicitó restablecer su contraseña en freesewing.org' -questionsJustReply: "Si tiene alguna pregunta, simplemente responda a este correo electrónico. Siempre feliz de ayudar. 🙂" +questionsJustReply: 'Si tiene alguna pregunta, simplemente responda a este correo electrónico. Siempre feliz de ayudar. 🙂' signature: 'Con amor,' signupActionText: 'Confirme su dirección de correo electrónico' signupCopy1: 'Gracias por registrarse en freesewing.org.

Antes de comenzar, debe confirmar su dirección de correo electrónico. Por favor haga clic en el enlace de abajo para hacer eso:' -signupHeaderOpeningLine: "Estamos muy contentos de que te unas a la comunidad de freesewing." -signupHiddenIntro: "Confirmemos tu dirección de correo electrónico" +signupHeaderOpeningLine: 'Estamos muy contentos de que te unas a la comunidad de freesewing.' +signupHiddenIntro: 'Confirmemos tu dirección de correo electrónico' signupSubject: 'Bienvenido a freesewing.org' signupTitle: 'Bienvenido a bordo' signupWhy: 'Recibió este correo electrónico porque acaba de registrarse para una cuenta en freesewing.org' diff --git a/packages/i18n/src/locales/es/intro.yaml b/packages/i18n/src/locales/es/intro.yaml index 603835f3a3a..d5b7d2bb7d9 100644 --- a/packages/i18n/src/locales/es/intro.yaml +++ b/packages/i18n/src/locales/es/intro.yaml @@ -2,11 +2,11 @@ txt-blog: Noticias, actualizaciones y anuncios del equipo de freesewing. txt-community: 'Todo es llevado por colaboradores voluntarios. TNo hay ninguna entidad comercial detrás de, o vinculada a, este proyecto.' txt-different: En qué somos diferentes -txt-draft: "Elige uno de los patrones, elige un model y elige tus opciones. Nosotros hacemos el resto" +txt-draft: 'Elige uno de los patrones, elige un model y elige tus opciones. Nosotros hacemos el resto' txt-how: Cómo funciona txt-join: Únete a miles de personas y regístrate en freesewing.org. txt-model: Todos nuestros patrones son a medida. Así que lo primero que necesitas es un metro. -txt-newHere: "Si eres nuevo aquí, el mejor lugar para comenzar es nuestra demostración:" +txt-newHere: 'Si eres nuevo aquí, el mejor lugar para comenzar es nuestra demostración:' txt-opensource: 'Nuestra plataforma, nuestros patrones e incluso este sitio web. Todo nuestro código está disponible en GitHub. Modificaciones son bienvenidas!' txt-patrons: Freesewing es posible por el apoyo económico de nuestros patrocinadores. Desplácese hacia abajo para conocer nuestro modelo de suscripción. txt-showcase: Proyectos terminados de la comunidad de freesewing diff --git a/packages/i18n/src/locales/es/welcome.yaml b/packages/i18n/src/locales/es/welcome.yaml index dc9cc32c31d..d92b0847bdd 100644 --- a/packages/i18n/src/locales/es/welcome.yaml +++ b/packages/i18n/src/locales/es/welcome.yaml @@ -6,5 +6,5 @@ bio: Cuéntanos un poco acerca de ti social: Háganos saber dónde podemos seguirle newsletter: Danos tu preferencia al boletín de noticias letUsSetupYourAccount: Permítanos configurar su cuenta. -walkYouThrough: "Te guiaremos a través de los siguientes pasos:" +walkYouThrough: 'Te guiaremos a través de los siguientes pasos:' someOptional: Aunque todos estos pasos son opcionales, te recomendamos que los recorras para sacar el máximo provecho de FreeSewing. diff --git a/packages/i18n/src/locales/fr/app.yaml b/packages/i18n/src/locales/fr/app.yaml index dcf9198a776..615118c5464 100644 --- a/packages/i18n/src/locales/fr/app.yaml +++ b/packages/i18n/src/locales/fr/app.yaml @@ -102,7 +102,7 @@ howToTakeMeasurements: Comment prendre les mesures i18n: Internationalisation imperialUnits: Unités impériales (pouces) instagram: Instagram -invalidTldMessage: '.{tld} n''est pas un TLD valide' +invalidTldMessage: ".{tld} n'est pas un TLD valide" joinTheChatMsg: Nous avons une communauté sur Discord avec des amis avec lesquels vous pouvez discuter. justAMoment: Juste un instant layout: Mis en page @@ -186,11 +186,11 @@ shareFreesewing: Partager FreeSewing showcase: Galerie signUpForAFreeAccount: Créer un compte gratuit signUp: S'inscrire -signupWithProvider: 'S''inscrire avec {provider}' +signupWithProvider: "S'inscrire avec {provider}" sortByField: Trier par {field} standardSeamAllowance: Marge de couture standard startOver: Recommencer -startTranslatingNowOrRead: '{startTranslatingNow}, ou lisez d''abord la {documentationForTranslators}.' +startTranslatingNowOrRead: "{startTranslatingNow}, ou lisez d'abord la {documentationForTranslators}." startTranslatingNow: Commencez à traduire maintenant subscribe: Souscrire support: Support @@ -248,9 +248,9 @@ noPattern: Vous n'avez pas (encore) de patrons. Créez un nouveau patron, puis s modelFirst: Commencez par ajouter des mensurations noModel: Vous n'avez pas (encore) ajouté de mesure. FreeSewing peut générer des patrons de couture sur mesure. Mais pour cela, nous avons besoin de mensurations. noModel2: La première chose à faire est donc d'ajouter une personne et de sortir votre mètre-ruban. -noUserBrowsingTitle: "Vous ne pouvez pas simplement parcourir tous les utilisateurs" -noUserBrowsingText: "Nous en avons des milliers. Vous avez certainement autre chose à faire ?" -usePatternMeasurements: 'Utiliser les mesures du patron d''origine' +noUserBrowsingTitle: 'Vous ne pouvez pas simplement parcourir tous les utilisateurs' +noUserBrowsingText: 'Nous en avons des milliers. Vous avez certainement autre chose à faire ?' +usePatternMeasurements: "Utiliser les mesures du patron d'origine" createReplica: Créer une réplique showDetails: Voir les détails hideDetails: Masquer les détails diff --git a/packages/i18n/src/locales/fr/components/common.yaml b/packages/i18n/src/locales/fr/components/common.yaml index d1b5752dca2..7017f90915b 100644 --- a/packages/i18n/src/locales/fr/components/common.yaml +++ b/packages/i18n/src/locales/fr/components/common.yaml @@ -11,4 +11,3 @@ showcase: Showcase sloganCome: Come for the sewing patterns sloganStay: Stay for the community support: Support - diff --git a/packages/i18n/src/locales/fr/components/ograph.yaml b/packages/i18n/src/locales/fr/components/ograph.yaml index 3200c166ab6..f2f860780a2 100644 --- a/packages/i18n/src/locales/fr/components/ograph.yaml +++ b/packages/i18n/src/locales/fr/components/ograph.yaml @@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org devTitle: Welcome to FreeSewing.dev labTitle: Welcome to lab.FreeSewing.lab devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog - diff --git a/packages/i18n/src/locales/fr/components/patrons.yaml b/packages/i18n/src/locales/fr/components/patrons.yaml index 57432af8a77..b86503b0167 100644 --- a/packages/i18n/src/locales/fr/components/patrons.yaml +++ b/packages/i18n/src/locales/fr/components/patrons.yaml @@ -3,4 +3,3 @@ becomeAPatron: Become a patron supportFreesewing: Support FreeSewing patronLead: FreeSewing is fuelled by a voluntary subscription model patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work - diff --git a/packages/i18n/src/locales/fr/components/posts.yaml b/packages/i18n/src/locales/fr/components/posts.yaml index aa3442f208a..86f2dcb7659 100644 --- a/packages/i18n/src/locales/fr/components/posts.yaml +++ b/packages/i18n/src/locales/fr/components/posts.yaml @@ -1,3 +1,3 @@ --- -xMadeThis: "{x} made this" -xWroteThis: "{x} wrote this" +xMadeThis: '{x} made this' +xWroteThis: '{x} wrote this' diff --git a/packages/i18n/src/locales/fr/docs.yaml b/packages/i18n/src/locales/fr/docs.yaml index 0e5634f360b..5b633386473 100644 --- a/packages/i18n/src/locales/fr/docs.yaml +++ b/packages/i18n/src/locales/fr/docs.yaml @@ -1,3 +1,3 @@ --- -thingIsDeprecated: "{thing} est obsolète" -weRecommendThingInstead: "Nous recommandons {thing} à la place" +thingIsDeprecated: '{thing} est obsolète' +weRecommendThingInstead: 'Nous recommandons {thing} à la place' diff --git a/packages/i18n/src/locales/fr/email.yaml b/packages/i18n/src/locales/fr/email.yaml index 8c24d3d8f05..3b7b90cd27e 100644 --- a/packages/i18n/src/locales/fr/email.yaml +++ b/packages/i18n/src/locales/fr/email.yaml @@ -1,24 +1,24 @@ --- chatWithUs: 'Discutez avec nous' emailchangeActionText: 'Confirmez votre nouvelle adresse mail' -emailchangeCopy1: 'Vous avez demandé de modifier l''adresse e-mail associée à votre compte sur freesewing.org.

Avant de procéder, vous devez confirmer votre nouvelle adresse e-mail. S''il vous plaît cliquez sur le lien ci-dessous pour le faire :' +emailchangeCopy1: "Vous avez demandé de modifier l'adresse e-mail associée à votre compte sur freesewing.org.

Avant de procéder, vous devez confirmer votre nouvelle adresse e-mail. S'il vous plaît cliquez sur le lien ci-dessous pour le faire :" emailchangeHeaderOpeningLine: 'Assurez-vous simplement que nous pouvons vous joindre en cas de besoin' -emailchangeHiddenIntro: "Confirmons votre nouvelle adresse e-mail" +emailchangeHiddenIntro: 'Confirmons votre nouvelle adresse e-mail' emailchangeSubject: 'Merci de confirmer votre nouvelle adresse e-mail' emailchangeTitle: 'Merci de confirmer votre nouvelle adresse e-mail' -emailchangeWhy: 'Vous avez reçu cet e-mail parce que vous avez changé l''adresse e-mail liée à votre compte sur freesewing.org' +emailchangeWhy: "Vous avez reçu cet e-mail parce que vous avez changé l'adresse e-mail liée à votre compte sur freesewing.org" footerCredits: 'Réalisé par Joost De Cock et ses contributeurs avec le soutien financier de mécènes ❤️ ' footerSlogan: 'Freesewing est une plate-forme open source pour des patrons de couture sur mesure' -goodbyeCopy1: "Si vous souhaitez expliquer pourquoi vous partez, vous pouvez répondre à ce message.
De notre côté, nous ne vous dérangerons plus." +goodbyeCopy1: 'Si vous souhaitez expliquer pourquoi vous partez, vous pouvez répondre à ce message.
De notre côté, nous ne vous dérangerons plus.' goodbyeHeaderOpeningLine: 'Sachez simplement que vous pouvez toujours revenir' -goodbyeHiddenIntro: 'Merci d''avoir donné une chance à freesewing' +goodbyeHiddenIntro: "Merci d'avoir donné une chance à freesewing" goodbyeSubject: 'Adieu 👋' -goodbyeTitle: 'Merci d''avoir donné une chance à freesewing' -goodbyeWhy: 'Vous avez reçu cet e-mail en guise d''adieu final après la suppression de votre compte sur freesewing.org' +goodbyeTitle: "Merci d'avoir donné une chance à freesewing" +goodbyeWhy: "Vous avez reçu cet e-mail en guise d'adieu final après la suppression de votre compte sur freesewing.org" joostFromFreesewing: 'Joost de Freesewing' passwordresetActionText: 'Re-accéder à votre compte' passwordresetCopy1: 'Vous avez oublié votre mot de passe pour votre compte sur freesewing.org.

Cliquez sur le lien ci-dessous pour réinitialiser votre mot de passe:' -passwordresetHeaderOpeningLine: "Ne vous inquiétez pas, ce genre de choses nous arrive à tous" +passwordresetHeaderOpeningLine: 'Ne vous inquiétez pas, ce genre de choses nous arrive à tous' passwordresetHiddenIntro: 'Re-accéder à votre compte' passwordresetSubject: 'Re-accéder à votre compte sur freesewing.org' passwordresetTitle: 'Réinitialisez votre mot de passe et accédez à nouveau à votre compte.' @@ -27,8 +27,8 @@ questionsJustReply: "Si vous avez des questions, répondez simplement à cet e-m signature: 'Bise,' signupActionText: 'Confirmez votre adresse mail' signupCopy1: 'Merci de votre inscription sur freesewing.org.

Avant de commencer, vous devez confirmer votre adresse e-mail. Pour cela veuillez cliquer sur le lien ci-dessous :' -signupHeaderOpeningLine: "Nous sommes vraiment heureux que vous rejoigniez la communauté freesewing." -signupHiddenIntro: "Confirmons votre adresse mail" +signupHeaderOpeningLine: 'Nous sommes vraiment heureux que vous rejoigniez la communauté freesewing.' +signupHiddenIntro: 'Confirmons votre adresse mail' signupSubject: 'Bienvenue sur freesewing.org' signupTitle: 'Bienvenue à bord' signupWhy: 'Vous avez reçu cet e-mail parce que vous venez de créer un compte sur freesewing.org' diff --git a/packages/i18n/src/locales/fr/gdpr.yaml b/packages/i18n/src/locales/fr/gdpr.yaml index 30d54e89559..981ca2af8a8 100644 --- a/packages/i18n/src/locales/fr/gdpr.yaml +++ b/packages/i18n/src/locales/fr/gdpr.yaml @@ -21,10 +21,10 @@ openDataInfo: Ces données sont utilisées pour étudier et comprendre la forme openDataQuestion: Partager des mesures anonymisées sous forme de données ouvertes profileQuestion: Donnez-vous votre consentement pour traiter vos données de profil ? profileShareAnswer: 'Non, jamais.' -profileTimingAnswer: '12 mois après votre dernière connexion ou jusqu''à ce que vous supprimiez votre compte ou révoquiez ce consentement.' +profileTimingAnswer: "12 mois après votre dernière connexion ou jusqu'à ce que vous supprimiez votre compte ou révoquiez ce consentement." profileWarning: Révoquer ce consentement entraînera la suppression de toutes vos données. Cela a exactement le même effet que de supprimer votre compte. profileWhatAnswerOptional: 'Optionnel : une photo de profil, biographie, et comptes de réseaux sociaux' -profileWhatAnswer: 'Votre adresse e-mail, nom d''utilisateuret mot de passe.' +profileWhatAnswer: "Votre adresse e-mail, nom d'utilisateuret mot de passe." profileWhatQuestion: Que sont les données de profil ? profileWhyAnswer: 'Pour vous authentifier , vous contacter lorsque nécessaire, et construire une communauté.' readMore: Pour plus d'informations, veuillez lire notre politique de confidentialité. @@ -34,6 +34,6 @@ shareQuestion: La partageons-nous avec les autres ? timingQuestion: Combien de temps les gardons-nous ? whatYouNeedToKnow: Ce que vous devez savoir whyQuestion: Pourquoi en avons-nous besoin ? -yesIDoObject: 'Oui, je m''y oppose' +yesIDoObject: "Oui, je m'y oppose" yesIDo: 'Oui, je le veux' openData: 'Note : Freesewing publie des mesures rendues anonymes en tant que données libres pour la recherche scientifique. Vous avez le droit de vous y opposer' diff --git a/packages/i18n/src/locales/fr/intro.yaml b/packages/i18n/src/locales/fr/intro.yaml index 8f9c5184199..cddd80f710d 100644 --- a/packages/i18n/src/locales/fr/intro.yaml +++ b/packages/i18n/src/locales/fr/intro.yaml @@ -1,12 +1,12 @@ --- txt-blog: Nouvelles, mises à jour et annonces de l'équipe freesewing -txt-community: 'Tout est géré par des contributeurs bénévoles. Il n''y a pas d''entité commerciale, ou assimilée, derrière ce projet.' +txt-community: "Tout est géré par des contributeurs bénévoles. Il n'y a pas d'entité commerciale, ou assimilée, derrière ce projet." txt-different: Ce en quoi nous sommes différents txt-draft: "Choisissez parmi l'un de vos patrons, choisissez un modèle, et sélectionnez vos options. Nous ferons le reste." txt-how: Comment ça marche txt-join: Rejoignez des milliers d'autres personnes en vous inscrivant gratuitement sur freesewing.org. txt-model: Tous nos patrons sont faits sur mesure, donc la première chose à faire est de vous munir de votre mètre-ruban. -txt-newHere: "Si vous êtes nouveau ici, le meilleur endroit pour commencer est notre démo :" +txt-newHere: 'Si vous êtes nouveau ici, le meilleur endroit pour commencer est notre démo :' txt-opensource: 'Notre plateforme, nos patrons, et même ce site web. Tout notre code est disponible sur GitHub. Les "Pull requests" sont les bienvenues !' txt-patrons: Freesewing existe grâce au soutien financier de nos Mécènes. Faites défiler vers le bas pour en savoir plus sur nos modes de souscription. txt-showcase: Projets terminés de la communauté freesewing diff --git a/packages/i18n/src/locales/fr/welcome.yaml b/packages/i18n/src/locales/fr/welcome.yaml index e1188b57b0f..dac9eae8e3e 100644 --- a/packages/i18n/src/locales/fr/welcome.yaml +++ b/packages/i18n/src/locales/fr/welcome.yaml @@ -6,5 +6,5 @@ bio: Parlez-nous un peu de vous social: Dites-nous où nous pouvons vous suivre newsletter: Donnez-nous votre préférence pour la newsletter letUsSetupYourAccount: Laissez-nous configurer votre compte. -walkYouThrough: "Nous vous guiderons à travers les étapes suivantes :" +walkYouThrough: 'Nous vous guiderons à travers les étapes suivantes :' someOptional: Bien que toutes ces étapes soient facultatives, nous vous recommandons de les passer en revue pour tirer le meilleur parti de FreeSewing. diff --git a/packages/i18n/src/locales/nl/app.yaml b/packages/i18n/src/locales/nl/app.yaml index d6d8a27dae0..978c8ea3ed4 100644 --- a/packages/i18n/src/locales/nl/app.yaml +++ b/packages/i18n/src/locales/nl/app.yaml @@ -13,7 +13,7 @@ applyThisLayout: Pas deze layout toe areYouSureYouWantToContinue: Weet je zeker dat je door wilt gaan? askForHelp: Vraag om hulp automatic: Automatisch -averagePeopleDoNotExist: "Gemiddelde mensen bestaan niet" +averagePeopleDoNotExist: 'Gemiddelde mensen bestaan niet' awesome: Super back: Achterzijde becauseThatWouldBeReallyHelpful: Want dat zou ons echt vooruit helpen. @@ -76,7 +76,7 @@ drafts: Patroontekeningen draftSettings: Instellingen patroontekening dragAndDropImageHere: Sleep een afbeelding hierheen of selecteer er handmatig een met de knop hieronder emailAddress: Email adres -emailWorksToo: "Als je je gebruikersnaam niet meer weet, vul dan je email adres in, dat werkt ook" +emailWorksToo: 'Als je je gebruikersnaam niet meer weet, vul dan je email adres in, dat werkt ook' enterEmailPickPassword: Voer je email adres in, en kies een wachtwoord export: Exporteren exportTiledPDF: Gepagineerde PDF exporteren @@ -85,7 +85,7 @@ fieldRemoved: '{field} verwijderd' fieldSaved: '{field} opgeslagen' filterByPattern: Filter op patroon filterPatterns: Patronen filteren -forgotLoginInstructions: "Als je je wachtwoord niet meer weet, vul dan hieronder je gebruikersnaam of email adres in, en klik op de Herstel wachtwoord knop" +forgotLoginInstructions: 'Als je je wachtwoord niet meer weet, vul dan hieronder je gebruikersnaam of email adres in, en klik op de Herstel wachtwoord knop' freesewing: Freesewing freesewingOnGithub: FreeSewing op GitHub garmentPatterns: Patronen voor kledij @@ -163,7 +163,7 @@ remove: Verwijderen removeThing: '{thing} verwijderen' reportThisOnGithub: Melden via GitHub requiredMeasurements: Vereiste maten -resendActivationEmailMessage: "Vul het e-mailadres waarmee je je account aangemaakt hebt in en we zullen je een nieuwe bevestigingsmail sturen." +resendActivationEmailMessage: 'Vul het e-mailadres waarmee je je account aangemaakt hebt in en we zullen je een nieuwe bevestigingsmail sturen.' resendActivationEmail: Stuur een nieuwe activatie email resetPassword: Wachtwoord opnieuw instellen reset: Reset @@ -205,7 +205,7 @@ twitter: Twitter txt-footer: FreeSewing is gemaakt door een gemeenschap van bijdragers
met de financiële steun van onze mecenassen txt-tier2: Onze meest democratisch geprijsde optie. Het is minder dan de prijs van een latte, maar jouw steun betekent alles voor ons. txt-tier4: Abonneer je op deze optie en we sturen wat van onze erg gegeerde FreeSewing swag naar je thuis. Waar ook ter wereld dat mag zijn. -txt-tier8: "Als je ons niet louter wil steunen, maar FreeSewing wil zien groeien, dan is dit de optie voor jou. Ook: extra swag!" +txt-tier8: 'Als je ons niet louter wil steunen, maar FreeSewing wil zien groeien, dan is dit de optie voor jou. Ook: extra swag!' txt-tiers: 'FreeSewing draait op een vrijwillig subscriptiemodel' unitsInfo: FreeSewing ondersteunt zowel het metrieke stelsel als de imperiale eenheden. Kies eenvoudig welke u hier wilt gebruiken. (de standaard is om de eenheden te gebruiken die in uw account zijn geconfigureerd). updated: Bijgewerkt @@ -248,8 +248,8 @@ noPattern: Je hebt (nog) geen patronen. Maak een nieuw patroon, en sla het op in modelFirst: Begin met maten toe te voegen noModel: Je hebt (nog) geen maten toegevoegd. FreeSewing can naaipatronen op maat genereren. Maar daarvoor hebben we maten nodig. noModel2: Dus het eerste dat je zou moeten doen is een persoon toevoegen, en je lintmeter bovenhalen. -noUserBrowsingTitle: "Je kan niet zomaar door alle gebruikers grasduinen" -noUserBrowsingText: "We hebben er duizenden. Je hebt toch wel wat beters te doen?" +noUserBrowsingTitle: 'Je kan niet zomaar door alle gebruikers grasduinen' +noUserBrowsingText: 'We hebben er duizenden. Je hebt toch wel wat beters te doen?' usePatternMeasurements: 'Gebruik de maten van het originele patroon' createReplica: Creëer een replica showDetails: Toon details diff --git a/packages/i18n/src/locales/nl/components/common.yaml b/packages/i18n/src/locales/nl/components/common.yaml index d1b5752dca2..7017f90915b 100644 --- a/packages/i18n/src/locales/nl/components/common.yaml +++ b/packages/i18n/src/locales/nl/components/common.yaml @@ -11,4 +11,3 @@ showcase: Showcase sloganCome: Come for the sewing patterns sloganStay: Stay for the community support: Support - diff --git a/packages/i18n/src/locales/nl/components/ograph.yaml b/packages/i18n/src/locales/nl/components/ograph.yaml index 3200c166ab6..f2f860780a2 100644 --- a/packages/i18n/src/locales/nl/components/ograph.yaml +++ b/packages/i18n/src/locales/nl/components/ograph.yaml @@ -3,4 +3,3 @@ orgTitle: Welcome to FreeSewing.org devTitle: Welcome to FreeSewing.dev labTitle: Welcome to lab.FreeSewing.lab devDescription: Documentation and tutorials for FreeSewing developers and contributors. Plus our Developers Blog - diff --git a/packages/i18n/src/locales/nl/components/patrons.yaml b/packages/i18n/src/locales/nl/components/patrons.yaml index 57432af8a77..b86503b0167 100644 --- a/packages/i18n/src/locales/nl/components/patrons.yaml +++ b/packages/i18n/src/locales/nl/components/patrons.yaml @@ -3,4 +3,3 @@ becomeAPatron: Become a patron supportFreesewing: Support FreeSewing patronLead: FreeSewing is fuelled by a voluntary subscription model patronPitch: If you think what we do is worthwhile, and if you can spare a few coins each month without hardship, please support our work - diff --git a/packages/i18n/src/locales/nl/components/posts.yaml b/packages/i18n/src/locales/nl/components/posts.yaml index aa3442f208a..86f2dcb7659 100644 --- a/packages/i18n/src/locales/nl/components/posts.yaml +++ b/packages/i18n/src/locales/nl/components/posts.yaml @@ -1,3 +1,3 @@ --- -xMadeThis: "{x} made this" -xWroteThis: "{x} wrote this" +xMadeThis: '{x} made this' +xWroteThis: '{x} wrote this' diff --git a/packages/i18n/src/locales/nl/docs.yaml b/packages/i18n/src/locales/nl/docs.yaml index 18a35c37801..e8d010720b1 100644 --- a/packages/i18n/src/locales/nl/docs.yaml +++ b/packages/i18n/src/locales/nl/docs.yaml @@ -1,3 +1,3 @@ --- -thingIsDeprecated: "{thing} is deprecated" -weRecommendThingInstead: "We recommend {thing} instead" +thingIsDeprecated: '{thing} is deprecated' +weRecommendThingInstead: 'We recommend {thing} instead' diff --git a/packages/i18n/src/locales/nl/email.yaml b/packages/i18n/src/locales/nl/email.yaml index d0ea192ffa1..e32dc5fbb8a 100644 --- a/packages/i18n/src/locales/nl/email.yaml +++ b/packages/i18n/src/locales/nl/email.yaml @@ -3,13 +3,13 @@ chatWithUs: 'Chat met ons' emailchangeActionText: 'Bevestig uw nieuwe e-mailadres' emailchangeCopy1: 'U heeft verzocht het e-mailadres dat aan uw account is gekoppeld te wijzigen op freesewing.org .

Voordat we dat doen, moet u uw nieuwe e-mailadres bevestigen. Klik op de onderstaande link om dat te doen:' emailchangeHeaderOpeningLine: 'We zorgen ervoor dat we u kunnen bereiken wanneer dat nodig is' -emailchangeHiddenIntro: "Laten we uw nieuwe e-mailadres bevestigen" +emailchangeHiddenIntro: 'Laten we uw nieuwe e-mailadres bevestigen' emailchangeSubject: 'Bevestig uw nieuwe e-mailadres' emailchangeTitle: 'Bevestig uw nieuwe e-mailadres' emailchangeWhy: 'Je ontving deze e-mail omdat je het e-mailadres hebt gewijzigd dat gekoppeld is aan je account op freesewing.org' footerCredits: 'Gemaakt door joost & vrijwilligers met de financiële steun van onze Patrons ❤️ ' footerSlogan: 'FreeSewing is een open source platform voor naaipatronen op maat' -goodbyeCopy1: "Als je wilt delen waarom je vertrekt, kun je dit bericht beantwoorden.
Van onze kant zullen we je niet opnieuw lastig vallen." +goodbyeCopy1: 'Als je wilt delen waarom je vertrekt, kun je dit bericht beantwoorden.
Van onze kant zullen we je niet opnieuw lastig vallen.' goodbyeHeaderOpeningLine: 'Weet gewoon dat je altijd terug kunt komen' goodbyeHiddenIntro: 'Bedankt dat je freesewing.org een kans hebt gegeven' goodbyeSubject: 'Vaarwel 👋' @@ -18,17 +18,17 @@ goodbyeWhy: 'U ontving deze e-mail als een laatste adieu na het verwijderen van joostFromFreesewing: 'Joost van FreeSewing' passwordresetActionText: 'Krijg toegang tot uw account' passwordresetCopy1: 'U bent uw wachtwoord voor uw account vergeten op freesewing.org.

Klik op de onderstaande link om uw wachtwoord opnieuw in te stellen:' -passwordresetHeaderOpeningLine: "Maak je geen zorgen, deze dingen gebeuren met ons allemaal" +passwordresetHeaderOpeningLine: 'Maak je geen zorgen, deze dingen gebeuren met ons allemaal' passwordresetHiddenIntro: 'Krijg toegang tot uw account' passwordresetSubject: 'Krijg toegang tot uw account op freesewing.org' passwordresetTitle: 'Stel uw wachtwoord opnieuw in en verkrijg opnieuw toegang tot uw account' passwordresetWhy: 'U hebt deze e-mail ontvangen omdat u heeft gevraagd om uw wachtwoord opnieuw in te stellen op freesewing.org' -questionsJustReply: "Zit je met vragen? Stuur ze dan als antwoord op deze E-mail. Ik ben steeds bereid om een handje te helpen. 🙂" +questionsJustReply: 'Zit je met vragen? Stuur ze dan als antwoord op deze E-mail. Ik ben steeds bereid om een handje te helpen. 🙂' signature: 'Liefs,' signupActionText: 'Bevestig je E-mail adres' signupCopy1: 'Leuk dat je je hebt ingeschreven op freesewing.org.

Vooraleer we aan de slag kunnen, moeten we eerst je E-mail adres bevestigen. Klik op onderstaande link om dat te doen:' -signupHeaderOpeningLine: "We zijn verheugd dat je deel wil uitmaken van de freesewing gemeenschap." -signupHiddenIntro: "Nu gewoon nog even je E-mail adres bevestigen" +signupHeaderOpeningLine: 'We zijn verheugd dat je deel wil uitmaken van de freesewing gemeenschap.' +signupHiddenIntro: 'Nu gewoon nog even je E-mail adres bevestigen' signupSubject: 'Welkom bij freesewing.org' signupTitle: 'Welkom aan boord' signupWhy: 'Je ontving deze E-mail omdat je je zonet ingeschreven hebt op freesewing.org' diff --git a/packages/i18n/src/locales/nl/intro.yaml b/packages/i18n/src/locales/nl/intro.yaml index ae0e72839f2..369f1fb82f7 100644 --- a/packages/i18n/src/locales/nl/intro.yaml +++ b/packages/i18n/src/locales/nl/intro.yaml @@ -2,11 +2,11 @@ txt-blog: Nieuws, updates, and mededelingen door het freesewing team txt-community: 'Al het werk word gedaan door vrijwillige medewerkers. Er zijn geen commerciële belangen verbonden aan het project.' txt-different: Hoe we anders zijn -txt-draft: "Kies één van onze patronen, één van jouw modellen, en kies je opties. Wij doen de rest." +txt-draft: 'Kies één van onze patronen, één van jouw modellen, en kies je opties. Wij doen de rest.' txt-how: Hoe het werkt txt-join: Sluit je aan bij duizenden anderen, en schrijf je gratis in op freesewing.org. txt-model: Al onze patronen zijn op maat gemaakt. Het eerste wat je dus moet doen is je lintmeter bij de hand nemen. -txt-newHere: "Ben je hier nieuw? Dan is onze demo de beste plaats om van start te gaan:" +txt-newHere: 'Ben je hier nieuw? Dan is onze demo de beste plaats om van start te gaan:' txt-opensource: 'Ons platform, al onze patronen, en zelfs deze website. Al onze broncode is beschikbaar op GitHub. Pull requests welkom!' txt-patrons: Freesewing wordt mogelijk gemaakt door de financiële steun van onze mecenassen. Onderaan deze pagina kan je meer lezen over hoe we dit schip drijvende houden. txt-showcase: Bekijk de projecten gemaakt door de freesewing gemeenschap diff --git a/packages/i18n/src/locales/nl/welcome.yaml b/packages/i18n/src/locales/nl/welcome.yaml index 8ac2022dc0f..d89d0b78701 100644 --- a/packages/i18n/src/locales/nl/welcome.yaml +++ b/packages/i18n/src/locales/nl/welcome.yaml @@ -6,5 +6,5 @@ bio: Vertel ons een beetje over jezelf social: Laat ons weten waar we je kunnen volgen newsletter: Geef ons je voorkeur met betrekking tot de nieuwsbrief letUsSetupYourAccount: Laten we je account instellen. -walkYouThrough: "We zullen je door de volgende stappen begeleiden:" +walkYouThrough: 'We zullen je door de volgende stappen begeleiden:' someOptional: Hoewel al deze stappen optioneel zijn, raden we je toch aan alles te doen om het meeste uit FreeSewing te halen. diff --git a/packages/i18n/src/locales/uk/app.yaml b/packages/i18n/src/locales/uk/app.yaml index c1ee4899d8f..1d3bec568e6 100644 --- a/packages/i18n/src/locales/uk/app.yaml +++ b/packages/i18n/src/locales/uk/app.yaml @@ -13,7 +13,7 @@ applyThisLayout: Застосувати макет areYouSureYouWantToContinue: Ви впевнені, що хочете продовжити? askForHelp: Попросити про допомогу automatic: Автоматично -averagePeopleDoNotExist: "Середньостатистичних людей не існує" +averagePeopleDoNotExist: 'Середньостатистичних людей не існує' awesome: Чудово back: Назад becauseThatWouldBeReallyHelpful: Тому що це було б дуже корисно. @@ -163,7 +163,7 @@ remove: Видалити removeThing: Видалити {thing} reportThisOnGithub: Повідомте про проблему на GitHub requiredMeasurements: Необхідні заміри -resendActivationEmailMessage: "Напишіть електронну адресу, за допомогою якої Ви зареєструвалися - ми надішлемо Вам нове повідомлення для підтвердження." +resendActivationEmailMessage: 'Напишіть електронну адресу, за допомогою якої Ви зареєструвалися - ми надішлемо Вам нове повідомлення для підтвердження.' resendActivationEmail: Повторно надіслати лист для активації resetPassword: Змінити пароль reset: Змінити @@ -205,7 +205,7 @@ twitter: Twitter txt-footer: Freesewing працює завдяки спільноті учасників
з фінансовою підтримкою наших патронів txt-tier2: Рівень з найбільш демократичною ціною. Він дешевший за філіжанку кави, але ми дуже цінуємо Вашу підтримку. txt-tier4: Підпишіться на цей рівень та ми доставимо наші смачнющі "булочки" до Вашого ґанку (будь-де на мапі). -txt-tier8: "Якщо Ви хочете не лише підтримувати нас, а й бажаєте freesewing процвітання, цей рівень для Вас. Також: додаткові \"булочки\". ;)" +txt-tier8: 'Якщо Ви хочете не лише підтримувати нас, а й бажаєте freesewing процвітання, цей рівень для Вас. Також: додаткові "булочки". ;)' txt-tiers: 'FreeSewing існує завдяки добровільній моделі підписки' unitsInfo: Freesewing підтримує як метричні, так й імперські одиниці вимірювання. Просто оберіть ті, яким надаєте перевагу. (Зазвичай використовуються одиниці, зазначені в Вашому обліковому записі.) updated: Оновлено @@ -248,8 +248,8 @@ noPattern: Ви не маєте жодних викрійок (поки що). modelFirst: Розпочніть з додавання замірів noModel: Ви не додали жодних замірів (поки що). FreeSewing може створювати швейні викрійки на базі замірів. Однак для цього нам потрібні власне заміри. noModel2: Розпочніть зі створення людини, після чого діставайте свою сантиметрову стрічку. -noUserBrowsingTitle: "Ви не можете просто переглядати всіх користувачів" -noUserBrowsingText: "У нас їх тисячі. Ви дійсно хочете витрачати свій час на це?" +noUserBrowsingTitle: 'Ви не можете просто переглядати всіх користувачів' +noUserBrowsingText: 'У нас їх тисячі. Ви дійсно хочете витрачати свій час на це?' usePatternMeasurements: 'Використати заміри вихідної викрійки' createReplica: Створити копію showDetails: Показати подробиці diff --git a/packages/i18n/src/locales/uk/cfp.yaml b/packages/i18n/src/locales/uk/cfp.yaml index f9aee0501d7..be531128bd6 100644 --- a/packages/i18n/src/locales/uk/cfp.yaml +++ b/packages/i18n/src/locales/uk/cfp.yaml @@ -7,7 +7,7 @@ patternType: Тип викрійки patternCreated: Ваш каркас викрійки створено у runTheseCommands: Щоб розпочати, запустіть цю команду startRollup: У одному терміналі запустіть ролап у режимі перегляду -startWebpack: "Це відкриє папку \"приклад\" та запустить девелопмент." +startWebpack: 'Це відкриє папку "приклад" та запустить девелопмент.' devDocsAvailableAt: Документація для розробників доступна за адресою talkToUs: Для запитань, відгуків чи пропозицій, приєднуйтесь до нашого серверу в Discord draftYourPattern: Створіть Вашу викрійку diff --git a/packages/i18n/src/locales/uk/components/common.yaml b/packages/i18n/src/locales/uk/components/common.yaml index d06f8332fea..b3419bfeb4b 100644 --- a/packages/i18n/src/locales/uk/components/common.yaml +++ b/packages/i18n/src/locales/uk/components/common.yaml @@ -11,4 +11,3 @@ showcase: Готові проєкти sloganCome: Приходьте за викрійками sloganStay: Залишайтеся заради спільноти support: Підтримка - diff --git a/packages/i18n/src/locales/uk/components/ograph.yaml b/packages/i18n/src/locales/uk/components/ograph.yaml index 0d061e2a1ad..d35e6ef7d8a 100644 --- a/packages/i18n/src/locales/uk/components/ograph.yaml +++ b/packages/i18n/src/locales/uk/components/ograph.yaml @@ -3,4 +3,3 @@ orgTitle: Ласкаво просимо до FreeSewing.org devTitle: Ласкаво просимо до FreeSewing.dev labTitle: Ласкаво просимо до lab.FreeSewing.lab devDescription: Документація та навчальні матеріали для розробників FreeSewing та учасників. А також наш блог розробників - diff --git a/packages/i18n/src/locales/uk/components/patrons.yaml b/packages/i18n/src/locales/uk/components/patrons.yaml index 8fc140c705c..7329a62aa6b 100644 --- a/packages/i18n/src/locales/uk/components/patrons.yaml +++ b/packages/i18n/src/locales/uk/components/patrons.yaml @@ -3,4 +3,3 @@ becomeAPatron: Стати патроном supportFreesewing: Підтримати FreeSewing patronLead: FreeSewing існує завдяки добровільній моделі підписки patronPitch: Якщо Ви думаєте, що ми робимо цінну роботу, і якщо Ви можете відшкодувати кілька монет щомісяця без труднощів, будь ласка, підтримайте нашу роботу - diff --git a/packages/i18n/src/locales/uk/components/posts.yaml b/packages/i18n/src/locales/uk/components/posts.yaml index 9680d80da2c..cc6d41bb1b2 100644 --- a/packages/i18n/src/locales/uk/components/posts.yaml +++ b/packages/i18n/src/locales/uk/components/posts.yaml @@ -1,3 +1,3 @@ --- -xMadeThis: "{x} є автором цієї роботи" -xWroteThis: "{x} є автором цього тексту" +xMadeThis: '{x} є автором цієї роботи' +xWroteThis: '{x} є автором цього тексту' diff --git a/packages/i18n/src/locales/uk/docs.yaml b/packages/i18n/src/locales/uk/docs.yaml index 3b05a2ab676..8e534edb007 100644 --- a/packages/i18n/src/locales/uk/docs.yaml +++ b/packages/i18n/src/locales/uk/docs.yaml @@ -1,3 +1,3 @@ --- -thingIsDeprecated: "{thing} є застарілим" -weRecommendThingInstead: "Ми рекомендуємо {thing} замість цього" +thingIsDeprecated: '{thing} є застарілим' +weRecommendThingInstead: 'Ми рекомендуємо {thing} замість цього' diff --git a/packages/i18n/src/locales/uk/email.yaml b/packages/i18n/src/locales/uk/email.yaml index 5904fdad3f9..c8431cc2cbe 100644 --- a/packages/i18n/src/locales/uk/email.yaml +++ b/packages/i18n/src/locales/uk/email.yaml @@ -1,15 +1,15 @@ --- chatWithUs: 'Напишіть нам' emailchangeActionText: 'Підтвердіть нову адресу електронної пошти' -emailchangeCopy1: 'Ви запросили зміну адреси електронної пошти, прив''язану до вашого облікового запису на freesewing.org.

Перед тим як це зробити, необхідно підтвердити нову адресу електронної пошти. Будь ласка, натисніть на посилання нижче, щоб зробити це:' -emailchangeHeaderOpeningLine: 'Просто перевіряємо, що ми зможемо зв''язатися з Вами, коли це буде необхідно' -emailchangeHiddenIntro: "Час підтвердити нову адресу електронної пошти" +emailchangeCopy1: "Ви запросили зміну адреси електронної пошти, прив'язану до вашого облікового запису на freesewing.org.

Перед тим як це зробити, необхідно підтвердити нову адресу електронної пошти. Будь ласка, натисніть на посилання нижче, щоб зробити це:" +emailchangeHeaderOpeningLine: "Просто перевіряємо, що ми зможемо зв'язатися з Вами, коли це буде необхідно" +emailchangeHiddenIntro: 'Час підтвердити нову адресу електронної пошти' emailchangeSubject: 'Будь ласка, підтвердіть нову адресу електронної пошти' emailchangeTitle: 'Будь ласка, підтвердіть нову адресу електронної пошти' -emailchangeWhy: 'Ви отримали цей лист, оскільки змінили адресу електронної пошти, прив''язану до вашого облікового запису на freesewing.org' +emailchangeWhy: "Ви отримали цей лист, оскільки змінили адресу електронної пошти, прив'язану до вашого облікового запису на freesewing.org" footerCredits: 'Зроблено Йостом та учасниками проєкту завдяки фінансовій допомозі наших патронів ❤️ ' footerSlogan: 'FreeSewing є платформою з відкритим кодом для створення швейних викрійок, які адаптуються під виміри користувача' -goodbyeCopy1: "Якщо Ви хочете поділитися, чому Ви йдете, можете відповісти на це повідомлення.
З нашого боку, ми більше не турбуватимемо Вас." +goodbyeCopy1: 'Якщо Ви хочете поділитися, чому Ви йдете, можете відповісти на це повідомлення.
З нашого боку, ми більше не турбуватимемо Вас.' goodbyeHeaderOpeningLine: 'Просто щоб Ви знали – Ви завжди можете повернутися' goodbyeHiddenIntro: 'Дякуємо за ще один шанс для FreeSewing' goodbyeSubject: 'До побачення 👋' @@ -18,17 +18,17 @@ goodbyeWhy: 'Ви отримали цей лист, як останнє прощ joostFromFreesewing: 'Йост з FreeSewing' passwordresetActionText: 'Повторно отримати доступ до вашого облікового запису' passwordresetCopy1: 'Ви забули пароль для облікового запису на freesewing.org.

Натисніть на посилання нижче, щоб змінити пароль:' -passwordresetHeaderOpeningLine: "Не хвилюйтеся, це стається з нами усіма" +passwordresetHeaderOpeningLine: 'Не хвилюйтеся, це стається з нами усіма' passwordresetHiddenIntro: 'Повторно отримати доступ до вашого облікового запису' passwordresetSubject: 'Повторно отримати доступ до вашого облікового запису на freesewing.org' passwordresetTitle: 'Змінити пароль і повторно отримати доступ до вашого облікового запису' passwordresetWhy: 'Ви отримали цей електронний лист, тому що ви запросили зміну паролю на сайті freesewing.org' -questionsJustReply: "Якщо у вас є запитання, просто надішліть відповідь на цей E-mail. Ми завжди раді допомогти 🙂" -signature: 'З любов''ю,' +questionsJustReply: 'Якщо у вас є запитання, просто надішліть відповідь на цей E-mail. Ми завжди раді допомогти 🙂' +signature: "З любов'ю," signupActionText: 'Підтвердіть адресу електронної пошти' signupCopy1: 'Дякуємо за реєстрацію на freesewing.org.

Перед початком роботи потрібно підтвердити Вашу адресу електронної пошти. Будь ласка, натисніть на посилання нижче, щоб зробити це:' -signupHeaderOpeningLine: "Ми дуже раді, що Ви приєдналися до спільноти FreeSewing." -signupHiddenIntro: "Час підтвердити нову адресу електронної пошти" +signupHeaderOpeningLine: 'Ми дуже раді, що Ви приєдналися до спільноти FreeSewing.' +signupHiddenIntro: 'Час підтвердити нову адресу електронної пошти' signupSubject: 'Ласкаво просимо на freesewing.org' signupTitle: 'Ласкаво просимо' signupWhy: 'Ви отримали цей електронний лист, тому що ви щойно зареєструвалися на сайті freesewing.org' diff --git a/packages/i18n/src/locales/uk/gdpr.yaml b/packages/i18n/src/locales/uk/gdpr.yaml index 5d39df5bf8c..ca61366081f 100644 --- a/packages/i18n/src/locales/uk/gdpr.yaml +++ b/packages/i18n/src/locales/uk/gdpr.yaml @@ -11,7 +11,7 @@ furtherReading: Подальше вивчення modelQuestion: Чи даєте Ви згоду на обробку даних моделі? modelWarning: Анулювання даної згоди зробить неможливим використання даних замірів моделі. Це також анулює функціонал вебсайту, який залежить від даної інформації. modelWhatAnswer: Заміри та налаштування молочних залоз кожної моделі. -modelWhatAnswerOptional: 'За навності: Зображення моделі та ім''я моделі.' +modelWhatAnswerOptional: "За навності: Зображення моделі та ім'я моделі." modelWhatQuestion: Що таке дані моделі? modelWhyAnswer: 'Для розробки викрійок, адаптованих під заміри спеціально вимірунам необхідні виміри тіла.' noConsentNoAccount: Без цієї згоди ми не можемо створити Ваш обліковий запис @@ -24,9 +24,9 @@ profileShareAnswer: 'Ні, ніколи.' profileTimingAnswer: '12 місяців після останнього входу в систему, або до тих пір, поки Ви не видалите Ваш обліковий запис або скасуєте дану згоду.' profileWarning: Відкликання згоди видалить усі Ваші данні. Це має той же ефект, що і видалення облікового запису. profileWhatAnswerOptional: 'За наявності: зображення облікового запису, біоі соціальні мережі' -profileWhatAnswer: 'Ваша електронна адреса, ім''я користувачаі пароль.' +profileWhatAnswer: "Ваша електронна адреса, ім'я користувачаі пароль." profileWhatQuestion: Що таке дані облікового запису? -profileWhyAnswer: 'Щоб автентифікувати Вас, зв''язатися з Вами коли це потрібно та задля покращення нашої спільноти.' +profileWhyAnswer: "Щоб автентифікувати Вас, зв'язатися з Вами коли це потрібно та задля покращення нашої спільноти." readMore: Для отримання додаткової інформації, будь ласка, прочитайте наше повідомлення про конфіденційність. readRights: Для отримання додаткової інформації, будь ласка, прочитайте про Ваші права. revokeConsent: Відкликати згоду diff --git a/packages/i18n/src/locales/uk/intro.yaml b/packages/i18n/src/locales/uk/intro.yaml index d922cab5ea9..43bb633fffd 100644 --- a/packages/i18n/src/locales/uk/intro.yaml +++ b/packages/i18n/src/locales/uk/intro.yaml @@ -1,12 +1,12 @@ --- txt-blog: Новини, оновлення та анонси від команди FreeSewing -txt-community: 'Проєкт існує на добровільних засадах. FreeSewing не прив''язаний до жодних комерційних засад та компаній.' +txt-community: "Проєкт існує на добровільних засадах. FreeSewing не прив'язаний до жодних комерційних засад та компаній." txt-different: Чому ми особливі -txt-draft: "Оберіть одну з викрійок, модель та налаштування. Ми зробимо решту." +txt-draft: 'Оберіть одну з викрійок, модель та налаштування. Ми зробимо решту.' txt-how: Як це працює txt-join: Приєднайтеся до тисяч інших користувачів та створіть безкоштовний акаунт на freesewing.org. txt-model: Всі наші викрійки адаптуються під задані виміри. Тому перше, що варто зробити – піти взяти сантиметрову стрічку. -txt-newHere: "Якщо ви тут вперше – найкраще місце для початку є наше демо:" +txt-newHere: 'Якщо ви тут вперше – найкраще місце для початку є наше демо:' txt-opensource: 'Наша платформа, наші викрійки і навіть наш вебсайт. Весь наш код доступний на GitHub. Пулл реквести вітаються!' txt-patrons: FreeSewing існує завдяки фінансовій підтримці наших Патронів. Прокрутіть вниз, щоб дізнатися про нашу модель підписки. txt-showcase: Завершені проекти від спільноти FreeSewing diff --git a/packages/i18n/src/locales/uk/welcome.yaml b/packages/i18n/src/locales/uk/welcome.yaml index f78c78aa22a..a6446af2934 100644 --- a/packages/i18n/src/locales/uk/welcome.yaml +++ b/packages/i18n/src/locales/uk/welcome.yaml @@ -6,5 +6,5 @@ bio: Розкажіть нам трохи про себе social: Дайте нам знати, де ми можемо слідкувати за Вами newsletter: Надайте нам свої налаштування для розсилки letUsSetupYourAccount: Давайте налаштуємо Ваш обліковий запис. -walkYouThrough: "Ми допоможемо Вам пройти наступні етапи:" +walkYouThrough: 'Ми допоможемо Вам пройти наступні етапи:' someOptional: Хоча всі ці етапи необов'язкові, ми рекомендуємо Вам пройти їх, щоб отримати максимум користі від FreeSewing. diff --git a/packages/i18n/src/prebuild.mjs b/packages/i18n/src/prebuild.mjs index a436471daf0..a8643ba32ca 100644 --- a/packages/i18n/src/prebuild.mjs +++ b/packages/i18n/src/prebuild.mjs @@ -17,8 +17,7 @@ const getTranslationFileList = async () => { let allFiles try { allFiles = await rdir(path.resolve(__dirname, 'locales')) - } - catch (err) { + } catch (err) { console.log(err) return false } @@ -44,18 +43,16 @@ const localeFromFileName = (fileName) => { * Figures out the list of locales from the list of files * (by checking how many version of aaron.yaml exist) */ -const getLocalesFromFileList = files => files - .filter(file => (file.slice(-10) === 'aaron.yaml')) - .map(localeFromFileName) +const getLocalesFromFileList = (files) => + files.filter((file) => file.slice(-10) === 'aaron.yaml').map(localeFromFileName) // Helper method to see if a dir occurs in a full path -const pathContains = (fullPath, dir) => fullPath - .indexOf(`${path.sep}${dir}${path.sep}`) !== -1 +const pathContains = (fullPath, dir) => fullPath.indexOf(`${path.sep}${dir}${path.sep}`) !== -1 /* * Determines the namespace name based on the file path */ -const namespaceFromFile = file => { +const namespaceFromFile = (file) => { const ext = path.extname(file) const name = path.basename(file, ext) @@ -73,7 +70,7 @@ const namespaceFromFile = file => { * description: * options; (this one is not always present) */ -const flattenYml = content => { +const flattenYml = (content) => { const flat = {} for (const l1 in content) { flat[`${l1}.t`] = content[l1].title @@ -88,29 +85,24 @@ const flattenYml = content => { * handle nested keys in .yml files */ const loadTranslationFile = async (file) => { - const data = yaml.load( - (await readFile(file, { encoding: 'utf-8'})) - ) + const data = yaml.load(await readFile(file, { encoding: 'utf-8' })) - return (path.extname(file) === '.yml') - ? flattenYml(data) - : data + return path.extname(file) === '.yml' ? flattenYml(data) : data } - /* * Creates an object with namespaces and the YAML/YML files * that go with them */ -const getNamespacesFromFileList = async (files, locales, only=false) => { +const getNamespacesFromFileList = async (files, locales, only = false) => { const namespaces = {} for (var i = 0; i < files.length; i++) { let file = files[i] - let loc = localeFromFileName(file); + let loc = localeFromFileName(file) if (locales.indexOf(loc) === -1) continue - let namespace = namespaceFromFile(file); + let namespace = namespaceFromFile(file) if (only === true && only.indexOf(namespace) === -1) continue if (typeof namespaces[loc] === 'undefined') { @@ -123,7 +115,7 @@ const getNamespacesFromFileList = async (files, locales, only=false) => { namespaces[loc][namespace] = { ...namespaces[loc][namespace], - ...(await loadTranslationFile(file)) + ...(await loadTranslationFile(file)), } } @@ -135,74 +127,53 @@ const header = `/* * All edits will be overwritten on the next build */` const namespaceFile = (name, data) => `${header} -const ${name} = ${JSON.stringify(data, null ,2)} +const ${name} = ${JSON.stringify(data, null, 2)} export default ${name} ` const localeFile = (namespaces) => `${header} -${namespaces - .map(ns => 'import '+ns+' from "./'+ns+'.mjs"') - .join("\n") -} +${namespaces.map((ns) => 'import ' + ns + ' from "./' + ns + '.mjs"').join('\n')} const allNamespaces = { - ${namespaces.join(",\n ")} + ${namespaces.join(',\n ')} } export default allNamespaces ` const indexFile = (locales, data) => `${header} -${locales - .map(l => 'import '+l+'Namespaces from "./next/'+l+'/index.mjs"') - .join("\n") -} +${locales.map((l) => 'import ' + l + 'Namespaces from "./next/' + l + '/index.mjs"').join('\n')} -${locales - .map(l => 'export const '+l+' = '+l+'Namespaces') - .join("\n") -} +${locales.map((l) => 'export const ' + l + ' = ' + l + 'Namespaces').join('\n')} export const languages = { -${locales - .map(l => ' '+l+': "'+ data[l].i18n[l]+'"') - .join(",\n") -} +${locales.map((l) => ' ' + l + ': "' + data[l].i18n[l] + '"').join(',\n')} } ` /* * Writes out files */ -const writeFiles = async allNamespaces => { +const writeFiles = async (allNamespaces) => { const filePromises = [] const dist = path.resolve(__dirname, '..', 'dist') for (const [locale, namespaces] of Object.entries(allNamespaces)) { // make sure there's a folder for the locale - await mkdir(path.resolve(dist, locale), {recursive: true}) + await mkdir(path.resolve(dist, locale), { recursive: true }) for (const [namespace, data] of Object.entries(namespaces)) { filePromises.push( - writeFile( - path.resolve(dist, locale, namespace+'.mjs', ), - namespaceFile(namespace, data) - ) + writeFile(path.resolve(dist, locale, namespace + '.mjs'), namespaceFile(namespace, data)) ) } // Locale index files filePromises.push( - writeFile( - path.resolve(dist, locale, 'index.mjs', ), - localeFile(Object.keys(namespaces)) - ) + writeFile(path.resolve(dist, locale, 'index.mjs'), localeFile(Object.keys(namespaces))) ) } // Locale index files filePromises.push( - writeFile( - path.resolve(dist, 'index.mjs', ), - indexFile(Object.keys(allNamespaces), allNamespaces) - ) + writeFile(path.resolve(dist, 'index.mjs'), indexFile(Object.keys(allNamespaces), allNamespaces)) ) // write the files @@ -214,7 +185,7 @@ const writeFiles = async allNamespaces => { /* * Turns YAML translation files into JS */ -export const build = async (localeFilter = () => true, only=false) => { +export const build = async (localeFilter = () => true, only = false) => { const files = await getTranslationFileList() const locales = getLocalesFromFileList(files).filter(localeFilter) console.log('building i18n for', locales) @@ -225,4 +196,3 @@ export const build = async (localeFilter = () => true, only=false) => { } //export default strings - diff --git a/packages/i18n/tests/i18n.test.mjs b/packages/i18n/tests/i18n.test.mjs index 7fe60dca5bc..22207019b47 100644 --- a/packages/i18n/tests/i18n.test.mjs +++ b/packages/i18n/tests/i18n.test.mjs @@ -1,54 +1,53 @@ -import chai from "chai" -import { strings as i18n } from "./dist/index.mjs" +import chai from 'chai' +import * as i18n from '../prebuild/strings.js' const expect = chai.expect const languages = [ { - name: "English", - strings: i18n.en + name: 'English', + strings: i18n.en, }, { - name: "German", - strings: i18n.de + name: 'German', + strings: i18n.de, }, { - name: "Spanish", - strings: i18n.es + name: 'Spanish', + strings: i18n.es, }, { - name: "French", - strings: i18n.fr + name: 'French', + strings: i18n.fr, }, { - name: "Dutch", - strings: i18n.nl - } -]; + name: 'Dutch', + strings: i18n.nl, + }, +] function checkTranslations(from, to) { - const originals = Object.keys(from.strings); - const translated = to.strings; - for (let string of originals) { - if (typeof translated[string] === "undefined") { + const translated = to.strings + for (const string in from.strings) { + if (typeof translated[string] === 'undefined') { console.log(`String ${string} in ${from.name} is not available in ${to.name}`) - expect(typeof translated[string]).to.equal("string"); } + expect(typeof translated[string]).to.equal('string') } } for (let language of languages) { - if (language.name !== "English") { + if (language.name !== 'English') { it(`All English strings should be translated to ${language.name}`, () => { - checkTranslations(languages[0], language); - }); + checkTranslations(languages[0], language) + }) } } for (let language of languages) { - if (language.name !== "English") { + if (language.name !== 'English') { it(`All ${language.name} strings should be available in English`, () => { - checkTranslations(language, languages[0]); - }); + checkTranslations(language, languages[0]) + }) } } diff --git a/packages/models/.eslintrc.yml b/packages/models/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/packages/models/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/packages/models/README.md b/packages/models/README.md index 7f82fdf6e76..6a9f841213d 100644 --- a/packages/models/README.md +++ b/packages/models/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/packages/models/package.json b/packages/models/package.json index d659febfdc7..871c6f9d9e2 100644 --- a/packages/models/package.json +++ b/packages/models/package.json @@ -37,7 +37,8 @@ "tips": "node ../../scripts/help.mjs", "cibuild_step6": "node build.mjs", "wbuild": "node build.mjs", - "wcibuild_step6": "node build.mjs" + "wcibuild_step6": "node build.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'" }, "peerDependencies": { "@freesewing/utils": "^3.0.0-alpha.0" diff --git a/packages/models/src/index.mjs b/packages/models/src/index.mjs index 0283a2c188b..c9654422691 100644 --- a/packages/models/src/index.mjs +++ b/packages/models/src/index.mjs @@ -12,20 +12,21 @@ const getMeasurements = (size, index) => { const multiplyMeasurements = (factor, index) => { const all = {} - const base = (index === 0) ? '340' : '380' + const base = index === 0 ? '340' : '380' for (const m of measurements) { - if (degreeMeasurements.indexOf(m) !== -1) all[m] = neckstimate(base, m, index) // Don't multiply degrees + if (degreeMeasurements.indexOf(m) !== -1) + all[m] = neckstimate(base, m, index) // Don't multiply degrees else all[m] = factor * neckstimate(base, m, index) } return all } -export const groups = [ 'adult', 'doll', 'giant' ] +export const groups = ['adult', 'doll', 'giant'] export const sizes = { - cisFemaleAdult: [28,30,32,34,36,38,40,42,44,46], - cisMaleAdult: [32,34,36,38,40,42,44,46,48,50], + cisFemaleAdult: [28, 30, 32, 34, 36, 38, 40, 42, 44, 46], + cisMaleAdult: [32, 34, 36, 38, 40, 42, 44, 46, 48, 50], cisFemaleDoll: [10, 20, 30, 40, 50, 60], cisMaleDoll: [10, 20, 30, 40, 50, 60], cisFemaleGiant: [150, 200, 250, 300], @@ -69,15 +70,14 @@ export const cisMaleDoll50 = multiplyMeasurements(0.5, CISMALE) export const cisMaleDoll60 = multiplyMeasurements(0.6, CISMALE) export const cisFemaleGiant150 = multiplyMeasurements(1.5, CISFEMALE) -export const cisFemaleGiant200 = multiplyMeasurements( 2, CISFEMALE) +export const cisFemaleGiant200 = multiplyMeasurements(2, CISFEMALE) export const cisFemaleGiant250 = multiplyMeasurements(2.5, CISFEMALE) -export const cisFemaleGiant300 = multiplyMeasurements( 3, CISFEMALE) +export const cisFemaleGiant300 = multiplyMeasurements(3, CISFEMALE) export const cisMaleGiant150 = multiplyMeasurements(1.5, CISMALE) -export const cisMaleGiant200 = multiplyMeasurements( 2, CISMALE) +export const cisMaleGiant200 = multiplyMeasurements(2, CISMALE) export const cisMaleGiant250 = multiplyMeasurements(2.5, CISMALE) -export const cisMaleGiant300 = multiplyMeasurements( 3, CISMALE) - +export const cisMaleGiant300 = multiplyMeasurements(3, CISMALE) export const cisFemaleAdult = { 28: cisFemaleAdult28, @@ -147,4 +147,3 @@ export const giant = { } export { measurements } - diff --git a/packages/models/src/neckstimate.mjs b/packages/models/src/neckstimate.mjs index cf10f10b451..a8f9a315b80 100644 --- a/packages/models/src/neckstimate.mjs +++ b/packages/models/src/neckstimate.mjs @@ -1,4 +1,3 @@ - /* * These are a set of measurements of an average-sized [woman, man]. * We simply extrapolate for other sizes (based on neck) @@ -109,18 +108,15 @@ const ratio = { waistFront: 0.85, waistFrontArc: 0.85, waistToFloor: 0.4, - wrist: 0.5 + wrist: 0.5, } export const measurements = Object.keys(base) // This estimates a measurement based on the neck -export const neckstimate = (neck = false, measurement = false, i=0, noRound=false) => { - +export const neckstimate = (neck = false, measurement = false, i = 0, noRound = false) => { if (typeof base[measurement] === 'undefined') { - console.log( - new Error(`neckstimate() called with an invalid measurement name (${measurement})`) - ) + console.log(new Error(`neckstimate() called with an invalid measurement name (${measurement})`)) return null } if (!measurement) { @@ -144,4 +140,3 @@ export const neckstimate = (neck = false, measurement = false, i=0, noRound=fals ? base[measurement][i] + delta * ratio[measurement] : Math.round(base[measurement][i] + delta * ratio[measurement]) } - diff --git a/packages/models/tests/models.test.mjs b/packages/models/tests/models.test.mjs index 39e1957c4ad..0f2abfa98ef 100644 --- a/packages/models/tests/models.test.mjs +++ b/packages/models/tests/models.test.mjs @@ -1,13 +1,13 @@ -import chai from "chai" -import * as all from "./dist/index.mjs" +import chai from 'chai' +import * as all from './dist/index.mjs' const expect = chai.expect const { measurements, sizes } = all describe('Measurements', () => { - it("Measurements should be a named export and match the sizes", () => { + it('Measurements should be a named export and match the sizes', () => { for (const m of measurements) { - expect(typeof all.cisFemaleAdult28[m]).to.equal('number'); + expect(typeof all.cisFemaleAdult28[m]).to.equal('number') } }) }) @@ -24,4 +24,3 @@ for (const type in sizes) { }) } } - diff --git a/packages/new-design/.eslintrc.yml b/packages/new-design/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/packages/new-design/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/packages/new-design/README.md b/packages/new-design/README.md index be2764fd28e..d4362204ed9 100644 --- a/packages/new-design/README.md +++ b/packages/new-design/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/packages/new-design/package.json b/packages/new-design/package.json index 12c083e5285..df27e74f6ef 100644 --- a/packages/new-design/package.json +++ b/packages/new-design/package.json @@ -30,7 +30,8 @@ "i18n-only": "node ../../sites/shared/prebuild/i18n-only.mjs", "wbuild": "set SITE=new-design/shared&& node ../../sites/shared/prebuild/i18n-only.mjs && copy ..\\..\\scripts\\banner.mjs .\\lib\\banner.mjs /Y && node build.mjs && set SITE=", "cibuild_step6": "SITE=new-design/shared yarn run i18n-only && cp ../../scripts/banner.mjs ./lib && node build.mjs", - "wcibuild_step6": "set SITE=new-design/shared&& node ../../sites/shared/prebuild/i18n-only.mjs && copy ..\\..\\scripts\\banner.mjs .\\lib\\banner.mjs /Y && node build.mjs && set SITE=" + "wcibuild_step6": "set SITE=new-design/shared&& node ../../sites/shared/prebuild/i18n-only.mjs && copy ..\\..\\scripts\\banner.mjs .\\lib\\banner.mjs /Y && node build.mjs && set SITE=", + "lint": "npx eslint 'lib/*.mjs'" }, "peerDependencies": {}, "dependencies": { diff --git a/packages/new-design/templates/from-bella/design/src/back.js b/packages/new-design/templates/from-bella/design/src/back.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-bella/design/src/back.js +++ b/packages/new-design/templates/from-bella/design/src/back.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-bella/design/src/front.js b/packages/new-design/templates/from-bella/design/src/front.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-bella/design/src/front.js +++ b/packages/new-design/templates/from-bella/design/src/front.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-bella/design/src/index.js b/packages/new-design/templates/from-bella/design/src/index.js index 08285b89732..f13ff61e7a1 100644 --- a/packages/new-design/templates/from-bella/design/src/index.js +++ b/packages/new-design/templates/from-bella/design/src/index.js @@ -13,7 +13,7 @@ import draftFront from './front' const Design = new freesewing.Design(config, plugins) // Attach Bella's draft methods to the prototype -for (const m of [ 'Back', 'FrontSideDart' ]) { +for (const m of ['Back', 'FrontSideDart']) { Design.prototype[`draftBella${m}`] = function (part) { return new Bella(this.settings)[`draft${m}`](part) } diff --git a/packages/new-design/templates/from-bent/design/src/back.js b/packages/new-design/templates/from-bent/design/src/back.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-bent/design/src/back.js +++ b/packages/new-design/templates/from-bent/design/src/back.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-bent/design/src/front.js b/packages/new-design/templates/from-bent/design/src/front.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-bent/design/src/front.js +++ b/packages/new-design/templates/from-bent/design/src/front.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-bent/design/src/index.js b/packages/new-design/templates/from-bent/design/src/index.js index 0f66302fcc3..842bf01923a 100644 --- a/packages/new-design/templates/from-bent/design/src/index.js +++ b/packages/new-design/templates/from-bent/design/src/index.js @@ -15,14 +15,7 @@ import draftUnderSleeve from './under-sleeve' const Design = new freesewing.Design(config, plugins) // Attach Bent's draft methods to the prototype -for (const m of [ - 'Base', - 'Front', - 'Back', - 'Sleeve', - 'TopSleeve', - 'UnderSleeve', -]) { +for (const m of ['Base', 'Front', 'Back', 'Sleeve', 'TopSleeve', 'UnderSleeve']) { Design.prototype[`draftBent${m}`] = function (part) { return new Bent(this.settings)[`draft${m}`](part) } diff --git a/packages/new-design/templates/from-bent/design/src/top-sleeve.js b/packages/new-design/templates/from-bent/design/src/top-sleeve.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-bent/design/src/top-sleeve.js +++ b/packages/new-design/templates/from-bent/design/src/top-sleeve.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-bent/design/src/under-sleeve.js b/packages/new-design/templates/from-bent/design/src/under-sleeve.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-bent/design/src/under-sleeve.js +++ b/packages/new-design/templates/from-bent/design/src/under-sleeve.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-breanna/design/src/back.js b/packages/new-design/templates/from-breanna/design/src/back.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-breanna/design/src/back.js +++ b/packages/new-design/templates/from-breanna/design/src/back.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-breanna/design/src/front.js b/packages/new-design/templates/from-breanna/design/src/front.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-breanna/design/src/front.js +++ b/packages/new-design/templates/from-breanna/design/src/front.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-breanna/design/src/index.js b/packages/new-design/templates/from-breanna/design/src/index.js index 44d63a11200..82236033a6b 100644 --- a/packages/new-design/templates/from-breanna/design/src/index.js +++ b/packages/new-design/templates/from-breanna/design/src/index.js @@ -14,14 +14,7 @@ import draftSleeve from './sleeve' const Design = new freesewing.Design(config, plugins) // Attach Breanna's draft methods to the prototype -for (const m of [ - 'Base', - 'Back', - 'FrontBase', - 'Front', - 'Sleevecap', - 'Sleeve', -]) { +for (const m of ['Base', 'Back', 'FrontBase', 'Front', 'Sleevecap', 'Sleeve']) { Design.prototype[`draftBreanna${m}`] = function (part) { return new Breanna(this.settings)[`draft${m}`](part) } diff --git a/packages/new-design/templates/from-breanna/design/src/sleeve.js b/packages/new-design/templates/from-breanna/design/src/sleeve.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-breanna/design/src/sleeve.js +++ b/packages/new-design/templates/from-breanna/design/src/sleeve.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-brian/design/src/back.js b/packages/new-design/templates/from-brian/design/src/back.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-brian/design/src/back.js +++ b/packages/new-design/templates/from-brian/design/src/back.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-brian/design/src/front.js b/packages/new-design/templates/from-brian/design/src/front.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-brian/design/src/front.js +++ b/packages/new-design/templates/from-brian/design/src/front.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-brian/design/src/index.js b/packages/new-design/templates/from-brian/design/src/index.js index 4723d2cc818..d900df8a231 100644 --- a/packages/new-design/templates/from-brian/design/src/index.js +++ b/packages/new-design/templates/from-brian/design/src/index.js @@ -14,13 +14,7 @@ import draftSleeve from './sleeve' const Design = new freesewing.Design(config, plugins) // Attach Brian's draft methods to the prototype -for (const m of [ - 'Base', - 'Front', - 'Back', - 'Sleevecap', - 'Sleeve', -]) { +for (const m of ['Base', 'Front', 'Back', 'Sleevecap', 'Sleeve']) { Design.prototype[`draftBrian${m}`] = function (part) { return new Brian(this.settings)[`draft${m}`](part) } diff --git a/packages/new-design/templates/from-brian/design/src/sleeve.js b/packages/new-design/templates/from-brian/design/src/sleeve.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-brian/design/src/sleeve.js +++ b/packages/new-design/templates/from-brian/design/src/sleeve.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-brian/design/src/sleevecap.js b/packages/new-design/templates/from-brian/design/src/sleevecap.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-brian/design/src/sleevecap.js +++ b/packages/new-design/templates/from-brian/design/src/sleevecap.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-scratch/design/src/box.js b/packages/new-design/templates/from-scratch/design/src/box.js index 4996340212c..6cf9410f099 100644 --- a/packages/new-design/templates/from-scratch/design/src/box.js +++ b/packages/new-design/templates/from-scratch/design/src/box.js @@ -1,14 +1,6 @@ export default (part) => { - const { - Point, points, - Path, paths, - Snippet, snippets, - complete, - options, - sa, - paperless, - macro - } = part.shorthand() + const { Point, points, Path, paths, Snippet, snippets, complete, options, sa, paperless, macro } = + part.shorthand() // Add points to make a box const w = 500 * options.size diff --git a/packages/new-design/templates/from-titan/design/src/back.js b/packages/new-design/templates/from-titan/design/src/back.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-titan/design/src/back.js +++ b/packages/new-design/templates/from-titan/design/src/back.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-titan/design/src/front.js b/packages/new-design/templates/from-titan/design/src/front.js index 77dfee2d0ca..2112dad247c 100644 --- a/packages/new-design/templates/from-titan/design/src/front.js +++ b/packages/new-design/templates/from-titan/design/src/front.js @@ -1,7 +1,5 @@ export default (part) => { - // Do to this part what you wish, before returning it return part } - diff --git a/packages/new-design/templates/from-titan/design/src/index.js b/packages/new-design/templates/from-titan/design/src/index.js index 3480699d85e..f4b1a6d0580 100644 --- a/packages/new-design/templates/from-titan/design/src/index.js +++ b/packages/new-design/templates/from-titan/design/src/index.js @@ -13,7 +13,7 @@ import draftBack from './back' const Design = new freesewing.Design(config, plugins) // Attach Titan's draft methods to the prototype -for (const m of [ 'Back', 'Front' ]) { +for (const m of ['Back', 'Front']) { Design.prototype[`draftTitan${m}`] = function (part) { return new Titan(this.settings)[`draft${m}`](part) } diff --git a/packages/prettier-config/.eslintrc.yml b/packages/prettier-config/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/packages/prettier-config/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/packages/prettier-config/README.md b/packages/prettier-config/README.md index d0d05213b9e..c43c9736e74 100644 --- a/packages/prettier-config/README.md +++ b/packages/prettier-config/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/packages/rehype-jargon/.eslintrc.yml b/packages/rehype-jargon/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/packages/rehype-jargon/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/packages/rehype-jargon/README.md b/packages/rehype-jargon/README.md index 73ee5f9068c..6a5acc6bb84 100644 --- a/packages/rehype-jargon/README.md +++ b/packages/rehype-jargon/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/packages/rehype-jargon/package.json b/packages/rehype-jargon/package.json index 45095d75dce..5f29b7d8484 100644 --- a/packages/rehype-jargon/package.json +++ b/packages/rehype-jargon/package.json @@ -27,13 +27,14 @@ "clean": "rimraf dist", "mbuild": "NO_MINIFY=1 node build.mjs", "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "test": "echo \"rehype-jargon: No tests configured. Perhaps you'd like to do this?\" && exit 0", + "test": "echo \"rehype-jargon: No tests configured. Perhaps you could write some?\" && exit 0", "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", "cibuild_step6": "node build.mjs", "wbuild": "node build.mjs", - "wcibuild_step6": "node build.mjs" + "wcibuild_step6": "node build.mjs", + "lint": "npx eslint 'src/*.mjs'" }, "peerDependencies": {}, "dependencies": { diff --git a/packages/rehype-jargon/src/index.mjs b/packages/rehype-jargon/src/index.mjs index 004249f7d80..a8b9f8548ce 100644 --- a/packages/rehype-jargon/src/index.mjs +++ b/packages/rehype-jargon/src/index.mjs @@ -1,7 +1,8 @@ import { visit } from 'unist-util-visit' import { fromHtml } from 'hast-util-from-html' -const jargonTransform = (term, html) => `${term}${html}` +const jargonTransform = (term, html) => + `${term}${html}` export default (options) => { // Don't bother if we don't have any jargon @@ -17,7 +18,8 @@ export default (options) => { if ( node.tagName === 'em' && Object.keys(options.jargon).indexOf(node.children[0].value.toLowerCase()) !== -1 - ) return true + ) + return true return false } diff --git a/packages/snapseries/.eslintrc.yml b/packages/snapseries/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/packages/snapseries/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/packages/snapseries/README.md b/packages/snapseries/README.md index 44f57453bb3..00901f0c3ef 100644 --- a/packages/snapseries/README.md +++ b/packages/snapseries/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/packages/snapseries/package.json b/packages/snapseries/package.json index b6ddb51d72f..5577a4cdcf4 100644 --- a/packages/snapseries/package.json +++ b/packages/snapseries/package.json @@ -27,13 +27,14 @@ "clean": "rimraf dist", "mbuild": "NO_MINIFY=1 node build.mjs", "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "test": "echo \"snapseries: No tests configured. Perhaps you'd like to do this?\" && exit 0", + "test": "echo \"snapseries: No tests configured. Perhaps you could write some?\" && exit 0", "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", "cibuild_step0": "node build.mjs", "wbuild": "node build.mjs", - "wcibuild_step0": "node build.mjs" + "wcibuild_step0": "node build.mjs", + "lint": "npx eslint 'src/*.mjs'" }, "peerDependencies": {}, "dependencies": {}, diff --git a/plugins/plugin-banner/.eslintrc.yml b/plugins/plugin-banner/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-banner/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-banner/README.md b/plugins/plugin-banner/README.md index b3e4eb62538..25143f917a3 100644 --- a/plugins/plugin-banner/README.md +++ b/plugins/plugin-banner/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-banner/package.json b/plugins/plugin-banner/package.json index 205db3f51d5..520796275e3 100644 --- a/plugins/plugin-banner/package.json +++ b/plugins/plugin-banner/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-banner/tests/plugin.test.mjs b/plugins/plugin-banner/tests/plugin.test.mjs index 5f3e99ac2c8..c3385bdeff9 100644 --- a/plugins/plugin-banner/tests/plugin.test.mjs +++ b/plugins/plugin-banner/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' -import { Design, Pattern } from '@freesewing/core' -import { bannerPlugin } from './dist/index.mjs' +import { Design } from '@freesewing/core' +import { bannerPlugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-banner/tests/shared.test.mjs b/plugins/plugin-banner/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-banner/tests/shared.test.mjs +++ b/plugins/plugin-banner/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-bartack/.eslintrc.yml b/plugins/plugin-bartack/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-bartack/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-bartack/README.md b/plugins/plugin-bartack/README.md index 0386b7eec7d..46f2cd0e68b 100644 --- a/plugins/plugin-bartack/README.md +++ b/plugins/plugin-bartack/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-bartack/package.json b/plugins/plugin-bartack/package.json index cda21d7265d..16d1d53c7e5 100644 --- a/plugins/plugin-bartack/package.json +++ b/plugins/plugin-bartack/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-bartack/src/index.mjs b/plugins/plugin-bartack/src/index.mjs index a94e6bc2506..cbd3ddabf5d 100644 --- a/plugins/plugin-bartack/src/index.mjs +++ b/plugins/plugin-bartack/src/index.mjs @@ -1,8 +1,5 @@ import { version, name } from '../data.mjs' -// Helper method to construct prefixed/suffixed name -const getName = (n, so) => `${so.prefix}${n}${so.suffix}` - // Method that draws the actual bartack const drawBartack = (points, self) => { let path = new self.Path().move(points.path1[0]) diff --git a/plugins/plugin-bartack/tests/plugin.test.mjs b/plugins/plugin-bartack/tests/plugin.test.mjs index 8ef1338402a..28826424a93 100644 --- a/plugins/plugin-bartack/tests/plugin.test.mjs +++ b/plugins/plugin-bartack/tests/plugin.test.mjs @@ -8,7 +8,7 @@ describe('Bartack plugin Tests', () => { it('draws a default bartack from a point', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, macro }) => { points.from = new Point(10, 20) macro('bartack', { anchor: points.from, @@ -38,7 +38,7 @@ describe('Bartack plugin Tests', () => { it('draws a bartack along a path', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, Path, macro }) => { points.from = new Point(10, 20) points.to = new Point(10, 30) macro('bartackAlong', { @@ -69,7 +69,7 @@ describe('Bartack plugin Tests', () => { it('can be called using the bartackFractionAlong syntax', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, Path, macro }) => { points.from = new Point(10, 20) points.to = new Point(10, 100) macro('bartackAlong', { @@ -102,7 +102,7 @@ describe('Bartack plugin Tests', () => { it('can be called using the bartackFractionAlong syntax', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, Path, macro }) => { points.from = new Point(10, 20) points.to = new Point(10, 100) macro('bartackFractionAlong', { @@ -135,7 +135,7 @@ describe('Bartack plugin Tests', () => { it('has configurable length', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, macro }) => { points.from = new Point(10, 20) macro('bartack', { anchor: points.from, @@ -166,7 +166,7 @@ describe('Bartack plugin Tests', () => { it('has configurable width', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, macro }) => { points.from = new Point(10, 20) macro('bartack', { anchor: points.from, @@ -197,7 +197,7 @@ describe('Bartack plugin Tests', () => { it('has configurable angle', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, macro }) => { points.from = new Point(10, 20) macro('bartack', { anchor: points.from, @@ -228,7 +228,7 @@ describe('Bartack plugin Tests', () => { it('has configurable suffix', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, macro }) => { points.from = new Point(10, 20) macro('bartack', { anchor: points.from, @@ -246,7 +246,7 @@ describe('Bartack plugin Tests', () => { it('has configurable prefix', function () { const part = { name: 'test', - draft: ({ Point, points, Path, paths, macro }) => { + draft: ({ Point, points, macro }) => { points.from = new Point(10, 20) macro('bartack', { anchor: points.from, diff --git a/plugins/plugin-bartack/tests/shared.test.mjs b/plugins/plugin-bartack/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-bartack/tests/shared.test.mjs +++ b/plugins/plugin-bartack/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-bundle/.eslintrc.yml b/plugins/plugin-bundle/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-bundle/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-bundle/README.md b/plugins/plugin-bundle/README.md index 336d9cfcc87..37fd8973b32 100644 --- a/plugins/plugin-bundle/README.md +++ b/plugins/plugin-bundle/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-bundle/package.json b/plugins/plugin-bundle/package.json index 83097c6a597..fc79d7f5cef 100644 --- a/plugins/plugin-bundle/package.json +++ b/plugins/plugin-bundle/package.json @@ -39,6 +39,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step2": "node build.mjs", diff --git a/plugins/plugin-bundle/src/index.mjs b/plugins/plugin-bundle/src/index.mjs index d383f1f1ab4..663bf22d309 100644 --- a/plugins/plugin-bundle/src/index.mjs +++ b/plugins/plugin-bundle/src/index.mjs @@ -1,15 +1,15 @@ -import { bannerPlugin } from '../../plugin-banner/src/index.mjs' -import { bartackPlugin } from '../../plugin-bartack/src/index.mjs' -import { buttonsPlugin } from '../../plugin-buttons/src/index.mjs' +import { bannerPlugin } from '../../plugin-banner/src/index.mjs' +import { bartackPlugin } from '../../plugin-bartack/src/index.mjs' +import { buttonsPlugin } from '../../plugin-buttons/src/index.mjs' import { cutonfoldPlugin } from '../../plugin-cutonfold/src/index.mjs' import { dimensionPlugin } from '../../plugin-dimension/src/index.mjs' import { grainlinePlugin } from '../../plugin-grainline/src/index.mjs' -import { logoPlugin } from '../../plugin-logo/src/index.mjs' -import { mirrorPlugin } from '../../plugin-mirror/src/index.mjs' -import { notchesPlugin } from '../../plugin-notches/src/index.mjs' -import { titlePlugin } from '../../plugin-title/src/index.mjs' -import { scaleboxPlugin } from '../../plugin-scalebox/src/index.mjs' -import { roundPlugin } from '../../plugin-round/src/index.mjs' +import { logoPlugin } from '../../plugin-logo/src/index.mjs' +import { mirrorPlugin } from '../../plugin-mirror/src/index.mjs' +import { notchesPlugin } from '../../plugin-notches/src/index.mjs' +import { titlePlugin } from '../../plugin-title/src/index.mjs' +import { scaleboxPlugin } from '../../plugin-scalebox/src/index.mjs' +import { roundPlugin } from '../../plugin-round/src/index.mjs' import { sprinklePlugin } from '../../plugin-sprinkle/src/index.mjs' import { measurementsPlugin } from '../../plugin-measurements/src/index.mjs' import { name, version } from '../data.mjs' @@ -66,4 +66,3 @@ export const plugin = { // More specifically named exports export const bundlePlugin = plugin export const pluginBundle = plugin - diff --git a/plugins/plugin-bundle/tests/plugin.test.mjs b/plugins/plugin-bundle/tests/plugin.test.mjs index c30064b22c8..369d11c19d8 100644 --- a/plugins/plugin-bundle/tests/plugin.test.mjs +++ b/plugins/plugin-bundle/tests/plugin.test.mjs @@ -3,7 +3,7 @@ import chai from 'chai' const expect = chai.expect describe('Round Plugin Tests', () => { - it("FIXME: No plugin tests configured", () => { + it('FIXME: No plugin tests configured', () => { expect(1).to.equal(1) }) }) diff --git a/plugins/plugin-bundle/tests/shared.test.mjs b/plugins/plugin-bundle/tests/shared.test.mjs index fdf846844b0..216a74b956b 100644 --- a/plugins/plugin-bundle/tests/shared.test.mjs +++ b/plugins/plugin-bundle/tests/shared.test.mjs @@ -1,5 +1,5 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests diff --git a/plugins/plugin-bust/.eslintrc.yml b/plugins/plugin-bust/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-bust/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-bust/README.md b/plugins/plugin-bust/README.md index 2b8738de7a6..899b8979db0 100644 --- a/plugins/plugin-bust/README.md +++ b/plugins/plugin-bust/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-bust/package.json b/plugins/plugin-bust/package.json index 4b4198b966e..042c6b1a105 100644 --- a/plugins/plugin-bust/package.json +++ b/plugins/plugin-bust/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-bust/tests/plugin.test.mjs b/plugins/plugin-bust/tests/plugin.test.mjs index 6179ab164a6..b143f303049 100644 --- a/plugins/plugin-bust/tests/plugin.test.mjs +++ b/plugins/plugin-bust/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-bust/tests/shared.test.mjs b/plugins/plugin-bust/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-bust/tests/shared.test.mjs +++ b/plugins/plugin-bust/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-buttons/.eslintrc.yml b/plugins/plugin-buttons/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-buttons/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-buttons/README.md b/plugins/plugin-buttons/README.md index dcecbb161f2..97b4b6cfdb6 100644 --- a/plugins/plugin-buttons/README.md +++ b/plugins/plugin-buttons/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-buttons/package.json b/plugins/plugin-buttons/package.json index 8d99dda8a20..a8879dc2d18 100644 --- a/plugins/plugin-buttons/package.json +++ b/plugins/plugin-buttons/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-buttons/tests/plugin.test.mjs b/plugins/plugin-buttons/tests/plugin.test.mjs index 84c241ba70d..84a0306d0dd 100644 --- a/plugins/plugin-buttons/tests/plugin.test.mjs +++ b/plugins/plugin-buttons/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-buttons/tests/shared.test.mjs b/plugins/plugin-buttons/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-buttons/tests/shared.test.mjs +++ b/plugins/plugin-buttons/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-cutlist/.eslintrc.yml b/plugins/plugin-cutlist/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-cutlist/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-cutlist/README.md b/plugins/plugin-cutlist/README.md index 35af715dcc6..efbba35afb8 100644 --- a/plugins/plugin-cutlist/README.md +++ b/plugins/plugin-cutlist/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-cutlist/package.json b/plugins/plugin-cutlist/package.json index a867db6cf4e..c04903fc247 100644 --- a/plugins/plugin-cutlist/package.json +++ b/plugins/plugin-cutlist/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-cutlist/src/index.mjs b/plugins/plugin-cutlist/src/index.mjs index ddbef57d74c..f40a9e1dd8d 100644 --- a/plugins/plugin-cutlist/src/index.mjs +++ b/plugins/plugin-cutlist/src/index.mjs @@ -1,4 +1,4 @@ -import { name, version } from '../package.json' +import { name, version } from '../data.mjs' import { Point } from '@freesewing/core' export const plugin = { @@ -52,8 +52,6 @@ function setGrain(store, partName, grain = false) { return store } return store.set(path, grain) - - return store } /** Method to add the cutOnFold info */ diff --git a/plugins/plugin-cutlist/tests/plugin.test.mjs b/plugins/plugin-cutlist/tests/plugin.test.mjs index 0f8970dbd23..ed9a3aaeb9a 100644 --- a/plugins/plugin-cutlist/tests/plugin.test.mjs +++ b/plugins/plugin-cutlist/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' -import { Design, Point } from '@freesewing/core' -import { plugin } from '../dist/index.mjs' +import { Design } from '@freesewing/core' +import { plugin } from '../src/index.mjs' const expect = chai.expect @@ -25,7 +25,7 @@ describe('Cutlist Plugin Tests', () => { it('Should handle addCut() with defaults', () => { const part = { name: 'example_part', - draft: ({ addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ addCut }) => { addCut() }, } @@ -39,7 +39,7 @@ describe('Cutlist Plugin Tests', () => { it('Should handle addCut() with non-defaults', () => { const part = { name: 'example_part', - draft: ({ addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ addCut }) => { addCut(3, 'lining', true) }, } @@ -53,7 +53,7 @@ describe('Cutlist Plugin Tests', () => { it('Should remove cut info via addCut(false)', () => { const part = { name: 'example_part', - draft: ({ addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ addCut }) => { addCut(2, 'fabric') addCut(4, 'lining', true) addCut(false, 'lining') @@ -68,7 +68,7 @@ describe('Cutlist Plugin Tests', () => { it('Should remove cut info for a material via removeCut()', () => { const part = { name: 'example_part', - draft: ({ addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ addCut, removeCut }) => { addCut(2, 'fabric') addCut(4, 'lining', true) removeCut('lining') @@ -84,7 +84,7 @@ describe('Cutlist Plugin Tests', () => { it('Should remove cut info for all materials via removeCut(true)', () => { const part = { name: 'example_part', - draft: ({ addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ addCut, removeCut }) => { addCut(2, 'fabric') addCut(4, 'lining', true) removeCut() @@ -99,7 +99,7 @@ describe('Cutlist Plugin Tests', () => { it('Should set the grain via setGrain()', () => { const part = { name: 'example_part', - draft: ({ addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ setGrain }) => { setGrain(45) }, } @@ -112,7 +112,7 @@ describe('Cutlist Plugin Tests', () => { it('Should remove the grain via setGrain(false)', () => { const part = { name: 'example_part', - draft: ({ addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ setGrain }) => { setGrain(45) setGrain(false) }, @@ -126,7 +126,7 @@ describe('Cutlist Plugin Tests', () => { it('Should set the cutOnFold via setCutOnFold(p1, p2)', () => { const part = { name: 'example_part', - draft: ({ Point, addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ Point, setCutOnFold }) => { try { setCutOnFold(new Point(2, 2), new Point(200, 200)) } catch (err) { @@ -146,7 +146,7 @@ describe('Cutlist Plugin Tests', () => { it('Should removet the cutOnFold via setCutOnFold(false)', () => { const part = { name: 'example_part', - draft: ({ Point, addCut, removeCut, setGrain, setCutOnFold }) => { + draft: ({ Point, setCutOnFold }) => { try { setCutOnFold(new Point(2, 2), new Point(200, 200)) setCutOnFold(false) diff --git a/plugins/plugin-cutlist/tests/shared.test.mjs b/plugins/plugin-cutlist/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-cutlist/tests/shared.test.mjs +++ b/plugins/plugin-cutlist/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-cutonfold/.eslintrc.yml b/plugins/plugin-cutonfold/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-cutonfold/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-cutonfold/README.md b/plugins/plugin-cutonfold/README.md index 12043443370..bfe918e86e9 100644 --- a/plugins/plugin-cutonfold/README.md +++ b/plugins/plugin-cutonfold/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-cutonfold/package.json b/plugins/plugin-cutonfold/package.json index b17d01c9041..1a3500f1c86 100644 --- a/plugins/plugin-cutonfold/package.json +++ b/plugins/plugin-cutonfold/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-cutonfold/tests/plugin.test.mjs b/plugins/plugin-cutonfold/tests/plugin.test.mjs index 15697288a0c..b8502c1d7a2 100644 --- a/plugins/plugin-cutonfold/tests/plugin.test.mjs +++ b/plugins/plugin-cutonfold/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' -import { Design, Pattern, round } from '@freesewing/core' -import { plugin } from './dist/index.mjs' +import { Design, round } from '@freesewing/core' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-cutonfold/tests/shared.test.mjs b/plugins/plugin-cutonfold/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-cutonfold/tests/shared.test.mjs +++ b/plugins/plugin-cutonfold/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-dimension/.eslintrc.yml b/plugins/plugin-dimension/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-dimension/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-dimension/README.md b/plugins/plugin-dimension/README.md index 739dd0b77c4..413dad82fdc 100644 --- a/plugins/plugin-dimension/README.md +++ b/plugins/plugin-dimension/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-dimension/package.json b/plugins/plugin-dimension/package.json index f44f7c439c6..005dcd34df6 100644 --- a/plugins/plugin-dimension/package.json +++ b/plugins/plugin-dimension/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-dimension/src/index.mjs b/plugins/plugin-dimension/src/index.mjs index 07a51f765e4..092aff47f4c 100644 --- a/plugins/plugin-dimension/src/index.mjs +++ b/plugins/plugin-dimension/src/index.mjs @@ -138,7 +138,7 @@ export const plugin = { } }, // Remove all dimensions (with standard prefix) - rmad: function (so) { + rmad: function () { for (let type of ['paths', 'points']) { for (let id in this[type]) { if (id.slice(0, prefix.length) === prefix) delete this[type][id] diff --git a/plugins/plugin-dimension/tests/plugin.test.mjs b/plugins/plugin-dimension/tests/plugin.test.mjs index 50e1b65fa7a..3553909c138 100644 --- a/plugins/plugin-dimension/tests/plugin.test.mjs +++ b/plugins/plugin-dimension/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' -import { Design, Pattern, round } from '@freesewing/core' -import { plugin } from './dist/index.mjs' +import { Design, round } from '@freesewing/core' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-dimension/tests/shared.test.mjs b/plugins/plugin-dimension/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-dimension/tests/shared.test.mjs +++ b/plugins/plugin-dimension/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-flip/.eslintrc.yml b/plugins/plugin-flip/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-flip/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-flip/README.md b/plugins/plugin-flip/README.md index 62eeca70b31..e3ed1f0753f 100644 --- a/plugins/plugin-flip/README.md +++ b/plugins/plugin-flip/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-flip/package.json b/plugins/plugin-flip/package.json index fa35c0debd0..da05e882262 100644 --- a/plugins/plugin-flip/package.json +++ b/plugins/plugin-flip/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-flip/tests/plugin.test.mjs b/plugins/plugin-flip/tests/plugin.test.mjs index ae4ddb03f4f..3e8963f242a 100644 --- a/plugins/plugin-flip/tests/plugin.test.mjs +++ b/plugins/plugin-flip/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect @@ -46,7 +46,7 @@ describe('Flip Plugin Tests', () => { it('Should flip points in a part on their vertical axis', () => { const part = { name: 'test', - draft: ({ Point, points, macro, paths, Path, snippets, Snippet }) => { + draft: ({ Point, points, macro }) => { points.from = new Point(10, 20) points.to = new Point(40, 230) macro('flip', {}) @@ -63,7 +63,7 @@ describe('Flip Plugin Tests', () => { it('Should flip points in a path on their vertical axis', () => { const part = { name: 'test', - draft: ({ Point, points, macro, paths, Path, snippets, Snippet }) => { + draft: ({ Point, points, macro, paths, Path }) => { points.from = new Point(10, 20) points.cp1 = new Point(40, 0) points.cp2 = new Point(60, 30) diff --git a/plugins/plugin-flip/tests/shared.test.mjs b/plugins/plugin-flip/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-flip/tests/shared.test.mjs +++ b/plugins/plugin-flip/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-gore/.eslintrc.yml b/plugins/plugin-gore/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-gore/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-gore/README.md b/plugins/plugin-gore/README.md index fc3f73d8741..8d8660af676 100644 --- a/plugins/plugin-gore/README.md +++ b/plugins/plugin-gore/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-gore/package.json b/plugins/plugin-gore/package.json index 573bf7d2f84..37fe2a5ce74 100644 --- a/plugins/plugin-gore/package.json +++ b/plugins/plugin-gore/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-gore/tests/plugin.test.mjs b/plugins/plugin-gore/tests/plugin.test.mjs index fa8dbf55a6a..1ff95ff2b0f 100644 --- a/plugins/plugin-gore/tests/plugin.test.mjs +++ b/plugins/plugin-gore/tests/plugin.test.mjs @@ -1,5 +1,5 @@ import chai from 'chai' -import { round, Design, Pattern } from '@freesewing/core' +import { round, Design } from '@freesewing/core' import { plugin } from '../src/index.mjs' const expect = chai.expect @@ -8,7 +8,7 @@ describe('Gore Plugin Tests', () => { it('Should create a default gore', () => { const part = { name: 'test', - draft: ({ Point, points, macro, paths, Path, snippets, Snippet }) => { + draft: ({ Point, points, macro }) => { points.anchorPoint = new Point(50, 50) macro('gore', { from: points.anchorPoint, @@ -33,7 +33,7 @@ describe('Gore Plugin Tests', () => { it('Should use a configurable number of gores', () => { const part = { name: 'test', - draft: ({ Point, points, macro, paths, Path, snippets, Snippet }) => { + draft: ({ Point, points, macro }) => { points.anchorPoint = new Point(50, 50) macro('gore', { from: points.anchorPoint, @@ -59,7 +59,7 @@ describe('Gore Plugin Tests', () => { it('Should use a configurable extra length', () => { const part = { name: 'test', - draft: ({ Point, points, macro, paths, Path, snippets, Snippet }) => { + draft: ({ Point, points, macro }) => { points.anchorPoint = new Point(50, 50) macro('gore', { from: points.anchorPoint, @@ -85,7 +85,7 @@ describe('Gore Plugin Tests', () => { it('Should use a configurable radius', () => { const part = { name: 'test', - draft: ({ Point, points, macro, paths, Path, snippets, Snippet }) => { + draft: ({ Point, points, macro }) => { points.anchorPoint = new Point(50, 50) macro('gore', { from: points.anchorPoint, @@ -111,7 +111,7 @@ describe('Gore Plugin Tests', () => { it('Should generate a seam path', () => { const part = { name: 'test', - draft: ({ Point, points, macro, paths, Path, snippets, Snippet }) => { + draft: ({ Point, points, macro }) => { points.anchorPoint = new Point(50, 50) macro('gore', { from: points.anchorPoint, diff --git a/plugins/plugin-gore/tests/shared.test.mjs b/plugins/plugin-gore/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-gore/tests/shared.test.mjs +++ b/plugins/plugin-gore/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-grainline/.eslintrc.yml b/plugins/plugin-grainline/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-grainline/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-grainline/README.md b/plugins/plugin-grainline/README.md index 62762b25e6f..4a146280d2e 100644 --- a/plugins/plugin-grainline/README.md +++ b/plugins/plugin-grainline/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-grainline/package.json b/plugins/plugin-grainline/package.json index 64ba3ea94d8..c0f4b843e90 100644 --- a/plugins/plugin-grainline/package.json +++ b/plugins/plugin-grainline/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-grainline/tests/shared.test.mjs b/plugins/plugin-grainline/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-grainline/tests/shared.test.mjs +++ b/plugins/plugin-grainline/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-i18n/.eslintrc.yml b/plugins/plugin-i18n/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-i18n/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-i18n/README.md b/plugins/plugin-i18n/README.md index f471cf7f22a..738620d517a 100644 --- a/plugins/plugin-i18n/README.md +++ b/plugins/plugin-i18n/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-i18n/package.json b/plugins/plugin-i18n/package.json index 5e57f859f86..c50742a688b 100644 --- a/plugins/plugin-i18n/package.json +++ b/plugins/plugin-i18n/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-i18n/tests/shared.test.mjs b/plugins/plugin-i18n/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-i18n/tests/shared.test.mjs +++ b/plugins/plugin-i18n/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-logo/.eslintrc.yml b/plugins/plugin-logo/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-logo/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-logo/README.md b/plugins/plugin-logo/README.md index dafa871eb4e..a0f200441de 100644 --- a/plugins/plugin-logo/README.md +++ b/plugins/plugin-logo/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-logo/package.json b/plugins/plugin-logo/package.json index 83339f093fe..bd4290961f6 100644 --- a/plugins/plugin-logo/package.json +++ b/plugins/plugin-logo/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-logo/src/index.mjs b/plugins/plugin-logo/src/index.mjs index 572f6a80049..8c96eb26b04 100644 --- a/plugins/plugin-logo/src/index.mjs +++ b/plugins/plugin-logo/src/index.mjs @@ -1,6 +1,7 @@ import { name, version } from '../data.mjs' -const logo = '' +const logo = + '' export const plugin = { name, diff --git a/plugins/plugin-logo/tests/plugin.test.mjs b/plugins/plugin-logo/tests/plugin.test.mjs index 89a54129c73..b4b01f5c647 100644 --- a/plugins/plugin-logo/tests/plugin.test.mjs +++ b/plugins/plugin-logo/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from '../dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-logo/tests/shared.test.mjs b/plugins/plugin-logo/tests/shared.test.mjs index fdf846844b0..216a74b956b 100644 --- a/plugins/plugin-logo/tests/shared.test.mjs +++ b/plugins/plugin-logo/tests/shared.test.mjs @@ -1,5 +1,5 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests diff --git a/plugins/plugin-measurements/.eslintrc.yml b/plugins/plugin-measurements/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-measurements/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-measurements/README.md b/plugins/plugin-measurements/README.md index 7be8e231f20..eb7532039e1 100644 --- a/plugins/plugin-measurements/README.md +++ b/plugins/plugin-measurements/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-measurements/package.json b/plugins/plugin-measurements/package.json index e7f56aa5407..795b273cd09 100644 --- a/plugins/plugin-measurements/package.json +++ b/plugins/plugin-measurements/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-measurements/tests/plugin.test.mjs b/plugins/plugin-measurements/tests/plugin.test.mjs index 7082209b513..2d558136917 100644 --- a/plugins/plugin-measurements/tests/plugin.test.mjs +++ b/plugins/plugin-measurements/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect @@ -15,7 +15,7 @@ const measurements = { const part = { name: 'test', - draft: ({ points, Point, macro }) => { + draft: ({ points, Point }) => { points.from = new Point(10, 20) points.to = new Point(10, 230) }, @@ -35,7 +35,6 @@ describe('Measurements Plugin Tests', () => { }) it('Should calculate seatFront from seat and seatBack', function () { - const config = { measurements: {} } const testPattern = new Design({ measurements: {}, plugins: [plugin], @@ -48,7 +47,6 @@ describe('Measurements Plugin Tests', () => { }) it('Should calculate waistFrontArc and waistBackArc from waist and waistBack', function () { - const config = { measurements: {} } const testPattern = new Design({ measurements: {}, plugins: [plugin], @@ -62,7 +60,6 @@ describe('Measurements Plugin Tests', () => { }) it('Should calculate crossSeamBack from crossSeam and crossSeamFront', function () { - const config = { measurements: {} } const testPattern = new Design({ measurements: {}, plugins: [plugin], diff --git a/plugins/plugin-measurements/tests/shared.test.mjs b/plugins/plugin-measurements/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-measurements/tests/shared.test.mjs +++ b/plugins/plugin-measurements/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-mirror/.eslintrc.yml b/plugins/plugin-mirror/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-mirror/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-mirror/README.md b/plugins/plugin-mirror/README.md index 26f6c1b108d..e9f317d65d6 100644 --- a/plugins/plugin-mirror/README.md +++ b/plugins/plugin-mirror/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-mirror/package.json b/plugins/plugin-mirror/package.json index ee11382bc32..5f2532daf5c 100644 --- a/plugins/plugin-mirror/package.json +++ b/plugins/plugin-mirror/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-mirror/src/index.mjs b/plugins/plugin-mirror/src/index.mjs index 7aaf7b1d554..92524990314 100644 --- a/plugins/plugin-mirror/src/index.mjs +++ b/plugins/plugin-mirror/src/index.mjs @@ -38,7 +38,7 @@ export const plugin = { const ops = ['from', 'to', 'cp1', 'cp2'] if (paths !== null) { - paths.forEach((path, i) => { + paths.forEach((path) => { // Try to find point name from path by looking in list of all points let foundId = null for (let id of Object.keys(this.paths)) { @@ -60,7 +60,7 @@ export const plugin = { // Iterate over all possible path op points and clone/move point const pathOp = path.ops[op][type] if (typeof pathOp !== 'undefined') { - ;[pathOp.x, pathOp.y] = mirrorPoint(pathOp) + [pathOp.x, pathOp.y] = mirrorPoint(pathOp) pathOp.attributes.set('mirrored', true) } } @@ -85,7 +85,7 @@ export const plugin = { this.points[`${prefix}${capFirst(foundId)}`] = point } } - ;[point.x, point.y] = mirrorPoint(point) + [point.x, point.y] = mirrorPoint(point) point.attributes.set('mirrored', true) }) } diff --git a/plugins/plugin-mirror/tests/plugin.test.mjs b/plugins/plugin-mirror/tests/plugin.test.mjs index 1b158d30ca3..1a6b755410a 100644 --- a/plugins/plugin-mirror/tests/plugin.test.mjs +++ b/plugins/plugin-mirror/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from '../dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-mirror/tests/shared.test.mjs b/plugins/plugin-mirror/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-mirror/tests/shared.test.mjs +++ b/plugins/plugin-mirror/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-notches/.eslintrc.yml b/plugins/plugin-notches/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-notches/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-notches/README.md b/plugins/plugin-notches/README.md index e4f603e984a..213b1ffbcfb 100644 --- a/plugins/plugin-notches/README.md +++ b/plugins/plugin-notches/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-notches/package.json b/plugins/plugin-notches/package.json index b1f05f9a50a..3ab0a3b8630 100644 --- a/plugins/plugin-notches/package.json +++ b/plugins/plugin-notches/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-notches/tests/plugin.test.mjs b/plugins/plugin-notches/tests/plugin.test.mjs index bb6ec6f768a..2a6c27d1bde 100644 --- a/plugins/plugin-notches/tests/plugin.test.mjs +++ b/plugins/plugin-notches/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from '../dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-notches/tests/shared.test.mjs b/plugins/plugin-notches/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-notches/tests/shared.test.mjs +++ b/plugins/plugin-notches/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-round/.eslintrc.yml b/plugins/plugin-round/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-round/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-round/README.md b/plugins/plugin-round/README.md index dfb98483045..99098ac0765 100644 --- a/plugins/plugin-round/README.md +++ b/plugins/plugin-round/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-round/package.json b/plugins/plugin-round/package.json index 63ee0814c9a..3ee2a1d3113 100644 --- a/plugins/plugin-round/package.json +++ b/plugins/plugin-round/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-round/src/index.mjs b/plugins/plugin-round/src/index.mjs index ed56c24eb7b..83053a05431 100644 --- a/plugins/plugin-round/src/index.mjs +++ b/plugins/plugin-round/src/index.mjs @@ -41,4 +41,3 @@ export const plugin = { // More specifically named exports export const roundPlugin = plugin export const pluginRound = plugin - diff --git a/plugins/plugin-round/tests/plugin.test.mjs b/plugins/plugin-round/tests/plugin.test.mjs index c30064b22c8..369d11c19d8 100644 --- a/plugins/plugin-round/tests/plugin.test.mjs +++ b/plugins/plugin-round/tests/plugin.test.mjs @@ -3,7 +3,7 @@ import chai from 'chai' const expect = chai.expect describe('Round Plugin Tests', () => { - it("FIXME: No plugin tests configured", () => { + it('FIXME: No plugin tests configured', () => { expect(1).to.equal(1) }) }) diff --git a/plugins/plugin-round/tests/shared.test.mjs b/plugins/plugin-round/tests/shared.test.mjs index fdf846844b0..216a74b956b 100644 --- a/plugins/plugin-round/tests/shared.test.mjs +++ b/plugins/plugin-round/tests/shared.test.mjs @@ -1,5 +1,5 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests diff --git a/plugins/plugin-scalebox/.eslintrc.yml b/plugins/plugin-scalebox/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-scalebox/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-scalebox/README.md b/plugins/plugin-scalebox/README.md index a8b3f3fd3ab..f2b9b827a3f 100644 --- a/plugins/plugin-scalebox/README.md +++ b/plugins/plugin-scalebox/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-scalebox/package.json b/plugins/plugin-scalebox/package.json index 406a335fc29..e73301e3839 100644 --- a/plugins/plugin-scalebox/package.json +++ b/plugins/plugin-scalebox/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-scalebox/src/scalebox.mjs b/plugins/plugin-scalebox/src/scalebox.mjs index 6c05dca0073..35fec755fcf 100644 --- a/plugins/plugin-scalebox/src/scalebox.mjs +++ b/plugins/plugin-scalebox/src/scalebox.mjs @@ -157,7 +157,7 @@ export function scalebox(so) { if (name.indexOf('@freesewing/') !== -1) name = name.replace('@freesewing/', '') this.points.__scaleboxTitle = this.points.__scaleboxTitle .attr('data-text', name) - .attr('data-text', 'v' + this.context.config?.data?.version || 'No Version') + .attr('data-text', 'v' + (this.context.config?.data?.version || 'No Version')) } this.points.__scaleboxTitle.attributes.add('data-text-class', 'text-lg') // Text diff --git a/plugins/plugin-scalebox/tests/plugin.test.mjs b/plugins/plugin-scalebox/tests/plugin.test.mjs index 3e8d4e7c730..1c77708efa4 100644 --- a/plugins/plugin-scalebox/tests/plugin.test.mjs +++ b/plugins/plugin-scalebox/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design, round } from '@freesewing/core' -import { plugin } from '../dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-scalebox/tests/shared.test.mjs b/plugins/plugin-scalebox/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-scalebox/tests/shared.test.mjs +++ b/plugins/plugin-scalebox/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-sprinkle/.eslintrc.yml b/plugins/plugin-sprinkle/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-sprinkle/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-sprinkle/README.md b/plugins/plugin-sprinkle/README.md index bfd8d8a188e..e6f31f7be1c 100644 --- a/plugins/plugin-sprinkle/README.md +++ b/plugins/plugin-sprinkle/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-sprinkle/package.json b/plugins/plugin-sprinkle/package.json index b02918dc6fb..90f3957de37 100644 --- a/plugins/plugin-sprinkle/package.json +++ b/plugins/plugin-sprinkle/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-sprinkle/src/index.mjs b/plugins/plugin-sprinkle/src/index.mjs index 209090d52db..16e29577838 100644 --- a/plugins/plugin-sprinkle/src/index.mjs +++ b/plugins/plugin-sprinkle/src/index.mjs @@ -17,4 +17,3 @@ export const plugin = { // More specifically named exports export const sprinklePlugin = plugin export const pluginSprinkle = plugin - diff --git a/plugins/plugin-sprinkle/tests/plugin.test.mjs b/plugins/plugin-sprinkle/tests/plugin.test.mjs index e38acdf4a8c..8f7b2632fe6 100644 --- a/plugins/plugin-sprinkle/tests/plugin.test.mjs +++ b/plugins/plugin-sprinkle/tests/plugin.test.mjs @@ -1,11 +1,11 @@ import chai from 'chai' //import freesewing from '@freesewing/core' -//import plugin from '../dist/index.mjs' +//import { plugin } from '../src/index.mjs' -const expect = chai.expect; +const expect = chai.expect describe('Sprinkle Plugin Tests', () => { - it("FIXME: No plugin tests defined", () => { + it('FIXME: No plugin tests defined', () => { expect(1).to.equal(1) }) }) diff --git a/plugins/plugin-sprinkle/tests/shared.test.mjs b/plugins/plugin-sprinkle/tests/shared.test.mjs index fdf846844b0..216a74b956b 100644 --- a/plugins/plugin-sprinkle/tests/shared.test.mjs +++ b/plugins/plugin-sprinkle/tests/shared.test.mjs @@ -1,5 +1,5 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests diff --git a/plugins/plugin-svgattr/.eslintrc.yml b/plugins/plugin-svgattr/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-svgattr/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-svgattr/README.md b/plugins/plugin-svgattr/README.md index 5d0d4058db5..600cd8facc4 100644 --- a/plugins/plugin-svgattr/README.md +++ b/plugins/plugin-svgattr/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-svgattr/package.json b/plugins/plugin-svgattr/package.json index 988428950a1..765c7d8c80f 100644 --- a/plugins/plugin-svgattr/package.json +++ b/plugins/plugin-svgattr/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-svgattr/src/index.mjs b/plugins/plugin-svgattr/src/index.mjs index c4074db30d4..5be3d2902eb 100644 --- a/plugins/plugin-svgattr/src/index.mjs +++ b/plugins/plugin-svgattr/src/index.mjs @@ -15,4 +15,3 @@ export const svgAttrPlugin = plugin export const svgattrPlugin = plugin export const pluginSvgAttr = plugin export const pluginSvgattr = plugin - diff --git a/plugins/plugin-svgattr/tests/plugin.test.mjs b/plugins/plugin-svgattr/tests/plugin.test.mjs index ea337fafa1d..55d3d85e1ab 100644 --- a/plugins/plugin-svgattr/tests/plugin.test.mjs +++ b/plugins/plugin-svgattr/tests/plugin.test.mjs @@ -1,9 +1,9 @@ import chai from 'chai' -const expect = chai.expect; +const expect = chai.expect describe('SVG Attributed Plugin Tests', () => { - it("FIXME: No plugin tests defined", () => { + it('FIXME: No plugin tests defined', () => { expect(1).to.equal(1) }) }) diff --git a/plugins/plugin-svgattr/tests/shared.test.mjs b/plugins/plugin-svgattr/tests/shared.test.mjs index fdf846844b0..216a74b956b 100644 --- a/plugins/plugin-svgattr/tests/shared.test.mjs +++ b/plugins/plugin-svgattr/tests/shared.test.mjs @@ -1,5 +1,5 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests diff --git a/plugins/plugin-theme/.eslintrc.yml b/plugins/plugin-theme/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-theme/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-theme/README.md b/plugins/plugin-theme/README.md index e3a7044ed12..3561065017d 100644 --- a/plugins/plugin-theme/README.md +++ b/plugins/plugin-theme/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-theme/package.json b/plugins/plugin-theme/package.json index eed2cc79820..07984ccb974 100644 --- a/plugins/plugin-theme/package.json +++ b/plugins/plugin-theme/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-theme/tests/plugin.test.mjs b/plugins/plugin-theme/tests/plugin.test.mjs index cc5db4b6fbd..5dfdbe63148 100644 --- a/plugins/plugin-theme/tests/plugin.test.mjs +++ b/plugins/plugin-theme/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from '../dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-theme/tests/shared.test.mjs b/plugins/plugin-theme/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-theme/tests/shared.test.mjs +++ b/plugins/plugin-theme/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-title/.eslintrc.yml b/plugins/plugin-title/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-title/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-title/README.md b/plugins/plugin-title/README.md index 6c794ff25fc..350c72fd69b 100644 --- a/plugins/plugin-title/README.md +++ b/plugins/plugin-title/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-title/package.json b/plugins/plugin-title/package.json index 9d9e2838d6e..e2be634ec63 100644 --- a/plugins/plugin-title/package.json +++ b/plugins/plugin-title/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-title/src/index.mjs b/plugins/plugin-title/src/index.mjs index 5f714526474..f644744b8d4 100644 --- a/plugins/plugin-title/src/index.mjs +++ b/plugins/plugin-title/src/index.mjs @@ -81,7 +81,7 @@ export const plugin = { this.points[`_${prefix}_titlePattern`] = so.at .shift(-90 - so.rotation, shift * so.scale) .attr('data-text', name) - .attr('data-text', 'v' + this.context.config?.data?.version || 'No Version') + .attr('data-text', 'v' + (this.context.config?.data?.version || 'No Version')) .attr('data-text-class', 'fill-note') .attr('data-text-transform', transform(so.at.shift(-90 - so.rotation, shift * so.scale))) if (this.context.settings.metadata && this.context.settings.metadata.for) { diff --git a/plugins/plugin-title/tests/plugin.test.mjs b/plugins/plugin-title/tests/plugin.test.mjs index ffc517b56c7..a51e5126bc4 100644 --- a/plugins/plugin-title/tests/plugin.test.mjs +++ b/plugins/plugin-title/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect @@ -9,7 +9,7 @@ describe('Title Plugin Tests', () => { const part = { name: 'test', draft: ({ points, Point, macro }) => { - points.anchor = new pattern.Point(-12, -34) + points.anchor = new Point(-12, -34) macro('title', { at: points.anchor, nr: 3, @@ -47,7 +47,7 @@ describe('Title Plugin Tests', () => { const part = { name: 'test', draft: ({ points, Point, macro }) => { - points.anchor = new pattern.Point(-12, -34).attr('data-text', '#') + points.anchor = new Point(-12, -34).attr('data-text', '#') macro('title', { at: points.anchor, nr: 3, @@ -76,7 +76,7 @@ describe('Title Plugin Tests', () => { const part = { name: 'test', draft: ({ points, Point, macro }) => { - points.anchor = new pattern.Point(-12, -34).attr('data-text', '#') + points.anchor = new Point(-12, -34).attr('data-text', '#') macro('title', { at: points.anchor, nr: 3, diff --git a/plugins/plugin-title/tests/shared.test.mjs b/plugins/plugin-title/tests/shared.test.mjs index ea9a6b5c890..216a74b956b 100644 --- a/plugins/plugin-title/tests/shared.test.mjs +++ b/plugins/plugin-title/tests/shared.test.mjs @@ -1,6 +1,7 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests sharedPluginTests(plugin) + diff --git a/plugins/plugin-versionfree-svg/.eslintrc.yml b/plugins/plugin-versionfree-svg/.eslintrc.yml new file mode 100644 index 00000000000..b39fd0463e8 --- /dev/null +++ b/plugins/plugin-versionfree-svg/.eslintrc.yml @@ -0,0 +1,18 @@ +env: + browser: true + es2021: true +extends: eslint:recommended +overrides: + - files: ["*.yaml", "*.yml"] + plugins: ["yaml"] + extends: ["plugin:yaml/recommended"] +parserOptions: + ecmaVersion: latest + sourceType: module +rules: {} +globals: + it: readonly + describe: readonly + process: readonly + __dirname: readonly + diff --git a/plugins/plugin-versionfree-svg/README.md b/plugins/plugin-versionfree-svg/README.md index c12ee7cf6dc..0f6b0ea07ee 100644 --- a/plugins/plugin-versionfree-svg/README.md +++ b/plugins/plugin-versionfree-svg/README.md @@ -22,7 +22,7 @@
All Contributors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍

Adam Tomkins

📖

Alexandre Ignjatovic

💻

AlfaLyr

💻 🔌 🎨

Andrew James

📖

Anneke

📖 🌍

Annie Kao

📖

Anternative

📖

Anthony

💬

Ari Grayzel-student

💻

Bart

📖

BenJamesBen

💻 📖

Cameron Dubas

📖

Carsten Biebricher

📖

Cathy Zoller

📖

Chantal Lapointe

🌍

Damien PIQUET

💻

Darigov Research

📖 🤔

Elena FdR

📖 📝

Emmanuel Nyachoke

💻 📖

Enoch Riese

💻

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

📖

Frédéric

🌍

Glenn Matthews

📖

Greg Sadetsky

📖

Igor Couto

🐛

Ikko Ashimine

📖

Irapeke

🌍

Jacek Sawoszczuk

📖

Jason Williams

📖

Jeremy Jackson

💻

Jeroen Hoek

📖

Joe Schofield

📖

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

📖

Kake

📖

Kapunahele Wong

📖

Karen

📖 📋

Katie McGinley

📖

Kieran Klaassen

💻

Kittycatou

🌍

Kris

📖

Kristin Ruben

💻

Loudepeuter

🌍

Lucian

📋

Marcus

🌍

Martin Tribo

📖

Nadege Michel

⚠️ 📖

Natalia

💻 🎨 📝

Nathan Yergler

📖

Nick Dower

📖 💻 🐛

Nikhil Chelliah

📖

OysteinHoiby

💻

Patrick Forringer

🔌

Paul

📖 📝 🌍

Phillip Thelen

💻

Pixieish

📖

Prof. dr. Sorcha Ní Dhubhghaill

📖

Quentin FELIX

💻 🎨

Rik Hekker

🐛

Sam Livingston-Gray

📖

Sanne

💻 📖

Sara Latorre

🌍

SeaZeeZee

📖 💻

SimonbJohnson

🐛

Slylele

📖 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 📖 💻

Tríona

📖

Unmutual

📖

Wouter van Wageningen

💻 🎨 🔧

amysews

📖

anna-puk

💻

beautifulsummermoon

🌍

berce

📖

biou

💻

bobgeorgethe3rd

💻 📖 🎨

brmlyklr

📖

chri5b

💻 ⚠️

dingcycle

🌍

drowned-in-books

💬

econo202

📖

ericamattos

🌍

fightingrabbit

💻

gaylyndie

📖

grimlokason

💻

hellgy

🎨

jackseye

📖

marckiesel

🌍

mesil

🐛

starfetch

💻 📖 🌍 🎨

ttimearl

🖋

tuesgloomsday

📖

valadaptive

💻

viocky

🌍

woolishboy

💻

yc

🌍
diff --git a/plugins/plugin-versionfree-svg/package.json b/plugins/plugin-versionfree-svg/package.json index a8cc6935719..30aadecbc0b 100644 --- a/plugins/plugin-versionfree-svg/package.json +++ b/plugins/plugin-versionfree-svg/package.json @@ -38,6 +38,7 @@ "vbuild": "VERBOSE=1 node build.mjs", "lab": "cd ../../sites/lab && yarn start", "tips": "node ../../scripts/help.mjs", + "lint": "npx eslint 'src/**' 'tests/*.mjs'", "prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'", "testci": "npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js", "cibuild_step1": "node build.mjs", diff --git a/plugins/plugin-versionfree-svg/src/index.mjs b/plugins/plugin-versionfree-svg/src/index.mjs index dbee961c88c..ccfcc67e68b 100644 --- a/plugins/plugin-versionfree-svg/src/index.mjs +++ b/plugins/plugin-versionfree-svg/src/index.mjs @@ -5,7 +5,7 @@ export const plugin = { version, hooks: { preRender: function (svg) { - for (const [key, val] of Object.entries(svg.attributes.list)) { + for (const key in svg.attributes.list) { if (key.toLowerCase().slice(0, 10) === 'freesewing') delete svg.attributes.list[key] } }, @@ -15,4 +15,3 @@ export const plugin = { // More specifically named exports export const versionfreeSvgPlugin = plugin export const pluginVersionfreeSvg = plugin - diff --git a/plugins/plugin-versionfree-svg/tests/plugin.test.mjs b/plugins/plugin-versionfree-svg/tests/plugin.test.mjs index a9aae599349..6a9d4171b95 100644 --- a/plugins/plugin-versionfree-svg/tests/plugin.test.mjs +++ b/plugins/plugin-versionfree-svg/tests/plugin.test.mjs @@ -1,6 +1,6 @@ import chai from 'chai' import { Design } from '@freesewing/core' -import { plugin } from '../dist/index.mjs' +import { plugin } from '../src/index.mjs' const expect = chai.expect diff --git a/plugins/plugin-versionfree-svg/tests/shared.test.mjs b/plugins/plugin-versionfree-svg/tests/shared.test.mjs index fdf846844b0..216a74b956b 100644 --- a/plugins/plugin-versionfree-svg/tests/shared.test.mjs +++ b/plugins/plugin-versionfree-svg/tests/shared.test.mjs @@ -1,5 +1,5 @@ // This file is auto-generated | Any changes you make will be overwritten. -import { plugin } from './dist/index.mjs' +import { plugin } from '../src/index.mjs' import { sharedPluginTests } from '../../../tests/plugins/shared.mjs' // Run shared tests diff --git a/scripts/reconfigure.mjs b/scripts/reconfigure.mjs index 86f81e3dce8..25160d9c1be 100644 --- a/scripts/reconfigure.mjs +++ b/scripts/reconfigure.mjs @@ -34,12 +34,13 @@ const repo = { exceptions: readConfigFile('exceptions.yaml'), templates: { pkg: readTemplateFile('package.dflt.json'), - data: readTemplateFile('data.dflt.mjs'), changelog: readTemplateFile('changelog.dflt.md'), readme: readTemplateFile('readme.dflt.md'), build: readTemplateFile('build.dflt.mjs'), - designTests: readTemplateFile('design.test.mjs'), - pluginTests: readTemplateFile('plugin.test.mjs') + eslint: readTemplateFile('eslintrc.yml'), + pluginTests: readTemplateFile('plugin.test.mjs'), + designTests: readTemplateFile('design.test.mjs.mustache'), + data: readTemplateFile('data.dflt.mjs.mustache'), }, dirs: foldersByType(), contributors: fs.readFileSync(path.join(cwd, 'CONTRIBUTORS.md'), 'utf-8'), @@ -88,6 +89,10 @@ for (const pkg of Object.values(software)) { repo.templates.build ) } + fs.writeFileSync( + path.join(cwd, pkg.folder, pkg.name, '.eslintrc.yml'), + repo.templates.eslint + ) fs.writeFileSync( path.join(cwd, pkg.folder, pkg.name, 'CHANGELOG.md'), changelog(pkg) diff --git a/sites/backend/package.json b/sites/backend/package.json index 885cc7da4d6..6e35ae86f39 100644 --- a/sites/backend/package.json +++ b/sites/backend/package.json @@ -22,7 +22,6 @@ "testci_IGNORE": "babel-node --presets '@babel/preset-env' scripts/testci.js", "clean": "rimraf dist", "prettier": "npx prettier --write 'src/**' 'tests/**'", - "lint": "eslint --fix \"src/*.js\"", "develop": "backpack", "build": "backpack build", "start:prod": "backpack build && pm2 start build/main.js --name freesewing-backend", diff --git a/sites/backend/src/cli/data.js b/sites/backend/src/cli/data.js index 9dc7d21c756..b0aa71e102b 100644 --- a/sites/backend/src/cli/data.js +++ b/sites/backend/src/cli/data.js @@ -1,4 +1,4 @@ -import { withBreasts, withoutBreasts } from '@freesewing/models'; +import { withBreasts, withoutBreasts } from '@freesewing/models' export default { users: [ @@ -10,15 +10,15 @@ export default { role: 'user', settings: { language: 'nl', - units: 'imperial' + units: 'imperial', }, patron: 2, consent: { profile: true, measurements: true, - openData: true + openData: true, }, - status: 'active' + status: 'active', }, { email: 'test@freesewing.org', @@ -28,15 +28,15 @@ export default { role: 'user', settings: { language: 'nl', - units: 'imperial' + units: 'imperial', }, patron: 4, consent: { profile: true, measurements: true, - openData: true + openData: true, }, - status: 'active' + status: 'active', }, { email: 'admin@freesewing.org', @@ -52,16 +52,16 @@ export default { patron: 8, settings: { language: 'en', - units: 'metric' + units: 'metric', }, consent: { profile: true, measurements: true, - openData: true + openData: true, }, newsletter: true, - status: 'active' - } + status: 'active', + }, ], people: [ { @@ -72,7 +72,7 @@ export default { breasts: false, units: 'metric', notes: 'This is an example person', - measurements: withoutBreasts.size42 + measurements: withoutBreasts.size42, }, { handle: 'persb', @@ -84,37 +84,37 @@ export default { notes: 'This is an example person', measurements: { ...withBreasts.size36, - doesNotExist: 234 - } + doesNotExist: 234, + }, }, ], patterns: [ { - handle: "recip", - name: "Example pattern", - notes: "These are the pattern notes", + handle: 'recip', + name: 'Example pattern', + notes: 'These are the pattern notes', data: { settings: { sa: 10, complete: true, paperless: false, - units: "imperial", + units: 'imperial', measurements: { biceps: 335, hpsToWaist: 520, chest: 1080, waistToHips: 145, neck: 420, - shoulderSlope: 13, + shoulderSlope: 13, shoulderToShoulder: 465, - hips: 990 - } + hips: 990, + }, }, - design: "aaron", + design: 'aaron', }, - created: "2019-08-14T09:47:27.163Z", + created: '2019-08-14T09:47:27.163Z', user: 'tuser', - person:"persa" - } - ] + person: 'persa', + }, + ], } diff --git a/sites/backend/src/cli/index.js b/sites/backend/src/cli/index.js index c70e88644a5..b5eceedbc50 100644 --- a/sites/backend/src/cli/index.js +++ b/sites/backend/src/cli/index.js @@ -20,7 +20,7 @@ verifyConfig(config, chalk) mongoose.Promise = global.Promise mongoose .connect(config.db.uri, { - useNewUrlParser: true + useNewUrlParser: true, }) .then(() => { console.log(chalk.green('Successfully connected to the database')) @@ -37,7 +37,7 @@ mongoose } }) }) - .catch(err => { + .catch((err) => { console.log(chalk.red('Could not connect to the database. Exiting now...'), err) process.exit() }) diff --git a/sites/backend/src/cli/lib.js b/sites/backend/src/cli/lib.js index 83222574381..67d21da982d 100644 --- a/sites/backend/src/cli/lib.js +++ b/sites/backend/src/cli/lib.js @@ -9,7 +9,11 @@ export const showHelp = () => { console.log() console.log(' ', chalk.bold.blue('npm run clear:users'), '👉 Truncate the users collection') console.log(' ', chalk.bold.blue('npm run clear:people'), '👉 Truncate the people collection') - console.log(' ', chalk.bold.blue('npm run clear:patterns'), '👉 Truncate the patterns collection') + console.log( + ' ', + chalk.bold.blue('npm run clear:patterns'), + '👉 Truncate the patterns collection' + ) console.log( ' ', chalk.bold.blue('npm run clear:confirmations'), @@ -26,33 +30,33 @@ export const showHelp = () => { } export const clearUsers = async () => { - await User.deleteMany().then(result => { - if (result.ok) console.log('🔥 Users deleted') - else console.log('🚨 Could not remove users', result) + await User.deleteMany().then((result) => { + if (result.ok) console.log('🔥 Users deleted') + else console.log('🚨 Could not remove users', result) }) } export const clearPeople = async () => { - await Person.deleteMany().then(result => { - if (result.ok) console.log('🔥 People removed') - else console.log('🚨 Could not remove people', result) + await Person.deleteMany().then((result) => { + if (result.ok) console.log('🔥 People removed') + else console.log('🚨 Could not remove people', result) }) } export const clearPatterns = async () => { - await Pattern.deleteMany().then(result => { - if (result.ok) console.log('🔥 Patterns deleted') - else console.log('🚨 Could not remove patterns', result) + await Pattern.deleteMany().then((result) => { + if (result.ok) console.log('🔥 Patterns deleted') + else console.log('🚨 Could not remove patterns', result) }) } export const clearConfirmations = async () => { - await Confirmation.deleteMany().then(result => { - if (result.ok) console.log('🔥 Confirmations deleted') - else console.log('🚨 Could not remove confirmations', result) + await Confirmation.deleteMany().then((result) => { + if (result.ok) console.log('🔥 Confirmations deleted') + else console.log('🚨 Could not remove confirmations', result) }) } export const clearNewsletterSubscribers = async () => { - await Newsletter.deleteMany().then(result => { - if (result.ok) console.log('🔥 Newsletter subscriptions deleted') - else console.log('🚨 Could not remove newsletter subscriptions', result) + await Newsletter.deleteMany().then((result) => { + if (result.ok) console.log('🔥 Newsletter subscriptions deleted') + else console.log('🚨 Could not remove newsletter subscriptions', result) }) } @@ -65,8 +69,8 @@ export const loadSampleData = async () => { ehash: ehash(sample.email), picture: sample.handle + '.svg', time: { - created: new Date() - } + created: new Date(), + }, }) user.createAvatar() promises.push(user.save()) @@ -83,7 +87,7 @@ export const loadSampleData = async () => { return Promise.all(promises) } -export const runTasks = options => { +export const runTasks = (options) => { let promises = [] if (options.clearAll || options.reboot || options.clearUsers) promises.push(clearUsers()) if (options.clearAll || options.reboot || options.clearPeople) promises.push(clearPeople()) diff --git a/sites/backend/src/cli/options.js b/sites/backend/src/cli/options.js index 24a8c85da74..8e5bbcde0b7 100644 --- a/sites/backend/src/cli/options.js +++ b/sites/backend/src/cli/options.js @@ -1,34 +1,34 @@ export default [ { name: 'clearUsers', - type: Boolean + type: Boolean, }, { name: 'clearModels', - type: Boolean + type: Boolean, }, { name: 'clearPatterns', - type: Boolean + type: Boolean, }, { name: 'clearConfirmations', - type: Boolean + type: Boolean, }, { name: 'clearNewsletterSubscribers', - type: Boolean + type: Boolean, }, { name: 'clearAll', - type: Boolean + type: Boolean, }, { name: 'reboot', - type: Boolean + type: Boolean, }, { name: 'help', - type: Boolean - } + type: Boolean, + }, ] diff --git a/sites/backend/src/controllers/admin.js b/sites/backend/src/controllers/admin.js index e0022e705d5..047be91bf87 100644 --- a/sites/backend/src/controllers/admin.js +++ b/sites/backend/src/controllers/admin.js @@ -5,8 +5,7 @@ import { ehash } from '../utils' function AdminController() {} - -AdminController.prototype.search = function(req, res) { +AdminController.prototype.search = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) @@ -16,26 +15,26 @@ AdminController.prototype.search = function(req, res) { { handle: { $regex: `.*${req.body.query}.*` } }, { username: { $regex: `.*${req.body.query}.*` } }, { ehash: ehash(req.body.query) }, - ] + ], }) - .sort('username') - .exec((err, users) => { - if (err) return res.sendStatus(400) - Person.find({ handle: { $regex: `.*${req.body.query}.*` } }) - .sort('handle') - .exec((err, people) => { + .sort('username') + .exec((err, users) => { if (err) return res.sendStatus(400) - if (users === null && people === null) return res.sendStatus(404) - return res.send({ - users: users.map(user => user.adminProfile()), - people: people.map(person => person.info()), - }) + Person.find({ handle: { $regex: `.*${req.body.query}.*` } }) + .sort('handle') + .exec((err, people) => { + if (err) return res.sendStatus(400) + if (users === null && people === null) return res.sendStatus(404) + return res.send({ + users: users.map((user) => user.adminProfile()), + people: people.map((person) => person.info()), + }) + }) }) - }) }) } -AdminController.prototype.setPatronStatus = function(req, res) { +AdminController.prototype.setPatronStatus = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) @@ -49,7 +48,7 @@ AdminController.prototype.setPatronStatus = function(req, res) { }) } -AdminController.prototype.setRole = function(req, res) { +AdminController.prototype.setRole = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) @@ -63,7 +62,7 @@ AdminController.prototype.setRole = function(req, res) { }) } -AdminController.prototype.unfreeze = function(req, res) { +AdminController.prototype.unfreeze = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) @@ -77,7 +76,7 @@ AdminController.prototype.unfreeze = function(req, res) { }) } -AdminController.prototype.impersonate = function(req, res) { +AdminController.prototype.impersonate = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) @@ -95,16 +94,14 @@ AdminController.prototype.impersonate = function(req, res) { Pattern.find({ user: user.handle }, (err, patternList) => { if (err) return res.sendStatus(400) for (let pattern of patternList) patterns[pattern.handle] = pattern - return user.updateLoginTime(() => - res.send({ account, people, patterns, token }) - ) + return user.updateLoginTime(() => res.send({ account, people, patterns, token })) }) }) }) }) } -AdminController.prototype.patronList = function(req, res) { +AdminController.prototype.patronList = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) @@ -116,16 +113,16 @@ AdminController.prototype.patronList = function(req, res) { }) } -AdminController.prototype.subscriberList = function(req, res) { +AdminController.prototype.subscriberList = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) if (admin.role !== 'admin') return res.sendStatus(403) - User.find({newsletter: true}, (err, subscribedUsers) => { + User.find({ newsletter: true }, (err, subscribedUsers) => { if (err) return res.sendStatus(500) - let subscribers = subscribedUsers.map(user => ({ + let subscribers = subscribedUsers.map((user) => ({ ehash: user.ehash, - email: user.email + email: user.email, })) Newsletter.find({}, (err, subs) => { if (err) return res.sendStatus(500) @@ -135,12 +132,12 @@ AdminController.prototype.subscriberList = function(req, res) { }) } -AdminController.prototype.stats = function(req, res) { +AdminController.prototype.stats = function (req, res) { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, admin) => { if (err || admin === null) return res.sendStatus(400) if (admin.role !== 'admin') return res.sendStatus(403) - User.find({ "consent.profile": true }, (err, users) => { + User.find({ 'consent.profile': true }, (err, users) => { if (err) return res.sendStatus(500) Person.find({}, (err, people) => { if (err) return res.sendStatus(500) @@ -157,21 +154,21 @@ AdminController.prototype.stats = function(req, res) { } function saveAndReturnAccount(res, user) { - user.save(function(err, updatedUser) { + user.save(function (err, updatedUser) { if (err) { return res.sendStatus(500) } else return res.send({ account: updatedUser.account() }) }) } -const getToken = account => { +const getToken = (account) => { return jwt.sign( { _id: account._id, handle: account.handle, role: account.role, aud: config.jwt.audience, - iss: config.jwt.issuer + iss: config.jwt.issuer, }, config.jwt.secretOrKey ) diff --git a/sites/backend/src/controllers/auth.js b/sites/backend/src/controllers/auth.js index ff16bff8fe7..79c7dcbff19 100644 --- a/sites/backend/src/controllers/auth.js +++ b/sites/backend/src/controllers/auth.js @@ -6,7 +6,7 @@ import { getHandle, createHandle, imageType, - saveAvatarFromBase64 + saveAvatarFromBase64, } from '../utils' import config from '../config' import queryString from 'query-string' @@ -19,22 +19,22 @@ import axios from 'axios' function AuthController() {} -AuthController.prototype.initOauth = function(req, res) { +AuthController.prototype.initOauth = function (req, res) { if (!req.body) return res.sendStatus(400) let confirmation = new Confirmation({ type: 'oauth', data: { language: req.body.language, - provider: req.body.provider - } + provider: req.body.provider, + }, }) - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) return res.send({ state: confirmation._id }) }) } -AuthController.prototype.loginOauth = function(req, res) { +AuthController.prototype.loginOauth = function (req, res) { if (!req.body) return res.sendStatus(400) Confirmation.findById(req.body.confirmation, (err, confirmation) => { if (err) return res.sendStatus(400) @@ -57,7 +57,7 @@ AuthController.prototype.loginOauth = function(req, res) { Pattern.find({ user: user.handle }, (err, patternList) => { if (err) return res.sendStatus(400) for (let pattern of patternList) patterns[pattern.handle] = pattern - confirmation.remove(err => { + confirmation.remove((err) => { if (err !== null) return res.sendStatus(500) user.updateLoginTime(() => res.send({ account, people, token, signup })) }) @@ -67,7 +67,7 @@ AuthController.prototype.loginOauth = function(req, res) { }) } -AuthController.prototype.providerCallback = function(req, res) { +AuthController.prototype.providerCallback = function (req, res) { let language, token, email, avatarUri, username let provider = req.params.provider let conf = config.oauth[provider] @@ -89,19 +89,19 @@ AuthController.prototype.providerCallback = function(req, res) { code: req.query.code, accept: 'json', grant_type: 'authorization_code', - redirect_uri: config.api + '/oauth/callback/from/' + provider + redirect_uri: config.api + '/oauth/callback/from/' + provider, }) - .then(result => { + .then((result) => { if (result.status !== 200) return res.sendStatus(401) if (provider === 'github') token = queryString.parse(result.data).access_token else if (provider === 'google') token = result.data.access_token // Contact API for user info - const headers = token => ({ headers: { Authorization: 'Bearer ' + token } }) + const headers = (token) => ({ headers: { Authorization: 'Bearer ' + token } }) go.get(conf.dataUri, headers(token)) - .then(async result => { + .then(async (result) => { if (provider === 'github') { - email = await getGithubEmail(result.data.email, go, conf.emailUri, headers(token)), - avatarUri = result.data.avatar_url + ;(email = await getGithubEmail(result.data.email, go, conf.emailUri, headers(token))), + (avatarUri = result.data.avatar_url) username = result.data.login } else if (provider === 'google') { for (let address of result.data.emailAddresses) { @@ -120,7 +120,7 @@ AuthController.prototype.providerCallback = function(req, res) { // New user: signup signup = true let handle = getHandle() - go.get(avatarUri, { responseType: 'arraybuffer' }).then(avatar => { + go.get(avatarUri, { responseType: 'arraybuffer' }).then((avatar) => { let type = imageType(avatar.headers['content-type']) saveAvatarFromBase64( new Buffer(avatar.data, 'binary').toString('base64'), @@ -142,21 +142,21 @@ AuthController.prototype.providerCallback = function(req, res) { }, time: { created: new Date(), - login: new Date() - } + login: new Date(), + }, } if (provider === 'github') { userData.social.github = result.data.login userData.bio = result.data.bio } let user = new User(userData) - user.save(function(err) { + user.save(function (err) { if (err) return res.sendStatus(500) let validation = createHandle(20) confirmation.data.handle = user.handle confirmation.data.validation = validation confirmation.data.signup = true - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) return res.redirect( createUrl( @@ -175,18 +175,20 @@ AuthController.prototype.providerCallback = function(req, res) { if (user.bio === '') user.bio = result.data.bio user.social.github = result.data.login } - user.save(function(err) { + user.save(function (err) { let validation = createHandle(20) confirmation.data.handle = user.handle confirmation.data.validation = validation confirmation.data.signup = false - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) return res.redirect( // Watch out for pending users - createUrl(language, (user.status === 'pending') - ? '/confirm/signup/' + req.query.state + '/' - : '/login/callback/' + confirmation._id + '/' + validation + createUrl( + language, + user.status === 'pending' + ? '/confirm/signup/' + req.query.state + '/' + : '/login/callback/' + confirmation._id + '/' + validation ) ) }) @@ -194,12 +196,12 @@ AuthController.prototype.providerCallback = function(req, res) { } }) }) - .catch(err => { + .catch((err) => { console.log('api token error', err) res.sendStatus(401) }) }) - .catch(err => { + .catch((err) => { console.log('post token error', err) res.sendStatus(401) }) @@ -207,20 +209,17 @@ AuthController.prototype.providerCallback = function(req, res) { } /* -* Github does not always return the email address -* See https://github.com/freesewing/backend/issues/162 -*/ + * Github does not always return the email address + * See https://github.com/freesewing/backend/issues/162 + */ const getGithubEmail = async (email, client, uri, headers) => { if (email === null) { - return client.get(uri, headers) - .then(result => { - for (let e of result.data) { - if (e.primary) return e.email - } - }) - } - else return email + return client.get(uri, headers).then((result) => { + for (let e of result.data) { + if (e.primary) return e.email + } + }) + } else return email } - export default AuthController diff --git a/sites/backend/src/controllers/github.js b/sites/backend/src/controllers/github.js index ad02df85bad..349b38792d4 100644 --- a/sites/backend/src/controllers/github.js +++ b/sites/backend/src/controllers/github.js @@ -4,95 +4,100 @@ import config from '../config' function GithubController() {} // Create a gist -GithubController.prototype.createGist = function(req, res) { +GithubController.prototype.createGist = function (req, res) { if (!req.body.data) return res.sendStatus(400) let client = GithubClient() - client.post('/gists', { - public: true, - description: `An open source sewing pattern from freesewing.org`, - files: { - 'pattern.yaml': { content: req.body.data } - } - }) - .then(result => { - let id = result.data.id - client.post(`/gists/${id}/comments`, { - body: `👉 https://freesewing.org/recreate/gist/${id} 👀` + client + .post('/gists', { + public: true, + description: `An open source sewing pattern from freesewing.org`, + files: { + 'pattern.yaml': { content: req.body.data }, + }, }) - .then(result => res.send({id})) - .catch(err => res.sendStatus(500)) - }) - .catch(err => res.sendStatus(500)) + .then((result) => { + let id = result.data.id + client + .post(`/gists/${id}/comments`, { + body: `👉 https://freesewing.org/recreate/gist/${id} 👀`, + }) + .then((result) => res.send({ id })) + .catch((err) => res.sendStatus(500)) + }) + .catch((err) => res.sendStatus(500)) } -GithubController.prototype.createIssue = function(req, res) { +GithubController.prototype.createIssue = function (req, res) { if (!req.body.data) return res.sendStatus(400) if (!req.body.design) return res.sendStatus(400) let client = GithubClient() - client.post('/gists', { - public: true, - description: `A FreeSewing crash report`, - files: { - 'pattern.yaml': { content: req.body.data }, - 'settings.yaml': { content: req.body.patternProps.settings }, - 'events.yaml': { content: req.body.patternProps.events }, - 'errors.md': { content: req.body.traces }, - 'parts.json': { content: req.body.patternProps.parts }, - } - }) - .then(gist => { - client.post('/repos/freesewing/freesewing/issues', { - title: `Error while drafting ${req.body.design}`, - body: `An error occured while drafting ${req.body.design} and a [crash report](https://gist.github.com/${gist.data.id}) was generated.`, - labels: [ - `:package: ${req.body.design}`, - ':robot: robot' - ] + client + .post('/gists', { + public: true, + description: `A FreeSewing crash report`, + files: { + 'pattern.yaml': { content: req.body.data }, + 'settings.yaml': { content: req.body.patternProps.settings }, + 'events.yaml': { content: req.body.patternProps.events }, + 'errors.md': { content: req.body.traces }, + 'parts.json': { content: req.body.patternProps.parts }, + }, }) - .then(issue => { - let notify = (typeof config.github.notify.specific[req.body.design] === 'undefined') - ? config.github.notify.dflt - : config.github.notify.specific[req.body.design] - let id = issue.data.number - let path = `/recreate/gist/${gist.data.id}` - let body = 'Ping ' - for (const user of notify) body += `@${user} ` - if (req.body.userGithub) body += `@${req.body.userGithub} ` - body += " 👋 \nRecreate this:\n\n" - body += `- **Lab**: 👉 https://lab.freesewing.dev/v/next/` + - `${req.body.design}?from=github&preload=${gist.data.id}` - body += "\n\n" - body += `- **Production**: 👉 https://freesewing.org${path}` - body += "\n\n" - if (req.body.userHandle) body += `(user handle: ${req.body.userHandle})` - client.post(`/repos/freesewing/freesewing/issues/${id}/comments`, { body }) - .then(result => res.send({id})) - .catch(err => { - console.log(err) - res.sendStatus(500) - }) + .then((gist) => { + client + .post('/repos/freesewing/freesewing/issues', { + title: `Error while drafting ${req.body.design}`, + body: `An error occured while drafting ${req.body.design} and a [crash report](https://gist.github.com/${gist.data.id}) was generated.`, + labels: [`:package: ${req.body.design}`, ':robot: robot'], + }) + .then((issue) => { + let notify = + typeof config.github.notify.specific[req.body.design] === 'undefined' + ? config.github.notify.dflt + : config.github.notify.specific[req.body.design] + let id = issue.data.number + let path = `/recreate/gist/${gist.data.id}` + let body = 'Ping ' + for (const user of notify) body += `@${user} ` + if (req.body.userGithub) body += `@${req.body.userGithub} ` + body += ' 👋 \nRecreate this:\n\n' + body += + `- **Lab**: 👉 https://lab.freesewing.dev/v/next/` + + `${req.body.design}?from=github&preload=${gist.data.id}` + body += '\n\n' + body += `- **Production**: 👉 https://freesewing.org${path}` + body += '\n\n' + if (req.body.userHandle) body += `(user handle: ${req.body.userHandle})` + client + .post(`/repos/freesewing/freesewing/issues/${id}/comments`, { body }) + .then((result) => res.send({ id })) + .catch((err) => { + console.log(err) + res.sendStatus(500) + }) + }) + .catch((err) => { + console.log(err) + res.sendStatus(500) + }) }) - .catch(err => { - console.log(err) + .catch((err) => { + console.log(err) res.sendStatus(500) }) - }) - .catch(err => { - console.log(err) - res.sendStatus(500) - }) } -const GithubClient = () => axios.create({ - baseURL: config.github.api, - timeout: 5000, - auth: { - username: config.github.bot.user, - password: config.github.token - }, - headers: { - Accept: 'application/vnd.github.v3+json' - } -}) +const GithubClient = () => + axios.create({ + baseURL: config.github.api, + timeout: 5000, + auth: { + username: config.github.bot.user, + password: config.github.token, + }, + headers: { + Accept: 'application/vnd.github.v3+json', + }, + }) export default GithubController diff --git a/sites/backend/src/controllers/newsletter.js b/sites/backend/src/controllers/newsletter.js index 364c9c42694..0f4fe57dd1c 100644 --- a/sites/backend/src/controllers/newsletter.js +++ b/sites/backend/src/controllers/newsletter.js @@ -1,40 +1,37 @@ import { Newsletter, Confirmation, User } from '../models' -import { - log, - email, - ehash, -} from '../utils' +import { log, email, ehash } from '../utils' import path from 'path' -const bail = (res, page='index') => res.sendFile(path.resolve(__dirname, '..', 'landing', `${page}.html`)) +const bail = (res, page = 'index') => + res.sendFile(path.resolve(__dirname, '..', 'landing', `${page}.html`)) function NewsletterController() {} -NewsletterController.prototype.subscribe = function(req, res, subscribe=true) { +NewsletterController.prototype.subscribe = function (req, res, subscribe = true) { if (!req.body || !req.body.email) return res.sendStatus(400) let confirmation = new Confirmation({ type: 'newsletter', - data: { email: req.body.email } + data: { email: req.body.email }, }) - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) log.info('newsletterSubscription', { email: req.body.email, - confirmation: confirmation._id + confirmation: confirmation._id, }) email.subscribe(req.body.email, confirmation._id) - return res.send({status: 'subscribed'}) + return res.send({ status: 'subscribed' }) }) } -NewsletterController.prototype.confirm = function(req, res, subscribe=true) { +NewsletterController.prototype.confirm = function (req, res, subscribe = true) { if (!req.params.token) return bail(res, 'invalid') Confirmation.findById(req.params.token, (err, confirmation) => { if (err) return bail(res) if (confirmation === null) return bail(res) Newsletter.findOne( { - ehash: ehash(confirmation.data.email) + ehash: ehash(confirmation.data.email), }, (err, reader) => { if (err) return bail(res) @@ -46,10 +43,10 @@ NewsletterController.prototype.confirm = function(req, res, subscribe=true) { email: confirmation.data.email, ehash: hash, time: { - created: new Date() - } + created: new Date(), + }, }) - sub.save(function(err) { + sub.save(function (err) { if (err) { log.error('newsletterSubscriptionFailed', sub) console.log(err) @@ -61,34 +58,33 @@ NewsletterController.prototype.confirm = function(req, res, subscribe=true) { return bail(res, 'subscribe') } }) - }) + } + ) }) } -NewsletterController.prototype.unsubscribe = function(req, res) { +NewsletterController.prototype.unsubscribe = function (req, res) { if (!req.params.ehash) return bail(res, 'invalid') Newsletter.findOne({ ehash: req.params.ehash }, (err, reader) => { if (reader) { - Newsletter.deleteOne({id: reader.id}, (err, result) => { + Newsletter.deleteOne({ id: reader.id }, (err, result) => { if (!err) { console.log(`Unsubscribed ${reader.email} from the newsletter`) return bail(res, 'unsubscribe') - } - else return bail(res, 'oops') + } else return bail(res, 'oops') }) } else { User.findOne({ ehash: req.params.ehash }, (err, user) => { if (user) { user.newsletter = false - user.save(function(err, updatedUser) { + user.save(function (err, updatedUser) { if (err) { log.error('accountUpdateFailed', err) return res.sendStatus(500) } else return bail(res, 'unsubscribe') }) - } - else return bail(res, 'oops') + } else return bail(res, 'oops') }) } }) diff --git a/sites/backend/src/controllers/og.js b/sites/backend/src/controllers/og.js index 0d113d9d869..ced08fae27e 100644 --- a/sites/backend/src/controllers/og.js +++ b/sites/backend/src/controllers/og.js @@ -1,8 +1,8 @@ -import config from "../config"; -import { capitalize } from "../utils"; -import sharp from 'sharp'; -import fs from "fs"; -import path from "path"; +import config from '../config' +import { capitalize } from '../utils' +import sharp from 'sharp' +import fs from 'fs' +import path from 'path' import axios from 'axios' import remark from 'remark' import remarkParse from 'remark-parse' @@ -14,13 +14,10 @@ import yaml from 'yaml' // Sites for which we generate images const sites = ['dev', 'org'] // Langauges for which we generate images -const languages = ['en', 'fr', 'de', 'es', 'nl' ] +const languages = ['en', 'fr', 'de', 'es', 'nl'] // Load template once at startup -const template = fs.readFileSync( - path.resolve(...config.og.template), - 'utf-8' -) +const template = fs.readFileSync(path.resolve(...config.og.template), 'utf-8') /* Helper method to extract intro from strapi markdown */ const introFromStrapiMarkdown = async (md, slug) => { @@ -33,17 +30,15 @@ const introFromStrapiMarkdown = async (md, slug) => { /* Helper method to extract title from markdown frontmatter */ const titleAndIntroFromLocalMarkdown = async (md, slug) => { - const tree = await remark() - .use(remarkParse) - .use(remarkFrontmatter, ['yaml']) - .parse(md) + const tree = await remark().use(remarkParse).use(remarkFrontmatter, ['yaml']).parse(md) if (tree.children[0].type !== 'yaml') console.log('Markdown does not start with frontmatter', slug) - else return { - title: titleAsLines(yaml.parse(tree.children[0].value).title), - intro: introAsLines(toString(tree.children.slice(1, 2))) - } + else + return { + title: titleAsLines(yaml.parse(tree.children[0].value).title), + intro: introAsLines(toString(tree.children.slice(1, 2))), + } return false } @@ -53,41 +48,40 @@ const loadDevBlogPost = async (slug) => { const result = await axios.get( `${config.strapi}/blogposts?_locale=en&dev_eq=true&slug_eq=${slug}` ) - if (result.data) return { - title: titleAsLines(result.data[0].title), - intro: introAsLines(await introFromStrapiMarkdown(result.data[0].body, slug)), - sub: [ - result.data[0].author.displayname, - new Date(result.data[0].published_at).toString().split(' ').slice(0,4).join(' '), - ], - lead: 'Developer Blog', - } + if (result.data) + return { + title: titleAsLines(result.data[0].title), + intro: introAsLines(await introFromStrapiMarkdown(result.data[0].body, slug)), + sub: [ + result.data[0].author.displayname, + new Date(result.data[0].published_at).toString().split(' ').slice(0, 4).join(' '), + ], + lead: 'Developer Blog', + } return false } /* Helper method to load markdown file from disk */ -const loadMarkdownFile = async (page, site, lang) => fs.promises.readFile( - path.resolve('..', '..', 'markdown', site, ...page.split('/'), `${lang}.md`), - 'utf-8' -).then(async (md) => md - ? { - ...(await titleAndIntroFromLocalMarkdown(md, page)), - sub: [ - 'freesewing.dev/', - page - ], - lead: capitalize(page.split('/').shift()) - } - : false -) +const loadMarkdownFile = async (page, site, lang) => + fs.promises + .readFile(path.resolve('..', '..', 'markdown', site, ...page.split('/'), `${lang}.md`), 'utf-8') + .then(async (md) => + md + ? { + ...(await titleAndIntroFromLocalMarkdown(md, page)), + sub: ['freesewing.dev/', page], + lead: capitalize(page.split('/').shift()), + } + : false + ) /* Find longest possible place to split a string */ const splitLine = (line, chars) => { const words = line.split(' ') if (words[0].length > chars) { // Force a word break - return [ line.slice(0, chars-1)+'-', line.slice(chars-1) ] + return [line.slice(0, chars - 1) + '-', line.slice(chars - 1)] } // Glue chunks together until it's too long let firstLine = '' @@ -97,22 +91,22 @@ const splitLine = (line, chars) => { else max = true } - return [ firstLine, words.join(' ').slice(firstLine.length) ] + return [firstLine, words.join(' ').slice(firstLine.length)] } /* Divide title into lines to fit on image */ -const titleAsLines = title => { +const titleAsLines = (title) => { // Does it fit on one line? if (title.length <= config.og.chars.title_1) return [title] // Does it fit on two lines? let lines = splitLine(title, config.og.chars.title_1) if (lines[1].length <= config.og.chars.title_2) return lines // Three lines it is - return [ lines[0], ...splitLine(lines[1], config.og.chars.title_2) ] + return [lines[0], ...splitLine(lines[1], config.og.chars.title_2)] } /* Divive intro into lines to fit on image */ -const introAsLines = intro => { +const introAsLines = (intro) => { // Does it fit on one line? if (intro.length <= config.og.chars.intro) return [intro] // Two lines it is @@ -124,19 +118,25 @@ const getMetaData = { dev: async (page) => { const chunks = page.split('/') // Home page - if (chunks.length === 1 && chunks[0] === '') return { - title: ['FreeSewing.dev'], - intro: introAsLines('FreeSewing API documentation and tutorials for developers and contributors'), - sub: ['Also featuring', ' our developers blog'], - lead: '.dev', - } + if (chunks.length === 1 && chunks[0] === '') + return { + title: ['FreeSewing.dev'], + intro: introAsLines( + 'FreeSewing API documentation and tutorials for developers and contributors' + ), + sub: ['Also featuring', ' our developers blog'], + lead: '.dev', + } // Blog index page - if (chunks.length === 1 && chunks[0] === 'blog') return { - title: titleAsLines('FreeSewing Developer Blog'), - intro: introAsLines("Contains no sewing news whatsover. Only posts for (aspiring) developers :)"), - sub: ['freesewing.dev', '/blog'], - lead: 'Developer Blog', - } + if (chunks.length === 1 && chunks[0] === 'blog') + return { + title: titleAsLines('FreeSewing Developer Blog'), + intro: introAsLines( + 'Contains no sewing news whatsover. Only posts for (aspiring) developers :)' + ), + sub: ['freesewing.dev', '/blog'], + lead: 'Developer Blog', + } // Blog post if (chunks.length === 2 && chunks[0] === 'blog') { return await loadDevBlogPost(chunks[1]) @@ -148,45 +148,43 @@ const getMetaData = { return md ? md : { - title: titleAsLines('FreeSewing.dev'), - intro: introAsLines('Documentation, guides, and howtos for contributors and developers alike'), - sub: ['https://freesewing.dev/', '<== Check it out'], - lead: 'freesewing.dev' - } + title: titleAsLines('FreeSewing.dev'), + intro: introAsLines( + 'Documentation, guides, and howtos for contributors and developers alike' + ), + sub: ['https://freesewing.dev/', '<== Check it out'], + lead: 'freesewing.dev', + } }, - org: async (page, site, lang) => ({}) + org: async (page, site, lang) => ({}), } /* Hide unused placeholders */ -const hidePlaceholders = list => { +const hidePlaceholders = (list) => { let svg = template for (const i of list) { - svg = svg - .replace(`${i}title_1`, '') - .replace(`${i}title_2`, '') - .replace(`${i}title_3`, '') + svg = svg.replace(`${i}title_1`, '').replace(`${i}title_2`, '').replace(`${i}title_3`, '') } return svg } /* Place text in SVG template */ -const decorateSvg = data => { +const decorateSvg = (data) => { let svg // Single title line if (data.title.length === 1) { - svg = hidePlaceholders([2,3]) - .replace(`1title_1`, data.title[0]) + svg = hidePlaceholders([2, 3]).replace(`1title_1`, data.title[0]) } // Double title line else if (data.title.length === 2) { - svg = hidePlaceholders([1,3]) + svg = hidePlaceholders([1, 3]) .replace(`2title_1`, data.title[0]) .replace(`2title_2`, data.title[1]) } // Triple title line else if (data.title.length === 3) { - svg = hidePlaceholders([1,2]) + svg = hidePlaceholders([1, 2]) .replace(`3title_1`, data.title[0]) .replace(`3title_2`, data.title[1]) .replace(`3title_3`, data.title[2]) @@ -202,14 +200,14 @@ const decorateSvg = data => { /* This generates open graph images */ -function OgController() { } +function OgController() {} OgController.prototype.image = async function (req, res) { // Extract path parameters - const { lang='en', site='dev' } = req.params - const page = req.params["0"] - if (sites.indexOf(site) === -1) return res.send({error: 'sorry'}) - if (languages.indexOf(lang) === -1) return res.send({error: 'sorry'}) + const { lang = 'en', site = 'dev' } = req.params + const page = req.params['0'] + if (sites.indexOf(site) === -1) return res.send({ error: 'sorry' }) + if (languages.indexOf(lang) === -1) return res.send({ error: 'sorry' }) // Load meta data const data = await getMetaData[site](page, site, lang) @@ -224,6 +222,4 @@ OgController.prototype.image = async function (req, res) { }) } - - -export default OgController; +export default OgController diff --git a/sites/backend/src/controllers/pattern.js b/sites/backend/src/controllers/pattern.js index 1c2a91bd3fd..be3bab9025c 100644 --- a/sites/backend/src/controllers/pattern.js +++ b/sites/backend/src/controllers/pattern.js @@ -17,9 +17,9 @@ PatternController.prototype.create = (req, res) => { name: req.body.name, notes: req.body.notes, data: req.body.data, - created: new Date() + created: new Date(), }) - pattern.save(function(err) { + pattern.save(function (err) { if (err) { log.error('patternCreationFailed', user) console.log(err) @@ -56,7 +56,7 @@ PatternController.prototype.delete = (req, res) => { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, async (err, user) => { if (err || user === null) return res.sendStatus(400) - Pattern.deleteOne({ handle: req.params.handle, user: user.handle }, err => { + Pattern.deleteOne({ handle: req.params.handle, user: user.handle }, (err) => { if (err) return res.sendStatus(400) else return res.sendStatus(204) }) @@ -64,7 +64,7 @@ PatternController.prototype.delete = (req, res) => { } // Delete multiple -PatternController.prototype.deleteMultiple = function(req, res) { +PatternController.prototype.deleteMultiple = function (req, res) { if (!req.body) return res.sendStatus(400) if (!req.body.patterns) return res.sendStatus(400) if (!req.user._id) return res.sendStatus(400) @@ -77,9 +77,9 @@ PatternController.prototype.deleteMultiple = function(req, res) { Pattern.deleteMany( { user: user.handle, - $or: handles + $or: handles, }, - err => { + (err) => { if (err) return res.sendStatus(500) const patterns = {} Patterns.find({ user: user.handle }, (err, patternList) => { @@ -93,7 +93,7 @@ PatternController.prototype.deleteMultiple = function(req, res) { } function saveAndReturnPattern(res, pattern) { - pattern.save(function(err, updatedPattern) { + pattern.save(function (err, updatedPattern) { if (err) { log.error('patternUpdateFailed', updatedPattern) return res.sendStatus(500) diff --git a/sites/backend/src/controllers/person.js b/sites/backend/src/controllers/person.js index 1dfb1247aa3..5abc165e964 100644 --- a/sites/backend/src/controllers/person.js +++ b/sites/backend/src/controllers/person.js @@ -4,7 +4,7 @@ import { log } from '../utils' function PersonController() {} // CRUD basics -PersonController.prototype.create = function(req, res) { +PersonController.prototype.create = function (req, res) { if (!req.body) return res.sendStatus(400) if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, user) => { @@ -17,10 +17,10 @@ PersonController.prototype.create = function(req, res) { units: req.body.units, breasts: req.body.breasts, picture: handle + '.svg', - created: new Date() + created: new Date(), }) person.createAvatar() - person.save(function(err) { + person.save(function (err) { if (err) return res.sendStatus(400) log.info('personCreated', { handle: handle }) return res.send({ person: person.info() }) @@ -28,7 +28,7 @@ PersonController.prototype.create = function(req, res) { }) } -PersonController.prototype.read = function(req, res) { +PersonController.prototype.read = function (req, res) { if (!req.body) return res.sendStatus(400) if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, user) => { @@ -56,7 +56,7 @@ PersonController.prototype.update = (req, res) => { if (typeof data.measurements !== 'undefined') person.measurements = { ...person.measurements, - ...data.measurements + ...data.measurements, } if (typeof data.picture !== 'undefined') person.saveAvatar(data.picture) @@ -69,7 +69,7 @@ PersonController.prototype.delete = (req, res) => { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, async (err, user) => { if (err || user === null) return res.sendStatus(400) - Person.deleteOne({ handle: req.params.handle, user: user.handle }, err => { + Person.deleteOne({ handle: req.params.handle, user: user.handle }, (err) => { if (err) return res.sendStatus(400) else return res.sendStatus(204) }) @@ -77,10 +77,10 @@ PersonController.prototype.delete = (req, res) => { } // Clone -PersonController.prototype.clone = function(req, res) {} +PersonController.prototype.clone = function (req, res) {} function saveAndReturnPerson(res, person) { - person.save(function(err, updatedPerson) { + person.save(function (err, updatedPerson) { if (err) { log.error('personUpdateFailed', updatedPerson) return res.sendStatus(500) diff --git a/sites/backend/src/controllers/strapi.js b/sites/backend/src/controllers/strapi.js index bd974999d9b..218afe89e90 100644 --- a/sites/backend/src/controllers/strapi.js +++ b/sites/backend/src/controllers/strapi.js @@ -11,11 +11,10 @@ const getToken = async () => { `${config.strapi.protocol}://${config.strapi.host}:${config.strapi.port}/auth/local`, { identifier: config.strapi.username, - password: config.strapi.password + password: config.strapi.password, } ) - } - catch(err) { + } catch (err) { console.log('ERROR: Failed to load strapi token') return false } @@ -23,18 +22,18 @@ const getToken = async () => { return result.data.jwt } -const withToken = token => ({ +const withToken = (token) => ({ headers: { Authorization: `Bearer ${token}`, - } + }, }) -const ext = type => { +const ext = (type) => { switch (type.toLowerCase()) { case 'image/jpg': case 'image/jpeg': return 'jpg' - break; + break case 'image/png': return 'png' break @@ -46,47 +45,45 @@ const ext = type => { } } -const api = path => `${config.strapi.protocol}://${config.strapi.host}:${config.strapi.port}${path}` - +const api = (path) => + `${config.strapi.protocol}://${config.strapi.host}:${config.strapi.port}${path}` // Uploads a picture to Strapi const uploadPicture = async (img, name, token) => { const form = new FormData() const buff = asBuffer(img) const extention = ext(buff.type) - if (!extention) return [false, {error: `Filetype ${buff.type} is not supported`}] + if (!extention) return [false, { error: `Filetype ${buff.type} is not supported` }] // I hate you strapi, because this hack is the only way I can get your shitty upload to work const filename = `${config.strapi.tmp}/viaBackend.${extention}` const file = fs.createReadStream(filename) form.append('files', file) - form.append('fileInfo', JSON.stringify({ - alternativeText: `The picture/avatar for maker ${name}`, - caption: `Maker: ${name}`, - })) + form.append( + 'fileInfo', + JSON.stringify({ + alternativeText: `The picture/avatar for maker ${name}`, + caption: `Maker: ${name}`, + }) + ) let result try { - result = await axios.post( - api('/upload'), - form, - { - headers: { - ...form.getHeaders(), - Authorization: `Bearer ${token}`, - }, - } - ) - } - catch (err) { - console.log("ERROR: Failed to upload picture") - return [false, {error: 'Upload failed'}] + result = await axios.post(api('/upload'), form, { + headers: { + ...form.getHeaders(), + Authorization: `Bearer ${token}`, + }, + }) + } catch (err) { + console.log('ERROR: Failed to upload picture') + return [false, { error: 'Upload failed' }] } return [true, result.data] } -const validRequest = body => ( +const validRequest = (body) => body && body.displayname && body.about && @@ -94,40 +91,36 @@ const validRequest = body => ( typeof body.displayname === 'string' && typeof body.about === 'string' && typeof body.picture === 'string' -) - // Creates a maker or author in Strapi const createPerson = async (type, data, token) => { let result try { - result = await axios.post( - api(`/${type}s`), - data, - withToken(token) - ) - } - catch (err) { - console.log("ERROR: Failed to create", type) - return [false, {error: 'Creation failed'}] + result = await axios.post(api(`/${type}s`), data, withToken(token)) + } catch (err) { + console.log('ERROR: Failed to create', type) + return [false, { error: 'Creation failed' }] } return [true, result.data] - } function StrapiController() {} -StrapiController.prototype.addPerson = async function(req, res, type) { +StrapiController.prototype.addPerson = async function (req, res, type) { if (!validRequest(req.body)) return res.sendStatus(400) const token = await getToken() const [upload, picture] = await uploadPicture(req.body.picture, req.body.displayname, token) if (!upload) return res.status(400).send(picture) - const [create, person] = await createPerson(type, { - picture: picture[0].id, - displayname: req.body.displayname, - about: req.body.about, - }, token) + const [create, person] = await createPerson( + type, + { + picture: picture[0].id, + displayname: req.body.displayname, + about: req.body.about, + }, + token + ) if (!create) return res.status(400).send(person) return res.send(person) diff --git a/sites/backend/src/controllers/user.js b/sites/backend/src/controllers/user.js index 615ea5ad950..be4de55816d 100644 --- a/sites/backend/src/controllers/user.js +++ b/sites/backend/src/controllers/user.js @@ -1,11 +1,5 @@ import { User, Confirmation, Person, Pattern } from '../models' -import { - log, - email, - ehash, - newHandle, - uniqueHandle, -} from '../utils' +import { log, email, ehash, newHandle, uniqueHandle } from '../utils' import jwt from 'jsonwebtoken' import config from '../config' import path from 'path' @@ -15,15 +9,15 @@ import rimraf from 'rimraf' function UserController() {} -UserController.prototype.login = function(req, res) { +UserController.prototype.login = function (req, res) { if (!req.body || !req.body.username) return res.sendStatus(400) User.findOne( { $or: [ { username: req.body.username.toLowerCase().trim() }, { username: req.body.username.trim() }, - { ehash: ehash(req.body.username) } - ] + { ehash: ehash(req.body.username) }, + ], }, (err, user) => { if (err) return res.sendStatus(400) @@ -44,9 +38,7 @@ UserController.prototype.login = function(req, res) { Pattern.find({ user: user.handle }, (err, patternList) => { if (err) return res.sendStatus(400) for (let pattern of patternList) patterns[pattern.handle] = pattern - return user.updateLoginTime(() => - res.send({ account, people, patterns, token }) - ) + return user.updateLoginTime(() => res.send({ account, people, patterns, token })) }) }) } @@ -60,7 +52,7 @@ UserController.prototype.login = function(req, res) { } // For people who have forgotten their password, or password-less logins -UserController.prototype.confirmationLogin = function(req, res) { +UserController.prototype.confirmationLogin = function (req, res) { if (!req.body || !req.body.id) return res.sendStatus(400) Confirmation.findById(req.body.id, (err, confirmation) => { if (err) return res.sendStatus(400) @@ -83,9 +75,7 @@ UserController.prototype.confirmationLogin = function(req, res) { Pattern.find({ user: user.handle }, (err, patternList) => { if (err) return res.sendStatus(400) for (let pattern of patternList) patterns[pattern.handle] = pattern - return user.updateLoginTime(() => - res.send({ account, people, patterns, token }) - ) + return user.updateLoginTime(() => res.send({ account, people, patterns, token })) }) }) } @@ -112,7 +102,7 @@ UserController.prototype.create = (req, res) => { log.info('accountActivated', { handle: user.handle }) let account = user.account() let token = getToken(account) - user.save(function(err) { + user.save(function (err) { if (err) return res.sendStatus(400) Confirmation.findByIdAndDelete(req.body.id, (err, confirmation) => { return res.send({ account, people: {}, patterns: {}, token }) @@ -164,7 +154,7 @@ UserController.prototype.update = (req, res) => { if (typeof data.settings !== 'undefined') { user.settings = { ...user.settings, - ...data.settings + ...data.settings, } return saveAndReturnAccount(res, user) } else if (data.newsletter === true || data.newsletter === false) { @@ -183,7 +173,7 @@ UserController.prototype.update = (req, res) => { } else if (typeof data.consent === 'object') { user.consent = { ...user.consent, - ...data.consent + ...data.consent, } return saveAndReturnAccount(res, user) } else if (typeof data.avatar !== 'undefined') { @@ -223,15 +213,15 @@ UserController.prototype.update = (req, res) => { language: user.settings.language, email: { new: req.body.email, - current: user.email - } - } + current: user.email, + }, + }, }) - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) log.info('emailchangeRequest', { newEmail: req.body.email, - confirmation: confirmation._id + confirmation: confirmation._id, }) email.emailchange(req.body.email, user.email, user.settings.language, confirmation._id) return saveAndReturnAccount(res, user) @@ -242,7 +232,7 @@ UserController.prototype.update = (req, res) => { } function saveAndReturnAccount(res, user) { - user.save(function(err, updatedUser) { + user.save(function (err, updatedUser) { if (err) { log.error('accountUpdateFailed', err) return res.sendStatus(500) @@ -274,7 +264,7 @@ UserController.prototype.signup = (req, res) => { if (!req.body.language) return res.status(400).send('languageMissing') User.findOne( { - ehash: ehash(req.body.email) + ehash: ehash(req.body.email), }, (err, user) => { if (err) return res.sendStatus(500) @@ -293,10 +283,10 @@ UserController.prototype.signup = (req, res) => { status: 'pending', picture: handle + '.svg', time: { - created: new Date() - } + created: new Date(), + }, }) - user.save(function(err) { + user.save(function (err) { if (err) { log.error('accountCreationFailed', user) console.log(err) @@ -310,10 +300,10 @@ UserController.prototype.signup = (req, res) => { language: req.body.language, email: req.body.email, password: req.body.password, - handle - } + handle, + }, }) - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) log.info('signupRequest', { email: req.body.email, confirmation: confirmation._id }) email.signup(req.body.email, req.body.language, confirmation._id) @@ -332,7 +322,7 @@ UserController.prototype.resend = (req, res) => { if (!req.body.language) return res.status(400).send('languageMissing') User.findOne( { - ehash: ehash(req.body.email) + ehash: ehash(req.body.email), }, (err, user) => { if (err) return res.sendStatus(500) @@ -343,12 +333,15 @@ UserController.prototype.resend = (req, res) => { data: { language: req.body.language, email: user.email, - handle: user.handle - } + handle: user.handle, + }, }) - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) - log.info('resendActivationRequest', { email: req.body.email, confirmation: confirmation._id }) + log.info('resendActivationRequest', { + email: req.body.email, + confirmation: confirmation._id, + }) email.signup(req.body.email, req.body.language, confirmation._id) return res.sendStatus(200) }) @@ -363,8 +356,8 @@ UserController.prototype.resetPassword = (req, res) => { { $or: [ { username: req.body.username.toLowerCase().trim() }, - { ehash: ehash(req.body.username) } - ] + { ehash: ehash(req.body.username) }, + ], }, (err, user) => { if (err) { @@ -375,10 +368,10 @@ UserController.prototype.resetPassword = (req, res) => { let confirmation = new Confirmation({ type: 'passwordreset', data: { - handle: user.handle - } + handle: user.handle, + }, }) - confirmation.save(function(err) { + confirmation.save(function (err) { if (err) return res.sendStatus(500) log.info('passwordresetRequest', { user: user.handle, confirmation: confirmation._id }) email.passwordreset(user.email, user.settings.language, confirmation._id) @@ -398,7 +391,7 @@ UserController.prototype.setPassword = (req, res) => { if (user === null) return res.sendStatus(401) if (confirmation.type === 'passwordreset' && confirmation.data.handle === user.handle) { user.password = req.body.password - user.save(function(err) { + user.save(function (err) { log.info('passwordSet', { user, req }) let account = user.account() let token = getToken(account) @@ -433,7 +426,7 @@ UserController.prototype.patronList = (req, res) => { let patrons = { 2: [], 4: [], - 8: [] + 8: [], } for (let key of Object.keys(users)) { let user = users[key].profile() @@ -443,7 +436,7 @@ UserController.prototype.patronList = (req, res) => { bio: user.bio, picture: user.picture, social: user.social, - pictureUris: user.pictureUris + pictureUris: user.pictureUris, }) } return res.send(patrons) @@ -458,17 +451,17 @@ UserController.prototype.export = (req, res) => { if (!dir) return res.sendStatus(500) let zip = new Zip() zip.file('account.json', JSON.stringify(user.export(), null, 2)) - loadAvatar(user).then(avatar => { + loadAvatar(user).then((avatar) => { if (avatar) zip.file(user.picture, data) zip .generateAsync({ type: 'uint8array', comment: 'freesewing.org', - streamFiles: true + streamFiles: true, }) - .then(function(data) { + .then(function (data) { let file = path.join(dir, 'export.zip') - fs.writeFile(file, data, err => { + fs.writeFile(file, data, (err) => { log.info('dataExport', { user, req }) return res.send({ export: uri(file) }) }) @@ -477,7 +470,7 @@ UserController.prototype.export = (req, res) => { }) } -const loadAvatar = async user => { +const loadAvatar = async (user) => { if (user.picture) await fs.readFile(path.join(user.storagePath(), user.picture), (err, data) => data) else return false @@ -489,7 +482,7 @@ UserController.prototype.restrict = (req, res) => { User.findById(req.user._id, (err, user) => { if (user === null) return res.sendStatus(400) user.status = 'frozen' - user.save(function(err) { + user.save(function (err) { if (err) { log.error('accountFreezeFailed', user) return res.sendStatus(500) @@ -504,7 +497,7 @@ UserController.prototype.remove = (req, res) => { if (!req.user._id) return res.sendStatus(400) User.findById(req.user._id, (err, user) => { if (user === null) return res.sendStatus(400) - rimraf(user.storagePath(), err => { + rimraf(user.storagePath(), (err) => { if (err) { console.log('rimraf', err) log.error('accountRemovalFailed', { err, user, req }) @@ -520,14 +513,14 @@ UserController.prototype.remove = (req, res) => { }) } -const getToken = account => { +const getToken = (account) => { return jwt.sign( { _id: account._id, handle: account.handle, role: account.role, aud: config.jwt.audience, - iss: config.jwt.issuer + iss: config.jwt.issuer, }, config.jwt.secretOrKey ) @@ -535,7 +528,7 @@ const getToken = account => { const createTempDir = () => { let path = temporaryStoragePath(newHandle(10)) - fs.mkdir(path, { recursive: true }, err => { + fs.mkdir(path, { recursive: true }, (err) => { if (err) { log.error('mkdirFailed', err) path = false @@ -545,6 +538,6 @@ const createTempDir = () => { return path } -const uri = path => config.static + path.substring(config.storage.length) +const uri = (path) => config.static + path.substring(config.storage.length) export default UserController diff --git a/sites/backend/src/landing/already-subscribed.html b/sites/backend/src/landing/already-subscribed.html index f30ffe9bbae..2df1ecce436 100644 --- a/sites/backend/src/landing/already-subscribed.html +++ b/sites/backend/src/landing/already-subscribed.html @@ -37,7 +37,7 @@ -

+

Love the enthusiasm

But you were already subscribed

diff --git a/sites/backend/src/landing/index.html b/sites/backend/src/landing/index.html index d250e843eed..a313597a81c 100644 --- a/sites/backend/src/landing/index.html +++ b/sites/backend/src/landing/index.html @@ -34,21 +34,24 @@ max-width: 36ch; margin: 6rem auto; } - a, a:visited, a:active { + a, + a:visited, + a:active { color: #d0bfff !important; text-decoration: none; } -
+

Hi

This is the FreeSewing backend. -
+
Try
freesewing.org instead.

-

For questions, join us at +

+ For questions, join us at discord.freesewing.org

diff --git a/sites/backend/src/landing/invalid.html b/sites/backend/src/landing/invalid.html index a3baa1d32ce..47058631900 100644 --- a/sites/backend/src/landing/invalid.html +++ b/sites/backend/src/landing/invalid.html @@ -34,18 +34,18 @@ max-width: 36ch; margin: 6rem auto; } - a, a:visited, a:active { + a, + a:visited, + a:active { color: #d0bfff !important; text-decoration: none; } -
+

What are you doing?

-

- Try freesewing.org instead. -

+

Try freesewing.org instead.

diff --git a/sites/backend/src/landing/oops.html b/sites/backend/src/landing/oops.html index 264ca143291..905c82e3b41 100644 --- a/sites/backend/src/landing/oops.html +++ b/sites/backend/src/landing/oops.html @@ -34,18 +34,18 @@ max-width: 36ch; margin: 6rem auto; } - a, a:visited, a:active { + a, + a:visited, + a:active { color: #d0bfff !important; text-decoration: none; } -
+

Oops

-

- That did not go as planned -

+

That did not go as planned

diff --git a/sites/backend/src/landing/subscribe.html b/sites/backend/src/landing/subscribe.html index e0920804cbd..57d8f6f488d 100644 --- a/sites/backend/src/landing/subscribe.html +++ b/sites/backend/src/landing/subscribe.html @@ -37,7 +37,7 @@ -
+

Done

You are now subscribed to the FreeSewing newsletter

diff --git a/sites/backend/src/landing/unsubscribe.html b/sites/backend/src/landing/unsubscribe.html index 76a4aef7dc1..b7ed6ad1a97 100644 --- a/sites/backend/src/landing/unsubscribe.html +++ b/sites/backend/src/landing/unsubscribe.html @@ -37,7 +37,7 @@ -
+

Gone

You are no longer subscribed to the FreeSewing newsletter

diff --git a/sites/backend/src/middleware/express/bodyParser.js b/sites/backend/src/middleware/express/bodyParser.js index 13ad583df26..8e242ebf56d 100644 --- a/sites/backend/src/middleware/express/bodyParser.js +++ b/sites/backend/src/middleware/express/bodyParser.js @@ -1,6 +1,6 @@ import bodyParser from 'body-parser' -export default app => { +export default (app) => { app.use(bodyParser.json({ limit: '20mb' })) app.use(bodyParser.urlencoded({ extended: true })) } diff --git a/sites/backend/src/middleware/express/cors.js b/sites/backend/src/middleware/express/cors.js index c285a89523b..206b0970a24 100644 --- a/sites/backend/src/middleware/express/cors.js +++ b/sites/backend/src/middleware/express/cors.js @@ -1,5 +1,5 @@ import cors from 'cors' -export default app => { +export default (app) => { app.use(cors()) } diff --git a/sites/backend/src/middleware/passport/jwt.js b/sites/backend/src/middleware/passport/jwt.js index 7488eebca43..85af45370f6 100644 --- a/sites/backend/src/middleware/passport/jwt.js +++ b/sites/backend/src/middleware/passport/jwt.js @@ -3,10 +3,10 @@ import config from '../../config' const options = { jwtFromRequest: jwt.ExtractJwt.fromAuthHeaderAsBearerToken(), - ...config.jwt + ...config.jwt, } -export default passport => { +export default (passport) => { passport.use( new jwt.Strategy(options, (jwt_payload, done) => { return done(null, jwt_payload) diff --git a/sites/backend/src/models/confirmation.js b/sites/backend/src/models/confirmation.js index 508bc61097f..7be3d196519 100644 --- a/sites/backend/src/models/confirmation.js +++ b/sites/backend/src/models/confirmation.js @@ -6,14 +6,14 @@ import config from '../config' const ConfirmationSchema = new Schema({ created: { type: Date, - default: Date.now + default: Date.now, }, type: { type: String, enum: ['signup', 'emailchange', 'passwordreset', 'oauth', 'newsletter'], - required: true + required: true, }, - data: {} + data: {}, }) ConfirmationSchema.plugin(bcrypt) @@ -21,7 +21,7 @@ ConfirmationSchema.plugin(bcrypt) ConfirmationSchema.plugin(encrypt, { secret: config.encryption.key, encryptedFields: ['data'], - decryptPostSave: false + decryptPostSave: false, }) export default mongoose.model('Confirmation', ConfirmationSchema) diff --git a/sites/backend/src/models/newsletter.js b/sites/backend/src/models/newsletter.js index f08661ad93f..b8c08a1937e 100644 --- a/sites/backend/src/models/newsletter.js +++ b/sites/backend/src/models/newsletter.js @@ -6,19 +6,19 @@ import config from '../config' const NewsletterSchema = new Schema({ created: { type: Date, - default: Date.now + default: Date.now, }, email: { type: String, - required: true + required: true, }, ehash: { type: String, required: true, unique: true, - index: true + index: true, }, - data: {} + data: {}, }) NewsletterSchema.plugin(bcrypt) @@ -28,7 +28,7 @@ NewsletterSchema.index({ ehash: 1 }) NewsletterSchema.plugin(encrypt, { secret: config.encryption.key, encryptedFields: ['email'], - decryptPostSave: false + decryptPostSave: false, }) export default mongoose.model('Newsletter', NewsletterSchema) diff --git a/sites/backend/src/models/pattern.js b/sites/backend/src/models/pattern.js index 72d7e613fd2..22c25377b79 100644 --- a/sites/backend/src/models/pattern.js +++ b/sites/backend/src/models/pattern.js @@ -8,51 +8,51 @@ const PatternSchema = new Schema( lowercase: true, unique: true, trim: true, - index: true + index: true, }, user: { type: String, required: true, lowercase: true, trim: true, - index: true + index: true, }, person: { type: String, required: true, lowercase: true, trim: true, - index: true + index: true, }, name: { type: String, required: true, - trim: true + trim: true, }, created: Date, notes: { type: String, - trim: true + trim: true, }, - data: {} + data: {}, }, { timestamps: true } ) PatternSchema.index({ user: 1, handle: 1 }) -PatternSchema.methods.info = function() { +PatternSchema.methods.info = function () { return this.toObject() } -PatternSchema.methods.export = function() { +PatternSchema.methods.export = function () { let pattern = this.toObject() for (let field of ['__v', '_id', '_v', 'created']) delete pattern[field] return pattern } -PatternSchema.methods.anonymize = function() { +PatternSchema.methods.anonymize = function () { let pattern = this.toObject() for (let field of ['__v', '_id', 'user', 'createdAt', 'updatedAt', '_v']) delete pattern[field] diff --git a/sites/backend/src/models/person.js b/sites/backend/src/models/person.js index 6bffe443e3a..b7732a72b48 100644 --- a/sites/backend/src/models/person.js +++ b/sites/backend/src/models/person.js @@ -13,37 +13,37 @@ const PersonSchema = new Schema( lowercase: true, unique: true, trim: true, - index: true + index: true, }, user: { type: String, required: true, lowercase: true, trim: true, - index: true + index: true, }, name: { type: String, required: true, - trim: true + trim: true, }, breasts: { type: Boolean, - default: false + default: false, }, picture: { type: String, trim: true, - default: '' + default: '', }, units: { type: String, enum: ['metric', 'imperial'], - default: 'metric' + default: 'metric', }, notes: { type: String, - trim: true + trim: true, }, measurements: { ankle: Number, @@ -90,7 +90,7 @@ const PersonSchema = new Schema( PersonSchema.index({ user: 1, handle: 1 }) -PersonSchema.methods.info = function() { +PersonSchema.methods.info = function () { let person = this.toObject() delete person.__v delete person._id @@ -98,20 +98,20 @@ PersonSchema.methods.info = function() { l: this.avatarUri(), m: this.avatarUri('m'), s: this.avatarUri('s'), - xs: this.avatarUri('xs') + xs: this.avatarUri('xs'), } return person } -PersonSchema.methods.avatarName = function(size = 'l') { +PersonSchema.methods.avatarName = function (size = 'l') { let prefix = size === 'l' ? '' : size + '-' if (this.picture.slice(-4).toLowerCase() === '.svg') prefix = '' return prefix + this.picture } -PersonSchema.methods.avatarUri = function(size = 'l') { +PersonSchema.methods.avatarUri = function (size = 'l') { return ( config.static + '/users/' + @@ -125,7 +125,7 @@ PersonSchema.methods.avatarUri = function(size = 'l') { ) } -PersonSchema.methods.storagePath = function() { +PersonSchema.methods.storagePath = function () { return ( config.storage + '/users/' + @@ -138,24 +138,24 @@ PersonSchema.methods.storagePath = function() { ) } -PersonSchema.methods.createAvatar = function() { +PersonSchema.methods.createAvatar = function () { let dir = this.storagePath() - fs.mkdir(dir, { recursive: true }, err => { + fs.mkdir(dir, { recursive: true }, (err) => { if (err) console.log('mkdirFailed', dir, err) - fs.writeFile(path.join(dir, this.handle) + '.svg', randomAvatar(), err => { + fs.writeFile(path.join(dir, this.handle) + '.svg', randomAvatar(), (err) => { if (err) console.log('writeFileFailed', dir, err) }) }) } -PersonSchema.methods.saveAvatar = function(picture) { +PersonSchema.methods.saveAvatar = function (picture) { let type = picture.split(';').shift() type = type.split('/').pop() this.picture = this.handle + '.' + type let dir = this.storagePath() let b64 = picture.split(';base64,').pop() - fs.mkdir(dir, { recursive: true }, err => { + fs.mkdir(dir, { recursive: true }, (err) => { if (err) log.error('mkdirFailed', err) let imgBuffer = Buffer.from(b64, 'base64') for (let size of Object.keys(config.avatar.sizes)) { diff --git a/sites/backend/src/models/user.js b/sites/backend/src/models/user.js index 63c3278f989..d1c3e4eb551 100644 --- a/sites/backend/src/models/user.js +++ b/sites/backend/src/models/user.js @@ -12,24 +12,24 @@ const UserSchema = new Schema( { email: { type: String, - required: true + required: true, }, ehash: { type: String, required: true, unique: true, - index: true + index: true, }, initial: { type: String, - required: true + required: true, }, username: { type: String, required: true, unique: true, index: true, - trim: true + trim: true, }, handle: { type: String, @@ -37,89 +37,89 @@ const UserSchema = new Schema( lowercase: true, trim: true, index: true, - unique: true + unique: true, }, role: { type: String, enum: ['user', 'moderator', 'admin'], required: true, - default: 'user' + default: 'user', }, patron: { type: Number, enum: [0, 2, 4, 8], - default: 0 + default: 0, }, bio: { type: String, - default: '' + default: '', }, picture: { type: String, trim: true, - default: '' + default: '', }, status: { type: String, enum: ['pending', 'active', 'blocked', 'frozen'], default: 'pending', - required: true + required: true, }, password: { type: String, - bcrypt: true + bcrypt: true, }, settings: { language: { type: String, default: 'en', - enum: config.languages + enum: config.languages, }, units: { type: String, enum: ['metric', 'imperial'], - default: 'metric' - } + default: 'metric', + }, }, consent: { profile: { type: Boolean, - default: false + default: false, }, measurements: { type: Boolean, - default: false + default: false, }, openData: { type: Boolean, - default: true - } + default: true, + }, }, time: { migrated: Date, login: Date, - patron: Date + patron: Date, }, social: { twitter: String, instagram: String, - github: String + github: String, }, newsletter: { type: Boolean, - default: false + default: false, }, }, { timestamps: true } ) -UserSchema.pre('remove', function(next) { +UserSchema.pre('remove', function (next) { email .goodbye(this.email, this.settings.language) .then(() => { next() }) - .catch(err => { + .catch((err) => { logger.error(err) next() }) @@ -131,10 +131,10 @@ UserSchema.index({ ehash: 1, username: 1, handle: 1 }) UserSchema.plugin(encrypt, { secret: config.encryption.key, encryptedFields: ['email', 'initial', 'social.twitter', 'social.instagram', 'social.github'], - decryptPostSave: true + decryptPostSave: true, }) -UserSchema.methods.account = function() { +UserSchema.methods.account = function () { let account = this.toObject() delete account.password delete account.ehash @@ -147,13 +147,13 @@ UserSchema.methods.account = function() { l: this.avatarUri(), m: this.avatarUri('m'), s: this.avatarUri('s'), - xs: this.avatarUri('xs') + xs: this.avatarUri('xs'), } return account } -UserSchema.methods.profile = function() { +UserSchema.methods.profile = function () { let account = this.toObject() delete account.password delete account.ehash @@ -174,13 +174,13 @@ UserSchema.methods.profile = function() { l: this.avatarUri(), m: this.avatarUri('m'), s: this.avatarUri('s'), - xs: this.avatarUri('xs') + xs: this.avatarUri('xs'), } return account } -UserSchema.methods.adminProfile = function() { +UserSchema.methods.adminProfile = function () { let account = this.toObject() delete account.password delete account.ehash @@ -194,13 +194,13 @@ UserSchema.methods.adminProfile = function() { l: this.avatarUri(), m: this.avatarUri('m'), s: this.avatarUri('s'), - xs: this.avatarUri('xs') + xs: this.avatarUri('xs'), } return account } -UserSchema.methods.export = function() { +UserSchema.methods.export = function () { let exported = this.toObject() delete exported.password delete exported.ehash @@ -211,26 +211,26 @@ UserSchema.methods.export = function() { return exported } -UserSchema.methods.updateLoginTime = function(callback) { +UserSchema.methods.updateLoginTime = function (callback) { this.set({ time: { login: new Date() } }) - this.save(function(err, user) { + this.save(function (err, user) { return callback() }) } -UserSchema.methods.avatarName = function(size = 'l') { +UserSchema.methods.avatarName = function (size = 'l') { let prefix = size === 'l' ? '' : size + '-' if (this.picture.slice(-4).toLowerCase() === '.svg') prefix = '' return prefix + this.picture } -UserSchema.methods.storagePath = function() { +UserSchema.methods.storagePath = function () { return path.join(config.storage, 'users', this.handle.substring(0, 1), this.handle) } -UserSchema.methods.avatarUri = function(size = 'l') { - if (!this.picture || this.picture.length < 5) return "https://freesewing.org/avatar.svg" +UserSchema.methods.avatarUri = function (size = 'l') { + if (!this.picture || this.picture.length < 5) return 'https://freesewing.org/avatar.svg' return ( config.static + '/users/' + @@ -242,14 +242,14 @@ UserSchema.methods.avatarUri = function(size = 'l') { ) } -UserSchema.methods.saveAvatar = function(picture) { +UserSchema.methods.saveAvatar = function (picture) { let type = picture.split(';').shift() type = type.split('/').pop() this.picture = this.handle + '.' + type let dir = this.storagePath() let b64 = picture.split(';base64,').pop() - fs.mkdir(dir, { recursive: true }, err => { + fs.mkdir(dir, { recursive: true }, (err) => { if (err) log.error('mkdirFailed', err) let imgBuffer = Buffer.from(b64, 'base64') for (let size of Object.keys(config.avatar.sizes)) { @@ -262,11 +262,11 @@ UserSchema.methods.saveAvatar = function(picture) { }) } -UserSchema.methods.createAvatar = function() { +UserSchema.methods.createAvatar = function () { let dir = this.storagePath() - fs.mkdirSync(dir, { recursive: true }, err => { + fs.mkdirSync(dir, { recursive: true }, (err) => { if (err) console.log('mkdirFailed', dir, err) - fs.writeFileSync(path.join(dir, this.handle) + '.svg', randomAvatar(), err => { + fs.writeFileSync(path.join(dir, this.handle) + '.svg', randomAvatar(), (err) => { if (err) console.log('writeFileFailed', dir, err) }) }) diff --git a/sites/backend/src/routes/admin.js b/sites/backend/src/routes/admin.js index 6739041e003..87db357b78f 100644 --- a/sites/backend/src/routes/admin.js +++ b/sites/backend/src/routes/admin.js @@ -4,24 +4,20 @@ const Admin = new Controller() export default (app, passport) => { // Users + app.post('/admin/search', passport.authenticate('jwt', { session: false }), Admin.search) + app.put('/admin/patron', passport.authenticate('jwt', { session: false }), Admin.setPatronStatus) + app.put('/admin/role', passport.authenticate('jwt', { session: false }), Admin.setRole) app.post( - '/admin/search', + '/admin/impersonate', passport.authenticate('jwt', { session: false }), - Admin.search + Admin.impersonate ) - app.put( - '/admin/patron', - passport.authenticate('jwt', { session: false }), - Admin.setPatronStatus - ) - app.put( - '/admin/role', - passport.authenticate('jwt', { session: false }), - Admin.setRole - ) - app.post('/admin/impersonate', passport.authenticate('jwt', { session: false }), Admin.impersonate) app.put('/admin/unfreeze', passport.authenticate('jwt', { session: false }), Admin.unfreeze) app.get('/admin/patrons', passport.authenticate('jwt', { session: false }), Admin.patronList) - app.get('/admin/subscribers', passport.authenticate('jwt', { session: false }), Admin.subscriberList) + app.get( + '/admin/subscribers', + passport.authenticate('jwt', { session: false }), + Admin.subscriberList + ) app.get('/admin/stats', passport.authenticate('jwt', { session: false }), Admin.stats) } diff --git a/sites/backend/src/routes/index.js b/sites/backend/src/routes/index.js index 950627b1fc9..80f8143b278 100644 --- a/sites/backend/src/routes/index.js +++ b/sites/backend/src/routes/index.js @@ -6,6 +6,6 @@ import github from './github' import admin from './admin' import newsletter from './newsletter' import strapi from './strapi' -import og from "./og"; +import og from './og' export default { user, pattern, person, auth, github, admin, newsletter, strapi, og } diff --git a/sites/backend/src/routes/newsletter.js b/sites/backend/src/routes/newsletter.js index 5884b3409cb..52cf6e69cad 100644 --- a/sites/backend/src/routes/newsletter.js +++ b/sites/backend/src/routes/newsletter.js @@ -1,6 +1,6 @@ import Controller from '../controllers/newsletter' -const Nws= new Controller() +const Nws = new Controller() export default (app, passport) => { // Email subscribe diff --git a/sites/backend/src/routes/og.js b/sites/backend/src/routes/og.js index 8431f15e453..72f1b7d7413 100644 --- a/sites/backend/src/routes/og.js +++ b/sites/backend/src/routes/og.js @@ -1,11 +1,9 @@ -import Controller from "../controllers/og"; +import Controller from '../controllers/og' // Note: Og = Open graph. See https://ogp.me/ -const Og = new Controller(); +const Og = new Controller() export default (app, passport) => { - // Load open graph image (requires no authentication) - app.get("/og-img/:lang/:site/*", Og.image); - + app.get('/og-img/:lang/:site/*', Og.image) } diff --git a/sites/backend/src/routes/strapi.js b/sites/backend/src/routes/strapi.js index 65a4767ec0c..a0a8049b9e0 100644 --- a/sites/backend/src/routes/strapi.js +++ b/sites/backend/src/routes/strapi.js @@ -1,6 +1,6 @@ import Controller from '../controllers/strapi' -const Strapi= new Controller() +const Strapi = new Controller() export default (app, passport) => { // Email subscribe diff --git a/sites/backend/src/templates/emailchange.js b/sites/backend/src/templates/emailchange.js index cf3456e36b3..afd2cb88d3a 100644 --- a/sites/backend/src/templates/emailchange.js +++ b/sites/backend/src/templates/emailchange.js @@ -4,7 +4,7 @@ const emailchange = { 'email.emailchangeCopy1', 'email.emailchangeActionText', 'email.questionsJustReply', - 'email.signature' + 'email.signature', ], html: ` @@ -71,7 +71,7 @@ __emailchangeCopy1__ __emailchangeActionLink__ -__questionsJustReply__` +__questionsJustReply__`, } export default emailchange diff --git a/sites/backend/src/templates/footer.js b/sites/backend/src/templates/footer.js index 375f34694f4..8cb96af50e4 100644 --- a/sites/backend/src/templates/footer.js +++ b/sites/backend/src/templates/footer.js @@ -29,7 +29,7 @@ const footer = {
`, - text: '' + text: '', } export default footer diff --git a/sites/backend/src/templates/goodbye.js b/sites/backend/src/templates/goodbye.js index 469b8e4de2d..60ed4f1db3b 100644 --- a/sites/backend/src/templates/goodbye.js +++ b/sites/backend/src/templates/goodbye.js @@ -39,7 +39,7 @@ const goodbye = { `, text: `__goodbyeTitle__ -__goodbyeCopy1__` +__goodbyeCopy1__`, } export default goodbye diff --git a/sites/backend/src/templates/header.js b/sites/backend/src/templates/header.js index 1c4652df347..2d27b0be6cc 100644 --- a/sites/backend/src/templates/header.js +++ b/sites/backend/src/templates/header.js @@ -113,7 +113,7 @@ const header = { `, - text: '' + text: '', } export default header diff --git a/sites/backend/src/templates/newsletter-subscribe.js b/sites/backend/src/templates/newsletter-subscribe.js index e67a5acc871..f4518091d28 100644 --- a/sites/backend/src/templates/newsletter-subscribe.js +++ b/sites/backend/src/templates/newsletter-subscribe.js @@ -56,7 +56,7 @@ If it was you, please click below to confirm your subscription: __newsletterConfirmationLink__ -` +`, } export default subscribe diff --git a/sites/backend/src/templates/newsletter-welcome.js b/sites/backend/src/templates/newsletter-welcome.js index e6188ef8a94..ce6a3470da4 100644 --- a/sites/backend/src/templates/newsletter-welcome.js +++ b/sites/backend/src/templates/newsletter-welcome.js @@ -38,7 +38,7 @@ If you'd like to catch up, we keep an online archive of previous editions at: ht You can unsubscribe at any time by visiting this link: __newsletterUnsubscribeLink__ -` +`, } export default welcome diff --git a/sites/backend/src/templates/passwordreset.js b/sites/backend/src/templates/passwordreset.js index c55e38a8fa1..347bff20fa9 100644 --- a/sites/backend/src/templates/passwordreset.js +++ b/sites/backend/src/templates/passwordreset.js @@ -4,7 +4,7 @@ const passwordreset = { 'passwordresetCopy1', 'passwordresetActionText', 'questionsJustReply', - 'signature' + 'signature', ], html: ` @@ -71,7 +71,7 @@ __passwordresetCopy1__ __passwordresetActionLink__ -__questionsJustReply__` +__questionsJustReply__`, } export default passwordreset diff --git a/sites/backend/src/templates/signup.js b/sites/backend/src/templates/signup.js index ba83ccaf269..f9d0fc368e9 100644 --- a/sites/backend/src/templates/signup.js +++ b/sites/backend/src/templates/signup.js @@ -65,7 +65,7 @@ __signupCopy1__ __signupActionLink__ -__questionsJustReply__` +__questionsJustReply__`, } export default signup diff --git a/sites/backend/src/utils/email/index.js b/sites/backend/src/utils/email/index.js index 2468ab37ed3..0fb20667b57 100644 --- a/sites/backend/src/utils/email/index.js +++ b/sites/backend/src/utils/email/index.js @@ -7,7 +7,7 @@ import sendEmailWith from './relays' const deliver = sendEmailWith(config.sendEmailWith) const email = {} -const loadTemplate = (type, format, language='en') => { +const loadTemplate = (type, format, language = 'en') => { let template = templates.header[format] + templates[type][format] + templates.footer[format] let toTranslate = templates[type].i18n.concat(templates.footer.i18n) let from = [] @@ -22,7 +22,7 @@ const loadTemplate = (type, format, language='en') => { } const replace = (text, from, to) => { - for (let id=0; id < from.length; id++) text = text.split(from[id]).join(to[id] || from[id]) + for (let id = 0; id < from.length; id++) text = text.split(from[id]).join(to[id] || from[id]) return text } @@ -36,7 +36,7 @@ email.signup = (recipient, language, id) => { link, i18n[language]['email.signupHeaderOpeningLine'], i18n[language]['email.signupHiddenIntro'], - i18n[language]['email.signupWhy'] + i18n[language]['email.signupWhy'], ] html = replace(html, from, to) text = replace(text, from, to) @@ -45,10 +45,10 @@ email.signup = (recipient, language, id) => { to: recipient, subject: i18n[language]['email.signupSubject'], headers: { - 'X-Freesewing-Confirmation-ID': '' + id + 'X-Freesewing-Confirmation-ID': '' + id, }, text, - html + html, } deliver(options, (error, info) => { if (error) return console.log(error) @@ -68,7 +68,7 @@ email.emailchange = (newAddress, currentAddress, language, id) => { '__hiddenIntro__', '__footerWhy__', '__questionsJustReply__', - '__signature__' + '__signature__', ] let to = [ createUrl(language, `/confirm/email/${id}`), @@ -90,10 +90,10 @@ email.emailchange = (newAddress, currentAddress, language, id) => { cc: currentAddress, subject: i18n[language]['email.emailchangeSubject'], headers: { - 'X-Freesewing-Confirmation-ID': '' + id + 'X-Freesewing-Confirmation-ID': '' + id, }, text, - html + html, } deliver(options, (error, info) => { if (error) return console.log(error) @@ -108,13 +108,13 @@ email.passwordreset = (recipient, language, id) => { '__passwordresetActionLink__', '__headerOpeningLine__', '__hiddenIntro__', - '__footerWhy__' + '__footerWhy__', ] let to = [ createUrl(language, `/confirm/reset/${id}`), i18n[language]['email.passwordresetHeaderOpeningLine'], i18n[language]['email.passwordresetHiddenIntro'], - i18n[language]['email.passwordresetWhy'] + i18n[language]['email.passwordresetWhy'], ] html = replace(html, from, to) text = replace(text, from, to) @@ -124,10 +124,10 @@ email.passwordreset = (recipient, language, id) => { to: recipient, subject: i18n[language]['email.passwordresetSubject'], headers: { - 'X-Freesewing-Confirmation-ID': '' + id + 'X-Freesewing-Confirmation-ID': '' + id, }, text, - html + html, } deliver(options, (error, info) => { if (error) return console.log(error) @@ -142,7 +142,7 @@ email.goodbye = async (recipient, language) => { let to = [ i18n[language]['email.goodbyeHeaderOpeningLine'], i18n[language]['email.goodbyeHiddenIntro'], - i18n[language]['email.goodbyeWhy'] + i18n[language]['email.goodbyeWhy'], ] html = replace(html, from, to) text = replace(text, from, to) @@ -152,7 +152,7 @@ email.goodbye = async (recipient, language) => { to: recipient, subject: i18n[language]['email.goodbyeSubject'], text, - html + html, } deliver(options, (error, info) => { if (error) return console.log(error) @@ -163,12 +163,17 @@ email.goodbye = async (recipient, language) => { email.subscribe = async (recipient, token) => { let html = loadTemplate('newsletterSubscribe', 'html', 'en') let text = loadTemplate('newsletterSubscribe', 'text', 'en') - let from = ['__hiddenIntro__', '__headerOpeningLine__', '__newsletterConfirmationLink__', '__footerWhy__'] + let from = [ + '__hiddenIntro__', + '__headerOpeningLine__', + '__newsletterConfirmationLink__', + '__footerWhy__', + ] let to = [ 'Confirm your subscription to the FreeSewing newsletter', 'Please confirm it was you who requested this', `https://backend.freesewing.org/newsletter/confirm/${token}`, - `You received this email because somebody tried to subscribe ${recipient} to the FreeSewing newsletter` + `You received this email because somebody tried to subscribe ${recipient} to the FreeSewing newsletter`, ] html = replace(html, from, to) text = replace(text, from, to) @@ -178,7 +183,7 @@ email.subscribe = async (recipient, token) => { to: recipient, subject: 'Confirm your subscription to the FreeSewing newsletter', text, - html + html, } deliver(options, (error, info) => { if (error) return console.log(error) @@ -189,12 +194,17 @@ email.subscribe = async (recipient, token) => { email.newsletterWelcome = async (recipient, ehash) => { let html = loadTemplate('newsletterWelcome', 'html', 'en') let text = loadTemplate('newsletterWelcome', 'text', 'en') - let from = ['__hiddenIntro__', '__headerOpeningLine__', '__newsletterUnsubscribeLink__', '__footerWhy__'] + let from = [ + '__hiddenIntro__', + '__headerOpeningLine__', + '__newsletterUnsubscribeLink__', + '__footerWhy__', + ] let to = [ 'No action required; This is just an FYI', "You're in. Now what?", `https://backend.freesewing.org/newsletter/unsubscribe/${ehash}`, - `You received this email because you subscribed to the FreeSewing newsletter` + `You received this email because you subscribed to the FreeSewing newsletter`, ] html = replace(html, from, to) text = replace(text, from, to) @@ -204,7 +214,7 @@ email.newsletterWelcome = async (recipient, ehash) => { to: recipient, subject: 'Welcome to the FreeSewing newsletter', text, - html + html, } deliver(options, (error, info) => { if (error) return console.log(error) diff --git a/sites/backend/src/utils/email/relays.js b/sites/backend/src/utils/email/relays.js index c9dc4a322a2..0ceacbfbb56 100644 --- a/sites/backend/src/utils/email/relays.js +++ b/sites/backend/src/utils/email/relays.js @@ -1,9 +1,9 @@ import smtp from './smtp' //import sendgrid from './sendgrid' -const sendEmailWith = type => { +const sendEmailWith = (type) => { const types = { - smtp + smtp, //sendgrid, } return types[type] diff --git a/sites/backend/src/utils/email/sendgrid.js b/sites/backend/src/utils/email/sendgrid.js index 84b38eef507..b9592f1e4f5 100644 --- a/sites/backend/src/utils/email/sendgrid.js +++ b/sites/backend/src/utils/email/sendgrid.js @@ -4,13 +4,13 @@ import config from '../../config' sendgrid.setApiKey(config.sendgrid) const deliver = (data, callback) => { - sendgrid.send(data).then(result => { + sendgrid.send(data).then((result) => { // FIXME: This is obviously nonsense if (result[0].statusCode === 202) callback(false, { from: data.from, to: data.to, - subject: data.subject + subject: data.subject, }) else callback(true, 'Sending via SendGridfailed') }) diff --git a/sites/backend/src/utils/email/smtp.js b/sites/backend/src/utils/email/smtp.js index 5053fca7967..6ea7979558d 100644 --- a/sites/backend/src/utils/email/smtp.js +++ b/sites/backend/src/utils/email/smtp.js @@ -7,8 +7,8 @@ const transporter = nodemailer.createTransport({ secure: false, // Only needed or SSL, not for TLS auth: { user: config.smtp.user, - pass: config.smtp.pass - } + pass: config.smtp.pass, + }, }) const deliver = (data, callback) => { diff --git a/sites/backend/src/utils/index.js b/sites/backend/src/utils/index.js index b68a3c662c9..10dc8c35cb8 100644 --- a/sites/backend/src/utils/index.js +++ b/sites/backend/src/utils/index.js @@ -12,7 +12,7 @@ import avatar from '../templates/avatar' export const email = mailer export const log = logger -export const capitalize = string => string.charAt(0).toUpperCase() + string.slice(1) +export const capitalize = (string) => string.charAt(0).toUpperCase() + string.slice(1) export const createUrl = (language, path) => { // Handle development mode @@ -20,27 +20,27 @@ export const createUrl = (language, path) => { else return config.website.scheme + '://' + language + '.' + config.website.domain + path } -export const getHash = email => { +export const getHash = (email) => { let hash = crypto.createHash('sha256') hash.update(clean(email)) return hash.digest('hex') } -export const clean = email => email.toLowerCase().trim() +export const clean = (email) => email.toLowerCase().trim() -export const getToken = account => { +export const getToken = (account) => { return jwt.sign( { _id: account._id, handle: account.handle, aud: config.jwt.audience, - iss: config.jwt.issuer + iss: config.jwt.issuer, }, config.jwt.secretOrKey ) } -export const getHandle = type => { +export const getHandle = (type) => { let go, handle, exists if (type === 'person') go = Person else if (type === 'pattern') go = Pattern @@ -65,7 +65,7 @@ export const createHandle = (length = 5) => { return handle } -export const imageType = contentType => { +export const imageType = (contentType) => { if (contentType === 'image/png') return 'png' if (contentType === 'image/jpeg') return 'jpg' if (contentType === 'image/gif') return 'gif' @@ -74,7 +74,7 @@ export const imageType = contentType => { } export const saveAvatarFromBase64 = (data, handle, type) => { - fs.mkdir(userStoragePath(handle), { recursive: true }, err => { + fs.mkdir(userStoragePath(handle), { recursive: true }, (err) => { if (err) log.error('mkdirFailed', err) let imgBuffer = Buffer.from(data, 'base64') for (let size of Object.keys(config.avatar.sizes)) { @@ -98,7 +98,7 @@ export const randomColor = () => (0x1000000 + Math.random() * 0xffffff).toString export const randomAvatar = () => avatar.replace('000000', randomColor()).replace('FFFFFF', randomColor()) -export const ehash = email => { +export const ehash = (email) => { let hash = crypto.createHash('sha256') hash.update(clean(email)) return hash.digest('hex') @@ -126,14 +126,14 @@ export const uniqueHandle = () => { return handle } -export const userStoragePath = handle => +export const userStoragePath = (handle) => path.join(config.storage, 'users', handle.substring(0, 1), handle) -export const createAvatar = handle => { +export const createAvatar = (handle) => { let dir = userStoragePath(handle) - fs.mkdir(dir, { recursive: true }, err => { + fs.mkdir(dir, { recursive: true }, (err) => { if (err) console.log('mkdirFailed', dir, err) - fs.writeFile(path.join(dir, handle) + '.svg', randomAvatar(), err => { + fs.writeFile(path.join(dir, handle) + '.svg', randomAvatar(), (err) => { if (err) console.log('writeFileFailed', dir, err) }) }) diff --git a/sites/backend/tests/admin.test.js b/sites/backend/tests/admin.test.js index fd2cf416ae5..9c9c73d85bf 100644 --- a/sites/backend/tests/admin.test.js +++ b/sites/backend/tests/admin.test.js @@ -1,12 +1,12 @@ module.exports = function tests(store, config, chai) { describe('Admin routes', () => { - it('should login ad admin', done => { + it('should login ad admin', (done) => { chai .request(config.backend) .post('/login') .send({ username: 'admin', - password: 'admin' + password: 'admin', }) .end((err, res) => { console.log(res) @@ -15,7 +15,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should load a user account', done => { + it('should load a user account', (done) => { chai .request(config.backend) .get('/admin/users/rracx') diff --git a/sites/backend/tests/config.js b/sites/backend/tests/config.js index d3de6391563..13269f57c64 100644 --- a/sites/backend/tests/config.js +++ b/sites/backend/tests/config.js @@ -9,23 +9,23 @@ module.exports = { de: '🇩🇪', es: '🇪🇸', nl: '🇳🇱', - fr: '🇫🇷' + fr: '🇫🇷', }, strings: strings, user: { email: 'test@freesewing.org', changedEmail: 'changedtest@freesewing.org', password: 'test', - username: 'test_user' + username: 'test_user', }, oauth: { github: { - url: `https://github.com/login/oauth/authorize?client_id=${process.env.FS_GITHUB_CLIENT_ID}&redirect_uri=${process.env.FS_BACKEND}/oauth/callback/from/github&scope=read:user&state=` + url: `https://github.com/login/oauth/authorize?client_id=${process.env.FS_GITHUB_CLIENT_ID}&redirect_uri=${process.env.FS_BACKEND}/oauth/callback/from/github&scope=read:user&state=`, }, google: { - url: `https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=${process.env.FS_GOOGLE_CLIENT_ID}&redirect_uri=${process.env.FS_BACKEND}/oauth/callback/from/google&scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&access_type=online&state=` - } + url: `https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=${process.env.FS_GOOGLE_CLIENT_ID}&redirect_uri=${process.env.FS_BACKEND}/oauth/callback/from/google&scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&access_type=online&state=`, + }, }, avatar: - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAQAAADa613fAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfjCAkODQHZS6QWAAAMsUlEQVR42u2ce3TV1ZXHv/uc87v35p1UkkB4GyL4RB5VWqXSKE7bUWwVixY6ZRy1qy+Xs6x9WGacaWm71nRNa2vttNbR1emyTrVYXWoLA/IaERAYK8hbQkigCRAS8r739zvn7PkjN/GGJPf3u/nd0Kwudv7ISu7J+Z3P2fvss/c+5xdCO/4qRPylB3AB5ALIKJcLIKNNLoCMNhk1IPKvAUShWt4UkkSN7BAlKqhSTKZSyiNCnM+iic9wC7ehiz0QcjGO5sibJeNhd9SCRHGTvNuZJ8ZRDlHfbw0SiHMXutgFIQ8lBLxqHnWP2HBPo5EKGitoZWSJyiW/dqf4e+4vva7QzxshkBJ6OvrJQNo2aOTN5llvgwkHM0IgDzo/jPoqI0W6sEE/5r1ueHSBFNCa2Icy9kIt/FPv373WYbKMgPsdS/8amTUMZ1pCKyJPRadkosgUybpG5svvR64LsSf8r/lCYu8wPFhWNaJwr/PfsTAYwHz5dPTSYYwqixoppBXOlyM5Wehpo/ls/HiGayVrGimlJ6JfzQoGsEB+J+OesgTyAfpJdJka5jodRJY6f+f8BUBiWBm5K6vBjoOHnGkZjS0rIJ937s1w/vylSjzgZOI1sgAyT349knUOAPeoL2WAIvFIuMfl4kfRuWGzokElQjNllSiksdSJTt/WoS37FvWxEUsF3jSbzEQyMAHahhxEPt3rREMOt9ZGqGJQhzdVvGraAu4nIdfIHDEv9Co7zsvjGwed9EqaHtijhxzGfFkQevO4QjTz0vi6QVCK6PLA4wsFInBlFrxeMc2Sf+YHE4cGhIqEy84PSAwVWdnMpxOw1/7I0wM+qRRBHWIokAj55+RBZKIQAFbpPQN0MpHyAz4hFAhj+KlpqnyAHACneYNp5YZ+XZZSUcA+QoF43J0VkmhyGHtMG17vt+iLaMz50IiLM1kBMUnNtiEHB217Sp+5VHY+QDTqswLSxT1qiCIHLqeGIxGMOx8gwOGQ9cEeOc0eAKCcJHlI7ZIwIeAIQ4IcsPEsgLyX1Ot00c0diPX7bOL50UgNNw0wLg09RGuLDm7m1uT894qLdy0A5NPVop5dzus39EkiEmgkIYPGBq61FfJ1c73MQQtvM7tsLTczoYqWOzP6TVIrv6A3mlru5AjGiY/K5SpCR+1lAmjiAxYALqFLxSpdSFG4kH3nJROoiE4HWIkhQTp5v71UvKI/LHbYr7lbTaLvk032t7FJKXP7uPdP7x8c2Jd1Jz/gvKYnOflUa08wACyQhbTRzJLAWn2dLCYA8FBG4wOBhI6V9thuKHTim+7GFAxgm1mdYmFxbDonKHzFxHGMaxk4ZDsYiOFm1ci7bBU18wu61/j2224ECxxDg+y3ERRRA783wH81pszjwBig3p7hDj7FQE9gMlnMEtvMKZ4g2riOE3297zLBCn6hQWo4gUoR55wB3mU8ARrbzA5zknMGhJcJnOU4SqgLOy0ATBcl9Loh5CNGHnpL2S38sp4rLgrguUKDnOTjtoosJpzzsDE0VwK19v7E4vhrGji3Op8HizxcTH8y71gAKCMPey3DopgKcCIJEsM6I2h+AJ2EBunkbVZRM1ee09NH5AwBrDV7bB1vMsBCObUf6mQhUCHy6TndM/sed/NZbuPjHEOl2Gd7WzXxK3qp8nfBWUiMfuM94zXxzH49TaR/dKLo4FUaAHbbMzxNpNa+BO5SZVROb5rnky6hgeNguFhvgI/Id0yPb7hczBC/8Arob329axZAdto/mmvlJ+R1MoIo8lBBi9SvY9dL4C273QLAUT5igS84KyJXiHE0iWaLb0c+p6aIEnogcSppRIdsE+cR8KKu54VSUm3S4JapRl6RmCVKfdZJVko5n5IzBPDb2AHLiKGcJoqeMOMl3cEA0MqbzDWyhL4d+YrTyg6KqYgIwN/Ix/v6qOMtZiwB++0vvJWRu9Ue22Ost6uf6532sOdXEspKyXS6AIDxdKO8SV4vq5IYp/n9vWOVbmGAUEZVYoooTh5Xj6F5fcvY4j+9HuX8h7faVMtS6mIAuFjcKoFW7vDZFH1AptJitVhN8lHr4GcZCQjk4vPOLTIXQ2UVqSeGf7KbDAFo5q8nDtu5sndj+qQKku6mPei5TX3JYSjkYIW7Po1up9LK6O0qds5vGQfsGZ4ju/iIvVgMzPQsVut/SDQOOgm3qWeiJcm/aONPxLf4FhvT1H6vFNXyx94T3nO6kB5w1pmzQ3ZyFq/qMpojX9YxlPQNmFBKk4SDXBovUosUHs5yLiXwL+4Kd6go6qAVtED2mEuUanmzL4gY+oMCetzbbePoxs+8DtyTtuDu4imvhRv4q66fLQNPeU96wC7zUy9dovyEt6YvVrtB5vp1OjQIY7vpfVAnXtO3qvRlgH12u1mi2vhd35xxl50ogBd1+qpuG//Aa0m2mC2u8HVKaUBStbndjqWr0nbmYrO5iO5zCO6QiRWg4WKJqpanea2vsbxh1iTblFC17zYRcB85ZuM8U6xP+/Bdthu3K4HndL0dSxG6hHbYa+QZnkxdUFA4wYQGHksLJbDGHPLVnMaL+g7VY9HV8jGkT6oDgQgUUhyz5QTdik4eagT7bYO9WABltJU3GI0qsc8etdvsh8VxzqF8NHAZTaQrFACs10Fy/R3mhJ0iAOAaUS3/kHYaA4BUiq85laKUFsqqGFDHNfY4dwEM9F80seSPH5UfFCe4mXOgqJ2v5smUQCFcNPJMMV5EARiU06cVQUPDYxcuXCTYgwcPCe5GnOOwABq5hqcAAE7yLSqPNpimIddVAJAb5R3qSe8iYpzg29W1MGjn/tfdeggYPRuXQjEVE5AAIHAtGC67aOWqvnjJ4C7nTljW0HDhopu70Mmd6OJ2Ps3H+JA9aDsBxFFve5L3LvzEG09FFArkN9rjalVOAu/hMe+IrbGNnEjJ+Hr1YvBZ9UhfvH2K3zJtsKixpVTPs0QHz5a9IGv0w64Gw7CFhoGGhmGL3q/3+25Ofi8nc04xdRggHfyM/i/9fGwMLY+nvxz2mvkyFyYHO4ZuUh63o4oKyGC6EH11EYPf6YMBC3vJ8AsFKKfDaVsG9FoGzTxVKEpffn/HvGl6j0YFYohRASoGZHc7zeogp5sAACc5LVHyS3cDR7+nuBgFPm068V2vzmdnr7GPuKcCV4x7DxUUCn1aBgap46IAlfE3zL3xA2nMZq/9+8T6wPpQfVEzwe9KQmCQGhtBZYDWa82S+P8MMdT1ZmncP/x7X/JpXPKJDM+nbWCQo9yB2YFa77ZL499x6znVfizq+HvuZ+LvZFS9L6NxBLTzcdZo9jHHwKlugz1i58kYguzITfzP7rP6GjFVFMIhRhsfttutf1ByrlwmSgk4zC2cL/wuogUG6cRWs9yZJvyj2x45aIO62KFlgXQAbDFXizr2O1LKIGdfb/Jp4YhcnxlcxtKNEmjmbWay2Gz8TCsDkB32kF2sCrN3Tc5HPi5nCGCdscjFKu3XOgOQJv69nhv69YigUkL3OAod/LR3ndxstg4/1R1Mntdn+ItO+NsnQWSZ+pAEXjJ7bSX90Ev4ts8IZJ991lsgl4zwOycAcKV40JE4zj9wK+gl419Dyfje7zTxxxhwa9rdO7wU0a+itymNhxOPeeXUzkHeY8iw0vie/TdvqlgZGUnzcvAtZ5ECXtC/9ICTgTCGcadxv51MdzuETWZklCLwkPONqMI288XE6Qz+LmMQjf+z18rFThdvt9m5UpMqCg85j0Zy6IC9L7Evo+6Hccu0FW/bG+RiR+Mtk0EEGEAK6NHIN6M5dNjen9iaocKHdV22kXfZ6+WnVTHtsN1Zw5gmfhy9z3Gw296feCPjGRrmvd8T/Ka5StyprpYH7Z+zYGEO7lA/i1ZLwjpzf2LXMJbfsC8wn+S1poQ+pRYpiUMBPctQcpX4buRbkQmik3+uH0wcHdbEhHp/JIZlzjecSvGWecJ7xbQMawAzxOfUMmcCAW/b77u/175B1UiAAMAl4ivOZ1Qx7TDP6j+Yoza4VeTRHHGnWqQmEXDM/ko/6Z0IYaRZeKOH8EFxj3ObGkv1vEGvMTtsvc/lpxKaIW4QN6u5ooCAw/Z3+td6/+h4M5RwqVgkF6mZIodO8l77tnnX1vBJbuU4NDMkOchDCU2gS8RMMVNWUT4Bp3mnedms1sey4C6y+tZbIV0pbpDzxeWynBwk0M6t3IE4MxRyqZAKkU8SQCvX8W67xWwxh7JycS3rID0SwTiqFDNElZhEZVRIUQAaCbRzMzdynT3CR2wdN3N2Q5wRe+kYAASiiJICwUDDZS/QCxSjEOR8yqj4DwMXQC6AjGK5ADLa5ALIaJP/B4cPSNrdNcsBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTA4LTA5VDE0OjEyOjUyKzAwOjAwR3qVBAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wOC0wOVQxNDoxMjo1MiswMDowMDYnLbgAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC' + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAQAAADa613fAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfjCAkODQHZS6QWAAAMsUlEQVR42u2ce3TV1ZXHv/uc87v35p1UkkB4GyL4RB5VWqXSKE7bUWwVixY6ZRy1qy+Xs6x9WGacaWm71nRNa2vttNbR1emyTrVYXWoLA/IaERAYK8hbQkigCRAS8r739zvn7PkjN/GGJPf3u/nd0Kwudv7ISu7J+Z3P2fvss/c+5xdCO/4qRPylB3AB5ALIKJcLIKNNLoCMNhk1IPKvAUShWt4UkkSN7BAlKqhSTKZSyiNCnM+iic9wC7ehiz0QcjGO5sibJeNhd9SCRHGTvNuZJ8ZRDlHfbw0SiHMXutgFIQ8lBLxqHnWP2HBPo5EKGitoZWSJyiW/dqf4e+4vva7QzxshkBJ6OvrJQNo2aOTN5llvgwkHM0IgDzo/jPoqI0W6sEE/5r1ueHSBFNCa2Icy9kIt/FPv373WYbKMgPsdS/8amTUMZ1pCKyJPRadkosgUybpG5svvR64LsSf8r/lCYu8wPFhWNaJwr/PfsTAYwHz5dPTSYYwqixoppBXOlyM5Wehpo/ls/HiGayVrGimlJ6JfzQoGsEB+J+OesgTyAfpJdJka5jodRJY6f+f8BUBiWBm5K6vBjoOHnGkZjS0rIJ937s1w/vylSjzgZOI1sgAyT349knUOAPeoL2WAIvFIuMfl4kfRuWGzokElQjNllSiksdSJTt/WoS37FvWxEUsF3jSbzEQyMAHahhxEPt3rREMOt9ZGqGJQhzdVvGraAu4nIdfIHDEv9Co7zsvjGwed9EqaHtijhxzGfFkQevO4QjTz0vi6QVCK6PLA4wsFInBlFrxeMc2Sf+YHE4cGhIqEy84PSAwVWdnMpxOw1/7I0wM+qRRBHWIokAj55+RBZKIQAFbpPQN0MpHyAz4hFAhj+KlpqnyAHACneYNp5YZ+XZZSUcA+QoF43J0VkmhyGHtMG17vt+iLaMz50IiLM1kBMUnNtiEHB217Sp+5VHY+QDTqswLSxT1qiCIHLqeGIxGMOx8gwOGQ9cEeOc0eAKCcJHlI7ZIwIeAIQ4IcsPEsgLyX1Ot00c0diPX7bOL50UgNNw0wLg09RGuLDm7m1uT894qLdy0A5NPVop5dzus39EkiEmgkIYPGBq61FfJ1c73MQQtvM7tsLTczoYqWOzP6TVIrv6A3mlru5AjGiY/K5SpCR+1lAmjiAxYALqFLxSpdSFG4kH3nJROoiE4HWIkhQTp5v71UvKI/LHbYr7lbTaLvk032t7FJKXP7uPdP7x8c2Jd1Jz/gvKYnOflUa08wACyQhbTRzJLAWn2dLCYA8FBG4wOBhI6V9thuKHTim+7GFAxgm1mdYmFxbDonKHzFxHGMaxk4ZDsYiOFm1ci7bBU18wu61/j2224ECxxDg+y3ERRRA783wH81pszjwBig3p7hDj7FQE9gMlnMEtvMKZ4g2riOE3297zLBCn6hQWo4gUoR55wB3mU8ARrbzA5zknMGhJcJnOU4SqgLOy0ATBcl9Loh5CNGHnpL2S38sp4rLgrguUKDnOTjtoosJpzzsDE0VwK19v7E4vhrGji3Op8HizxcTH8y71gAKCMPey3DopgKcCIJEsM6I2h+AJ2EBunkbVZRM1ee09NH5AwBrDV7bB1vMsBCObUf6mQhUCHy6TndM/sed/NZbuPjHEOl2Gd7WzXxK3qp8nfBWUiMfuM94zXxzH49TaR/dKLo4FUaAHbbMzxNpNa+BO5SZVROb5rnky6hgeNguFhvgI/Id0yPb7hczBC/8Arob329axZAdto/mmvlJ+R1MoIo8lBBi9SvY9dL4C273QLAUT5igS84KyJXiHE0iWaLb0c+p6aIEnogcSppRIdsE+cR8KKu54VSUm3S4JapRl6RmCVKfdZJVko5n5IzBPDb2AHLiKGcJoqeMOMl3cEA0MqbzDWyhL4d+YrTyg6KqYgIwN/Ix/v6qOMtZiwB++0vvJWRu9Ue22Ost6uf6532sOdXEspKyXS6AIDxdKO8SV4vq5IYp/n9vWOVbmGAUEZVYoooTh5Xj6F5fcvY4j+9HuX8h7faVMtS6mIAuFjcKoFW7vDZFH1AptJitVhN8lHr4GcZCQjk4vPOLTIXQ2UVqSeGf7KbDAFo5q8nDtu5sndj+qQKku6mPei5TX3JYSjkYIW7Po1up9LK6O0qds5vGQfsGZ4ju/iIvVgMzPQsVut/SDQOOgm3qWeiJcm/aONPxLf4FhvT1H6vFNXyx94T3nO6kB5w1pmzQ3ZyFq/qMpojX9YxlPQNmFBKk4SDXBovUosUHs5yLiXwL+4Kd6go6qAVtED2mEuUanmzL4gY+oMCetzbbePoxs+8DtyTtuDu4imvhRv4q66fLQNPeU96wC7zUy9dovyEt6YvVrtB5vp1OjQIY7vpfVAnXtO3qvRlgH12u1mi2vhd35xxl50ogBd1+qpuG//Aa0m2mC2u8HVKaUBStbndjqWr0nbmYrO5iO5zCO6QiRWg4WKJqpanea2vsbxh1iTblFC17zYRcB85ZuM8U6xP+/Bdthu3K4HndL0dSxG6hHbYa+QZnkxdUFA4wYQGHksLJbDGHPLVnMaL+g7VY9HV8jGkT6oDgQgUUhyz5QTdik4eagT7bYO9WABltJU3GI0qsc8etdvsh8VxzqF8NHAZTaQrFACs10Fy/R3mhJ0iAOAaUS3/kHYaA4BUiq85laKUFsqqGFDHNfY4dwEM9F80seSPH5UfFCe4mXOgqJ2v5smUQCFcNPJMMV5EARiU06cVQUPDYxcuXCTYgwcPCe5GnOOwABq5hqcAAE7yLSqPNpimIddVAJAb5R3qSe8iYpzg29W1MGjn/tfdeggYPRuXQjEVE5AAIHAtGC67aOWqvnjJ4C7nTljW0HDhopu70Mmd6OJ2Ps3H+JA9aDsBxFFve5L3LvzEG09FFArkN9rjalVOAu/hMe+IrbGNnEjJ+Hr1YvBZ9UhfvH2K3zJtsKixpVTPs0QHz5a9IGv0w64Gw7CFhoGGhmGL3q/3+25Ofi8nc04xdRggHfyM/i/9fGwMLY+nvxz2mvkyFyYHO4ZuUh63o4oKyGC6EH11EYPf6YMBC3vJ8AsFKKfDaVsG9FoGzTxVKEpffn/HvGl6j0YFYohRASoGZHc7zeogp5sAACc5LVHyS3cDR7+nuBgFPm068V2vzmdnr7GPuKcCV4x7DxUUCn1aBgap46IAlfE3zL3xA2nMZq/9+8T6wPpQfVEzwe9KQmCQGhtBZYDWa82S+P8MMdT1ZmncP/x7X/JpXPKJDM+nbWCQo9yB2YFa77ZL499x6znVfizq+HvuZ+LvZFS9L6NxBLTzcdZo9jHHwKlugz1i58kYguzITfzP7rP6GjFVFMIhRhsfttutf1ByrlwmSgk4zC2cL/wuogUG6cRWs9yZJvyj2x45aIO62KFlgXQAbDFXizr2O1LKIGdfb/Jp4YhcnxlcxtKNEmjmbWay2Gz8TCsDkB32kF2sCrN3Tc5HPi5nCGCdscjFKu3XOgOQJv69nhv69YigUkL3OAod/LR3ndxstg4/1R1Mntdn+ItO+NsnQWSZ+pAEXjJ7bSX90Ev4ts8IZJ991lsgl4zwOycAcKV40JE4zj9wK+gl419Dyfje7zTxxxhwa9rdO7wU0a+itymNhxOPeeXUzkHeY8iw0vie/TdvqlgZGUnzcvAtZ5ECXtC/9ICTgTCGcadxv51MdzuETWZklCLwkPONqMI288XE6Qz+LmMQjf+z18rFThdvt9m5UpMqCg85j0Zy6IC9L7Evo+6Hccu0FW/bG+RiR+Mtk0EEGEAK6NHIN6M5dNjen9iaocKHdV22kXfZ6+WnVTHtsN1Zw5gmfhy9z3Gw296feCPjGRrmvd8T/Ka5StyprpYH7Z+zYGEO7lA/i1ZLwjpzf2LXMJbfsC8wn+S1poQ+pRYpiUMBPctQcpX4buRbkQmik3+uH0wcHdbEhHp/JIZlzjecSvGWecJ7xbQMawAzxOfUMmcCAW/b77u/175B1UiAAMAl4ivOZ1Qx7TDP6j+Yoza4VeTRHHGnWqQmEXDM/ko/6Z0IYaRZeKOH8EFxj3ObGkv1vEGvMTtsvc/lpxKaIW4QN6u5ooCAw/Z3+td6/+h4M5RwqVgkF6mZIodO8l77tnnX1vBJbuU4NDMkOchDCU2gS8RMMVNWUT4Bp3mnedms1sey4C6y+tZbIV0pbpDzxeWynBwk0M6t3IE4MxRyqZAKkU8SQCvX8W67xWwxh7JycS3rID0SwTiqFDNElZhEZVRIUQAaCbRzMzdynT3CR2wdN3N2Q5wRe+kYAASiiJICwUDDZS/QCxSjEOR8yqj4DwMXQC6AjGK5ADLa5ALIaJP/B4cPSNrdNcsBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTA4LTA5VDE0OjEyOjUyKzAwOjAwR3qVBAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wOC0wOVQxNDoxMjo1MiswMDowMDYnLbgAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC', } diff --git a/sites/backend/tests/env.js b/sites/backend/tests/env.js index 429f4b3cb89..4f0b08fcc3e 100644 --- a/sites/backend/tests/env.js +++ b/sites/backend/tests/env.js @@ -1,20 +1,20 @@ -process.env.FS_BACKEND = "http://localhost:3000"; -process.env.FS_STATIC = "https://static.freesewing.org"; -process.env.FS_STORAGE = "/tmp/backendstorage"; -process.env.FS_MONGO_URI = "mongodb://localhost:27017/freesewing"; -process.env.FS_ENC_KEY = "longRandomStringHere"; -process.env.FS_STRAPI_HOST = "posts.freesewing.org"; -process.env.FS_STRAPI_PROTOCOL = "https"; -process.env.FS_STRAPI_PORT = "443"; -process.env.FS_STRAPI_USERNAME = "REPLACEME"; -process.env.FS_STRAPI_PASSWORD = "REPLACEME"; -process.env.FS_STRAPI_TMP = "/fs/ramdisk"; -process.env.FS_SMTP_USER = "smtpRelayUsername"; -process.env.FS_SMTP_PASS = "smtpRelayPassword"; -process.env.FS_SMTP_HOST = "smtp.relay.somedomain.com"; -process.env.FS_GITHUB_TOKEN = "githubTokenHere"; -process.env.FS_GITHUB_CLIENT_ID = "githubClientIdHere"; -process.env.FS_GITHUB_CLIENT_SECRET = "githubClientSecretHere"; -process.env.FS_GOOGLE_CLIENT_ID = "googleClientIdHere"; -process.env.FS_GOOGLE_CLIENT_SECRET = "googleClientSecretHere"; -process.env.FS_JWT_ISSUER = "freesewing.org"; +process.env.FS_BACKEND = 'http://localhost:3000' +process.env.FS_STATIC = 'https://static.freesewing.org' +process.env.FS_STORAGE = '/tmp/backendstorage' +process.env.FS_MONGO_URI = 'mongodb://localhost:27017/freesewing' +process.env.FS_ENC_KEY = 'longRandomStringHere' +process.env.FS_STRAPI_HOST = 'posts.freesewing.org' +process.env.FS_STRAPI_PROTOCOL = 'https' +process.env.FS_STRAPI_PORT = '443' +process.env.FS_STRAPI_USERNAME = 'REPLACEME' +process.env.FS_STRAPI_PASSWORD = 'REPLACEME' +process.env.FS_STRAPI_TMP = '/fs/ramdisk' +process.env.FS_SMTP_USER = 'smtpRelayUsername' +process.env.FS_SMTP_PASS = 'smtpRelayPassword' +process.env.FS_SMTP_HOST = 'smtp.relay.somedomain.com' +process.env.FS_GITHUB_TOKEN = 'githubTokenHere' +process.env.FS_GITHUB_CLIENT_ID = 'githubClientIdHere' +process.env.FS_GITHUB_CLIENT_SECRET = 'githubClientSecretHere' +process.env.FS_GOOGLE_CLIENT_ID = 'googleClientIdHere' +process.env.FS_GOOGLE_CLIENT_SECRET = 'googleClientSecretHere' +process.env.FS_JWT_ISSUER = 'freesewing.org' diff --git a/sites/backend/tests/oauth.test.js b/sites/backend/tests/oauth.test.js index 67fda68ee7c..9fdab34ba8b 100644 --- a/sites/backend/tests/oauth.test.js +++ b/sites/backend/tests/oauth.test.js @@ -1,13 +1,12 @@ module.exports = function tests(store, config, chai) { - describe('Oauth via Github', () => { - it('should trigger Oauth via Github', done => { + it('should trigger Oauth via Github', (done) => { chai .request(config.backend) .post('/oauth/init') .send({ provider: 'github', - language: 'en' + language: 'en', }) .end((err, res) => { res.should.have.status(200) @@ -18,13 +17,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should trigger Oauth via Google', done => { + it('should trigger Oauth via Google', (done) => { chai .request(config.backend) .post('/oauth/init') .send({ provider: 'github', - language: 'en' + language: 'en', }) .end((err, res) => { res.should.have.status(200) diff --git a/sites/backend/tests/pattern.test.js b/sites/backend/tests/pattern.test.js index 3676039dc2b..5b291b07088 100644 --- a/sites/backend/tests/pattern.test.js +++ b/sites/backend/tests/pattern.test.js @@ -1,6 +1,6 @@ module.exports = function tests(store, config, chai) { describe('Pattern endpoints', () => { - it('should create a pattern', done => { + it('should create a pattern', (done) => { chai .request(config.backend) .post('/patterns') @@ -10,8 +10,8 @@ module.exports = function tests(store, config, chai) { person: 'Someone', notes: 'Some notes', data: { - test: 'value' - } + test: 'value', + }, }) .end((err, res) => { res.should.have.status(200) @@ -24,13 +24,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the pattern name', done => { + it('should update the pattern name', (done) => { chai .request(config.backend) .put('/patterns/' + config.user.pattern) .set('Authorization', 'Bearer ' + config.user.token) .send({ - name: 'New name' + name: 'New name', }) .end((err, res) => { res.should.have.status(200) @@ -41,13 +41,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the pattern notes', done => { + it('should update the pattern notes', (done) => { chai .request(config.backend) .put('/patterns/' + config.user.pattern) .set('Authorization', 'Bearer ' + config.user.token) .send({ - notes: 'These are the notes' + notes: 'These are the notes', }) .end((err, res) => { res.should.have.status(200) @@ -58,7 +58,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should load the pattern data without authentication', done => { + it('should load the pattern data without authentication', (done) => { chai .request(config.backend) .get('/patterns/' + config.user.pattern) @@ -71,7 +71,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should delete the pattern', done => { + it('should delete the pattern', (done) => { chai .request(config.backend) .delete('/patterns/' + config.user.pattern) @@ -82,7 +82,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should no longer have this pattern', done => { + it('should no longer have this pattern', (done) => { chai .request(config.backend) .get('/patterns/' + config.user.pattern) diff --git a/sites/backend/tests/person.test.js b/sites/backend/tests/person.test.js index 5b43947ebdd..63309eb5911 100644 --- a/sites/backend/tests/person.test.js +++ b/sites/backend/tests/person.test.js @@ -2,7 +2,7 @@ module.exports = function tests(store, config, chai) { const should = chai.should() describe('Person endpoints', () => { - it('should create a person', done => { + it('should create a person', (done) => { chai .request(config.backend) .post('/people') @@ -10,7 +10,7 @@ module.exports = function tests(store, config, chai) { .send({ name: 'Test person', units: 'imperial', - breasts: true + breasts: true, }) .end((err, res) => { res.should.have.status(200) @@ -27,13 +27,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the person name', done => { + it('should update the person name', (done) => { chai .request(config.backend) .put('/people/' + config.user.person) .set('Authorization', 'Bearer ' + config.user.token) .send({ - name: 'New person name' + name: 'New person name', }) .end((err, res) => { res.should.have.status(200) @@ -44,13 +44,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the person chest', done => { + it('should update the person chest', (done) => { chai .request(config.backend) .put('/people/' + config.user.person) .set('Authorization', 'Bearer ' + config.user.token) .send({ - breasts: 'false' + breasts: 'false', }) .end((err, res) => { res.should.have.status(200) @@ -61,13 +61,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the person units', done => { + it('should update the person units', (done) => { chai .request(config.backend) .put('/people/' + config.user.person) .set('Authorization', 'Bearer ' + config.user.token) .send({ - units: 'metric' + units: 'metric', }) .end((err, res) => { res.should.have.status(200) @@ -78,13 +78,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the person notes', done => { + it('should update the person notes', (done) => { chai .request(config.backend) .put('/people/' + config.user.person) .set('Authorization', 'Bearer ' + config.user.token) .send({ - notes: 'These are the notes' + notes: 'These are the notes', }) .end((err, res) => { res.should.have.status(200) @@ -95,7 +95,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the person measurements', done => { + it('should update the person measurements', (done) => { chai .request(config.backend) .put('/people/' + config.user.person) @@ -103,8 +103,8 @@ module.exports = function tests(store, config, chai) { .send({ measurements: { shoulderToShoulder: 456, - neck: 345 - } + neck: 345, + }, }) .end((err, res) => { res.should.have.status(200) @@ -116,15 +116,15 @@ module.exports = function tests(store, config, chai) { }) }) - it('should not set a non-existing measurement', done => { + it('should not set a non-existing measurement', (done) => { chai .request(config.backend) .put('/people/' + config.user.person) .set('Authorization', 'Bearer ' + config.user.token) .send({ measurements: { - hairLength: 12 - } + hairLength: 12, + }, }) .end((err, res) => { res.should.have.status(200) @@ -137,13 +137,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the person avatar', done => { + it('should update the person avatar', (done) => { chai .request(config.backend) .put('/people/' + config.user.person) .set('Authorization', 'Bearer ' + config.user.token) .send({ - picture: config.avatar + picture: config.avatar, }) .end((err, res) => { res.should.have.status(200) @@ -155,7 +155,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should load the person data', done => { + it('should load the person data', (done) => { chai .request(config.backend) .get('/people/' + config.user.person) @@ -170,7 +170,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should delete the person', done => { + it('should delete the person', (done) => { chai .request(config.backend) .delete('/people/' + config.user.person) @@ -181,7 +181,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should no longer have this person', done => { + it('should no longer have this person', (done) => { chai .request(config.backend) .get('/people/' + config.user.person) diff --git a/sites/backend/tests/user.all.test.js b/sites/backend/tests/user.all.test.js index 286f14cabc4..6cc6cf8ba76 100644 --- a/sites/backend/tests/user.all.test.js +++ b/sites/backend/tests/user.all.test.js @@ -5,17 +5,17 @@ module.exports = function tests(store, config, chai) { for (let lang in config.languages) { store[lang] = { email: lang + email, - password: 'test' + password: 'test', } - it(config.languages[lang] + ' => should create a pending signup', done => { + it(config.languages[lang] + ' => should create a pending signup', (done) => { chai .request(config.backend) .post('/signup') .send({ email: store[lang].email, password: store[lang].password, - language: lang + language: lang, }) .end((err, res) => { res.should.have.status(200) @@ -24,14 +24,14 @@ module.exports = function tests(store, config, chai) { }) }) - it(config.languages[lang] + ' => should detect a pre-existing signup', done => { + it(config.languages[lang] + ' => should detect a pre-existing signup', (done) => { chai .request(config.backend) .post('/signup') .send({ email: store[lang].email, password: store[lang].password, - language: lang + language: lang, }) .end((err, res) => { res.should.have.status(400) @@ -43,13 +43,13 @@ module.exports = function tests(store, config, chai) { }) describe(`Send out emails for other tests that rely on email delivery`, () => { - it('should fetch the JWT token for test_user', done => { + it('should fetch the JWT token for test_user', (done) => { chai .request(config.backend) .post('/login') .send({ username: config.user.username, - password: config.user.password + password: config.user.password, }) .end((err, res) => { res.should.have.status(200) @@ -59,13 +59,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should trigger the email change confirmation email', done => { + it('should trigger the email change confirmation email', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + store.emailChange.token) .send({ - email: config.user.changedEmail + email: config.user.changedEmail, }) .end((err, res) => { res.should.have.status(200) @@ -75,7 +75,7 @@ module.exports = function tests(store, config, chai) { }) describe(`Take a ${config.sleep} second power nap while we wait for the emails to be delivered`, () => { - it(`should sleep for ${config.sleep} seconds to allow the emails to arrive`, done => { + it(`should sleep for ${config.sleep} seconds to allow the emails to arrive`, (done) => { console.log('\n 😴 \n') setTimeout(() => { done() @@ -85,7 +85,7 @@ module.exports = function tests(store, config, chai) { for (let lang in config.languages) { it( config.languages[lang] + ' => should have sent out an email to the signup email address', - done => { + (done) => { let url = `/api/v2/search?kind=to&query=${lang}${email}` chai .request(config.mailhog) @@ -100,9 +100,8 @@ module.exports = function tests(store, config, chai) { message.Content.Headers.Subject[0].should.equal( config.strings[lang]['email.signupSubject'] ) - store[lang].confirmation = message.Content.Headers[ - 'X-Freesewing-Confirmation-ID' - ].pop() + store[lang].confirmation = + message.Content.Headers['X-Freesewing-Confirmation-ID'].pop() done() }) } @@ -111,12 +110,12 @@ module.exports = function tests(store, config, chai) { it( config.languages[lang] + ' => should not activate the pending confirmation without consent', - done => { + (done) => { chai .request(config.backend) .post('/account') .send({ - id: store[lang].confirmation + id: store[lang].confirmation, }) .end((err, res) => { res.should.have.status(400) @@ -126,15 +125,15 @@ module.exports = function tests(store, config, chai) { } ) - it(config.languages[lang] + ' => should activate the pending confirmation', done => { + it(config.languages[lang] + ' => should activate the pending confirmation', (done) => { chai .request(config.backend) .post('/account') .send({ id: store[lang].confirmation, consent: { - profile: true - } + profile: true, + }, }) .end((err, res) => { res.should.have.status(200) @@ -161,7 +160,7 @@ module.exports = function tests(store, config, chai) { }) } - it('should have sent out an email to confirm the email change', done => { + it('should have sent out an email to confirm the email change', (done) => { chai .request(config.mailhog) .get(`/api/v2/search?kind=to&query=${config.user.changedEmail}`) diff --git a/sites/backend/tests/user.test.js b/sites/backend/tests/user.test.js index ad23717d604..7950a91fbb0 100644 --- a/sites/backend/tests/user.test.js +++ b/sites/backend/tests/user.test.js @@ -1,12 +1,12 @@ module.exports = function tests(store, config, chai) { describe('Non language-specific User controller signup routes', () => { - it('should not create signup without email address', done => { + it('should not create signup without email address', (done) => { chai .request(config.backend) .post('/signup') .send({ password: config.user.password, - language: 'en' + language: 'en', }) .end((err, res) => { res.should.have.status(400) @@ -15,13 +15,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should not create signup without password', done => { + it('should not create signup without password', (done) => { chai .request(config.backend) .post('/signup') .send({ email: config.user.email, - language: 'en' + language: 'en', }) .end((err, res) => { res.should.have.status(400) @@ -30,13 +30,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should not create signup without language', done => { + it('should not create signup without language', (done) => { chai .request(config.backend) .post('/signup') .send({ email: config.user.email, - password: config.user.password + password: config.user.password, }) .end((err, res) => { res.should.have.status(400) @@ -47,13 +47,13 @@ module.exports = function tests(store, config, chai) { }) describe('Login/Logout and session handling', () => { - it('should login with the username', done => { + it('should login with the username', (done) => { chai .request(config.backend) .post('/login') .send({ username: config.user.username, - password: config.user.password + password: config.user.password, }) .end((err, res) => { res.should.have.status(200) @@ -65,13 +65,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should login with the email address', done => { + it('should login with the email address', (done) => { chai .request(config.backend) .post('/login') .send({ username: config.user.email, - password: config.user.password + password: config.user.password, }) .end((err, res) => { res.should.have.status(200) @@ -82,7 +82,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should load account with JSON Web Token', done => { + it('should load account with JSON Web Token', (done) => { chai .request(config.backend) .get('/account') @@ -101,13 +101,13 @@ module.exports = function tests(store, config, chai) { }) describe('Account management', () => { - it('should update the account avatar', done => { + it('should update the account avatar', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ - avatar: config.avatar + avatar: config.avatar, }) .end((err, res) => { res.should.have.status(200) @@ -116,13 +116,13 @@ module.exports = function tests(store, config, chai) { done() }) }) - it('should update the account username', done => { + it('should update the account username', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ - username: config.user.username + '_updated' + username: config.user.username + '_updated', }) .end((err, res) => { res.should.have.status(200) @@ -132,13 +132,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should restore the account username', done => { + it('should restore the account username', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ - username: config.user.username + username: config.user.username, }) .end((err, res) => { res.should.have.status(200) @@ -148,13 +148,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should not update the account username if that username is taken', done => { + it('should not update the account username if that username is taken', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ - username: 'admin' + username: 'admin', }) .end((err, res) => { res.should.have.status(400) @@ -163,14 +163,14 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the account bio', done => { + it('should update the account bio', (done) => { let bio = 'This is the test bio ' chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ - bio: bio + bio: bio, }) .end((err, res) => { res.should.have.status(200) @@ -180,15 +180,15 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the account language', done => { + it('should update the account language', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ settings: { - language: 'nl' - } + language: 'nl', + }, }) .end((err, res) => { res.should.have.status(200) @@ -198,15 +198,15 @@ module.exports = function tests(store, config, chai) { }) }) - it('should update the account units', done => { + it('should update the account units', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ settings: { - units: 'imperial' - } + units: 'imperial', + }, }) .end((err, res) => { res.should.have.status(200) @@ -217,7 +217,7 @@ module.exports = function tests(store, config, chai) { }) for (let network of ['github', 'twitter', 'instagram']) { - it(`should update the account's ${network} username`, done => { + it(`should update the account's ${network} username`, (done) => { let data = { social: {} } data.social[network] = network chai @@ -233,13 +233,13 @@ module.exports = function tests(store, config, chai) { }) } - it('should update the account password', done => { + it('should update the account password', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ - password: 'changeme' + password: 'changeme', }) .end((err, res) => { res.should.have.status(200) @@ -247,13 +247,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should login with the new password', done => { + it('should login with the new password', (done) => { chai .request(config.backend) .post('/login') .send({ username: config.user.username, - password: 'changeme' + password: 'changeme', }) .end((err, res) => { res.should.have.status(200) @@ -261,13 +261,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should restore the account password', done => { + it('should restore the account password', (done) => { chai .request(config.backend) .put('/account') .set('Authorization', 'Bearer ' + config.user.token) .send({ - password: config.user.password + password: config.user.password, }) .end((err, res) => { res.should.have.status(200) @@ -277,7 +277,7 @@ module.exports = function tests(store, config, chai) { }) describe('Other user endpoints', () => { - it("should load a user's profile", done => { + it("should load a user's profile", (done) => { chai .request(config.backend) .get('/users/admin') @@ -290,13 +290,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should confirm that a username is available', done => { + it('should confirm that a username is available', (done) => { chai .request(config.backend) .post('/available/username') .set('Authorization', 'Bearer ' + config.user.token) .send({ - username: Date.now() + ' ' + Date.now() + username: Date.now() + ' ' + Date.now(), }) .end((err, res) => { res.should.have.status(200) @@ -304,13 +304,13 @@ module.exports = function tests(store, config, chai) { }) }) - it('should confirm that a username is not available', done => { + it('should confirm that a username is not available', (done) => { chai .request(config.backend) .post('/available/username') .set('Authorization', 'Bearer ' + config.user.token) .send({ - username: 'admin' + username: 'admin', }) .end((err, res) => { res.should.have.status(400) @@ -318,7 +318,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should load the patron list', done => { + it('should load the patron list', (done) => { chai .request(config.backend) .get('/patrons') @@ -332,7 +332,7 @@ module.exports = function tests(store, config, chai) { }) }) - it('should export the user data', done => { + it('should export the user data', (done) => { chai .request(config.backend) .get('/account/export') diff --git a/sites/lab/page-templates/design-list.js b/sites/lab/page-templates/design-list.js index 1fc3bbc8e48..73279a2aa25 100644 --- a/sites/lab/page-templates/design-list.js +++ b/sites/lab/page-templates/design-list.js @@ -38,9 +38,9 @@ const PatternListPageTemplate = ({ section=false }) => { const all = [] for (const section in app.designs) all.push(...app.designs[section]) return all - } else return app.designs[section] + } - return [] + return app.designs[section] } return ( diff --git a/sites/shared/components/mdx/dot-rough.js b/sites/shared/components/mdx/dot-rough.js index 10e5f6324bd..efe4646af27 100644 --- a/sites/shared/components/mdx/dot-rough.js +++ b/sites/shared/components/mdx/dot-rough.js @@ -2,9 +2,9 @@ import rough from 'roughjs/bundled/rough.cjs.js' const getAttributes = (element) => Array.prototype.slice.call(element.attributes) -const getNum = (element, attributes) => attributes.map(attr => parseFloat(element.getAttribute(attr), 10)) +const getNum = (element, attributes) => attributes.map(attr => parseFloat(element.getAttribute(attr))) -const getDiam = (element, attributes) => attributes.map(attr => 2 * parseFloat(element.getAttribute(attr), 10)) +const getDiam = (element, attributes) => attributes.map(attr => 2 * parseFloat(element.getAttribute(attr))) const getCoords = (element, attribute) => element .getAttribute(attribute) @@ -70,7 +70,7 @@ const coarse = (svg, options) => { for(let i = 0; i < children.length; i += 1) { const original = children[i]; - const params = []; + let params = []; let shapeType; switch(original.tagName) { diff --git a/sites/shared/components/mdx/dot.js b/sites/shared/components/mdx/dot.js index 199ad813f6e..51655e71d70 100644 --- a/sites/shared/components/mdx/dot.js +++ b/sites/shared/components/mdx/dot.js @@ -17,12 +17,29 @@ const colorDot = dot => dot .replace(regexA, getColorTint) .replace(regexB, getColor) const fixSvg = svg => svg.replace(/#000000/g, () => 'currentColor') +const wrapDot = dot => { + if (dot.slice(0,7) === 'digraph') return dot + return plain + ? `digraph G { bgcolor=transparent; ${colorDot(dot)} }` + : `digraph G { +graph [fontname = "Indie Flower"]; +node [fontname = "Indie Flower"]; +edge [fontname = "Indie Flower"]; +bgcolor=transparent; +overlap=false; +${colorDot(dot)} }` +} // Supported layout engines const engines = [ 'circo', 'dot', 'fdp', 'neato', 'osage', 'twopi' ] const Dot = props => { + // Extract code/caption from props + const [code, caption] = props.children + // Extract dot code from mdx + const dot = wrapDot(code.props.children.props.children) + // State and effect are needed to run async code as this // library always returns a promise const svgRef = useRef(null) @@ -68,24 +85,6 @@ const Dot = props => { } } - const wrapDot = dot => { - if (dot.slice(0,7) === 'digraph') return dot - - return plain - ? `digraph G { bgcolor=transparent; ${colorDot(dot)} }` - : `digraph G { - graph [fontname = "Indie Flower"]; - node [fontname = "Indie Flower"]; - edge [fontname = "Indie Flower"]; - bgcolor=transparent; - overlap=false; - ${colorDot(dot)} }` - } - - // Extract code/caption from props - const [code, caption] = props.children - // Extract dot code from mdx - const dot = wrapDot(code.props.children.props.children) // Initialize viz library const viz = new Viz({ Module, render }) diff --git a/sites/shared/components/mdx/index.js b/sites/shared/components/mdx/index.js index e7215845170..cf97e8d995a 100644 --- a/sites/shared/components/mdx/index.js +++ b/sites/shared/components/mdx/index.js @@ -30,6 +30,8 @@ const mdxCustomComponents = (app=false) => ({ img: Figure, Dot, table: props =>
{props.children}
, + Tab, + Tabs, }) export default mdxCustomComponents diff --git a/sites/shared/components/workbench/draft/index.js b/sites/shared/components/workbench/draft/index.js index 4e6a3959d2d..b0625c095e8 100644 --- a/sites/shared/components/workbench/draft/index.js +++ b/sites/shared/components/workbench/draft/index.js @@ -27,7 +27,7 @@ const LabDraft = props => { return ( <> - {(!patternProps || patternProps.events?.error?.length > 0) + {(!patternProps || patternProps.logs?.error?.length > 0) ? : null } diff --git a/sites/shared/components/workbench/draft/stack.js b/sites/shared/components/workbench/draft/stack.js new file mode 100644 index 00000000000..ec7e68fd67d --- /dev/null +++ b/sites/shared/components/workbench/draft/stack.js @@ -0,0 +1,20 @@ +import Part from './part' +import { getProps } from './utils' + +const Stack = props => { + const { stackName, stack, gist, app, updateGist, unsetGist, showInfo } = props + + return ( + + {[...stack.parts].map((part) => ( + + ))} + + ) +} + +export default Stack diff --git a/sites/shared/components/workbench/draft/svg-wrapper.js b/sites/shared/components/workbench/draft/svg-wrapper.js index 8f737841084..6aeaf14a799 100644 --- a/sites/shared/components/workbench/draft/svg-wrapper.js +++ b/sites/shared/components/workbench/draft/svg-wrapper.js @@ -2,7 +2,7 @@ import { SizeMe } from 'react-sizeme' import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch" import Svg from './svg' import Defs from './defs' -import Part from './part' +import Stack from './stack' /* What's with all the wrapping? * @@ -40,11 +40,11 @@ const SvgWrapper = props => { - {Object.keys(patternProps.parts).map((name) => ( - ( + ))} diff --git a/sites/shared/components/workbench/measurements/index.js b/sites/shared/components/workbench/measurements/index.js index 7e68363860d..f0e90f428d6 100644 --- a/sites/shared/components/workbench/measurements/index.js +++ b/sites/shared/components/workbench/measurements/index.js @@ -59,7 +59,7 @@ const WorkbenchMeasurements = ({ app, design, gist, updateGist, gistReady }) =>

{t('cfp:preloadMeasurements')}

{Object.keys(groups).map(group => ( - + {Object.keys(icons).map(type => (

{t(type)}

diff --git a/sites/shared/components/workbench/menu/test-design-options/index.js b/sites/shared/components/workbench/menu/test-design-options/index.js index 68c2c7b2413..29e1970b0fd 100644 --- a/sites/shared/components/workbench/menu/test-design-options/index.js +++ b/sites/shared/components/workbench/menu/test-design-options/index.js @@ -5,7 +5,7 @@ import Option from './option' import { Ul, Details, TopSummary, TopSumTitle } from 'shared/components/workbench/menu' import { useTranslation } from 'next-i18next' import { optionsMenuStructure } from 'shared/utils.mjs' -import { adult, doll, giant, measurements } from '@freesewing/models' +import { adult, doll, giant } from '@freesewing/models' const groups = { adult, doll, giant } diff --git a/sites/shared/components/workbench/menu/test-design-options/option.js b/sites/shared/components/workbench/menu/test-design-options/option.js index 68705b2ffeb..df939ba97b8 100644 --- a/sites/shared/components/workbench/menu/test-design-options/option.js +++ b/sites/shared/components/workbench/menu/test-design-options/option.js @@ -1,9 +1,7 @@ -import { linkClasses } from 'shared/components/navigation/primary.js' import { Li, SumButton, SumDiv } from 'shared/components/workbench/menu' import { useTranslation } from 'next-i18next' const Option = props => { - const { t } = useTranslation([`o_${props.design.config.data.name}`, 'workbench']) const active = ( props.sampleSettings?.type === 'option' && props.active === props.option diff --git a/tests/designs/drafting.mjs b/tests/designs/drafting.mjs index 62630ab414e..b534e9577f0 100644 --- a/tests/designs/drafting.mjs +++ b/tests/designs/drafting.mjs @@ -1,18 +1,9 @@ -import designs from "../../config/software/designs.json" assert { type: 'json' } import { adult, doll, giant } from '@freesewing/models' import { getFamily, getShortName } from './config.mjs' import chai from 'chai' const expect = chai.expect -const noSizes = [ - 'examples', - 'rendertest', - 'plugintest', - 'legend', - 'tutorial', -] - /* * This runs unit tests for pattern drafting * It expects the following: @@ -20,15 +11,14 @@ const noSizes = [ * @param object Pattern: pattern constructor * @param boolean log: Set to true to log errors */ -export const testPatternDrafting = (Pattern, log=false) => { - +export const testPatternDrafting = (Pattern, log = false) => { const pattern = new Pattern() const config = pattern.getConfig() const design = getShortName(config.data.name) const family = getFamily(design) - const parts = pattern.getPartList() + // Helper method to try/catch pattern drafting - const doesItDraftAndRender = (pattern, log=false) => { + const doesItDraftAndRender = (pattern, log = false) => { try { pattern.draft().render() if (pattern.store.logs.error.length < 1) return true @@ -44,8 +34,8 @@ export const testPatternDrafting = (Pattern, log=false) => { * Draft pattern for different models */ if (family !== 'utilities') { - describe('Draft for humans:', function() { - this.timeout(5000); + describe('Draft for humans:', function () { + this.timeout(5000) for (const type of ['cisFemale', 'cisMale']) { describe(type, () => { for (const size in adult[type]) { @@ -53,8 +43,9 @@ export const testPatternDrafting = (Pattern, log=false) => { expect( doesItDraftAndRender( new Pattern({ - measurements: adult[type][size] - }), log + measurements: adult[type][size], + }), + log ) ).to.equal(true) }) @@ -66,8 +57,8 @@ export const testPatternDrafting = (Pattern, log=false) => { // Do the same for fantastical models (doll, giant) const fams = { doll, giant } for (const family of ['doll', 'giant']) { - describe(`Draft for ${family}:`, function() { - this.timeout(5000); + describe(`Draft for ${family}:`, function () { + this.timeout(5000) for (const type of ['cisFemale', 'cisMale']) { describe(type, () => { for (const size in fams[family][type]) { @@ -75,8 +66,9 @@ export const testPatternDrafting = (Pattern, log=false) => { expect( doesItDraftAndRender( new Pattern({ - measurements: fams[family][type][size] - }), log + measurements: fams[family][type][size], + }), + log ) ).to.equal(true) }) @@ -102,11 +94,9 @@ export const testPatternDrafting = (Pattern, log=false) => { } } - - - /* - * Draft parts individually - */ +/* + * Draft parts individually + */ /* it('Draft parts individually:', () => true) for (const name of parts) { @@ -123,9 +113,9 @@ export const testPatternDrafting = (Pattern, log=false) => { } */ - /* - * Draft a paperless non-detailed pattern - */ +/* + * Draft a paperless non-detailed pattern + */ /* it('Draft paperless non-detailed pattern:', () => true) if (family !== 'utilities') { @@ -146,4 +136,3 @@ export const testPatternDrafting = (Pattern, log=false) => { } } */ - diff --git a/tests/designs/sampling.mjs b/tests/designs/sampling.mjs index efd0d0144dc..68afba66d1c 100644 --- a/tests/designs/sampling.mjs +++ b/tests/designs/sampling.mjs @@ -1,6 +1,4 @@ -import designs from "../../config/software/designs.json" assert { type: 'json' } import { adult, doll, giant } from '@freesewing/models' -import { getFamily } from './config.mjs' import chai from 'chai' const expect = chai.expect @@ -20,8 +18,8 @@ export const testPatternSampling = (Pattern, log=false) => { const pattern = new Pattern() const config = pattern.getConfig() const design = pattern.config.data.name - const family = getFamily(design) - const parts = pattern.getPartList() + //const family = getFamily(design) + //const parts = pattern.getPartList() // Helper method to try/catch pattern sampling const doesItSample = (pattern, log=false) => { diff --git a/tests/plugins/shared.mjs b/tests/plugins/shared.mjs index 46f07cd790b..b6900c8b289 100644 --- a/tests/plugins/shared.mjs +++ b/tests/plugins/shared.mjs @@ -1,4 +1,3 @@ -import { Pattern } from '@freesewing/core' import chai from 'chai' /* * This runs unit tests for the plugin configuration diff --git a/yarn.lock b/yarn.lock index e17c7a2ed57..0d07dc1582e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1281,21 +1281,45 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/eslintrc@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" + integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@headlessui/react@^1.6.6": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.0.tgz#7e36e6bbc25a24b02011527ae157a000dda88b85" - integrity sha512-/nDsijOXRwXVLpUBEiYuWguIBSIN3ZbKyah+KPUiD8bdIKtX1U/k+qLYUEr7NCQnSF2e4w1dr8me42ECuG3cvw== + version "1.7.1" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.1.tgz#39c1b14b2e92d2edb32dd07722a8783a12d0d0be" + integrity sha512-vnRlB71kvEr3y26Lm1WpCiMML8n5JcJ7jK5+vaF0hGTZFArW206j61meVemXkTOuGLhmyWe6yj3OETzsxHoryQ== "@heroicons/react@^2.0.1": version "2.0.10" resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.0.10.tgz#191a305aa2dc2271903f027c9f4700ca3dfa9e7b" integrity sha512-Ufr+pgAElNiRCSklnHGOR10bXb02BLlosvbDK7sCRUMOcQ3R/HCXTfXs4BUkYZ4dKpx6l5dUD06VSW1dTpTEDw== +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + "@humanwhocodes/config-array@^0.9.2": version "0.9.5" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" @@ -1305,6 +1329,16 @@ debug "^4.1.1" minimatch "^3.0.4" +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -3493,9 +3527,9 @@ form-data "^3.0.0" "@types/node@*", "@types/node@^18.0.0": - version "18.7.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.16.tgz#0eb3cce1e37c79619943d2fd903919fc30850601" - integrity sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg== + version "18.7.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.17.tgz#52438111ea98f77475470fc62d79b9eb96bb2c92" + integrity sha512-0UyfUnt02zIuqp7yC8RYtDkp/vo8bFaQ13KkSEvUAohPOAlnVNbj5Fi3fgPSuwzakS+EvvnnZ4x9y7i6ASaSPQ== "@types/node@^14.0.0": version "14.18.26" @@ -3917,7 +3951,7 @@ acorn@^7.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.0, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.7.1: +acorn@^8.0.0, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.7.1, acorn@^8.8.0: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== @@ -4080,7 +4114,7 @@ ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -4518,6 +4552,11 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + astring@^1.4.0, astring@^1.8.0: version "1.8.3" resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.3.tgz#1a0ae738c7cc558f8e5ddc8e3120636f5cebcb85" @@ -5780,6 +5819,14 @@ cli-truncate@^0.2.1: slice-ansi "0.0.4" string-width "^1.0.1" +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + cli-truncate@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" @@ -5798,6 +5845,14 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" + integrity sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg== + dependencies: + exit "0.1.2" + glob "^7.1.1" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -5940,6 +5995,11 @@ color@^4.2, color@^4.2.3: color-convert "^2.0.1" color-string "^1.9.0" +colorette@^2.0.16, colorette@^2.0.17: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + colors-option@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/colors-option/-/colors-option-3.0.0.tgz#51f5d0d2b511a01859cdd70eaa9ed43ca4abf108" @@ -6125,6 +6185,13 @@ configstore@^5.0.0, configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" +console-browserify@1.1.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg== + dependencies: + date-now "^0.1.4" + console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -6635,6 +6702,11 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw== + date-time@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/date-time/-/date-time-3.1.0.tgz#0d1e934d170579f481ed8df1e2b8ff70ee845e1e" @@ -7158,6 +7230,14 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + dom-serializer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" @@ -7172,11 +7252,23 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@^2.3.0: +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== +domhandler@2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + integrity sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ== + dependencies: + domelementtype "1" + domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" @@ -7184,6 +7276,14 @@ domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" +domutils@1.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw== + dependencies: + dom-serializer "0" + domelementtype "1" + domutils@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" @@ -7380,7 +7480,12 @@ enquirer@~2.3.6: dependencies: ansi-colors "^4.1.1" -entities@^2.2.0: +entities@1.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + integrity sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ== + +entities@^2.0.0, entities@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== @@ -7829,6 +7934,14 @@ eslint-plugin-react@^7.28.0, eslint-plugin-react@^7.29.4: semver "^6.3.0" string.prototype.matchall "^4.0.7" +eslint-plugin-yaml@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-yaml/-/eslint-plugin-yaml-0.5.0.tgz#8c79d9d6389b67cbcf58ef6f970c4c086665a63a" + integrity sha512-Z6km4HEiRptSuvzc96nXBND1Vlg57b7pzRmIJOgb9+3PAE+XpaBaiMx+Dg+3Y15tSrEMKCIZ9WoZMwkwUbPI8A== + dependencies: + js-yaml "^4.1.0" + jshint "^2.13.0" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -7915,6 +8028,51 @@ eslint@^8.13.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +eslint@^8.23.1: + version "8.23.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" + integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== + dependencies: + "@eslint/eslintrc" "^1.3.2" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@humanwhocodes/module-importer" "^1.0.1" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.1" + globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + esm@^3.2.25: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" @@ -7929,6 +8087,15 @@ espree@^9.3.2: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -8107,6 +8274,11 @@ execa@^6.0.0, execa@^6.1.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +exit@0.1.2, exit@0.1.x: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -9148,7 +9320,7 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: +glob@^7.0.5, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -9332,6 +9504,11 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1. resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + graphql@16.5.0: version "16.5.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.5.0.tgz#41b5c1182eaac7f3d47164fb247f61e4dfb69c85" @@ -9779,6 +9956,17 @@ html-whitespace-sensitive-tag-names@^2.0.0: resolved "https://registry.yarnpkg.com/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-2.0.0.tgz#80c7512c969de90c94279641068fafb5fa6da468" integrity sha512-SQdIvTTtnHAx72xGUIUudvVOCjeWvV1U7rvSFnNGxTGRw3ZC7RES4Gw6dm1nMYD60TXvm6zjk/bWqgNc5pjQaw== +htmlparser2@3.8.x: + version "3.8.3" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + integrity sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q== + dependencies: + domelementtype "1" + domhandler "2.3" + domutils "1.5" + entities "1.0" + readable-stream "1.1" + htmlparser2@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" @@ -10792,6 +10980,11 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -10931,6 +11124,11 @@ jest-validate@^27.3.1, jest-validate@^27.4.2: leven "^3.1.0" pretty-format "^27.5.1" +js-sdsl@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" + integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== + js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" @@ -10973,6 +11171,19 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +jshint@^2.13.0: + version "2.13.5" + resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.13.5.tgz#34654b44387ef112b39c205e2e70b99385376579" + integrity sha512-dB2n1w3OaQ35PLcBGIWXlszjbPZwsgZoxsg6G8PtNf2cFMC1l0fObkYLUuXqTTdi6tKw4sAjfUseTdmDMHQRcg== + dependencies: + cli "~1.0.0" + console-browserify "1.1.x" + exit "0.1.x" + htmlparser2 "3.8.x" + lodash "~4.17.21" + minimatch "~3.0.2" + strip-json-comments "1.0.x" + json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" @@ -11341,6 +11552,11 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" +lilconfig@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" + integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== + lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" @@ -11364,6 +11580,25 @@ lines-and-columns@^2.0.2: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== +lint-staged@^13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" + integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== + dependencies: + cli-truncate "^3.1.0" + colorette "^2.0.17" + commander "^9.3.0" + debug "^4.3.4" + execa "^6.1.0" + lilconfig "2.0.5" + listr2 "^4.0.5" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.2" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.1.1" + listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -11393,6 +11628,20 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + listr@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" @@ -11657,7 +11906,7 @@ lodash.unset@^4.5.2: resolved "https://registry.yarnpkg.com/lodash.unset/-/lodash.unset-4.5.2.tgz#370d1d3e85b72a7e1b0cdf2d272121306f23e4ed" integrity sha512-bwKX88k2JhCV9D1vtE8+naDKlLiGrSmf8zi/Y9ivFHwbmRfA8RxS/aVJ+sIht2XOwqoNr4xUPUkGZpc1sHFEKg== -lodash@^4.11.2, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.11.2, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@~4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -11714,6 +11963,16 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + log-update@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" @@ -12832,7 +13091,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -12945,6 +13204,13 @@ minimatch@^5.0.0, minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" +minimatch@~3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -14106,7 +14372,7 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.0, object-inspect@^1.9.0: +object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -14971,6 +15237,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -15207,7 +15478,7 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== -prettier@^2.3.0, prettier@^2.3.1: +prettier@^2.3.1, prettier@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== @@ -15800,6 +16071,16 @@ read@1, read@^1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@1.1: + version "1.1.13" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + integrity sha512-E98tWzqShvKDGpR2MbjsDkDQWLW2TfWUC15H4tNQhIJ5Lsta84l8nUGL9/ybltGwe+wZzWPpc1Kmd2wQP4bdCA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" @@ -17219,6 +17500,24 @@ slice-ansi@0.0.4: resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + slice-ansi@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" @@ -17599,6 +17898,11 @@ strict-uri-encode@^2.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== +string-argv@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + string-similarity@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" @@ -17678,6 +17982,11 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -17788,6 +18097,11 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" +strip-json-comments@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + integrity sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg== + strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -19668,7 +19982,7 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.0.0: +yaml@^2.0.0, yaml@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==