1
0
Fork 0

wip(sde): Handle package dependencies

This commit is contained in:
joostdecock 2023-09-29 18:20:28 +02:00
parent 78b199ce44
commit e0386a441b
23 changed files with 662 additions and 614 deletions

View file

@ -94,7 +94,13 @@ yarn-error.log*
from: 'sde/env.local', from: 'sde/env.local',
to: 'sde/.env.local', to: 'sde/.env.local',
}, },
...downloads, ...downloads.sites,
], ],
packages: downloads.pkgs.map((file) => ({
from: file,
to: `pkgs/${file}`,
})),
}, },
} }
console.log(config.fetch.pkgs)

View file

@ -1,4 +1,5 @@
export const downloads = [ export const downloads = {
sites: [
'sde/README.md', 'sde/README.md',
'sde/env.local', 'sde/env.local',
'sde/i18n.config.mjs', 'sde/i18n.config.mjs',
@ -31,10 +32,10 @@ export const downloads = [
'sde/components/search.mjs', 'sde/components/search.mjs',
'sde/components/header/design-picker.mjs', 'sde/components/header/design-picker.mjs',
'sde/components/header/index.mjs', 'sde/components/header/index.mjs',
'sde/components/navigation/modal-menu.mjs',
'sde/components/layouts/bare.mjs', 'sde/components/layouts/bare.mjs',
'sde/components/layouts/default.mjs', 'sde/components/layouts/default.mjs',
'sde/components/layouts/workbench.mjs', 'sde/components/layouts/workbench.mjs',
'sde/components/navigation/modal-menu.mjs',
'sde/components/wrappers/page.mjs', 'sde/components/wrappers/page.mjs',
'sde/design/from-bella/en.json', 'sde/design/from-bella/en.json',
'sde/design/from-bella/i18n/de.json', 'sde/design/from-bella/i18n/de.json',
@ -47,17 +48,6 @@ export const downloads = [
'sde/design/from-bella/src/back.mjs', 'sde/design/from-bella/src/back.mjs',
'sde/design/from-bella/src/front.mjs', 'sde/design/from-bella/src/front.mjs',
'sde/design/from-bella/src/index.mjs', 'sde/design/from-bella/src/index.mjs',
'sde/design/from-breanna/i18n/de.json',
'sde/design/from-breanna/i18n/en.json',
'sde/design/from-breanna/i18n/es.json',
'sde/design/from-breanna/i18n/fr.json',
'sde/design/from-breanna/i18n/index.mjs',
'sde/design/from-breanna/i18n/nl.json',
'sde/design/from-breanna/i18n/uk.json',
'sde/design/from-breanna/src/back.mjs',
'sde/design/from-breanna/src/front.mjs',
'sde/design/from-breanna/src/index.mjs',
'sde/design/from-breanna/src/sleeve.mjs',
'sde/design/from-bent/i18n/de.json', 'sde/design/from-bent/i18n/de.json',
'sde/design/from-bent/i18n/en.json', 'sde/design/from-bent/i18n/en.json',
'sde/design/from-bent/i18n/es.json', 'sde/design/from-bent/i18n/es.json',
@ -70,6 +60,17 @@ export const downloads = [
'sde/design/from-bent/src/index.mjs', 'sde/design/from-bent/src/index.mjs',
'sde/design/from-bent/src/top-sleeve.mjs', 'sde/design/from-bent/src/top-sleeve.mjs',
'sde/design/from-bent/src/under-sleeve.mjs', 'sde/design/from-bent/src/under-sleeve.mjs',
'sde/design/from-breanna/i18n/de.json',
'sde/design/from-breanna/i18n/en.json',
'sde/design/from-breanna/i18n/es.json',
'sde/design/from-breanna/i18n/fr.json',
'sde/design/from-breanna/i18n/index.mjs',
'sde/design/from-breanna/i18n/nl.json',
'sde/design/from-breanna/i18n/uk.json',
'sde/design/from-breanna/src/back.mjs',
'sde/design/from-breanna/src/front.mjs',
'sde/design/from-breanna/src/index.mjs',
'sde/design/from-breanna/src/sleeve.mjs',
'sde/design/from-brian/i18n/de.json', 'sde/design/from-brian/i18n/de.json',
'sde/design/from-brian/i18n/en.json', 'sde/design/from-brian/i18n/en.json',
'sde/design/from-brian/i18n/es.json', 'sde/design/from-brian/i18n/es.json',
@ -109,12 +110,89 @@ export const downloads = [
'sde/design/tutorial/i18n/uk.json', 'sde/design/tutorial/i18n/uk.json',
'sde/design/tutorial/src/bib.mjs', 'sde/design/tutorial/src/bib.mjs',
'sde/design/tutorial/src/index.mjs', 'sde/design/tutorial/src/index.mjs',
'sde/public/img/lineup-backdrop.svg', 'sde/pages/_app.mjs',
'sde/pages/account.mjs',
'sde/pages/design.mjs',
'sde/pages/index.mjs',
'sde/pages/support.mjs',
'sde/pages/code/de.mdx',
'sde/pages/code/en.mdx',
'sde/pages/code/es.mdx',
'sde/pages/code/fr.mdx',
'sde/pages/code/index.mjs',
'sde/pages/code/nl.mdx',
'sde/pages/code/uk.mdx',
'sde/pages/design/[design].mjs',
'sde/pages/docs/de.mdx',
'sde/pages/docs/en.mdx',
'sde/pages/docs/es.mdx',
'sde/pages/docs/fr.mdx',
'sde/pages/docs/index.mjs',
'sde/pages/docs/nl.mdx',
'sde/pages/docs/uk.mdx',
'sde/pages/sde/en.yaml',
'sde/pages/sde/index.mjs',
'sde/pages/signup/index.mjs',
'sde/pages/signin/index.mjs',
'sde/pages/signin/callback/[provider].mjs',
'sde/public/brands/algolia.svg', 'sde/public/brands/algolia.svg',
'sde/public/brands/bugsnag.svg', 'sde/public/brands/bugsnag.svg',
'sde/public/brands/crowdin.svg', 'sde/public/brands/crowdin.svg',
'sde/public/brands/netlify.svg', 'sde/public/brands/netlify.svg',
'sde/public/brands/vercel.svg', 'sde/public/brands/vercel.svg',
'sde/public/img/lineup-backdrop.svg',
'sde/public/locales/en/account.json',
'sde/public/locales/en/auth.json',
'sde/public/locales/en/bella.json',
'sde/public/locales/en/bent.json',
'sde/public/locales/en/breanna.json',
'sde/public/locales/en/brian.json',
'sde/public/locales/en/common.json',
'sde/public/locales/en/core-settings.json',
'sde/public/locales/en/curate.json',
'sde/public/locales/en/cut.json',
'sde/public/locales/en/design-options.json',
'sde/public/locales/en/designs.json',
'sde/public/locales/en/docs.json',
'sde/public/locales/en/errors.json',
'sde/public/locales/en/flag.json',
'sde/public/locales/en/footer.json',
'sde/public/locales/en/frombella.json',
'sde/public/locales/en/frombent.json',
'sde/public/locales/en/frombreanna.json',
'sde/public/locales/en/frombrian.json',
'sde/public/locales/en/fromscratch.json',
'sde/public/locales/en/fromtitan.json',
'sde/public/locales/en/gdpr.json',
'sde/public/locales/en/header.json',
'sde/public/locales/en/homepage.json',
'sde/public/locales/en/locales.json',
'sde/public/locales/en/logs.json',
'sde/public/locales/en/measurements.json',
'sde/public/locales/en/modal.json',
'sde/public/locales/en/newsletter.json',
'sde/public/locales/en/patrons.json',
'sde/public/locales/en/plugin-annotations.json',
'sde/public/locales/en/plugins.json',
'sde/public/locales/en/popout.json',
'sde/public/locales/en/print.json',
'sde/public/locales/en/roles.json',
'sde/public/locales/en/sde.json',
'sde/public/locales/en/sections.json',
'sde/public/locales/en/sets.json',
'sde/public/locales/en/sponsors.json',
'sde/public/locales/en/status.json',
'sde/public/locales/en/submissions.json',
'sde/public/locales/en/support.json',
'sde/public/locales/en/susi.json',
'sde/public/locales/en/tags.json',
'sde/public/locales/en/techniques.json',
'sde/public/locales/en/themes.json',
'sde/public/locales/en/timeago.json',
'sde/public/locales/en/titan.json',
'sde/public/locales/en/tutorial.json',
'sde/public/locales/en/ui-settings.json',
'sde/public/locales/en/workbench.json',
'sde/public/locales/de/account.json', 'sde/public/locales/de/account.json',
'sde/public/locales/de/auth.json', 'sde/public/locales/de/auth.json',
'sde/public/locales/de/bella.json', 'sde/public/locales/de/bella.json',
@ -219,58 +297,6 @@ export const downloads = [
'sde/public/locales/es/tutorial.json', 'sde/public/locales/es/tutorial.json',
'sde/public/locales/es/ui-settings.json', 'sde/public/locales/es/ui-settings.json',
'sde/public/locales/es/workbench.json', 'sde/public/locales/es/workbench.json',
'sde/public/locales/en/account.json',
'sde/public/locales/en/auth.json',
'sde/public/locales/en/bella.json',
'sde/public/locales/en/bent.json',
'sde/public/locales/en/breanna.json',
'sde/public/locales/en/brian.json',
'sde/public/locales/en/common.json',
'sde/public/locales/en/core-settings.json',
'sde/public/locales/en/curate.json',
'sde/public/locales/en/cut.json',
'sde/public/locales/en/design-options.json',
'sde/public/locales/en/designs.json',
'sde/public/locales/en/docs.json',
'sde/public/locales/en/errors.json',
'sde/public/locales/en/flag.json',
'sde/public/locales/en/footer.json',
'sde/public/locales/en/frombella.json',
'sde/public/locales/en/frombent.json',
'sde/public/locales/en/frombreanna.json',
'sde/public/locales/en/frombrian.json',
'sde/public/locales/en/fromscratch.json',
'sde/public/locales/en/fromtitan.json',
'sde/public/locales/en/gdpr.json',
'sde/public/locales/en/header.json',
'sde/public/locales/en/homepage.json',
'sde/public/locales/en/locales.json',
'sde/public/locales/en/logs.json',
'sde/public/locales/en/measurements.json',
'sde/public/locales/en/modal.json',
'sde/public/locales/en/newsletter.json',
'sde/public/locales/en/patrons.json',
'sde/public/locales/en/plugin-annotations.json',
'sde/public/locales/en/plugins.json',
'sde/public/locales/en/popout.json',
'sde/public/locales/en/print.json',
'sde/public/locales/en/roles.json',
'sde/public/locales/en/sde.json',
'sde/public/locales/en/sections.json',
'sde/public/locales/en/sets.json',
'sde/public/locales/en/sponsors.json',
'sde/public/locales/en/status.json',
'sde/public/locales/en/submissions.json',
'sde/public/locales/en/support.json',
'sde/public/locales/en/susi.json',
'sde/public/locales/en/tags.json',
'sde/public/locales/en/techniques.json',
'sde/public/locales/en/themes.json',
'sde/public/locales/en/timeago.json',
'sde/public/locales/en/titan.json',
'sde/public/locales/en/tutorial.json',
'sde/public/locales/en/ui-settings.json',
'sde/public/locales/en/workbench.json',
'sde/public/locales/fr/account.json', 'sde/public/locales/fr/account.json',
'sde/public/locales/fr/auth.json', 'sde/public/locales/fr/auth.json',
'sde/public/locales/fr/bella.json', 'sde/public/locales/fr/bella.json',
@ -427,31 +453,6 @@ export const downloads = [
'sde/public/locales/nl/tutorial.json', 'sde/public/locales/nl/tutorial.json',
'sde/public/locales/nl/ui-settings.json', 'sde/public/locales/nl/ui-settings.json',
'sde/public/locales/nl/workbench.json', 'sde/public/locales/nl/workbench.json',
'sde/pages/_app.mjs',
'sde/pages/account.mjs',
'sde/pages/design.mjs',
'sde/pages/index.mjs',
'sde/pages/support.mjs',
'sde/pages/code/de.mdx',
'sde/pages/code/en.mdx',
'sde/pages/code/es.mdx',
'sde/pages/code/fr.mdx',
'sde/pages/code/index.mjs',
'sde/pages/code/nl.mdx',
'sde/pages/code/uk.mdx',
'sde/pages/design/[design].mjs',
'sde/pages/docs/de.mdx',
'sde/pages/docs/en.mdx',
'sde/pages/docs/es.mdx',
'sde/pages/docs/fr.mdx',
'sde/pages/docs/index.mjs',
'sde/pages/docs/nl.mdx',
'sde/pages/docs/uk.mdx',
'sde/pages/sde/en.yaml',
'sde/pages/sde/index.mjs',
'sde/pages/signup/index.mjs',
'sde/pages/signin/index.mjs',
'sde/pages/signin/callback/[provider].mjs',
'shared/utils.mjs', 'shared/utils.mjs',
'shared/components/mdx/index.mjs', 'shared/components/mdx/index.mjs',
'shared/components/footer/index.mjs', 'shared/components/footer/index.mjs',
@ -463,6 +464,7 @@ export const downloads = [
'shared/components/susi/sign-up.mjs', 'shared/components/susi/sign-up.mjs',
'shared/components/account/shared.mjs', 'shared/components/account/shared.mjs',
'shared/components/account/control.mjs', 'shared/components/account/control.mjs',
'shared/components/account/sets.mjs',
'shared/components/popout/index.mjs', 'shared/components/popout/index.mjs',
'shared/components/robot/index.mjs', 'shared/components/robot/index.mjs',
'shared/components/robot/poses.mjs', 'shared/components/robot/poses.mjs',
@ -605,4 +607,23 @@ export const downloads = [
'shared/prebuild/data/design-measurements.mjs', 'shared/prebuild/data/design-measurements.mjs',
'shared/prebuild/data/designs.mjs', 'shared/prebuild/data/designs.mjs',
'shared/prebuild/data/design-options.mjs', 'shared/prebuild/data/design-options.mjs',
] ],
pkgs: [
'react-components/src/pattern-xray/path.mjs',
'react-components/src/pattern-xray/index.mjs',
'react-components/src/pattern-xray/point.mjs',
'react-components/src/index.mjs',
'react-components/src/pattern/grid.mjs',
'react-components/src/pattern/group.mjs',
'react-components/src/pattern/stack.mjs',
'react-components/src/pattern/snippet.mjs',
'react-components/src/pattern/circle.mjs',
'react-components/src/pattern/utils.mjs',
'react-components/src/pattern/svg.mjs',
'react-components/src/pattern/text.mjs',
'react-components/src/pattern/index.mjs',
'react-components/src/pattern/part.mjs',
'react-components/src/pattern/defs.mjs',
'react-components/src/pattern/point.mjs',
],
}

View file

@ -35,7 +35,7 @@ const getFiles = async (dir) => {
.map((file) => file.split('/sites/').pop()) .map((file) => file.split('/sites/').pop())
} }
const searchFiles = async (dirs) => { const searchFiles = async (dirs, split = '/sites/') => {
/* /*
* Figure out what directory to spawn the child process in * Figure out what directory to spawn the child process in
*/ */
@ -76,7 +76,7 @@ const searchFiles = async (dirs) => {
...stdout ...stdout
.split('\n') .split('\n')
.filter((entry) => entry.length > 2) .filter((entry) => entry.length > 2)
.map((file) => file.split('/sites/').pop()) .map((file) => file.split(split).pop())
) )
} }
@ -97,8 +97,9 @@ const buildFileList = async () => {
'../../sites/shared/themes', '../../sites/shared/themes',
'../../sites/shared/prebuild/data', '../../sites/shared/prebuild/data',
]) ])
const pkgs = await searchFiles(['../../packages/react-components/src'], '/packages/')
return [...sde, ...shared] return { sites: [...sde, ...shared], pkgs }
} }
/* /*

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Components // Components
// Pattern // Pattern
import { Pattern as PatternComponent } from './pattern/index.mjs' import { Pattern as PatternComponent } from './pattern/index.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React, { forwardRef } from 'react' import React, { forwardRef } from 'react'
import { defaultPatternComponents } from '../pattern/index.mjs' import { defaultPatternComponents } from '../pattern/index.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Components // Components
import { Path } from '../pattern/path.mjs' import { Path } from '../pattern/path.mjs'
import { getProps } from '../pattern/utils.mjs' import { getProps } from '../pattern/utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Components // Components
import { Point } from '../pattern/point.mjs' import { Point } from '../pattern/point.mjs'
import { withinPartBounds } from '../pattern/utils.mjs' import { withinPartBounds } from '../pattern/utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'
import sanitize from 'html-react-parser' import sanitize from 'html-react-parser'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React, { forwardRef } from 'react' import React, { forwardRef } from 'react'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React, { forwardRef } from 'react' import React, { forwardRef } from 'react'
// Components that can be swizzled // Components that can be swizzled

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React, { forwardRef } from 'react' import React, { forwardRef } from 'react'
import { getId, getProps } from './utils.mjs' import { getId, getProps } from './utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'
import { getId, getProps } from './utils.mjs' import { getId, getProps } from './utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'
import { withinPartBounds } from './utils.mjs' import { withinPartBounds } from './utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'
import { getProps } from './utils.mjs' import { getProps } from './utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'
import { getProps } from './utils.mjs' import { getProps } from './utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'
import { forwardRef } from 'react' import { forwardRef } from 'react'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'
import { translateStrings } from './utils.mjs' import { translateStrings } from './utils.mjs'

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import React from 'react' import React from 'react'

View file

@ -29,7 +29,7 @@ import { ModalDesignPicker } from './design-picker.mjs'
import { NavButton, NavSpacer } from 'shared/components/header.mjs' import { NavButton, NavSpacer } from 'shared/components/header.mjs'
export const ns = nsMerge('sde', 'header', 'sections', themeNs, localeNs) export const ns = nsMerge('sde', 'header', 'sections', 'susi', themeNs, localeNs)
const NavIcons = ({ setModal }) => { const NavIcons = ({ setModal }) => {
const { t } = useTranslation(['header']) const { t } = useTranslation(['header'])
@ -74,7 +74,7 @@ const NavIcons = ({ setModal }) => {
<I18nIcon className={iconSize} /> <I18nIcon className={iconSize} />
</NavButton> </NavButton>
<NavSpacer /> <NavSpacer />
<NavButton href="/signin" label={t('account:signin')} color={spectrum[8]}> <NavButton href="/signin" label={t('susi:signIn')} color={spectrum[8]}>
<LockIcon className={iconSize} /> <LockIcon className={iconSize} />
</NavButton> </NavButton>
</> </>

View file

@ -8,6 +8,7 @@ import { Popout, ns as popoutNs } from 'shared/components/popout/index.mjs'
import { PageLink, WebLink } from 'shared/components/link.mjs' import { PageLink, WebLink } from 'shared/components/link.mjs'
import { FreeSewingIcon } from 'shared/components/icons.mjs' import { FreeSewingIcon } from 'shared/components/icons.mjs'
import { collection } from 'site/hooks/use-design.mjs' import { collection } from 'site/hooks/use-design.mjs'
import { version } from '@freesewing/core'
const ns = ['sde', ...pageNs, ...popoutNs] const ns = ['sde', ...pageNs, ...popoutNs]
/* /*
@ -45,6 +46,7 @@ const HomePage = ({ page }) => {
<WebLink href="https://freesewing.org/patrons/join" txt={t('sde:ps')} />. <WebLink href="https://freesewing.org/patrons/join" txt={t('sde:ps')} />.
</p> </p>
</div> </div>
<p className="text-center text-sm mt-12 opacity-60">FreeSewing v{version}</p>
</PageWrapper> </PageWrapper>
) )
} }

View file

@ -1,3 +1,4 @@
// __SDEFILE__ - This file is a dependency for the stand-alone environment
// Dependencies // Dependencies
import { measurements } from 'config/measurements.mjs' import { measurements } from 'config/measurements.mjs'
import { measurements as designMeasurements } from 'shared/prebuild/data/design-measurements.mjs' import { measurements as designMeasurements } from 'shared/prebuild/data/design-measurements.mjs'