@phosart/common 0.4.37 → 0.4.39

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.
@@ -3,6 +3,7 @@
3
3
 
4
4
  import type { ArtPiece } from '../util/art.js';
5
5
  import ImageView from './ImageView.svelte';
6
+ import { useLibraryConfig } from '../util/phosart_config.svelte.js';
6
7
 
7
8
  interface Props {
8
9
  piece: ArtPiece;
@@ -38,7 +39,9 @@
38
39
  let w = $derived(piece.image.full.fallback.w * scalingFactor);
39
40
  let h = $derived(piece.image.full.fallback.h * scalingFactor + 50);
40
41
 
41
- let nameInHeader = $derived(w > 500);
42
+ let config = useLibraryConfig();
43
+
44
+ let nameInHeader = $derived(!config.modal?.hideNames && w > 500);
42
45
  </script>
43
46
 
44
47
  <div class="image-section">
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSection.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/ModalGallery/ImageSection.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,+CAA+C,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI9C,UAAU,KAAK;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB;AA6DF,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ImageSection.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/ModalGallery/ImageSection.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,+CAA+C,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK9C,UAAU,KAAK;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB;AAgEF,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -7,6 +7,7 @@
7
7
  import Headline from '../Postcard/Headline.svelte';
8
8
  import Description from '../Postcard/Description.svelte';
9
9
  import type { ArtPiece } from '../util/art.js';
10
+ import { useLibraryConfig } from '../util/phosart_config.svelte.js';
10
11
 
11
12
  interface Props {
12
13
  piece: ArtPiece;
@@ -15,6 +16,8 @@
15
16
 
16
17
  let { piece, nameInHeader }: Props = $props();
17
18
 
19
+ let config = useLibraryConfig();
20
+
18
21
  let loading = $state(true);
19
22
  let showingDescription = $state(false);
20
23
 
@@ -40,13 +43,13 @@
40
43
  </div>
41
44
 
42
45
  <div class="headline-container">
43
- <Headline {piece} bind:showingDescription showName={nameInHeader} />
46
+ <Headline {piece} bind:showingDescription showName={!config.modal?.hideNames && nameInHeader} />
44
47
  </div>
45
48
  <div class="description-container">
46
49
  <Description
47
50
  {piece}
48
51
  bind:visible={showingDescription}
49
- showName={!nameInHeader}
52
+ showName={!config.modal?.hideNames && !nameInHeader}
50
53
  {selectedAlt}
51
54
  onselectalt={(i) => (selectedAlt = i ?? null)}
52
55
  />
@@ -1 +1 @@
1
- {"version":3,"file":"ImageView.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/ModalGallery/ImageView.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG9C,UAAU,KAAK;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACtB;AA2CF,QAAA,MAAM,SAAS,2CAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"ImageView.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/ModalGallery/ImageView.svelte.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI9C,UAAU,KAAK;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACtB;AA8CF,QAAA,MAAM,SAAS,2CAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"artist.d.ts","sourceRoot":"","sources":["../../src/lib/server/artist.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;AAEjE,wBAAsB,OAAO,yBAoB5B;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAetE"}
1
+ {"version":3,"file":"artist.d.ts","sourceRoot":"","sources":["../../src/lib/server/artist.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKxE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;AAEjE,wBAAsB,OAAO,yBAoC5B;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAetE"}
@@ -3,9 +3,11 @@ import * as fs from 'node:fs/promises';
3
3
  import * as path from 'node:path';
4
4
  import * as yaml from 'yaml';
5
5
  import { Artist } from "./models/Artist.js";
6
- import { cacheVersion, getCache } from "./util.js";
6
+ import { cacheVersion, getCache, getLogLevel } from "./util.js";
7
7
  import { normalizeArtist } from "../util/art.js";
8
8
  import { galleries } from "./gallery.js";
9
+ import { Logger } from 'tslog';
10
+ const ArtistLog = new Logger({ minLevel: getLogLevel() });
9
11
  export async function artists() {
10
12
  const cached = getCache().artistCache;
11
13
  const nextVersion = await cacheVersion();
@@ -19,7 +21,21 @@ export async function artists() {
19
21
  catch {
20
22
  return {};
21
23
  }
22
- await Promise.all(Object.values(artists).map((v) => Artist.parseAsync(v)));
24
+ (await Promise.all(Object.values(artists).map((v) => Artist.parseAsync(v)))).map((a) => ({
25
+ ...a,
26
+ links: Object.fromEntries(Object.entries(a.links).map(([k, v]) => {
27
+ if (!v.includes('://')) {
28
+ v = 'https://' + v;
29
+ }
30
+ try {
31
+ v = new URL(v).toString();
32
+ }
33
+ catch (e) {
34
+ ArtistLog.error(`Failed to process URL for artist @${k}:`, e);
35
+ }
36
+ return [k, v];
37
+ }))
38
+ }));
23
39
  getCache().artistCache.cache = artists;
24
40
  getCache().artistCache.version = nextVersion;
25
41
  return artists;
@@ -35,6 +35,7 @@ export interface LibraryConfig {
35
35
  };
36
36
  modal?: {
37
37
  chipOptionsByType?: ChipOptionsByType | null;
38
+ hideNames?: boolean;
38
39
  };
39
40
  defaultTransformSrc?: (src: string) => string;
40
41
  getPage?: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"phosart_config.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/util/phosart_config.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAIhF,MAAM,MAAM,UAAU,CAAC,CAAC,IACrB;IACA,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAChB,GACD;IACA,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEL,KAAK,cAAc,CAAC,CAAC,IAClB;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GACjD;IAAE,MAAM,CAAC,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAErC,KAAK,eAAe,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS,MAAM,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;KAC9B,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACT,oBAAoB,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/F,qBAAqB,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC;KAC7F,CAAC;IACF,KAAK,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;KAAE,CAAC;IACzD,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAuCD,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,iBAAiB,EACjE,IAAI,EAAE,IAAI,GACR,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAMpC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,QAKrD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}
1
+ {"version":3,"file":"phosart_config.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/util/phosart_config.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAIhF,MAAM,MAAM,UAAU,CAAC,CAAC,IACrB;IACA,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAChB,GACD;IACA,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEL,KAAK,cAAc,CAAC,CAAC,IAClB;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GACjD;IAAE,MAAM,CAAC,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAErC,KAAK,eAAe,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS,MAAM,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;KAC9B,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACT,oBAAoB,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/F,qBAAqB,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC;KAC7F,CAAC;IACF,KAAK,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9E,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAuCD,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,iBAAiB,EACjE,IAAI,EAAE,IAAI,GACR,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAMpC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,QAKrD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phosart/common",
3
- "version": "0.4.37",
3
+ "version": "0.4.39",
4
4
  "files": [
5
5
  "dist",
6
6
  "!dist/**/*.test.*",
@@ -3,6 +3,7 @@
3
3
 
4
4
  import type { ArtPiece } from '../util/art.ts';
5
5
  import ImageView from './ImageView.svelte';
6
+ import { useLibraryConfig } from '../util/phosart_config.svelte.ts';
6
7
 
7
8
  interface Props {
8
9
  piece: ArtPiece;
@@ -38,7 +39,9 @@
38
39
  let w = $derived(piece.image.full.fallback.w * scalingFactor);
39
40
  let h = $derived(piece.image.full.fallback.h * scalingFactor + 50);
40
41
 
41
- let nameInHeader = $derived(w > 500);
42
+ let config = useLibraryConfig();
43
+
44
+ let nameInHeader = $derived(!config.modal?.hideNames && w > 500);
42
45
  </script>
43
46
 
44
47
  <div class="image-section">
@@ -7,6 +7,7 @@
7
7
  import Headline from '../Postcard/Headline.svelte';
8
8
  import Description from '../Postcard/Description.svelte';
9
9
  import type { ArtPiece } from '../util/art.ts';
10
+ import { useLibraryConfig } from '../util/phosart_config.svelte.ts';
10
11
 
11
12
  interface Props {
12
13
  piece: ArtPiece;
@@ -15,6 +16,8 @@
15
16
 
16
17
  let { piece, nameInHeader }: Props = $props();
17
18
 
19
+ let config = useLibraryConfig();
20
+
18
21
  let loading = $state(true);
19
22
  let showingDescription = $state(false);
20
23
 
@@ -40,13 +43,13 @@
40
43
  </div>
41
44
 
42
45
  <div class="headline-container">
43
- <Headline {piece} bind:showingDescription showName={nameInHeader} />
46
+ <Headline {piece} bind:showingDescription showName={!config.modal?.hideNames && nameInHeader} />
44
47
  </div>
45
48
  <div class="description-container">
46
49
  <Description
47
50
  {piece}
48
51
  bind:visible={showingDescription}
49
- showName={!nameInHeader}
52
+ showName={!config.modal?.hideNames && !nameInHeader}
50
53
  {selectedAlt}
51
54
  onselectalt={(i) => (selectedAlt = i ?? null)}
52
55
  />
@@ -4,9 +4,11 @@ import * as path from 'node:path';
4
4
  import * as yaml from 'yaml';
5
5
  import type { z } from 'zod';
6
6
  import { Artist } from './models/Artist.ts';
7
- import { cacheVersion, getCache } from './util.ts';
7
+ import { cacheVersion, getCache, getLogLevel } from './util.ts';
8
8
  import { normalizeArtist, type NormalizedArtist } from '../util/art.ts';
9
9
  import { galleries } from './gallery.ts';
10
+ import { Logger } from 'tslog';
11
+ const ArtistLog = new Logger({ minLevel: getLogLevel() });
10
12
 
11
13
  export type ArtistCache = Record<string, z.infer<typeof Artist>>;
12
14
 
@@ -25,7 +27,23 @@ export async function artists() {
25
27
  return {};
26
28
  }
27
29
 
28
- await Promise.all(Object.values(artists).map((v) => Artist.parseAsync(v)));
30
+ (await Promise.all(Object.values(artists).map((v) => Artist.parseAsync(v)))).map((a) => ({
31
+ ...a,
32
+ links: Object.fromEntries(
33
+ Object.entries(a.links).map(([k, v]) => {
34
+ if (!v.includes('://')) {
35
+ v = 'https://' + v;
36
+ }
37
+
38
+ try {
39
+ v = new URL(v).toString();
40
+ } catch (e: unknown) {
41
+ ArtistLog.error(`Failed to process URL for artist @${k}:`, e);
42
+ }
43
+ return [k, v];
44
+ })
45
+ )
46
+ }));
29
47
 
30
48
  getCache().artistCache.cache = artists;
31
49
  getCache().artistCache.version = nextVersion;
@@ -39,7 +39,7 @@ export interface LibraryConfig {
39
39
  DefaultCardComponent?: NonNullable<ComponentProps<typeof FullGallery>['CardComponent']> | null;
40
40
  DefaultPieceComponent?: NonNullable<ComponentProps<typeof Gallery>['PieceComponent']> | null;
41
41
  };
42
- modal?: { chipOptionsByType?: ChipOptionsByType | null };
42
+ modal?: { chipOptionsByType?: ChipOptionsByType | null; hideNames?: boolean };
43
43
  defaultTransformSrc?: (src: string) => string;
44
44
  getPage?: () => string;
45
45
  origin?: string;