@phosart/common 0.4.34 → 0.4.36

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.
@@ -107,7 +107,7 @@
107
107
  <svelte:head>
108
108
  {#if resourceRef.type && resourceRef.resource}
109
109
  <meta property="og:type" content="website" />
110
- <meta property="og:url" content={config.origin ?? ''} />
110
+ <meta property="og:url" content={(config.origin ?? '') + (config.getPage?.() ?? '')} />
111
111
  {#if siteName}
112
112
  <meta property="og:site_name" content={siteName} />
113
113
  {/if}
@@ -7,7 +7,7 @@ export { formatDate } from './date.ts';
7
7
  export { markdown } from './markdown.ts';
8
8
  export { smoothScroll } from './smoothscroll.ts';
9
9
  export { setLibraryConfig, type LibraryConfig } from './phosart_config.svelte.ts';
10
- export { asRecord, multiRecordBy, deduplicateBy } from './util.ts';
10
+ export { asRecord, multiRecordBy, deduplicateBy, sveltekitAbsolutePath, sveltekitAnchoredPath } from './util.ts';
11
11
  export { asTree, pathView } from './tree.ts';
12
12
  export type { FolderElement, GalleryElement, GalleryTree, TreeElement } from './tree.ts';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClF,YAAY,EACX,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClF,YAAY,EACX,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EACN,QAAQ,EACR,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -6,5 +6,5 @@ export { formatDate } from "./date.js";
6
6
  export { markdown } from "./markdown.js";
7
7
  export { smoothScroll } from "./smoothscroll.js";
8
8
  export { setLibraryConfig } from "./phosart_config.svelte.js";
9
- export { asRecord, multiRecordBy, deduplicateBy } from "./util.js";
9
+ export { asRecord, multiRecordBy, deduplicateBy, sveltekitAbsolutePath, sveltekitAnchoredPath } from "./util.js";
10
10
  export { asTree, pathView } from "./tree.js";
@@ -37,6 +37,7 @@ export interface LibraryConfig {
37
37
  chipOptionsByType?: ChipOptionsByType | null;
38
38
  };
39
39
  defaultTransformSrc?: (src: string) => string;
40
+ getPage?: () => string;
40
41
  origin?: string;
41
42
  }
42
43
  export declare function useChipConfig<Type extends keyof ChipOptionsByType>(type: Type): ChipOptions<DataType<Type>> | null;
@@ -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,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,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,4 +1,6 @@
1
1
  export declare function asRecord<T>(arr: T[], key: (el: T) => string, combine?: (a: T, b: T) => T): Record<string, T>;
2
2
  export declare function multiRecordBy<T>(arr: T[], key: (el: T) => string): Record<string, T[]>;
3
3
  export declare function deduplicateBy<T>(arr: T[], key: (el: T) => string, combine?: (a: T, b: T) => T): T[];
4
+ export declare function sveltekitAbsolutePath(resolveRelative: (s: string) => string, getCurrentPath: () => string): (s: string) => string;
5
+ export declare function sveltekitAnchoredPath(origin: string, resolveRelative: (s: string) => string, getCurrentPath: () => string): (s: string) => string;
4
6
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/lib/util/util.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,CAAC,EACzB,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAYnB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAMtF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAC9B,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GACzB,CAAC,EAAE,CAEL"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/lib/util/util.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,CAAC,EACzB,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAYnB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAMtF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAC9B,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GACzB,CAAC,EAAE,CAEL;AAED,wBAAgB,qBAAqB,CACpC,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACtC,cAAc,EAAE,MAAM,MAAM,GAC1B,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAmBvB;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACtC,cAAc,EAAE,MAAM,MAAM,GAC1B,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAGvB"}
package/dist/util/util.js CHANGED
@@ -20,3 +20,23 @@ export function multiRecordBy(arr, key) {
20
20
  export function deduplicateBy(arr, key, combine) {
21
21
  return Object.values(asRecord(arr, key, combine));
22
22
  }
23
+ export function sveltekitAbsolutePath(resolveRelative, getCurrentPath) {
24
+ return (s) => {
25
+ const pagepath = getCurrentPath().split('/').slice(0, -1);
26
+ const rel = resolveRelative(s).split('/');
27
+ if (rel[0]?.length === 0) {
28
+ // It's absolute
29
+ return rel.join('/');
30
+ }
31
+ const backs = rel.filter((r) => r == '..').length;
32
+ const resolved = pagepath
33
+ .slice(0, pagepath.length - backs)
34
+ .concat(rel.slice(backs))
35
+ .join('/');
36
+ return resolved;
37
+ };
38
+ }
39
+ export function sveltekitAnchoredPath(origin, resolveRelative, getCurrentPath) {
40
+ const abspath = sveltekitAbsolutePath(resolveRelative, getCurrentPath);
41
+ return (s) => `${origin}${abspath(s)}`;
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phosart/common",
3
- "version": "0.4.34",
3
+ "version": "0.4.36",
4
4
  "files": [
5
5
  "dist",
6
6
  "!dist/**/*.test.*",
@@ -107,7 +107,7 @@
107
107
  <svelte:head>
108
108
  {#if resourceRef.type && resourceRef.resource}
109
109
  <meta property="og:type" content="website" />
110
- <meta property="og:url" content={config.origin ?? ''} />
110
+ <meta property="og:url" content={(config.origin ?? '') + (config.getPage?.() ?? '')} />
111
111
  {#if siteName}
112
112
  <meta property="og:site_name" content={siteName} />
113
113
  {/if}
@@ -25,6 +25,12 @@ export { formatDate } from './date.ts';
25
25
  export { markdown } from './markdown.ts';
26
26
  export { smoothScroll } from './smoothscroll.ts';
27
27
  export { setLibraryConfig, type LibraryConfig } from './phosart_config.svelte.ts';
28
- export { asRecord, multiRecordBy, deduplicateBy } from './util.ts';
28
+ export {
29
+ asRecord,
30
+ multiRecordBy,
31
+ deduplicateBy,
32
+ sveltekitAbsolutePath,
33
+ sveltekitAnchoredPath
34
+ } from './util.ts';
29
35
  export { asTree, pathView } from './tree.ts';
30
36
  export type { FolderElement, GalleryElement, GalleryTree, TreeElement } from './tree.ts';
@@ -41,6 +41,7 @@ export interface LibraryConfig {
41
41
  };
42
42
  modal?: { chipOptionsByType?: ChipOptionsByType | null };
43
43
  defaultTransformSrc?: (src: string) => string;
44
+ getPage?: () => string;
44
45
  origin?: string;
45
46
  }
46
47
 
@@ -35,3 +35,36 @@ export function deduplicateBy<T>(
35
35
  ): T[] {
36
36
  return Object.values(asRecord(arr, key, combine));
37
37
  }
38
+
39
+ export function sveltekitAbsolutePath(
40
+ resolveRelative: (s: string) => string,
41
+ getCurrentPath: () => string
42
+ ): (s: string) => string {
43
+ return (s) => {
44
+ const pagepath = getCurrentPath().split('/').slice(0, -1);
45
+ const rel = resolveRelative(s).split('/');
46
+
47
+ if (rel[0]?.length === 0) {
48
+ // It's absolute
49
+ return rel.join('/');
50
+ }
51
+
52
+ const backs = rel.filter((r) => r == '..').length;
53
+
54
+ const resolved = pagepath
55
+ .slice(0, pagepath.length - backs)
56
+ .concat(rel.slice(backs))
57
+ .join('/');
58
+
59
+ return resolved;
60
+ };
61
+ }
62
+
63
+ export function sveltekitAnchoredPath(
64
+ origin: string,
65
+ resolveRelative: (s: string) => string,
66
+ getCurrentPath: () => string
67
+ ): (s: string) => string {
68
+ const abspath = sveltekitAbsolutePath(resolveRelative, getCurrentPath);
69
+ return (s) => `${origin}${abspath(s)}`;
70
+ }