1
0
Fork 0

[breaking]: FreeSewing v4 (#7297)

Refer to the CHANGELOG for all info.

---------

Co-authored-by: Wouter van Wageningen <wouter.vdub@yahoo.com>
Co-authored-by: Josh Munic <jpmunic@gmail.com>
Co-authored-by: Jonathan Haas <haasjona@gmail.com>
This commit is contained in:
Joost De Cock 2025-04-01 16:15:20 +02:00 committed by GitHub
parent d22fbe78d9
commit 51dc1d9732
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6626 changed files with 142053 additions and 150606 deletions

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/core-plugins.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Acore-plugins"
title="Open issues tagged pkg:core-plugins"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:core-plugins.svg?label=Issues"
alt="Open issues tagged pkg:core-plugins"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/core-plugins
@ -88,7 +73,7 @@ let pattern = new freesewing.Pattern().with(plugins);
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -105,7 +90,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -115,7 +100,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -127,7 +112,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -143,49 +128,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "core-plugins"
}

View file

@ -1,45 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate different formats
let result
;(async () => {
result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
// Also build a version that has all dependencies bundled
// This makes it easy to run tests
await esbuild
.build({
...options,
outfile: 'tests/dist/index.mjs',
format: 'esm',
external: [],
})
.catch(() => process.exit(1))
})()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/core-plugins",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "An umbrella package of essential plugins that are bundled with FreeSewing's core library",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,50 +25,44 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {
"@freesewing/plugin-annotations": "4.0.0",
"@freesewing/plugin-measurements": "4.0.0",
"@freesewing/plugin-mirror": "4.0.0",
"@freesewing/plugin-round": "4.0.0",
"@freesewing/plugin-sprinkle": "4.0.0",
"@freesewing/plugin-bin-pack": "4.0.0"
},
"dependencies": {},
"devDependencies": {
"mocha": "10.4.0",
"chai": "5.1.1",
"@freesewing/plugin-annotations": "3.3.0-rc.1",
"@freesewing/plugin-mirror": "3.3.0-rc.1",
"@freesewing/plugin-round": "3.3.0-rc.1",
"@freesewing/plugin-sprinkle": "3.3.0-rc.1"
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,10 +1,10 @@
import { annotationsPlugin } from '../../plugin-annotations/src/index.mjs'
import { measurementsPlugin } from '../../plugin-measurements/src/index.mjs'
import { mirrorPlugin } from '../../plugin-mirror/src/index.mjs'
import { roundPlugin } from '../../plugin-round/src/index.mjs'
import { sprinklePlugin } from '../../plugin-sprinkle/src/index.mjs'
import { binpackPlugin } from '../../plugin-bin-pack/src/index.mjs'
import { name, version } from '../data.mjs'
import { annotationsPlugin, i18n as annotationsI18n } from '@freesewing/plugin-annotations'
import { measurementsPlugin } from '@freesewing/plugin-measurements'
import { mirrorPlugin } from '@freesewing/plugin-mirror'
import { roundPlugin } from '@freesewing/plugin-round'
import { sprinklePlugin } from '@freesewing/plugin-sprinkle'
import { binpackPlugin } from '@freesewing/plugin-bin-pack'
import about from '../about.json' with { type: 'json' }
const bundledPlugins = [
annotationsPlugin,
@ -45,8 +45,7 @@ for (const plugin of bundledPlugins) {
}
export const plugin = {
name,
version,
...about,
store,
hooks,
macros,
@ -54,3 +53,6 @@ export const plugin = {
// Specific named export
export const corePlugins = plugin
// Translation (only annotations plugin has them)
export const i18n = annotationsI18n

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-annotations.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-annotations"
title="Open issues tagged pkg:plugin-annotations"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-annotations.svg?label=Issues"
alt="Open issues tagged pkg:plugin-annotations"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-annotations
@ -59,7 +44,7 @@ A FreeSewing plugin that provides pattern annotations
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-annotations"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,26 +1,27 @@
{
"canvas": "canvas",
"cut": "Cut",
"cutOnFold": "Cut on fold",
"cutOnFoldAndGrainline": "Cut on fold / Grainline",
"fabric": "main fabric",
"altFabric1": "alternative fabric",
"altFabric2": "alternative fabric #2",
"altFabric3": "alternative fabric #3",
"altFabric4": "alternative fabric #4",
"facing": "facing",
"from": "from",
"fusible": "fusible interfacing",
"interfacing": "interfacing",
"lining": "lining",
"mirrored": "mirrored",
"noName": "No name",
"noVersion": "No version",
"onBias": "on the bias",
"onFold": "on the fold",
"onFoldAndBias": "on the fold, and on bias",
"sewTogether": "Sew together",
"supportFreeSewingBecomeAPatron": "Support FreeSewing, become a patron",
"theBlackOutsideOfThisBoxShouldMeasure": "The (black) outside of this box should measure",
"theWhiteInsideOfThisBoxShouldMeasure": "The (white) inside of this box should measure"
"plugin-annotations:canvas": "canvas",
"plugin-annotations:cut": "Cut",
"plugin-annotations:cutOnFold": "Cut on fold",
"plugin-annotations:cutOnFoldAndGrainline": "Cut on fold / Grainline",
"plugin-annotations:fabric": "main fabric",
"plugin-annotations:altFabric1": "alternative fabric",
"plugin-annotations:altFabric2": "alternative fabric #2",
"plugin-annotations:altFabric3": "alternative fabric #3",
"plugin-annotations:altFabric4": "alternative fabric #4",
"plugin-annotations:facing": "facing",
"plugin-annotations:from": "from",
"plugin-annotations:fusible": "fusible interfacing",
"plugin-annotations:grainline": "Grainline",
"plugin-annotations:interfacing": "interfacing",
"plugin-annotations:lining": "lining",
"plugin-annotations:mirrored": "mirrored",
"plugin-annotations:noName": "No name",
"plugin-annotations:noVersion": "No version",
"plugin-annotations:onBias": "on the bias",
"plugin-annotations:onFold": "on the fold",
"plugin-annotations:onFoldAndBias": "on the fold, and on bias",
"plugin-annotations:sewTogether": "Sew together",
"plugin-annotations:supportFreeSewingBecomeAPatron": "Support FreeSewing, become a patron",
"plugin-annotations:theBlackOutsideOfThisBoxShouldMeasure": "The (black) outside of this box should measure",
"plugin-annotations:theWhiteInsideOfThisBoxShouldMeasure": "The (white) inside of this box should measure"
}

View file

@ -1,8 +1,3 @@
import en from './en.json' with { type: 'json' }
import de from './de.json' with { type: 'json' }
import es from './es.json' with { type: 'json' }
import fr from './fr.json' with { type: 'json' }
import nl from './nl.json' with { type: 'json' }
import uk from './uk.json' with { type: 'json' }
export const i18n = { en, de, es, fr, nl, uk }
export const i18n = { en }

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-annotations",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin that provides pattern annotations",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,4 +1,4 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
// i18n
import { i18n as i18nAnnotations } from '../i18n/index.mjs'
// Defs only
@ -23,8 +23,7 @@ import { sewtogetherMacros, sewtogetherDefs } from './sewtogether.mjs'
import { flagStores } from './flag.mjs'
export const plugin = {
name,
version,
...about,
hooks: {
preRender: [
function (svg) {

View file

@ -1,5 +1,4 @@
// Export defs
import { logoPath } from '../../../config/logo.mjs'
import { logoPath } from '@freesewing/config'
export const logoDefs = [
{

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-bin-pack.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bin-pack"
title="Open issues tagged pkg:plugin-bin-pack"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bin-pack.svg?label=Issues"
alt="Open issues tagged pkg:plugin-bin-pack"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-bin-pack
@ -59,7 +44,7 @@ A FreeSewing plugin that adds a bin-pack algorithm to the core library
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-bin-pack"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-bin-pack",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin that adds a bin-pack algorithm to the core library",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,9 +1,8 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { pack } from './growing-packer.mjs'
export const plugin = {
name,
version,
...about,
store: [['pack', pack]],
}

View file

@ -1,6 +1,18 @@
# Change log for: @freesewing/plugin-bust
## 4.0.0 (2024-04-01)
### Changed
- This plugin now uses the `preSetDraft` rather than `preDraft` lifecycle hook
- Conditionality has been moved to the `preSetDraft` lifecycle hook, rather than exposing a `withCondition` named export
- The plugin will now always be loaded, but will check for each drafted set whether it should make any changes.
### Deprecated
- The `withCondition` named export is deprecated and will always return true.
## 3.0.0 (2023-09-30)
### Changed

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-bust.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-bust"
title="Open issues tagged pkg:plugin-bust"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-bust.svg?label=Issues"
alt="Open issues tagged pkg:plugin-bust"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-bust
@ -59,7 +44,7 @@ A FreeSewing plugin that helps with bust-adjusting menswear patterns
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-bust"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-bust",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin that helps with bust-adjusting menswear patterns",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,8 +1,7 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
export const plugin = {
name,
version,
...about,
hooks: {
preSetDraft: function ({ settings, activeSet }) {
const set = settings[Number(activeSet)]

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-flip.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-flip"
title="Open issues tagged pkg:plugin-flip"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-flip.svg?label=Issues"
alt="Open issues tagged pkg:plugin-flip"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-flip
@ -59,7 +44,7 @@ A FreeSewing plugin to flip parts horizontally
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-flip"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-flip",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to flip parts horizontally",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,8 +1,7 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
export const plugin = {
name,
version,
...about,
macros: {
flip: function (so, { paths, points, snippets }) {
const axis = so?.axis === 'y' ? 'y' : 'x'

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-gore.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-gore"
title="Open issues tagged pkg:plugin-gore"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-gore.svg?label=Issues"
alt="Open issues tagged pkg:plugin-gore"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-gore
@ -59,7 +44,7 @@ A FreeSewing plugin to generate gores for a semi-sphere or dome
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-gore"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-gore",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to generate gores for a semi-sphere or dome",
"author": "AlfaLyr (https://github.com/alfalyr)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,8 +1,7 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
export const plugin = {
name,
version,
...about,
macros: {
gore: function (so, { points, paths, Path }) {
const from = so.from

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-i18n.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-i18n"
title="Open issues tagged pkg:plugin-i18n"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-i18n.svg?label=Issues"
alt="Open issues tagged pkg:plugin-i18n"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-i18n
@ -59,7 +44,7 @@ A FreeSewing plugin for pattern translation
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-i18n"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-i18n",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin for pattern translation",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,4 +1,4 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
const translate = (locale, text, t, pattern) => {
/*
@ -24,11 +24,8 @@ const translate = (locale, text, t, pattern) => {
}
export const plugin = {
name,
version,
hooks: {
insertText: (locale, text, t, pattern) => translate(locale, text, t, pattern),
},
...about,
hooks: { insertText: translate },
}
// More specifically named exports

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-measurements.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-measurements"
title="Open issues tagged pkg:plugin-measurements"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-measurements.svg?label=Issues"
alt="Open issues tagged pkg:plugin-measurements"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-measurements
@ -59,7 +44,7 @@ A FreeSewing plugin that adds additional measurements that can be calculated fro
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-measurements"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-measurements",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin that adds additional measurements that can be calculated from existing ones",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,8 +1,7 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
export const plugin = {
name,
version,
...about,
hooks: {
preDraft: function ({ settings }) {
for (const set of settings) {

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-mirror.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-mirror"
title="Open issues tagged pkg:plugin-mirror"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-mirror.svg?label=Issues"
alt="Open issues tagged pkg:plugin-mirror"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-mirror
@ -59,7 +44,7 @@ A FreeSewing plugin to mirror points or paths
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-mirror"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-mirror",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to mirror points or paths",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,4 +1,4 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
const lineValues = (start, end) => {
const { x: x1, y: y1 } = start
@ -36,8 +36,7 @@ const mirrorGen = (start, end) => {
const capFirst = (string) => string.charAt(0).toUpperCase() + string.slice(1)
export const plugin = {
name,
version,
...about,
macros: {
mirror: function ({
mirror,

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-ringsector.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-ringsector"
title="Open issues tagged pkg:plugin-ringsector"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-ringsector.svg?label=Issues"
alt="Open issues tagged pkg:plugin-ringsector"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-ringsector
@ -59,7 +44,7 @@ A FreeSewing plugin to draft a ring sector (think part of a donut)
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-ringsector"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-ringsector",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to draft a ring sector (think part of a donut)",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,4 +1,4 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
/*
* Helper method to get the various IDs for a macro
@ -44,8 +44,7 @@ const keys = [
* The plugin object itself
*/
export const plugin = {
name,
version,
...about,
macros: {
rmringsector: function (id = 'ringsector', { points, paths, store, part }) {
const storeRoot = ['parts', part.name, 'macros', '@freesewing/plugin-ringsector', 'ids', id]

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-round.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-round"
title="Open issues tagged pkg:plugin-round"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-round.svg?label=Issues"
alt="Open issues tagged pkg:plugin-round"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-round
@ -59,7 +44,7 @@ A FreeSewing plugin to round corners
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-round"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-round",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to round corners",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,4 +1,4 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
/*
* These are the keys for macro IDs
@ -7,8 +7,7 @@ const pointKeys = ['start', 'cp1', 'cp2', 'end']
const pathKeys = ['path']
export const plugin = {
name,
version,
...about,
macros: {
round: function (mc, { points, paths, Point, Path, store }) {
const C = 0.55191502449

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-sprinkle.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-sprinkle"
title="Open issues tagged pkg:plugin-sprinkle"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-sprinkle.svg?label=Issues"
alt="Open issues tagged pkg:plugin-sprinkle"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-sprinkle
@ -59,7 +44,7 @@ A FreeSewing plugin to bulk-add snippets to your pattern
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-sprinkle"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-sprinkle",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to bulk-add snippets to your pattern",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,8 +1,7 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
export const plugin = {
name,
version,
...about,
macros: {
sprinkle: function (so, { snippets, Snippet, points }) {
for (let pid of so.on) {

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-svgattr.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-svgattr"
title="Open issues tagged pkg:plugin-svgattr"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-svgattr.svg?label=Issues"
alt="Open issues tagged pkg:plugin-svgattr"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-svgattr
@ -59,7 +44,7 @@ A FreeSewing plugin to set SVG attributes
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-svgattr"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-svgattr",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to set SVG attributes",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,8 +1,7 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
export const plugin = {
name,
version,
...about,
hooks: {
preRender: function (svg, attributes = {}) {
for (const key of Object.keys(attributes)) svg.attributes.set(key, attributes[key])

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-theme.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-theme"
title="Open issues tagged pkg:plugin-theme"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-theme.svg?label=Issues"
alt="Open issues tagged pkg:plugin-theme"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-theme
@ -59,7 +44,7 @@ A FreeSewing plugin that provides a default theme
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-theme"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-theme",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin that provides a default theme",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,4 +1,4 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
import { sampleStyle, paperlessStyle, buildStylesheet } from './css.mjs'
const grid = {
@ -21,8 +21,7 @@ const grid = {
}
export const plugin = {
name,
version,
...about,
hooks: {
preRender: function (svg, data = {}) {
const current = svg.attributes.get('class')

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-timing.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-timing"
title="Open issues tagged pkg:plugin-timing"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-timing.svg?label=Issues"
alt="Open issues tagged pkg:plugin-timing"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-timing
@ -59,7 +44,7 @@ A FreeSewing plugin to record the time it takes to draft your pattern parts
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-timing"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-timing",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to record the time it takes to draft your pattern parts",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,4 +1,4 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
/* eslint-disable no-undef */
@ -17,8 +17,7 @@ const delta = (start) => {
/* eslint-enable no-undef */
export const plugin = {
name,
version,
...about,
hooks: {
preSetDraft: function (pattern) {
const time = now()

View file

@ -9,24 +9,14 @@
><img src="https://img.shields.io/npm/l/@freesewing/plugin-versionfree-svg.svg?label=License"
alt="License: MIT"/>
</a><a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="Code quality on DeepScan"/>
</a><a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aplugin-versionfree-svg"
title="Open issues tagged pkg:plugin-versionfree-svg"
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:plugin-versionfree-svg.svg?label=Issues"
alt="Open issues tagged pkg:plugin-versionfree-svg"/>
</a><a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
href="https://twitter.com/freesewing_org"
href="https://forum.freesewing.org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Forum-E4405F.svg?logo=discourse&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a><a
href="https://chat.freesewing.org"
@ -38,11 +28,6 @@
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a><a
href="https://instagram.com/freesewing_org"
title="Follow @freesewing_org on Twitter"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
alt="Follow @freesewing_org on Twitter"/>
</a></p>
# @freesewing/plugin-versionfree-svg
@ -59,7 +44,7 @@ A FreeSewing plugin to keep version info out of your SVG to allow easy diffs acr
> FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
>
> If you feel FreeSewing is worthwhile, and you can spend a few coins without
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
hardship, then you should [join us and become a patron](https://freesewing.eu/patrons/join).
## What am I looking at? 🤔
@ -76,7 +61,7 @@ npm run tips
> [!NOTE]
> If you don't want to set up a dev environment, you can run it in your browser:
>
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing)
> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://codeberg.org/freesewing/freesewing)
>
> We recommend that you fork our repository and then
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
@ -86,7 +71,7 @@ npm run tips
Where the world of makers and developers collide, that's where you'll find FreeSewing.
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
If you're a maker, checkout [freesewing.eu](https://freesewing.eu/) where you can generate
sewing patterns adapted to your measurements.
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
@ -98,7 +83,7 @@ functionality of the platform.
If you have NodeJS installed, you can try it right now by running:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
Getting started guides are available for:
@ -114,49 +99,45 @@ show you how to create your first parametric design.
To get started with FreeSewing, you can spin up our development environment with:
```bash
npx @freesewing/new-design
npx @freesewing/studio
```
To work with FreeSewing's monorepo, you'll need [NodeJS v18](https://nodejs.org), [lerna](https://lerna.js.org/) and [yarn](https://yarnpkg.com/) on your system.
Once you have those, clone (or fork) this repo and run `yarn kickstart`:
To work with FreeSewing's monorepo, you'll need [NodeJS v20](https://nodejs.org) on your system.
Once you have that, clone (or fork) this repo and run `npm run kickstart`:
```bash
git clone git@github.com:freesewing/freesewing.git
git clone git@codeberg.org:freesewing/freesewing.git
cd freesewing
yarn kickstart
npm run kickstart
```
## Links 👩‍💻
**Official channels**
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
[Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing)
- 💻 Makers website: [FreeSewing.eu](https://freesewing.eu/)
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev/)
- ✅ [Support](https://forum.freesewing.eu/),
[Issues](https://codeberg.org/freesewing/freesewing/issues) &
[Codeberg](https://codeberg.org/freesewing/freesewing)
**Social media**
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
- 🐘 Mastodon: [@freesewing](https://freesewing.social/@freesewing) on [FreeSewing.social](https://freesewing.social/)
- 🐘 Mastodon: [@joost](https://freesewing.social/@joost) on [FreeSewing.social](https://freesewing.social/)
**Places the FreeSewing community hangs out**
- 💬 [Forum](https://forum.freesewing.eu/)
- 💬 [Discord](https://discord.freesewing.org/)
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
## License: MIT 🤓
© [Joost De Cock](https://github.com/joostdecock).
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
© [Joost De Cock](https://codeberg.org/joostdecock).
See [the license file](https://codeberg.org/freesewing/freesewing/blob/develop/LICENSE) for details.
## Where to get help 🤯
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
[Discussions](https://github.com/freesewing/freesewing/discussions) on
[GitHub](https://github.com/freesewing/freesewing).
For [Support](https://freesewing.eu/support), please use the [forum](https://forum.freesewing.eu).

View file

@ -0,0 +1,4 @@
{
"version": "4.0.0-rc.8",
"name": "plugin-versionfree-svg"
}

View file

@ -1,35 +0,0 @@
/* This script will build the package with esbuild */
import esbuild from 'esbuild'
import pkg from './package.json' assert { type: 'json' }
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: ['src/index.mjs'],
format: 'esm',
outfile: 'dist/index.mjs',
external: ['@freesewing'],
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
sourcemap: true,
}
// Let esbuild generate the build
const build = async () => {
const result = await esbuild.build(options).catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
}
build()

View file

@ -1,6 +1,6 @@
{
"name": "@freesewing/plugin-versionfree-svg",
"version": "3.3.0-rc.1",
"version": "4.0.0",
"description": "A FreeSewing plugin to keep version info out of your SVG to allow easy diffs across versions",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
@ -25,31 +25,20 @@
"fashion"
],
"type": "module",
"module": "dist/index.mjs",
"module": "src/index.mjs",
"exports": {
".": {
"internal": "./src/index.mjs",
"default": "./dist/index.mjs"
}
".": "./src/index.mjs"
},
"scripts": {
"build": "node build.mjs",
"build:all": "yarn build",
"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",
"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": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
"wbuild": "node build.mjs",
"wbuild:all": "yarn wbuild"
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js"
},
"peerDependencies": {
"@freesewing/core": "3.3.0-rc.1"
"@freesewing/core": "4.0.0"
},
"dependencies": {},
"devDependencies": {
@ -57,14 +46,16 @@
"chai": "5.1.1"
},
"files": [
"dist/*",
"src/",
"i18n/",
"about.json",
"README.md"
],
"publishConfig": {
"access": "public",
"tag": "next"
"tag": "latest"
},
"engines": {
"node": ">= 18.17.0 <22"
"node": ">= 20"
}
}

View file

@ -1,8 +1,7 @@
import { name, version } from '../data.mjs'
import about from '../about.json' with { type: 'json' }
export const plugin = {
name,
version,
...about,
hooks: {
preRender: function (svg) {
for (const key in svg.attributes.list) {