react-cheminfo 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -21
- package/lib/about/core/about.d.ts +13 -7
- package/lib/about/core/about.d.ts.map +1 -1
- package/lib/about/core/about.js +4 -2
- package/lib/about/core/about.js.map +1 -1
- package/lib/about/ui/AboutBuild.d.ts +20 -0
- package/lib/about/ui/AboutBuild.d.ts.map +1 -0
- package/lib/about/ui/AboutBuild.js +38 -0
- package/lib/about/ui/AboutBuild.js.map +1 -0
- package/lib/about/ui/AboutPage.d.ts +7 -0
- package/lib/about/ui/AboutPage.d.ts.map +1 -1
- package/lib/about/ui/AboutPage.js +5 -2
- package/lib/about/ui/AboutPage.js.map +1 -1
- package/lib/about/ui/index.d.ts +2 -0
- package/lib/about/ui/index.d.ts.map +1 -1
- package/lib/about/ui/index.js +1 -0
- package/lib/about/ui/index.js.map +1 -1
- package/lib/build/core/buildInfo.d.ts +39 -0
- package/lib/build/core/buildInfo.d.ts.map +1 -0
- package/lib/build/core/buildInfo.js +20 -0
- package/lib/build/core/buildInfo.js.map +1 -0
- package/lib/build/core/current.d.ts +12 -0
- package/lib/build/core/current.d.ts.map +1 -0
- package/lib/build/core/current.js +11 -0
- package/lib/build/core/current.js.map +1 -0
- package/lib/build/core/index.d.ts +3 -0
- package/lib/build/core/index.d.ts.map +1 -0
- package/lib/build/core/index.js +2 -0
- package/lib/build/core/index.js.map +1 -0
- package/lib/build/vite/buildInfo.d.ts +57 -0
- package/lib/build/vite/buildInfo.d.ts.map +1 -0
- package/lib/build/vite/buildInfo.js +151 -0
- package/lib/build/vite/buildInfo.js.map +1 -0
- package/lib/build/vite/gitHead.d.ts +29 -0
- package/lib/build/vite/gitHead.d.ts.map +1 -0
- package/lib/build/vite/gitHead.js +102 -0
- package/lib/build/vite/gitHead.js.map +1 -0
- package/lib/build/vite/index.d.ts +4 -0
- package/lib/build/vite/index.d.ts.map +1 -0
- package/lib/build/vite/index.js +3 -0
- package/lib/build/vite/index.js.map +1 -0
- package/lib/build-info.d.ts +3 -0
- package/lib/build-info.d.ts.map +1 -0
- package/lib/build-info.js +2 -0
- package/lib/build-info.js.map +1 -0
- package/lib/core.d.ts +1 -0
- package/lib/core.d.ts.map +1 -1
- package/lib/core.js +1 -0
- package/lib/core.js.map +1 -1
- package/lib/credits/core/credits.d.ts +18 -0
- package/lib/credits/core/credits.d.ts.map +1 -1
- package/lib/credits/core/credits.js +21 -0
- package/lib/credits/core/credits.js.map +1 -1
- package/lib/ecosystem/ui/Wordmark.d.ts +14 -3
- package/lib/ecosystem/ui/Wordmark.d.ts.map +1 -1
- package/lib/ecosystem/ui/Wordmark.js +8 -4
- package/lib/ecosystem/ui/Wordmark.js.map +1 -1
- package/lib/molecule3d/ui/MoleculeCanvas3D.d.ts.map +1 -1
- package/lib/molecule3d/ui/MoleculeCanvas3D.js +4 -3
- package/lib/molecule3d/ui/MoleculeCanvas3D.js.map +1 -1
- package/lib/molecule3d/ui/camera.d.ts +3 -1
- package/lib/molecule3d/ui/camera.d.ts.map +1 -1
- package/lib/molecule3d/ui/camera.js +10 -2
- package/lib/molecule3d/ui/camera.js.map +1 -1
- package/lib/molecule3d/ui/drawScene.d.ts +4 -2
- package/lib/molecule3d/ui/drawScene.d.ts.map +1 -1
- package/lib/molecule3d/ui/drawScene.js +6 -2
- package/lib/molecule3d/ui/drawScene.js.map +1 -1
- package/lib/molecule3d/ui/moleculeViewer3DProps.d.ts +8 -0
- package/lib/molecule3d/ui/moleculeViewer3DProps.d.ts.map +1 -1
- package/lib/molecule3d/ui/viewer.d.ts +2 -1
- package/lib/molecule3d/ui/viewer.d.ts.map +1 -1
- package/lib/molecule3d/ui/viewer.js +3 -2
- package/lib/molecule3d/ui/viewer.js.map +1 -1
- package/lib/vite.d.ts +1 -0
- package/lib/vite.d.ts.map +1 -1
- package/lib/vite.js +1 -0
- package/lib/vite.js.map +1 -1
- package/package.json +2 -1
- package/src/about/core/about.ts +18 -9
- package/src/about/ui/AboutBuild.tsx +83 -0
- package/src/about/ui/AboutPage.tsx +15 -7
- package/src/about/ui/index.ts +2 -0
- package/src/build/core/buildInfo.ts +48 -0
- package/src/build/core/current.ts +12 -0
- package/src/build/core/index.ts +2 -0
- package/src/build/vite/buildInfo.ts +178 -0
- package/src/build/vite/gitHead.ts +114 -0
- package/src/build/vite/index.ts +8 -0
- package/src/build-info.ts +2 -0
- package/src/core.ts +1 -0
- package/src/credits/core/credits.ts +21 -0
- package/src/ecosystem/ui/Wordmark.tsx +22 -7
- package/src/molecule3d/ui/MoleculeCanvas3D.tsx +4 -2
- package/src/molecule3d/ui/camera.ts +13 -3
- package/src/molecule3d/ui/drawScene.ts +6 -3
- package/src/molecule3d/ui/moleculeViewer3DProps.ts +8 -0
- package/src/molecule3d/ui/viewer.ts +6 -2
- package/src/vite.ts +1 -0
package/README.md
CHANGED
|
@@ -62,27 +62,28 @@ through a wildcard subpath exactly as `react-science` serves its own.
|
|
|
62
62
|
|
|
63
63
|
## What is in it
|
|
64
64
|
|
|
65
|
-
| Area
|
|
66
|
-
|
|
|
67
|
-
| **Site identity**
|
|
68
|
-
| **Chrome**
|
|
69
|
-
| **Citation**
|
|
70
|
-
| **Share & embed**
|
|
71
|
-
| **Routing & head**
|
|
72
|
-
| **Indexing**
|
|
73
|
-
| **Pedagogy**
|
|
74
|
-
| **Clipboard & files**
|
|
75
|
-
| **Formatting & colour**
|
|
76
|
-
| **Widgets**
|
|
77
|
-
| **Hooks & state**
|
|
78
|
-
| **Chemistry**
|
|
79
|
-
| **Spectra**
|
|
80
|
-
| **About**
|
|
81
|
-
| **
|
|
82
|
-
| **
|
|
83
|
-
| **
|
|
84
|
-
| **
|
|
85
|
-
| **
|
|
65
|
+
| Area | `…/core` | `…/ui` |
|
|
66
|
+
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
67
|
+
| **Site identity** | `siteById`, `findSiteByHost`, `siteTokensCss` | `SiteMark`, `Wordmark`, `SiteTheme`, `SiteTile`, `EcosystemButton`, `EcosystemLinks` |
|
|
68
|
+
| **Chrome** | — | `SiteHeader`, `SiteFooter`, `NavLink`, `NavMenuButton`, `MenuButton`, `useCompactHeader` |
|
|
69
|
+
| **Citation** | `formatCitation`, `formatCitations`, `citationSegments`, `downloadCitation`, `citedReferences`, `doiUrl` | `CiteButton`, `CitationMenu`, `CitationPreview` |
|
|
70
|
+
| **Share & embed** | `parseShareConfig`, `applyShareConfig`, `buildShareUrl`, `buildEmbedCode`, `isHidden`, `visibleShareParts`, `applySharePreset`, `findSharePreset`, the param codecs, `syncPreferencesWithUrl`, `applyPreferencesFromSearch`, `writePreferencesToSearch` | `ShareDialog`, `ShareButton`, `HiddenPartsProvider`, `PagePart`, `useIsHidden` |
|
|
71
|
+
| **Routing & head** | `createTabRouter`, `readRoute`, `writeRoute`, `subscribeToRoute`, `adoptLegacyHashAddress`, `writeDocumentMeta` | `useTabRoute` |
|
|
72
|
+
| **Indexing** | `injectPageMeta`, `pageHeadTags`, `pageDocumentMeta`, `fill`, `PAGE_HEAD_MARKER`, `PAGE_BODY_MARKER`, `robotsTxt`, `sitemapXml`, `noscriptIndex`, `structuredDataScript`, `assertRoutes`, `routeFor`, `homeRoute` | `cheminfoPrerender`, `ogCardHtml`, `OG_WIDTH`, `OG_HEIGHT` (all `/vite`) |
|
|
73
|
+
| **Pedagogy** | `parseGlossaryMarkers`, `localStorageProgressStore`, `progressSummary`, `finishValidation` | `GlossaryText`, `SyntaxTooltip`, `HintLadder`, `ExerciseActions`, `ExerciseProgressHeader`, `TutorialStepStrip`, `ReferenceGrid`, `TestCaseList` |
|
|
74
|
+
| **Clipboard & files** | `writeToClipboard`, `downloadBlob`, `downloadText`, `sanitizeFileName`, `toDelimited`, `readDelimited`, `downloadFigure`, `figureSvg`, `figurePng`, `figureSize` | `CopyButton`, `CodeBlock`, `DelimitedTextDialog`, `FigureDownload` |
|
|
75
|
+
| **Formatting & colour** | `formatInteger`, `formatDecimal`, `formatBytes`, `pluralize`, `readableInk`, `contrastRatio`, `COLOR_SCALES`, `resolveColorScale`, `formatColorScale`, `colorAt`, `swatchAt`, `sampleScale`, `colorScaleGradient`, `rgbToHsv` | `ColorScaleLegend`, `ColorScaleSelect`, `ColorScaleEditor`, `ColorScaleBar` |
|
|
76
|
+
| **Widgets** | `CREDITS`, `credits` | `ErrorBoundary`, `CollapsibleSection`, `CapsuleFilter`, `HelpTooltip`, `CreditsList` |
|
|
77
|
+
| **Hooks & state** | `createWorkerChannel`, `persistBucket`, `persistSignalBucket` | `useDebouncedValue`, `useContainerSize`, `useListKeyboardNavigation`, `useDisclosure` |
|
|
78
|
+
| **Chemistry** | `atomicOrbitalsOf`, `configurationOf`, `classifyMolfile`, `readStructure` | `AtomicOrbitalViewer` (`/orbital`), `StructureEditor`, `Structure` (`/structure`) |
|
|
79
|
+
| **Spectra** | `FILTER_CATALOG`, `filterMenu`, `settingsProblems`, `normalizationFilters`, `addFilter`, `moveFilter`, `setFilterOption`, `principalComponentChoices`, `clampPrincipalComponents`, `EMPTY_SETTINGS` (all `/spectra`) | `SpectraSettingsEditor`, `FilterChainEditor`, `PrincipalComponentSelect` (all `/spectra`) |
|
|
80
|
+
| **About** | `resolveAbout`, `aboutProblems` | `AboutPage` |
|
|
81
|
+
| **Which build is running** | `formatBuiltAt`, `shortCommit`, `BuildInfo` | `AboutBuild`, `cheminfoBuildInfo` (`/vite`) |
|
|
82
|
+
| **Slideshows** | `parseTalk`, `splitDemoLinks`, `slideActionForKey`, `parseTalkOrigin`, `buildTalkManifest` (all `/slides`) | `Slideshow`, `SlideView`, `TalkList`, `BackToSlides` (all `/slides`), `cheminfoTalks` (`/vite`) |
|
|
83
|
+
| **Token guard** | `findTokenViolations` | `cheminfo-check-tokens` (the bin) |
|
|
84
|
+
| **Figures** | `chartScale`, `chartAxisScale`, `chartAxisTitle`, `chartShare`, `chartColumnExtent`, `chartBinCounts`, `chartSeriesColor`, `rowMatrix`, `stackedMatrix`, `emptiestCorner`, `placeOverlayCard`, `overlayMetrics` | `ChartFrame`, `ChartAxis`, `TrackedLineChart`, `OverlayBar`, `OverlaySelect`, `OverlaySegmented`, `OverlayToggle`, `OverlayNumber`, `OverlayLegend`, `OverlayCaption`, `OverlayReadout` |
|
|
85
|
+
| **Projections** | `pcaResult`, `embeddingResult`, `projectionTabs`, `loadingProfiles`, `explainedShares`, `confidenceEllipse`, `projectEllipse`, `pointsInPolygon`, `resolveProjectionGroups`, `PROJECTION_COPY` | `PcaViewer`, `ProjectionViewer`, `ScatterPlot`, `ScatterMatrix` |
|
|
86
|
+
| **Periodic table** | `PERIODIC_ELEMENTS`, `elementBySymbol`, `elementByAtomicNumber`, `cellOf`, `placedElements`, `elementByArrowKey`, `categorySwatch`, `CATEGORY_LABELS` | `PeriodicTable`, `ElementCell`, `CategoryLegend` |
|
|
86
87
|
|
|
87
88
|
Everything in that table is exported from `./core`, `./ui`, `./slides`,
|
|
88
89
|
`./vite` or `./structure` and nothing else is: the sub-components a component is built
|
|
@@ -686,6 +687,63 @@ disk. A server writing more into the same place composes it itself, with
|
|
|
686
687
|
`pageHeadTags` and `fill(page, PAGE_BODY_MARKER, noscriptIndex(…))`. All of that
|
|
687
688
|
is `react-cheminfo/core`, so a backend loads no React and no Vite.
|
|
688
689
|
|
|
690
|
+
## Saying which build is running
|
|
691
|
+
|
|
692
|
+
A report of something going wrong is worth answering only when we know what was
|
|
693
|
+
running, and a hand-written version in a source file is wrong by the next
|
|
694
|
+
release. So the build states it: `cheminfoBuildInfo` resolves the release, the
|
|
695
|
+
instant and the commit once, and the About page reads them.
|
|
696
|
+
|
|
697
|
+
```ts
|
|
698
|
+
// vite.config.ts
|
|
699
|
+
import { cheminfoBuildInfo } from 'react-cheminfo/vite';
|
|
700
|
+
|
|
701
|
+
plugins: [react(), cheminfoBuildInfo(), cheminfoPrerender({ ... })];
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
```ts
|
|
705
|
+
// src/about.ts
|
|
706
|
+
import { BUILD_INFO } from 'react-cheminfo/build-info';
|
|
707
|
+
|
|
708
|
+
export const ABOUT: AboutContent = { siteId: 'smiles', build: BUILD_INFO, ... };
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
`react-cheminfo/build-info` is a real module that exports `undefined`, and the
|
|
712
|
+
plugin fills it in during the build. So a Playwright spec or a unit test that
|
|
713
|
+
imports the same About record in plain Node still resolves it — a virtual
|
|
714
|
+
specifier does not, and the whole suite dies on the import — and a build without
|
|
715
|
+
the plugin simply shows no build line.
|
|
716
|
+
|
|
717
|
+
Where each value comes from:
|
|
718
|
+
|
|
719
|
+
- **version** — the `package.json` at the repository root, which is the one
|
|
720
|
+
release-please bumps. A site whose tool lives in `frontend` still reports the
|
|
721
|
+
root version rather than the `0.0.0` that workspace was scaffolded with.
|
|
722
|
+
- **builtAt** — the instant the build ran, to the second, honouring
|
|
723
|
+
`SOURCE_DATE_EPOCH`.
|
|
724
|
+
- **commit** — read out of `.git` as files, never by running git: the image
|
|
725
|
+
build has no git binary and the shared `docker-image` workflow passes no build
|
|
726
|
+
argument. A site therefore lets three paths back into the build context, which
|
|
727
|
+
costs a few kilobytes:
|
|
728
|
+
|
|
729
|
+
```
|
|
730
|
+
# .dockerignore
|
|
731
|
+
.git
|
|
732
|
+
!.git/HEAD
|
|
733
|
+
!.git/refs
|
|
734
|
+
!.git/packed-refs
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
Without them the commit is simply left out, and `GITHUB_SHA` is used when the
|
|
738
|
+
environment names one.
|
|
739
|
+
|
|
740
|
+
The same record is written to **`build-info.json`** in the build, so the whole
|
|
741
|
+
family answers one question with one request each:
|
|
742
|
+
|
|
743
|
+
```sh
|
|
744
|
+
curl -s https://smiles.cheminfo.org/build-info.json
|
|
745
|
+
```
|
|
746
|
+
|
|
689
747
|
## Styling
|
|
690
748
|
|
|
691
749
|
**No stylesheet, nothing for a consumer to import.** Every rule is a
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BuildInfo } from '../../build/core/buildInfo.ts';
|
|
1
2
|
import type { CitedWork } from '../../citation/core/works.ts';
|
|
2
3
|
import type { CreditEntry, CreditId } from '../../credits/core/credits.ts';
|
|
3
4
|
import type { EcosystemSite, SiteId } from '../../ecosystem/core/sites.ts';
|
|
@@ -12,8 +13,12 @@ import type { ProviderEntry, ProviderId } from './providers.ts';
|
|
|
12
13
|
* each crediting a different half of what it runs on.
|
|
13
14
|
*/
|
|
14
15
|
export interface AboutContent {
|
|
15
|
-
/**
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The site the page belongs to: its id, or the record itself for a site that
|
|
18
|
+
* is deliberately not listed in the family's Tools menu and therefore not in
|
|
19
|
+
* `ECOSYSTEM_SITES`.
|
|
20
|
+
*/
|
|
21
|
+
siteId: SiteId | EcosystemSite;
|
|
17
22
|
/** One sentence: what this tool is. */
|
|
18
23
|
what: string;
|
|
19
24
|
/**
|
|
@@ -54,10 +59,11 @@ export interface AboutContent {
|
|
|
54
59
|
*/
|
|
55
60
|
repository?: string;
|
|
56
61
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
62
|
+
* Which build is running, from `virtual:cheminfo-build-info` — never written
|
|
63
|
+
* by hand, which is what keeps it true after the next release.
|
|
64
|
+
* @default undefined — the site's build does not publish one
|
|
59
65
|
*/
|
|
60
|
-
|
|
66
|
+
build?: BuildInfo;
|
|
61
67
|
/**
|
|
62
68
|
* Where a problem is reported.
|
|
63
69
|
* @default the repository's /issues
|
|
@@ -95,8 +101,8 @@ export interface ResolvedAbout {
|
|
|
95
101
|
providedBy: ProviderEntry[];
|
|
96
102
|
license: string;
|
|
97
103
|
repository: string;
|
|
98
|
-
/**
|
|
99
|
-
|
|
104
|
+
/** Which build is running, or `undefined` when the site does not say. */
|
|
105
|
+
build: BuildInfo | undefined;
|
|
100
106
|
issues: string;
|
|
101
107
|
}
|
|
102
108
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../../src/about/core/about.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGhE;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B
|
|
1
|
+
{"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../../src/about/core/about.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGhE;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,iEAAiE;IACjE,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,8DAA8D;IAC9D,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,4DAA4D;IAC5D,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAqBjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CA8C7D"}
|
package/lib/about/core/about.js
CHANGED
|
@@ -10,7 +10,9 @@ import { providers } from "./providers.js";
|
|
|
10
10
|
* credits nobody.
|
|
11
11
|
*/
|
|
12
12
|
export function resolveAbout(content) {
|
|
13
|
-
const site =
|
|
13
|
+
const site = typeof content.siteId === 'string'
|
|
14
|
+
? siteById(content.siteId)
|
|
15
|
+
: content.siteId;
|
|
14
16
|
const repository = content.repository ?? site.repository;
|
|
15
17
|
return {
|
|
16
18
|
site,
|
|
@@ -23,7 +25,7 @@ export function resolveAbout(content) {
|
|
|
23
25
|
providedBy: providers(content.providedBy ?? []),
|
|
24
26
|
license: content.license ?? DEFAULT_LICENSE,
|
|
25
27
|
repository,
|
|
26
|
-
|
|
28
|
+
build: content.build,
|
|
27
29
|
issues: content.issues ?? `${withoutTrailingSlash(repository)}/issues`,
|
|
28
30
|
};
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../../src/about/core/about.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../../src/about/core/about.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA2G3C;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,OAAqB;IAChD,MAAM,IAAI,GACR,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;QAChC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACrB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IAEzD,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC/C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;QAC3C,UAAU;QACV,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG,oBAAoB,CAAC,UAAU,CAAC,SAAS;KACvE,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CACX,eAAe,OAAO,CAAC,IAAI,CAAC,MAAM,wCAAwC,UAAU,yBAAyB,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QACjD,QAAQ,CAAC,IAAI,CACX,iBAAiB,GAAG,CAAC,MAAM,qBAAqB,OAAO,QAAQ,OAAO,mDAAmD,CAC1H,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CACX,iBAAiB,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,oCAAoC,cAAc,4BAA4B,CAC3H,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CACX,wBAAwB,UAAU,CAAC,MAAM,aAAa,aAAa,mEAAmE,CACvI,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CACX,aAAa,KAAK,GAAG,CAAC,OAAO,SAAS,CAAC,MAAM,wBAAwB,eAAe,+CAA+C,CACpI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CACX,2GAA2G,CAC5G,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+DAA+D;AAC/D,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import type { BuildInfo } from '../../build/core/buildInfo.ts';
|
|
3
|
+
export interface AboutBuildProps {
|
|
4
|
+
/** What the build published about itself. */
|
|
5
|
+
build: BuildInfo;
|
|
6
|
+
/** Where the sources live, which is what the version and commit link into. */
|
|
7
|
+
repository: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The one line that says which build of the site a visitor has open.
|
|
11
|
+
*
|
|
12
|
+
* A report of something going wrong is worth answering only when we know what
|
|
13
|
+
* was running, and a visitor cannot read that off the page otherwise. The
|
|
14
|
+
* version and the commit link into the repository, so the change that caused a
|
|
15
|
+
* problem is one click from the page that shows it.
|
|
16
|
+
* @param props - See {@link AboutBuildProps}.
|
|
17
|
+
* @returns The line.
|
|
18
|
+
*/
|
|
19
|
+
export declare function AboutBuild(props: AboutBuildProps): ReactElement;
|
|
20
|
+
//# sourceMappingURL=AboutBuild.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AboutBuild.d.ts","sourceRoot":"","sources":["../../../src/about/ui/AboutBuild.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAa,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,KAAK,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CA+B/D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { formatBuiltAt, shortCommit } from "../../build/core/buildInfo.js";
|
|
3
|
+
/**
|
|
4
|
+
* The one line that says which build of the site a visitor has open.
|
|
5
|
+
*
|
|
6
|
+
* A report of something going wrong is worth answering only when we know what
|
|
7
|
+
* was running, and a visitor cannot read that off the page otherwise. The
|
|
8
|
+
* version and the commit link into the repository, so the change that caused a
|
|
9
|
+
* problem is one click from the page that shows it.
|
|
10
|
+
* @param props - See {@link AboutBuildProps}.
|
|
11
|
+
* @returns The line.
|
|
12
|
+
*/
|
|
13
|
+
export function AboutBuild(props) {
|
|
14
|
+
const { build, repository } = props;
|
|
15
|
+
const sources = repository.endsWith('/')
|
|
16
|
+
? repository.slice(0, -1)
|
|
17
|
+
: repository;
|
|
18
|
+
const onGitHub = sources.startsWith(GITHUB);
|
|
19
|
+
return (_jsxs("p", { style: PARAGRAPH_STYLE, children: ["Running version", ' ', _jsx(Reference, { href: onGitHub ? `${sources}/releases/tag/v${build.version}` : undefined, children: build.version }), ", built ", formatBuiltAt(build.builtAt), build.commit === undefined ? null : (_jsxs(_Fragment, { children: [' from commit ', _jsx(Reference, { href: onGitHub ? `${sources}/commit/${build.commit}` : undefined, children: shortCommit(build.commit) })] })), "."] }));
|
|
20
|
+
}
|
|
21
|
+
function Reference(props) {
|
|
22
|
+
const { href, children } = props;
|
|
23
|
+
if (href === undefined)
|
|
24
|
+
return _jsx("code", { style: CODE_STYLE, children: children });
|
|
25
|
+
return (_jsx("a", { href: href, target: "_blank", rel: "noopener noreferrer", style: LINK_STYLE, children: _jsx("code", { style: CODE_STYLE, children: children }) }));
|
|
26
|
+
}
|
|
27
|
+
const GITHUB = 'https://github.com/';
|
|
28
|
+
const PARAGRAPH_STYLE = {
|
|
29
|
+
margin: '8px 0 0',
|
|
30
|
+
color: 'var(--text-muted)',
|
|
31
|
+
fontSize: 13,
|
|
32
|
+
};
|
|
33
|
+
const CODE_STYLE = {
|
|
34
|
+
fontFamily: 'var(--font-mono, ui-monospace, monospace)',
|
|
35
|
+
fontSize: 13,
|
|
36
|
+
};
|
|
37
|
+
const LINK_STYLE = { color: 'var(--accent)' };
|
|
38
|
+
//# sourceMappingURL=AboutBuild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AboutBuild.js","sourceRoot":"","sources":["../../../src/about/ui/AboutBuild.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAS3E;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CACL,aAAG,KAAK,EAAE,eAAe,gCACP,GAAG,EACnB,KAAC,SAAS,IACR,IAAI,EACF,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,YAGnE,KAAK,CAAC,OAAO,GACJ,cACH,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EACpC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnC,8BACG,eAAe,EAChB,KAAC,SAAS,IACR,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,YAE/D,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAChB,IACX,CACJ,SAEC,CACL,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAGlB;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,eAAM,KAAK,EAAE,UAAU,YAAG,QAAQ,GAAQ,CAAC;IAE1E,OAAO,CACL,YAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,KAAK,EAAE,UAAU,YACxE,eAAM,KAAK,EAAE,UAAU,YAAG,QAAQ,GAAQ,GACxC,CACL,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAErC,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,mBAAmB;IAC1B,QAAQ,EAAE,EAAE;CACoB,CAAC;AAEnC,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE,2CAA2C;IACvD,QAAQ,EAAE,EAAE;CACoB,CAAC;AAEnC,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,eAAe,EAAmC,CAAC"}
|
|
@@ -15,6 +15,13 @@ export interface AboutPageProps {
|
|
|
15
15
|
* @default undefined
|
|
16
16
|
*/
|
|
17
17
|
children?: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* The site's own mark, for a site the shared glyph set does not hold —
|
|
20
|
+
* one that is deliberately not listed in `ECOSYSTEM_SITES`. It stands where
|
|
21
|
+
* `SiteMark` would, and the hero is otherwise unchanged.
|
|
22
|
+
* @default undefined — the family's mark for that site
|
|
23
|
+
*/
|
|
24
|
+
mark?: ReactNode;
|
|
18
25
|
/**
|
|
19
26
|
* The site's own drawn lockup, for a site that has one. It stands in the
|
|
20
27
|
* hero in place of the mark and the written name, above the tagline, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AboutPage.d.ts","sourceRoot":"","sources":["../../../src/about/ui/AboutPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"AboutPage.d.ts","sourceRoot":"","sources":["../../../src/about/ui/AboutPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQrD,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAsF7D"}
|
|
@@ -3,6 +3,7 @@ import { CreditsList } from "../../credits/ui/CreditsList.js";
|
|
|
3
3
|
import { Wordmark } from "../../ecosystem/ui/Wordmark.js";
|
|
4
4
|
import { SiteMark } from "../../ecosystem/ui/marks.js";
|
|
5
5
|
import { resolveAbout } from "../core/about.js";
|
|
6
|
+
import { AboutBuild } from "./AboutBuild.js";
|
|
6
7
|
import { AboutCitations } from "./AboutCitations.js";
|
|
7
8
|
import { AboutProvidedBy } from "./AboutProvidedBy.js";
|
|
8
9
|
import { AboutSection } from "./AboutSection.js";
|
|
@@ -19,10 +20,12 @@ import { AboutSection } from "./AboutSection.js";
|
|
|
19
20
|
* @throws {Error} When the record names a site or a credit that does not exist.
|
|
20
21
|
*/
|
|
21
22
|
export function AboutPage(props) {
|
|
22
|
-
const { content, className, children, logo } = props;
|
|
23
|
+
const { content, className, children, logo, mark } = props;
|
|
23
24
|
const about = resolveAbout(content);
|
|
24
25
|
const site = about.site;
|
|
25
|
-
return (_jsxs("div", { className: className === undefined ? 'about-page' : `about-page ${className}`, style: PAGE_STYLE, children: [_jsxs("header", { className: "about-hero", style: logo === undefined ? HERO_STYLE : LOGO_HERO_STYLE, children: [logo === undefined
|
|
26
|
+
return (_jsxs("div", { className: className === undefined ? 'about-page' : `about-page ${className}`, style: PAGE_STYLE, children: [_jsxs("header", { className: "about-hero", style: logo === undefined ? HERO_STYLE : LOGO_HERO_STYLE, children: [logo === undefined
|
|
27
|
+
? (mark ?? _jsx(SiteMark, { site: site, size: 56 }))
|
|
28
|
+
: null, _jsxs("div", { children: [_jsx("h1", { style: logo === undefined ? NAME_STYLE : LOGO_NAME_STYLE, children: logo ?? _jsx(Wordmark, { site: site, size: 26 }) }), _jsx("p", { style: TAGLINE_STYLE, children: site.tagline }), _jsx("p", { style: WHAT_STYLE, children: about.what })] })] }), about.people.length === 0 && about.providedBy.length === 0 ? null : (_jsx(AboutSection, { title: "Provided by", className: "about-provided-by", children: _jsx(AboutProvidedBy, { people: about.people, providers: about.providedBy }) })), _jsx(AboutSection, { title: "What you can do here", className: "about-can", children: _jsx("ul", { style: CAN_LIST_STYLE, children: about.can.map((line) => (_jsx("li", { children: line }, line))) }) }), about.paragraphs.length === 0 ? null : (_jsx(AboutSection, { className: "about-context", children: about.paragraphs.map((paragraph, index) => (_jsx("p", { style: index === 0 ? FIRST_PARAGRAPH_STYLE : PARAGRAPH_STYLE, children: paragraph }, paragraph))) })), children, _jsx(AboutSection, { title: "Built on", className: "about-credits", children: _jsx(CreditsList, { entries: about.credits }) }), about.cite.length === 0 ? null : (_jsx(AboutSection, { title: "How to cite", className: "about-cite", children: _jsx(AboutCitations, { works: about.cite }) })), _jsxs(AboutSection, { title: "Licence and source", className: "about-licence", children: [_jsxs("p", { style: FIRST_PARAGRAPH_STYLE, children: [about.license, ", \u00A9 cheminfo. Use it in a course, fork it, or lift a piece of it into something else. The sources are at", ' ', _jsx(ExternalLink, { href: about.repository }), "."] }), about.build === undefined ? null : (_jsx(AboutBuild, { build: about.build, repository: about.repository }))] }), _jsx(AboutSection, { title: "Found a problem?", className: "about-issues", children: _jsxs("p", { style: FIRST_PARAGRAPH_STYLE, children: ["Tell us: a report naming what you typed and what came back is the fastest fix there is. ", _jsx(ExternalLink, { href: about.issues }), "."] }) })] }));
|
|
26
29
|
}
|
|
27
30
|
function ExternalLink(props) {
|
|
28
31
|
const { href } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AboutPage.js","sourceRoot":"","sources":["../../../src/about/ui/AboutPage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA8B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AboutPage.js","sourceRoot":"","sources":["../../../src/about/ui/AboutPage.tsx"],"names":[],"mappings":"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"}
|
package/lib/about/ui/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export type { AboutBuildProps } from './AboutBuild.tsx';
|
|
2
|
+
export { AboutBuild } from './AboutBuild.tsx';
|
|
1
3
|
export type { AboutCitationsProps } from './AboutCitations.tsx';
|
|
2
4
|
export { AboutCitations } from './AboutCitations.tsx';
|
|
3
5
|
export type { AboutPageProps } from './AboutPage.tsx';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/about/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/about/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/lib/about/ui/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/about/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/about/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a deployed page can say about itself: which release it is, when it was
|
|
3
|
+
* built, and from which commit.
|
|
4
|
+
*
|
|
5
|
+
* A site of ours is a link somebody handed out in a course, so the first
|
|
6
|
+
* question a report raises is *which one of these is running*. The record is
|
|
7
|
+
* filled by the build rather than written by hand — a version a human types
|
|
8
|
+
* into a source file is a version that is wrong by the next release.
|
|
9
|
+
*/
|
|
10
|
+
export interface BuildInfo {
|
|
11
|
+
/** The released version, from the package.json at the repository root. */
|
|
12
|
+
version: string;
|
|
13
|
+
/** When the build ran, as an ISO instant to the second: `2026-09-16T09:41:07Z`. */
|
|
14
|
+
builtAt: string;
|
|
15
|
+
/**
|
|
16
|
+
* The full commit the build was made from.
|
|
17
|
+
* @default undefined — the build could not see the repository
|
|
18
|
+
*/
|
|
19
|
+
commit?: string;
|
|
20
|
+
/**
|
|
21
|
+
* The version of `react-cheminfo` the site is built against, which is what
|
|
22
|
+
* says whether a site is running the current chrome.
|
|
23
|
+
* @default undefined — the build could not read it
|
|
24
|
+
*/
|
|
25
|
+
reactCheminfo?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The commit as it is written for a reader.
|
|
29
|
+
* @param commit - The full hash.
|
|
30
|
+
* @returns Its first seven characters, which is what git itself shows.
|
|
31
|
+
*/
|
|
32
|
+
export declare function shortCommit(commit: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* The build instant as it is read on the page.
|
|
35
|
+
* @param builtAt - The ISO instant the build wrote.
|
|
36
|
+
* @returns The day and the time, in UTC, e.g. `2026-09-16 09:41:07 UTC`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatBuiltAt(builtAt: string): string;
|
|
39
|
+
//# sourceMappingURL=buildInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildInfo.d.ts","sourceRoot":"","sources":["../../../src/build/core/buildInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The commit as it is written for a reader.
|
|
3
|
+
* @param commit - The full hash.
|
|
4
|
+
* @returns Its first seven characters, which is what git itself shows.
|
|
5
|
+
*/
|
|
6
|
+
export function shortCommit(commit) {
|
|
7
|
+
return commit.slice(0, SHORT_COMMIT_LENGTH);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The build instant as it is read on the page.
|
|
11
|
+
* @param builtAt - The ISO instant the build wrote.
|
|
12
|
+
* @returns The day and the time, in UTC, e.g. `2026-09-16 09:41:07 UTC`.
|
|
13
|
+
*/
|
|
14
|
+
export function formatBuiltAt(builtAt) {
|
|
15
|
+
const seconds = builtAt.slice(0, SECOND_LENGTH).replace('T', ' ');
|
|
16
|
+
return `${seconds} UTC`;
|
|
17
|
+
}
|
|
18
|
+
const SHORT_COMMIT_LENGTH = 7;
|
|
19
|
+
const SECOND_LENGTH = 19;
|
|
20
|
+
//# sourceMappingURL=buildInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildInfo.js","sourceRoot":"","sources":["../../../src/build/core/buildInfo.ts"],"names":[],"mappings":"AA2BA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,OAAO,GAAG,OAAO,MAAM,CAAC;AAC1B,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,aAAa,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BuildInfo } from './buildInfo.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Which build of the site is running, or `undefined` when nothing filled it in.
|
|
4
|
+
*
|
|
5
|
+
* The module is replaced at build time by `cheminfoBuildInfo`, which is what
|
|
6
|
+
* puts the real version, instant and commit here. It stays a real module rather
|
|
7
|
+
* than a virtual one so that a test, a Playwright spec or a backend can import
|
|
8
|
+
* the About record in plain Node: outside a build there is simply no record,
|
|
9
|
+
* and the About page leaves the line out.
|
|
10
|
+
*/
|
|
11
|
+
export declare const BUILD_INFO: BuildInfo | undefined;
|
|
12
|
+
//# sourceMappingURL=current.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../../src/build/core/current.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,GAAG,SAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which build of the site is running, or `undefined` when nothing filled it in.
|
|
3
|
+
*
|
|
4
|
+
* The module is replaced at build time by `cheminfoBuildInfo`, which is what
|
|
5
|
+
* puts the real version, instant and commit here. It stays a real module rather
|
|
6
|
+
* than a virtual one so that a test, a Playwright spec or a backend can import
|
|
7
|
+
* the About record in plain Node: outside a build there is simply no record,
|
|
8
|
+
* and the About page leaves the line out.
|
|
9
|
+
*/
|
|
10
|
+
export const BUILD_INFO = undefined;
|
|
11
|
+
//# sourceMappingURL=current.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sourceRoot":"","sources":["../../../src/build/core/current.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAA0B,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/build/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/build/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tell a site which build of itself it is running.
|
|
3
|
+
*
|
|
4
|
+
* Every site of the family carries an About page, and the one thing that page
|
|
5
|
+
* cannot state from a hand-written record is the release it is serving. So the
|
|
6
|
+
* build states it: the plugin resolves the version, the day and the commit
|
|
7
|
+
* once, hands them to the page through a virtual module, and writes the same
|
|
8
|
+
* record to `build-info.json` so the whole family can be asked what it is
|
|
9
|
+
* running with one request each.
|
|
10
|
+
*/
|
|
11
|
+
import type { Plugin } from 'vite';
|
|
12
|
+
import type { BuildInfo } from '../core/buildInfo.ts';
|
|
13
|
+
/** The module a site imports its build record from. */
|
|
14
|
+
export declare const BUILD_INFO_MODULE = "react-cheminfo/build-info";
|
|
15
|
+
/** What the build writes about itself. */
|
|
16
|
+
export interface BuildInfoOptions {
|
|
17
|
+
/**
|
|
18
|
+
* Where the record is written in the build, so a deployment can be asked
|
|
19
|
+
* what it is running. `false` writes none.
|
|
20
|
+
* @default 'build-info.json'
|
|
21
|
+
*/
|
|
22
|
+
fileName?: string | false;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the build's own version, instant and commit, and publish them.
|
|
26
|
+
*
|
|
27
|
+
* The site reads them from the module the plugin fills in:
|
|
28
|
+
*
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { BUILD_INFO } from 'react-cheminfo/build-info';
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* That module exists on disk and exports `undefined`, so a Playwright spec or
|
|
34
|
+
* a unit test importing the same About record in plain Node still resolves it —
|
|
35
|
+
* a virtual specifier does not, and the whole suite dies on the import.
|
|
36
|
+
* @param options - See {@link BuildInfoOptions}.
|
|
37
|
+
* @returns The Vite plugin.
|
|
38
|
+
*/
|
|
39
|
+
export declare function cheminfoBuildInfo(options?: BuildInfoOptions): Plugin;
|
|
40
|
+
/**
|
|
41
|
+
* What the build knows about itself, read off the checkout it runs in.
|
|
42
|
+
* @param root - The project Vite is building, which may sit under the
|
|
43
|
+
* repository root as `frontend` does.
|
|
44
|
+
* @returns The record, with whatever it could not resolve left out.
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveBuildInfo(root: string): BuildInfo;
|
|
47
|
+
/**
|
|
48
|
+
* The topmost directory of the run of ancestors that all hold a `package.json`.
|
|
49
|
+
*
|
|
50
|
+
* It is the repository root, and it is where the released version lives:
|
|
51
|
+
* release-please bumps the root `package.json`, while the `frontend` workspace
|
|
52
|
+
* of a site that has one keeps the `0.0.0` it was scaffolded with.
|
|
53
|
+
* @param start - Where to start climbing.
|
|
54
|
+
* @returns The highest such directory, or `start` when it holds none itself.
|
|
55
|
+
*/
|
|
56
|
+
export declare function findRepositoryRoot(start: string): string;
|
|
57
|
+
//# sourceMappingURL=buildInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildInfo.d.ts","sourceRoot":"","sources":["../../../src/build/vite/buildInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAkCxE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CASxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAcxD"}
|