1
0
Fork 0

feat: Handle site dependencies

This commit is contained in:
Joost De Cock 2022-12-17 16:48:36 +01:00
parent 47035505c4
commit facace58d1
17 changed files with 1090 additions and 910 deletions

View file

@ -992,6 +992,12 @@
- Fix bug in Svg.escapeText() that only escaped the first quote
### backend
#### Fixed
- Mitigate risk of denial-of-service attacks in catch-all route
## 2.20.4 (2022-01-28)

View file

@ -55,9 +55,9 @@ core:
'bezier-js': '^6.1.0'
'bin-pack': '^1.0.2'
'hooks': '^0.3.2'
'lodash.get': '^4.4.2'
'lodash.set': '^4.3.2'
'lodash.unset': '^4.5.2'
'lodash.get': &_get '4.4.2'
'lodash.set': &_set '4.3.2'
'lodash.unset': &_unset '4.5.2'
dev:
'eslint': '^8.23.1'
'nyc': '^15.1.0'
@ -156,9 +156,11 @@ rehype-highlight-lines:
_:
'unist-util-remove': '^3.1.0'
sandy:
'@freesewing/snapseries': *freesewing
peer:
'@freesewing/snapseries': *freesewing
shin:
'@freesewing/snapseries': *freesewing
peer:
'@freesewing/snapseries': *freesewing
simon:
peer:
'@freesewing/brian': *freesewing
@ -182,9 +184,11 @@ teagan:
'@freesewing/brian': *freesewing
'@freesewing/plugin-bust': *freesewing
titan:
'@freesewing/snapseries': *freesewing
peer:
'@freesewing/snapseries': *freesewing
trayvon:
'@freesewing/snapseries': *freesewing
peer:
'@freesewing/snapseries': *freesewing
wahid:
peer:
'@freesewing/brian': *freesewing
@ -193,3 +197,187 @@ yuri:
peer:
'@freesewing/brian': *freesewing
'@freesewing/plugin-bust': *freesewing
# Sites go here
backend:
_:
'@aws-sdk/client-sesv2': '^3.200.0'
'@prisma/client': '4.7.1'
'bcryptjs': '^2.4.3'
'crypto': '^1.0.1'
'express': '4.18.2'
'mustache': '^4.2.0'
'otplib': '^12.0.1'
'passport': '^0.6.0'
'passport-http': '^0.3.0'
'passport-jwt': '^4.0.0'
'pino': '^8.7.0'
'qrcode': '^1.5.1'
dev:
'chai': *chai
'chai-http': '^4.3.0'
'mocha': *mocha
'mocha-steps': '^1.3.0'
'prisma': '4.7.1'
dev:
_:
'@mdx-js/loader': &mdx '2.2.1'
'@mdx-js/mdx': *mdx
'@mdx-js/react': *mdx
'@mdx-js/runtime': &mdxRuntime '2.0.0-next.9'
'@next/bundle-analyzer': &next '13.0.7'
'@tailwindcss/typography': '0.5.8'
'algoliasearch': '^4.11.0'
'daisyui': &daisyui '2.45.0'
'lodash.get': *_get
'lodash.orderby': &_orderby '4.6.0'
'lodash.set': *_set
'next': *next
'react': &react '18.2.0'
'react-copy-to-clipboard': &reactCopyToClipboard '5.1.0'
'react-dom': *react
'react-hotkeys-hook': &reactHotkeysHook '4.0.6'
'react-instantsearch-dom': &reactInstantsearchDom '6.38.1'
'react-markdown': &reactMarkdown '8.0.4'
'react-swipeable': &reactSwipeable '7.0.0'
'react-timeago': &reactTimeago '7.1.0'
'rehype-autolink-headings': &rehypeAutolinkHeadings '6.1.1'
'rehype-highlight': &rehypeHighlight '6.0.0'
'rehype-sanitize': &rehypeSanitize '5.0.1'
'rehype-slug': &rehypeSlug '5.1.0'
'rehype-stringify': &rehypeStringify '9.0.3'
'remark-copy-linked-files': &remarkCopyLinkedFiles 'https://github.com/joostdecock/remark-copy-linked-files'
'remark-gfm': &remarkGfm '3.0.1'
dev: &nextSiteDevDependencies
'autoprefixer': '10.4.13'
'eslint-config-next': *next
'js-yaml': &jsYaml '4.1.0'
'postcss': &postcss '8.4.20'
'remark-extract-frontmatter': '3.2.0'
'tailwindcss': &tailwindcss '3.2.4'
'yaml-loader': '0.8.0'
email:
_:
'@maizzle/framework': '4.3.1'
'tailwindcss-box-shadow': '^1.0.0'
'tailwindcss-email-variants': '^1.0.0'
'tailwindcss-mso': '^1.2.0'
lab:
_:
'@headlessui/react': &headlessUiReact '^1.6.6'
'@mdx-js/loader': *mdx
'@mdx-js/mdx': *mdx
'@mdx-js/react': *mdx
'@mdx-js/runtime': *mdxRuntime
'@tailwindcss/typography': &tailwindTypography '^0.5.0'
'algoliasearch': &algoliasearch '4.14.2'
'd3-dispatch': '3.0.1'
'd3-drag': '3.0.0'
'd3-selection': '3.0.0'
'daisyui': *daisyui
'i18next': &i18next '22.4.5'
'lodash.get': *_get
'lodash.orderby': *_orderby
'lodash.set': *_set
'next': *next
'next-i18next': &nextI18next '13.0.2'
'react': *react
'react-copy-to-clipboard': *reactCopyToClipboard
'react-hotkeys-hook': *reactHotkeysHook
'react-i18next': &reactI18next '12.1.1'
'react-instantsearch-dom': *reactInstantsearchDom
'react-markdown': *reactMarkdown
'react-swipeable': *reactSwipeable
'react-timeago': *reactTimeago
'rehype-autolink-headings': *rehypeAutolinkHeadings
'rehype-highlight': *rehypeHighlight
'rehype-sanitize': *rehypeSanitize
'rehype-slug': *rehypeSlug
'rehype-stringify': *rehypeStringify
'remark-copy-linked-files': *remarkCopyLinkedFiles
'remark-gfm': *remarkGfm
dev: *nextSiteDevDependencies
org:
_:
'@mdx-js/loader': *mdx
'@mdx-js/mdx': *mdx
'@mdx-js/react': *mdx
'@mdx-js/runtime': *mdxRuntime
'@tailwindcss/typography': *tailwindTypography
'algoliasearch': *algoliasearch
'daisyui': *daisyui
'lodash.get': *_get
'lodash.orderby': *_orderby
'lodash.set': *_set
'next': *next
'react-hotkeys-hook': *reactHotkeysHook
'react-instantsearch-dom': *reactInstantsearchDom
'react-markdown': *reactMarkdown
'react-swipeable': *reactSwipeable
'react-timeago': *reactTimeago
'rehype-autolink-headings': *rehypeAutolinkHeadings
'rehype-highlight': *rehypeHighlight
'rehype-sanitize': *rehypeSanitize
'rehype-slug': *rehypeSlug
'rehype-stringify': *rehypeStringify
'remark-copy-linked-files': *remarkCopyLinkedFiles
'remark-gfm': *remarkGfm
dev: *nextSiteDevDependencies
sanity:
_:
'@sanity/base': '2.35.0'
'@sanity/core': '2.35.0'
'@sanity/default-layout': '2.35.0'
'@sanity/default-login': '2.35.0'
'@sanity/desk-tool': '2.35.0'
'@sanity/eslint-config-studio': '2.0.0'
'@sanity/vision': '2.35.0'
'eslint': '8.6.0'
'prop-types': '15.7'
'react': *react
'react-dom': *react
'sanity-plugin-markdown': '3.0.1'
'styled-components': '5.2.0'
dev:
'@sanity/cli': '2.35.0'
shared:
_:
'@headlessui/react': *headlessUiReact
'@resvg/resvg-js': '^2.1.0'
'@tailwindcss/typography': *tailwindTypography
'Buffer': '^0.0.0'
'd3-dispatch': '^3.0.1'
'd3-drag': '^3.0.0'
'd3-selection': '^3.0.0'
'daisyui': *daisyui
'feed': '^4.2.2'
'file-saver': '^2.0.5'
'front-matter': '^4.0.2'
'highlight.js': '^11.4.0'
'lodash.clonedeep': '^4.5.0'
'lodash.orderby': *_orderby
'lodash.unset': *_unset
'mdast-util-toc': '6.1.0'
'pdfkit': '0.13.0'
'postcss-for': '2.1.1'
'react': *react
'react-dom': *react
'react-markdown': *reactMarkdown
'react-sizeme': '^3.0.2'
'react-timeago': *reactTimeago
'react-zoom-pan-pinch': '^2.1.3'
'rehype-autolink-headings': *rehypeAutolinkHeadings
'rehype-highlight': *rehypeHighlight
'remark-smartypants': '^2.0.0'
'sharp': '^0.31.1'
'svg-to-pdfkit': '^0.1.8'
'to-vfile': '^7.2.2'
'unist-util-visit': '^4.1.0'
'web-worker': '^1.2.0'

View file

@ -11,6 +11,8 @@ customBuild:
skipTests:
- theo
packageJson:
backend:
name: backend.freesewing.org
bee:
author: bobgeorgethe3rd (https://github.com/bobgeorgethe3rd)
benjamin:

View file

@ -46,5 +46,52 @@ rehype-jargon:
lint: "npx eslint 'src/*.mjs'"
snapseries:
lint: "npx eslint 'src/*.mjs'"
# Sites go here
backend:
lint: '!'
dev: 'nodemon src/index.mjs'
initdb: 'npx prisma db push'
newdb: 'node ./scripts/newdb.mjs'
prettier: "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
rmdb: 'node ./scripts/rmdb.mjs'
test: 'npx mocha --require mocha-steps tests/index.mjs'
dev:
build: &nextBuild 'node --experimental-json-modules ../../node_modules/next/dist/bin/next build'
cibuild: 'yarn build && node scripts/algolia.mjs'
dev: &nextDev 'node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000'
develop: *nextDev
lint: &nextLint '../../node_modules/next/dist/bin/next lint'
prebuild: 'SITE=dev node --experimental-json-modules ../shared/prebuild/index.mjs'
serve: "pm2 start npm --name 'dev' -- run start"
start: &nextStart 'yarn prebuild && yarn dev'
email:
build: 'maizzle build production'
dev: 'maizzle serve'
lab:
build: *nextBuild
cibuild: 'yarn build'
clean: 'rimraf pages/*.mjs && rimraf pages/*/*.mjs && rimraf pages/v/*/*.mjs'
dev: *nextDev
develop: *nextDev
lint: *nextLint
prebuild: 'SITE=lab node --experimental-json-modules ../shared/prebuild/index.mjs'
start: *nextStart
org:
build: *nextBuild
cibuild: 'yarn build'
clean: 'rimraf pages/*.mjs && rimraf pages/*/*.mjs && rimraf pages/v/*/*.mjs'
dev: *nextDev
develop: *nextDev
i18n: 'SITE=org node ../shared/prebuild/i18n-only.mjs'
lint: *nextLint
prebuild: 'SITE=org node --experimental-json-modules ../shared/prebuild/index.mjs'
start: *nextStart
sanity:
start: 'sanity start'
test: 'sanity check'
build: 'sanity build -y'

View file

@ -0,0 +1,6 @@
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
VERSION=`sed 's/version/VERSION/' $DIR/../package.json | grep VERSION | tr -d 'VERSION [:blank:] ["] [:] [,]'`
docker build \
./sites/backend/.

View file

@ -7,7 +7,7 @@ import mustache from 'mustache'
import conf from '../lerna.json' assert { type: 'json' }
const { version } = conf
import {
publishedSoftware as software,
software as software,
publishedTypes as types,
designs,
plugins,
@ -73,15 +73,17 @@ for (const pkg of Object.values(software)) {
path.join(cwd, pkg.folder, pkg.name, 'package.json'),
JSON.stringify(packageJson(pkg), null, 2) + '\n'
)
fs.writeFileSync(
path.join(cwd, pkg.folder, pkg.name, 'data.mjs'),
mustache.render(repo.templates.data, { name: fullName(pkg.name), version })
)
fs.writeFileSync(path.join(cwd, pkg.folder, pkg.name, 'README.md'), readme(pkg))
if (repo.exceptions.customBuild.indexOf(pkg.name) === -1) {
fs.writeFileSync(path.join(cwd, pkg.folder, pkg.name, 'build.mjs'), repo.templates.build)
if (pkg.type !== 'site') {
fs.writeFileSync(
path.join(cwd, pkg.folder, pkg.name, 'data.mjs'),
mustache.render(repo.templates.data, { name: fullName(pkg.name), version })
)
fs.writeFileSync(path.join(cwd, pkg.folder, pkg.name, 'README.md'), readme(pkg))
if (repo.exceptions.customBuild.indexOf(pkg.name) === -1) {
fs.writeFileSync(path.join(cwd, pkg.folder, pkg.name, 'build.mjs'), repo.templates.build)
}
fs.writeFileSync(path.join(cwd, pkg.folder, pkg.name, 'CHANGELOG.md'), changelog(pkg))
}
fs.writeFileSync(path.join(cwd, pkg.folder, pkg.name, 'CHANGELOG.md'), changelog(pkg))
}
log.write(chalk.green(' Done\n'))
@ -168,6 +170,7 @@ function readInfoFile(pkg) {
* Returns an array of keywords for a package
*/
function keywords(pkg) {
if (pkg.type === 'site') return []
if (typeof repo.keywords[pkg.name] !== 'undefined') return repo.keywords[pkg.name]
if (typeof repo.keywords[pkg.type] !== 'undefined') return repo.keywords[pkg.type]
else {
@ -184,10 +187,12 @@ function keywords(pkg) {
*/
function scripts(pkg) {
let runScripts = {}
for (const key of Object.keys(repo.scripts._)) {
runScripts[key] = mustache.render(repo.scripts._[key], {
name: pkg.name,
})
if (pkg.type !== 'site') {
for (const key of Object.keys(repo.scripts._)) {
runScripts[key] = mustache.render(repo.scripts._[key], {
name: pkg.name,
})
}
}
if (typeof repo.scripts._types[pkg.type] !== 'undefined') {
for (const key of Object.keys(repo.scripts._types[pkg.type])) {
@ -282,6 +287,16 @@ function packageJson(pkg) {
}
}
if (pkg.type === 'site') {
delete pkgConf.keywords
delete pkgConf.type
delete pkgConf.module
delete pkgConf.exports
delete pkgConf.files
delete pkgConf.publishConfig
pkgConf.private = true
}
return pkgConf
}

37
sites/backend/Dockerfile Normal file
View file

@ -0,0 +1,37 @@
## Stage 1: Builder
FROM node:alpine as builder
## Set workdir
WORKDIR /backend
## Install build toolchain
#RUN apk add --no-cache python make g++
## Install node dependencies
COPY package* ./
RUN npm install pm2 && npm ci
## Build app
COPY package.json package.json
COPY src src
RUN npm run build
## Stage 2: App
FROM node:alpine as app
## Set workdir
WORKDIR /backend
## Copy built node modules and binaries without including the toolchain
COPY --from=builder /backend/node_modules/ /backend/node_modules/
COPY --from=builder /backend/build/ /backend/build/
COPY --from=builder /backend/package.json /backend/package.json
## Add a user to run the app
RUN addgroup -S freesewing \
&& adduser -S freesewing \
&& chown -R freesewing /backend
## Drop privleges and run app
USER freesewing
CMD ["./node_modules/.bin/pm2-runtime", "./build/main.js"]

View file

@ -1,12 +1,11 @@
{
"private": true,
"name": "backend.freesewing.org",
"version": "0.0.1",
"license": "MIT",
"description": "The FreeSewing backend REST API",
"version": "3.0.0-alpha.2",
"description": "FreeSewing backend",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
"license": "MIT",
"bugs": {
"url": "https://github.com/freesewing/freesewing/issues"
},
@ -16,12 +15,13 @@
},
"scripts": {
"dev": "nodemon src/index.mjs",
"test": "npx mocha --require mocha-steps tests/index.mjs",
"initdb": "npx prisma db push",
"newdb": "node ./scripts/newdb.mjs",
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
"rmdb": "node ./scripts/rmdb.mjs",
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'"
"test": "npx mocha --require mocha-steps tests/index.mjs"
},
"peerDependencies": {},
"dependencies": {
"@aws-sdk/client-sesv2": "^3.200.0",
"@prisma/client": "4.7.1",
@ -37,12 +37,15 @@
"qrcode": "^1.5.1"
},
"devDependencies": {
"chai": "^4.2.0",
"chai-http": "^4.3.0",
"mocha": "^10.1.0",
"mocha": "^10.0.0",
"mocha-steps": "^1.3.0",
"prisma": "4.7.1"
},
"prisma": {
"seed": "node prisma/seed.mjs"
}
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
},
"private": true
}

View file

@ -1,8 +1,7 @@
{
"private": true,
"name": "freesewing.dev",
"name": "@freesewing/dev",
"version": "3.0.0-alpha.2",
"description": "Source code for the FreeSewing.dev website",
"description": "FreeSewing website with documentation for contributors & developers",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@ -15,51 +14,57 @@
"url": "https://freesewing.org/patrons/join"
},
"scripts": {
"dev": "node --experimental-json-modules ./node_modules/.bin/next dev -p 8000",
"develop": "next dev -p 3002",
"build": "node --experimental-json-modules ../../node_modules/next/dist/bin/next build",
"cibuild": "yarn build && node scripts/algolia.mjs",
"dev": "node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000",
"develop": "node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000",
"lint": "../../node_modules/next/dist/bin/next lint",
"prebuild": "SITE=dev node --experimental-json-modules ../shared/prebuild/index.mjs",
"build": "node --experimental-json-modules ./node_modules/.bin/next build",
"cibuild": "yarn prebuild && node --experimental-json-modules ./node_modules/.bin/next build && node scripts/algolia.mjs",
"start": "yarn prebuild && node --experimental-json-modules ./node_modules/.bin/next dev -p 8000",
"lint": "next lint",
"serve": "pm2 start npm --name 'dev' -- run start"
"serve": "pm2 start npm --name 'dev' -- run start",
"start": "yarn prebuild && yarn dev"
},
"peerDependencies": {},
"dependencies": {
"@heroicons/react": "latest",
"@mdx-js/loader": "latest",
"@mdx-js/mdx": "latest",
"@mdx-js/react": "latest",
"@mdx-js/runtime": "latest",
"@next/bundle-analyzer": "^13",
"@tailwindcss/typography": "latest",
"@mdx-js/loader": "2.2.1",
"@mdx-js/mdx": "2.2.1",
"@mdx-js/react": "2.2.1",
"@mdx-js/runtime": "2.0.0-next.9",
"@next/bundle-analyzer": "13.0.7",
"@tailwindcss/typography": "0.5.8",
"algoliasearch": "^4.11.0",
"daisyui": "^2.0.6",
"lodash.get": "^4.4.2",
"lodash.orderby": "^4.6.0",
"lodash.set": "^4.3.2",
"next": "^13.0.0",
"react": "^18.2.0",
"react-copy-to-clipboard": "^5.0.4",
"react-dom": "^18.2.0",
"react-hotkeys-hook": "^4.0.4",
"react-instantsearch-dom": "^6.18.0",
"react-markdown": "^8.0.3",
"react-swipeable": "^7.0.0",
"react-timeago": "^7.1.0",
"rehype-autolink-headings": "^6.1.1",
"rehype-highlight": "^6.0.0",
"rehype-sanitize": "^5.0.1",
"rehype-slug": "^5.0.1",
"rehype-stringify": "^9.0.2",
"daisyui": "2.45.0",
"lodash.get": "4.4.2",
"lodash.orderby": "4.6.0",
"lodash.set": "4.3.2",
"next": "13.0.7",
"react": "18.2.0",
"react-copy-to-clipboard": "5.1.0",
"react-dom": "18.2.0",
"react-hotkeys-hook": "4.0.6",
"react-instantsearch-dom": "6.38.1",
"react-markdown": "8.0.4",
"react-swipeable": "7.0.0",
"react-timeago": "7.1.0",
"rehype-autolink-headings": "6.1.1",
"rehype-highlight": "6.0.0",
"rehype-sanitize": "5.0.1",
"rehype-slug": "5.1.0",
"rehype-stringify": "9.0.3",
"remark-copy-linked-files": "https://github.com/joostdecock/remark-copy-linked-files",
"remark-gfm": "^3.0.1"
"remark-gfm": "3.0.1"
},
"devDependencies": {
"autoprefixer": "^10.4.0",
"eslint-config-next": "13.0.6",
"js-yaml": "^4.1.0",
"postcss": "^8.4.4",
"tailwindcss": "^3.0.1",
"yaml-loader": "^0.8.0"
}
"autoprefixer": "10.4.13",
"eslint-config-next": "13.0.7",
"js-yaml": "4.1.0",
"postcss": "8.4.20",
"remark-extract-frontmatter": "3.2.0",
"tailwindcss": "3.2.4",
"yaml-loader": "0.8.0"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
},
"private": true
}

View file

@ -1,9 +1,7 @@
{
"name": "freesewing.email",
"private": true,
"name": "@freesewing/email",
"version": "3.0.0-alpha.2",
"name": "email",
"description": "Holds a maizzle instance for generating FreeSewing's email templates",
"description": "Holds maizzle instance to generate the FreeSewing email templates",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@ -16,13 +14,20 @@
"url": "https://freesewing.org/patrons/join"
},
"scripts": {
"dev": "maizzle serve",
"build": "maizzle build production"
"build": "maizzle build production",
"dev": "maizzle serve"
},
"peerDependencies": {},
"dependencies": {
"@maizzle/framework": "latest",
"@maizzle/framework": "4.3.1",
"tailwindcss-box-shadow": "^1.0.0",
"tailwindcss-email-variants": "^1.0.0",
"tailwindcss-mso": "^1.2.0"
}
},
"devDependencies": {},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
},
"private": true
}

View file

@ -1,9 +0,0 @@
# Change log for: @freesewing/freesewing.lab
This is the **initial release**, and the start of this change log.
> Prior to version 2, FreeSewing was not a JavaScript project.
> As such, that history is out of scope for this change log.

View file

@ -1,8 +1,7 @@
{
"private": true,
"name": "freesewing.lab",
"name": "@freesewing/lab",
"version": "3.0.0-alpha.2",
"description": "Source code for the lab.FreeSewing.dev website",
"description": "FreeSewing website to test various patterns",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@ -15,60 +14,62 @@
"url": "https://freesewing.org/patrons/join"
},
"scripts": {
"build": "node --experimental-json-modules ../../node_modules/next/dist/bin/next build",
"cibuild": "yarn build",
"clean": "rimraf pages/*.mjs && rimraf pages/*/*.mjs && rimraf pages/v/*/*.mjs",
"dev": "node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000",
"develop": "node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000",
"dev-debug": "node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000",
"start": "yarn prebuild && yarn dev",
"start-debug": "yarn prebuild && yarn dev-debug",
"prebuild": "node --experimental-json-modules ../shared/prebuild/index.mjs",
"cibuild": "yarn prebuild && node --experimental-json-modules ../../node_modules/.bin/next build",
"build": "node --experimental-json-modules ../../node_modules/.bin/next build",
"clean": "rimraf pages/*.mjs && rimraf pages/*/*.mjs && rimraf pages/v/*/*.mjs",
"export": "yarn prebuild && next build && next export",
"lint": "next lint",
"serve": "pm2 start npm --name 'dev' -- run start"
"lint": "../../node_modules/next/dist/bin/next lint",
"prebuild": "SITE=lab node --experimental-json-modules ../shared/prebuild/index.mjs",
"start": "yarn prebuild && yarn dev"
},
"peerDependencies": {},
"dependencies": {
"@headlessui/react": "^1.6.6",
"@heroicons/react": "^2.0.1",
"@mdx-js/loader": "^2.0.0-rc.2",
"@mdx-js/mdx": "^2.0.0-rc.2",
"@mdx-js/react": "^2.0.0-rc.2",
"@mdx-js/runtime": "next",
"@mdx-js/loader": "2.2.1",
"@mdx-js/mdx": "2.2.1",
"@mdx-js/react": "2.2.1",
"@mdx-js/runtime": "2.0.0-next.9",
"@tailwindcss/typography": "^0.5.0",
"algoliasearch": "^4.11.0",
"d3-dispatch": "^3.0.1",
"d3-drag": "^3.0.0",
"d3-selection": "^3.0.0",
"daisyui": "^2.0.6",
"i18next": "^22.4.0",
"lodash.get": "^4.4.2",
"lodash.orderby": "^4.6.0",
"lodash.set": "^4.3.2",
"next": "^13.0.0",
"next-i18next": "^13.0.0",
"react": "^18.2.0",
"react-copy-to-clipboard": "^5.0.4",
"react-hotkeys-hook": "^4.0.4",
"react-i18next": "^12.1.1",
"react-instantsearch-dom": "^6.18.0",
"react-markdown": "^8.0.0",
"react-swipeable": "^7.0.0",
"react-timeago": "^7.1.0",
"rehype-highlight": "^6.0.0",
"rehype-sanitize": "^5.0.1",
"rehype-stringify": "^9.0.2",
"algoliasearch": "4.14.2",
"d3-dispatch": "3.0.1",
"d3-drag": "3.0.0",
"d3-selection": "3.0.0",
"daisyui": "2.45.0",
"i18next": "22.4.5",
"lodash.get": "4.4.2",
"lodash.orderby": "4.6.0",
"lodash.set": "4.3.2",
"next": "13.0.7",
"next-i18next": "13.0.2",
"react": "18.2.0",
"react-copy-to-clipboard": "5.1.0",
"react-hotkeys-hook": "4.0.6",
"react-i18next": "12.1.1",
"react-instantsearch-dom": "6.38.1",
"react-markdown": "8.0.4",
"react-swipeable": "7.0.0",
"react-timeago": "7.1.0",
"rehype-autolink-headings": "6.1.1",
"rehype-highlight": "6.0.0",
"rehype-sanitize": "5.0.1",
"rehype-slug": "5.1.0",
"rehype-stringify": "9.0.3",
"remark-copy-linked-files": "https://github.com/joostdecock/remark-copy-linked-files",
"remark-gfm": "^3.0.1"
"remark-gfm": "3.0.1"
},
"devDependencies": {
"autoprefixer": "^10.4.0",
"eslint-config-next": "13.0.6",
"js-yaml": "^4.1.0",
"postcss": "^8.4.4",
"tailwindcss": "^3.0.1"
"autoprefixer": "10.4.13",
"eslint-config-next": "13.0.7",
"js-yaml": "4.1.0",
"postcss": "8.4.20",
"remark-extract-frontmatter": "3.2.0",
"tailwindcss": "3.2.4",
"yaml-loader": "0.8.0"
},
"browserslist": [
"last 2 versions"
]
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
},
"private": true
}

View file

@ -1,8 +1,7 @@
{
"private": true,
"name": "freesewing.org",
"name": "@freesewing/org",
"version": "3.0.0-alpha.2",
"description": "Source code for the FreeSewing.org website",
"description": "FreeSewing website",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@ -15,48 +14,54 @@
"url": "https://freesewing.org/patrons/join"
},
"scripts": {
"dev": "SITE=org node --experimental-json-modules ./node_modules/.bin/next dev -p 8000",
"prebuild": "SITE=org node ../shared/prebuild/index.mjs",
"i18n": "SITE=org node ../freesewing.shared/prebuild/i18n-only.mjs",
"build": "next build",
"cibuild": "yarn prebuild && node --experimental-json-modules ./node_modules/.bin/next build",
"export": "yarn prebuild && next build && next export",
"start": "next start -p 3002",
"lint": "next lint",
"testdeploy": "next build && next export && netlify-cli deploy",
"deploy": "next build && next export && netlify-cli deploy --prod",
"serve": "pm2 start npm --name 'freesewing.org' -- run start"
"build": "node --experimental-json-modules ../../node_modules/next/dist/bin/next build",
"cibuild": "yarn build",
"clean": "rimraf pages/*.mjs && rimraf pages/*/*.mjs && rimraf pages/v/*/*.mjs",
"dev": "node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000",
"develop": "node --experimental-json-modules ../../node_modules/next/dist/bin/next dev -p 8000",
"i18n": "SITE=org node ../shared/prebuild/i18n-only.mjs",
"lint": "../../node_modules/next/dist/bin/next lint",
"prebuild": "SITE=org node --experimental-json-modules ../shared/prebuild/index.mjs",
"start": "yarn prebuild && yarn dev"
},
"peerDependencies": {},
"dependencies": {
"@heroicons/react": "latest",
"@mdx-js/loader": "latest",
"@mdx-js/mdx": "latest",
"@mdx-js/react": "latest",
"@mdx-js/runtime": "latest",
"@mdx-js/loader": "2.2.1",
"@mdx-js/mdx": "2.2.1",
"@mdx-js/react": "2.2.1",
"@mdx-js/runtime": "2.0.0-next.9",
"@tailwindcss/typography": "^0.5.0",
"algoliasearch": "^4.11.0",
"daisyui": "^2.0.6",
"front-matter": "^4.0.2",
"lodash.get": "^4.4.2",
"lodash.orderby": "^4.6.0",
"lodash.set": "^4.3.2",
"next": "^13.0.0",
"react-hotkeys-hook": "^4.0.4",
"react-instantsearch-dom": "^6.18.0",
"react-markdown": "^8.0.3",
"react-swipeable": "^7.0.0",
"react-timeago": "^7.1.0",
"rehype-highlight": "^6.0.0",
"rehype-sanitize": "^5.0.1",
"rehype-stringify": "^9.0.2",
"algoliasearch": "4.14.2",
"daisyui": "2.45.0",
"lodash.get": "4.4.2",
"lodash.orderby": "4.6.0",
"lodash.set": "4.3.2",
"next": "13.0.7",
"react-hotkeys-hook": "4.0.6",
"react-instantsearch-dom": "6.38.1",
"react-markdown": "8.0.4",
"react-swipeable": "7.0.0",
"react-timeago": "7.1.0",
"rehype-autolink-headings": "6.1.1",
"rehype-highlight": "6.0.0",
"rehype-sanitize": "5.0.1",
"rehype-slug": "5.1.0",
"rehype-stringify": "9.0.3",
"remark-copy-linked-files": "https://github.com/joostdecock/remark-copy-linked-files",
"remark-gfm": "^3.0.1"
"remark-gfm": "3.0.1"
},
"devDependencies": {
"autoprefixer": "^10.4.0",
"eslint-config-next": "13.0.6",
"js-yaml": "^4.1.0",
"postcss": "^8.4.4",
"tailwindcss": "^3.0.1"
}
"autoprefixer": "10.4.13",
"eslint-config-next": "13.0.7",
"js-yaml": "4.1.0",
"postcss": "8.4.20",
"remark-extract-frontmatter": "3.2.0",
"tailwindcss": "3.2.4",
"yaml-loader": "0.8.0"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
},
"private": true
}

View file

@ -1,8 +1,7 @@
{
"private": true,
"name": "FreeSewing",
"version": "1.0.0",
"description": "Sanity config and instance hosted on cms.FreeSewing.org",
"name": "@freesewing/sanity",
"version": "3.0.0-alpha.2",
"description": "Code for the sanity.io CMS",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@ -14,33 +13,33 @@
"type": "individual",
"url": "https://freesewing.org/patrons/join"
},
"main": "package.json",
"author": "Joost De Cock <joost@joost.at>",
"license": "UNLICENSED",
"scripts": {
"start": "sanity start",
"test": "sanity check",
"build": "sanity build -y"
},
"keywords": [
"sanity"
],
"peerDependencies": {},
"dependencies": {
"@sanity/base": "^2.35.0",
"@sanity/core": "^2.35.0",
"@sanity/default-layout": "^2.35.0",
"@sanity/default-login": "^2.35.0",
"@sanity/desk-tool": "^2.35.0",
"@sanity/eslint-config-studio": "^2.0.0",
"@sanity/vision": "^2.35.0",
"eslint": "^8.6.0",
"prop-types": "^15.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"sanity-plugin-markdown": "^3.0.1",
"styled-components": "^5.2.0"
"@sanity/base": "2.35.0",
"@sanity/core": "2.35.0",
"@sanity/default-layout": "2.35.0",
"@sanity/default-login": "2.35.0",
"@sanity/desk-tool": "2.35.0",
"@sanity/eslint-config-studio": "2.0.0",
"@sanity/vision": "2.35.0",
"eslint": "8.6.0",
"prop-types": "15.7",
"react": "18.2.0",
"react-dom": "18.2.0",
"sanity-plugin-markdown": "3.0.1",
"styled-components": "5.2.0"
},
"devDependencies": {
"@sanity/cli": "^2.35.0"
}
"@sanity/cli": "2.35.0"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
},
"private": true
}

View file

@ -1,9 +0,0 @@
# Change log for: freesewing.shared
This is the **initial release**, and the start of this change log.
> Prior to version 2, FreeSewing was not a JavaScript project.
> As such, that history is out of scope for this change log.

View file

@ -1,8 +1,7 @@
{
"private": true,
"name": "freesewing.shared",
"name": "@freesewing/shared",
"version": "3.0.0-alpha.2",
"description": "Shared code for various FreeSewing web projects",
"description": "Shared code and React components for different websites",
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
"homepage": "https://freesewing.org/",
"repository": "github:freesewing/freesewing",
@ -14,16 +13,8 @@
"type": "individual",
"url": "https://freesewing.org/patrons/join"
},
"scripts": {
"dev": "next dev -p 3002",
"develop": "next dev -p 3002",
"prebuild": "SITE=dev LANG=en node ../shared/prebuild/index.mjs",
"build": "next build",
"export": "next build && next export",
"start": "next start -p 3002",
"serve": "pm2 start npm --name 'freesewing.dev' -- run start",
"strapiqa": "node strapi/qa.mjs"
},
"scripts": {},
"peerDependencies": {},
"dependencies": {
"@headlessui/react": "^1.6.6",
"@resvg/resvg-js": "^2.1.0",
@ -32,27 +23,25 @@
"d3-dispatch": "^3.0.1",
"d3-drag": "^3.0.0",
"d3-selection": "^3.0.0",
"daisyui": "^2.0.6",
"daisyui": "2.45.0",
"feed": "^4.2.2",
"file-saver": "^2.0.5",
"front-matter": "^4.0.2",
"highlight.js": "^11.4.0",
"lodash.clonedeep": "^4.5.0",
"lodash.orderby": "^4.6.0",
"lodash.unset": "^4.5.2",
"mdast-util-toc": "^6.1.0",
"pdfkit": "^0.13.0",
"postcss-for": "^2.1.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-markdown": "^8.0.0",
"lodash.orderby": "4.6.0",
"lodash.unset": "4.5.2",
"mdast-util-toc": "6.1.0",
"pdfkit": "0.13.0",
"postcss-for": "2.1.1",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-markdown": "8.0.4",
"react-sizeme": "^3.0.2",
"react-timeago": "^7.1.0",
"react-timeago": "7.1.0",
"react-zoom-pan-pinch": "^2.1.3",
"rehype-autolink-headings": "^6.1.1",
"rehype-highlight": "^6.0.0",
"remark-extract-frontmatter": "^3.2.0",
"remark-frontmatter": "^4.0.1",
"rehype-autolink-headings": "6.1.1",
"rehype-highlight": "6.0.0",
"remark-smartypants": "^2.0.0",
"sharp": "^0.31.1",
"svg-to-pdfkit": "^0.1.8",
@ -60,13 +49,10 @@
"unist-util-visit": "^4.1.0",
"web-worker": "^1.2.0"
},
"devDependencies": {
"autoprefixer": "^10.4.0",
"eslint": "^8.23.1",
"eslint-plugin-react": "^7.31.8",
"lodash.set": "^4.3.2",
"postcss": "^8.4.4",
"tailwindcss": "^3.0.1",
"tailwindcss-open-variant": "^1.0.0"
}
"devDependencies": {},
"engines": {
"node": ">=16.0.0",
"npm": ">=8"
},
"private": true
}

1211
yarn.lock

File diff suppressed because it is too large Load diff