@@ -243,53 +268,121 @@
-{#if loading}
+
-{#if !$checks.length}
+
+
+
+
+
+
+ activateTab('overview')}>Overview
+ activateTab('checks')}>Checks
+ activateTab('audit')}>Audits
+ activateTab('feed')}>Feed
+
+
+
+
+
+ {#if item === 'map'}
+
+ {/if}
+ {#if item === 'network'}
+
+ {/if}
+ {#if item === 'insights'}
+
+ {/if}
+ {#if item === 'checks'}
+
+ {/if}
+ {#if item === 'general'}
+
+ {/if}
+ {#if item === 'fees'}
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+ {#if operatorPubkey && $activeTab === 'feed'}
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
score: {decentralizationScore}
-
-
-
-
-
-
+
- {#if $monitors.length && $checks.length}
-
- {/if}
+
+
+
+
{#if $relayAggregate}
checks found
{:else}
No checks available.
{/if}
-{/if}
+
\ No newline at end of file
diff --git a/apps/gui/tsconfig.json b/apps/gui/tsconfig.json
index 6f788f16..9603066c 100755
--- a/apps/gui/tsconfig.json
+++ b/apps/gui/tsconfig.json
@@ -10,6 +10,7 @@
"sourceMap": true,
"strict": true,
"module": "NodeNext",
- "moduleResolution": "NodeNext"
+ "moduleResolution": "bundler",
+ "traceResolution": true
}
}
diff --git a/libraries/nip66/package.json b/libraries/nip66/package.json
index 5ce2c699..7bc2f94b 100644
--- a/libraries/nip66/package.json
+++ b/libraries/nip66/package.json
@@ -21,6 +21,11 @@
"import": "./dist/browser/index.esm.js",
"require": "./dist/server/index.cjs.js"
},
+ "./*": {
+ "types": "./dist/types/*.d.ts",
+ "import": "./dist/node/*.mjs",
+ "require": "./dist/node/*.cjs"
+ },
"./core": {
"types": "./dist/types/core/index.d.ts",
"import": "./dist/browser/core/index.esm.js",
@@ -50,6 +55,11 @@
"types": "./dist/types/factory/index.d.ts",
"import": "./dist/browser/factory/index.esm.js",
"require": "./dist/server/factory/index.cjs.js"
+ },
+ "./services": {
+ "types": "./dist/types/services/index.d.ts",
+ "import": "./dist/browser/services/index.esm.js",
+ "require": "./dist/server/services/index.cjs.js"
}
},
"dependencies": {
diff --git a/libraries/nip66/rollup.config.js b/libraries/nip66/rollup.config.js
index 7620818c..bd103c97 100644
--- a/libraries/nip66/rollup.config.js
+++ b/libraries/nip66/rollup.config.js
@@ -117,74 +117,74 @@ export default [
exclude: 'node_modules/**',
clearScreen: false
},
+ // onwarn
+ },
+ {
+ treeshake: true,
+ input,
+ output: {
+ dir: 'dist/browser',
+ format: 'amd',
+ sourcemap: true,
+ preserveModules: true,
+ preserveModulesRoot: 'src',
+ entryFileNames: '[name].amd.js',
+ exports: 'auto'
+ },
+ external: [],
+ plugins: [
+ ...commonPlugins,
+ ...browserPlugins
+ ],
+ watch: {
+ exclude: 'node_modules/**',
+ clearScreen: false
+ },
onwarn
},
- // {
- // treeshake: true,
- // input,
- // output: {
- // dir: 'dist/browser',
- // format: 'amd',
- // sourcemap: true,
- // preserveModules: true,
- // preserveModulesRoot: 'src',
- // entryFileNames: '[name].amd.js',
- // exports: 'auto'
- // },
- // external: [],
- // plugins: [
- // ...commonPlugins,
- // ...browserPlugins
- // ],
- // watch: {
- // exclude: 'node_modules/**',
- // clearScreen: false
- // },
- // onwarn
- // },
- // {
- // treeshake: true,
- // input,
- // output: {
- // dir: 'dist/server',
- // format: 'cjs',
- // sourcemap: true,
- // preserveModules: true,
- // preserveModulesRoot: 'src',
- // entryFileNames: '[name].cjs.js',
- // exports: 'auto'
- // },
- // external: [],
- // plugins: [
- // ...commonPlugins,
- // ...serverPlugins
- // ],
- // watch: {
- // exclude: 'node_modules/**',
- // clearScreen: false
- // },
- // onwarn
- // },
- // {
- // treeshake: true,
- // input,
- // output: {
- // dir: 'dist/server',
- // format: 'esm',
- // sourcemap: true,
- // preserveModules: true,
- // preserveModulesRoot: 'src',
- // entryFileNames: '[name].esm.js'
- // },
- // external: [],
- // plugins: [
- // ...commonPlugins,
- // ...serverPlugins
- // ],
- // watch: {
- // exclude: 'node_modules/**',
- // clearScreen: false
- // },
- // onwarn
- // }
+ {
+ treeshake: true,
+ input,
+ output: {
+ dir: 'dist/server',
+ format: 'cjs',
+ sourcemap: true,
+ preserveModules: true,
+ preserveModulesRoot: 'src',
+ entryFileNames: '[name].cjs.js',
+ exports: 'auto'
+ },
+ external: [],
+ plugins: [
+ ...commonPlugins,
+ ...serverPlugins
+ ],
+ watch: {
+ exclude: 'node_modules/**',
+ clearScreen: false
+ },
+ onwarn
+ },
+ {
+ treeshake: true,
+ input,
+ output: {
+ dir: 'dist/server',
+ format: 'esm',
+ sourcemap: true,
+ preserveModules: true,
+ preserveModulesRoot: 'src',
+ entryFileNames: '[name].esm.js'
+ },
+ external: [],
+ plugins: [
+ ...commonPlugins,
+ ...serverPlugins
+ ],
+ watch: {
+ exclude: 'node_modules/**',
+ clearScreen: false
+ },
+ onwarn
+ }
]
diff --git a/libraries/nip66/src/core/Base.ts b/libraries/nip66/src/core/Base.ts
index 12493ca6..252b5ed7 100644
--- a/libraries/nip66/src/core/Base.ts
+++ b/libraries/nip66/src/core/Base.ts
@@ -8,16 +8,12 @@ import type { IAdaptersArgument } from '@base/interfaces/IAdaptersArgument';
import type { Workers } from './Workers';
import { StateManager } from '@base/managers/StateManager';
-import { UserService } from '@base/services/UserService';
-import { NocapService } from '@base/services/NocapService';
type AnyAdapter = IWebsocketAdapter | ICacheAdapter;
export type Nip66Services = {
monitors?: MonitorServiceType,
relay?: RelayServiceType,
- user?: UserService,
- nocap?: NocapService
}
export default class {
@@ -31,13 +27,17 @@ export default class {
private _initialized: boolean = false;
constructor(
- private adapters: IAdaptersArgument,
- private relayUrls: string[]
+ private _adapters: IAdaptersArgument,
+ // private relayUrls: string[]
) {
- if(adapters?.websocketAdapter)
- this.useAdapter(adapters.websocketAdapter)
- if(adapters?.cacheAdapter)
- this.useAdapter(adapters.cacheAdapter)
+ if(_adapters?.websocketAdapter)
+ this.useAdapter(_adapters.websocketAdapter)
+ if(_adapters?.cacheAdapter)
+ this.useAdapter(_adapters.cacheAdapter)
+ }
+
+ get adapters(): IAdaptersArgument {
+ return this._adapters;
}
get services(): Nip66Services {
diff --git a/libraries/nip66/src/index.ts b/libraries/nip66/src/index.ts
index 8333a017..a225a75e 100644
--- a/libraries/nip66/src/index.ts
+++ b/libraries/nip66/src/index.ts
@@ -5,5 +5,7 @@ export { CacheAdapter, type ICacheAdapter, type GeohashOptions } from './core/Ca
export { MonitorManager, type MonitorPriorities, type MonitorPriority } from './managers/MonitorManager';
export * from './factory/cache.shared.worker';
export type * from './interfaces/index';
+export { Service, type FetchOptions } from './services/Service';
-export default Base
\ No newline at end of file
+
+export default Base;
\ No newline at end of file
diff --git a/libraries/nip66/src/interfaces/index.ts b/libraries/nip66/src/interfaces/index.ts
index e665bfb3..82d92ede 100644
--- a/libraries/nip66/src/interfaces/index.ts
+++ b/libraries/nip66/src/interfaces/index.ts
@@ -3,4 +3,5 @@ export { type IEvent } from './INostrEvent';
export { type IWorkerGlobalScope } from './IWorkerGlobalScope';
export { type ISharedWorkerGlobalScope } from './ISharedWorkerGlobalScope';
export { type ICacheAdapterSharedWorkerCommand } from './ICacheAdapterSharedWorkerCommand';
-export * from './TISO13166';
\ No newline at end of file
+export { type IAdaptersArgument } from "./IAdaptersArgument";
+export * from './TISO13166';
diff --git a/libraries/nip66/src/models/Event.ts b/libraries/nip66/src/models/Event.ts
index b2e3b034..ddd90066 100644
--- a/libraries/nip66/src/models/Event.ts
+++ b/libraries/nip66/src/models/Event.ts
@@ -1,3 +1,6 @@
+import { isPRE, isRE } from "@base/utils";
+import { nip19 } from "nostr-tools";
+
export type IEvent = {
id: string;
pubkey: string;
@@ -8,11 +11,23 @@ export type IEvent = {
created_at: number | null;
}
+export type NostrEventOptions = {
+ relays: string[];
+}
+
+export const defaultNostrEventOptions: NostrEventOptions = { relays: [] };
+
export class NostrEvent implements IEvent{
protected _json: IEvent;
+ protected _options: NostrEventOptions;
- constructor(event: IEvent) {
+ constructor(event: IEvent, options?: NostrEventOptions) {
this._json = event;
+ this._options = options || defaultNostrEventOptions;
+ }
+
+ get isComment(): boolean {
+ return this.kind === 1 && this.tags.some((tag: string[]) => tag[0] === 'e');
}
get id(): string {
@@ -50,6 +65,42 @@ export class NostrEvent implements IEvent{
get json(): IEvent {
return this._json;
}
+
+ get relays(): string[] {
+ return this._options.relays;
+ }
+
+ get reference(): `naddr1${string}` | `nevent1${string}` {
+ if(isPRE(this.json) || isRE(this.json)) {
+ return this.naddr
+ }
+ else {
+ return this.nevent
+ }
+ }
+
+ get naddr() {
+ const { pubkey, kind, relays } = this;
+ const identifier = this.tags.find((tag: string[]) => tag[0] === 'd')?.[1];
+ if(!identifier) throw new Error('No identifier found in event tags');
+ const pointer: nip19.AddressPointer = { identifier, pubkey, kind, relays }
+ return nip19.naddrEncode(pointer);
+ }
+
+ get nevent() {
+ const pointer: nip19.EventPointer = {
+ id: this.id,
+ relays: this.relays,
+ author: this.pubkey,
+ kind: this.kind
+ }
+ return nip19.neventEncode(pointer);
+ }
+
+ get nnote() {
+ return nip19.noteEncode(this.id);
+ }
+
}
export type NostrTag = string[];
\ No newline at end of file
diff --git a/libraries/nip66/src/models/Monitor.ts b/libraries/nip66/src/models/Monitor.ts
index 967885ce..2745e0c2 100644
--- a/libraries/nip66/src/models/Monitor.ts
+++ b/libraries/nip66/src/models/Monitor.ts
@@ -1,17 +1,11 @@
import { type IEvent } from '@base/models';
import { StateManager } from '@base/managers/StateManager';
import { SyncRange, SyncRangeParameter, SyncStateManager } from '@base/managers/SyncStateManager';
-import { n66IEventToIMonitor } from '@base/transform';
import { Filter } from 'nostr-tools';
-import { EventEmitter } from 'tseep';
-import { Geocoded } from './Geocoded';
-import { NostrEvent } from './Event';
import { MonitorRegistration } from './MonitorRegistration';
import { MonitorCached } from '@base/managers/MonitorManager';
import { PubkeyProfile } from './PubkeyProfile';
import { PubkeyRelays } from './PubkeyRelays';
-import { ProfileBadges } from 'nostr-tools/kinds';
-
export enum RelayLiveness {
Online = 'ONLINE',
diff --git a/libraries/nip66/src/models/Nip66Event.ts b/libraries/nip66/src/models/Nip66Event.ts
index d51e79c0..8c823f2d 100644
--- a/libraries/nip66/src/models/Nip66Event.ts
+++ b/libraries/nip66/src/models/Nip66Event.ts
@@ -1,8 +1,7 @@
import { transformCheck } from "@base/transform/TransformCheck";
import { IEvent, NostrEvent, NostrTag } from "./Event";
-import { IGeocode } from "./Geocode";
import { Geocoded } from "./Geocoded";
-import { nip11 } from "nostr-tools";
+import { nip19 } from "nostr-tools";
import { Nip11, Nip11SubscriptionFees } from "./Nip11";
import { isPubkey } from "@base/utils/nostr";
@@ -92,6 +91,10 @@ export class Nip66Event extends Geocoded implements IEvent {
get relay(): string | null {
return this.tags.find((tag: NostrTag) => tag[0] === 'd')?.[1] || null;
}
+
+ get url(): string | null {
+ return this.relay;
+ }
get monitorPubkey(): string {
return this.pubkey;
@@ -205,6 +208,11 @@ export class Nip66Event extends Geocoded implements IEvent {
get banner(): string | null {
return this.nip11?.banner || null;
}
+
+ get nrelay(): string | null {
+ if(!this.url) return null;
+ return nip19.nrelayEncode(this.url)
+ }
}
\ No newline at end of file
diff --git a/libraries/nip66/src/services/MonitorService.ts b/libraries/nip66/src/services/MonitorService.ts
index 4a6beddb..0fee177b 100644
--- a/libraries/nip66/src/services/MonitorService.ts
+++ b/libraries/nip66/src/services/MonitorService.ts
@@ -1,25 +1,13 @@
-// src/services/MonitorService.ts
-
-import { ICacheAdapter } from '@base/core/CacheAdapter';
-import { Subscriber } from '@base/core/Subscriber';
-import { defaultWebsocketAdapterOptions, IWebsocketAdapter, SubscribeHandlers, WebsocketAdapterOptions, WebsocketRequestBody } from '@base/core/WebsocketAdapter';
+import { defaultWebsocketAdapterOptions, SubscribeHandlers, WebsocketAdapterOptions, WebsocketRequestBody } from '@base/core/WebsocketAdapter';
import { IEvent } from '@base/interfaces';
import { IAdaptersArgument } from '@base/interfaces/IAdaptersArgument';
-import { ICheck, IMonitor, Monitor } from '@base/models';
+import { Monitor } from '@base/models';
import { Filter } from 'nostr-tools';
import { MonitorManager } from '../managers/MonitorManager';
import { FetchOptions, Service } from './Service';
-import PQueue from 'p-queue';
-import { SyncStateManager } from '@base/managers/SyncStateManager';
import { StateManager } from '@base/managers/StateManager';
import { MonitorRegistration } from '@base/models/MonitorRegistration';
-export interface IGroupedRelays {
- userMeta?: string[];
- nip66?: string[];
-}
-
-
export interface MonitorFetchOptions extends WebsocketRequestBody {
alwaysCheckRelay?: boolean;
}
@@ -55,7 +43,7 @@ export class MonitorService extends Service {
get manager(){
return this._manager;
}
-
+
get monitors() {
return this.manager.monitorsMap;
diff --git a/libraries/nip66/src/services/NocapService.ts b/libraries/nip66/src/services/NocapService.ts
deleted file mode 100644
index f9761417..00000000
--- a/libraries/nip66/src/services/NocapService.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export class NocapService {
- private _worker?: Worker;
-
- constructor() {}
-
- get worker(): Worker | undefined {
- return this._worker;
- }
-
- private set worker(worker: Worker) {
- this._worker = worker;
- }
-
- async init(): Promise
{}
-
-}
\ No newline at end of file
diff --git a/libraries/nip66/src/services/Service.ts b/libraries/nip66/src/services/Service.ts
index 49304097..3e92c05f 100644
--- a/libraries/nip66/src/services/Service.ts
+++ b/libraries/nip66/src/services/Service.ts
@@ -17,6 +17,11 @@ export interface FetchOptions extends WebsocketRequestBody {
sync?: boolean;
}
+export type ServiceAdaptersTypes = {
+ cache: ICacheAdapter;
+ websocket: IWebsocketAdapter;
+}
+
export class Service {
protected cacheAdapter: ICacheAdapter;
protected websocketAdapter: IWebsocketAdapter;
@@ -28,6 +33,10 @@ export class Service {
this.websocketAdapter = adapters.websocketAdapter;
}
+ get adapter(): ServiceAdaptersTypes {
+ return { cache: this.cacheAdapter, websocket: this.websocketAdapter };
+ }
+
get nip66Relays(): string[] {
return this._groupedRelays?.nip66 || [];
}
diff --git a/libraries/nip66/src/services/UserService.ts b/libraries/nip66/src/services/UserService.ts
deleted file mode 100644
index b419c7d2..00000000
--- a/libraries/nip66/src/services/UserService.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Service } from "./Service";
-
-export class UserService extends Service {}
\ No newline at end of file
diff --git a/libraries/nip66/src/services/index.ts b/libraries/nip66/src/services/index.ts
index 2784be9c..b3f069be 100644
--- a/libraries/nip66/src/services/index.ts
+++ b/libraries/nip66/src/services/index.ts
@@ -1,2 +1,4 @@
export * from './MonitorService';
-export * from './RelayService';
\ No newline at end of file
+export * from './RelayService';
+export * from './AuditorService';
+export * from './Service';
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 09d9f0ca..3ae3dbe4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -473,6 +473,13 @@ __metadata:
languageName: node
linkType: hard
+"@bufbuild/protobuf@npm:^2.0.0":
+ version: 2.2.3
+ resolution: "@bufbuild/protobuf@npm:2.2.3"
+ checksum: 10c0/546c38b924c4a8dd79ec457928cfb99a5aab2945d11f15f4f06894bdc148ea37a1ae8b78cf17de9bb5354cbb896f6af4099073690b5b2089e1b196cec963d6ec
+ languageName: node
+ linkType: hard
+
"@bull-board/api@npm:5.21.5":
version: 5.21.5
resolution: "@bull-board/api@npm:5.21.5"
@@ -2826,10 +2833,12 @@ __metadata:
compress-json: "npm:^3.1.0"
country-code-to-flag-emoji: "npm:^1.3.3"
dexie: "npm:^4.0.8"
+ dompurify: "npm:^3.2.3"
gh-pages: "npm:^6.2.0"
http-proxy-middleware: "npm:^3.0.3"
lodash: "npm:^4.17.21"
lucide-svelte: "npm:^0.462.0"
+ marked: "npm:^15.0.3"
minisearch: "npm:^7.1.0"
node-fetch: "npm:^3.3.2"
nostr-tools: "npm:^2.10.3"
@@ -2840,12 +2849,15 @@ __metadata:
prettier-plugin-tailwindcss: "npm:^0.6.4"
publint: "npm:^0.2.0"
radix-svelte: "npm:^0.9.0"
+ sass-embedded: "npm:^1.82.0"
serve: "npm:^14.2.4"
surrealdb: "npm:^1.0.6"
svelte: "npm:^5.2.7"
+ svelte-bricks: "npm:^0.2.1"
svelte-check: "npm:^3.6.0"
svelte-geolocation: "npm:^1.0.0"
svelte-headless-table: "npm:^0.18.3"
+ svelte-masonry: "npm:^0.1.1"
svelte-preprocess: "npm:^6.0.3"
svelte-radix: "npm:^1.1.0"
svelte-time: "npm:^0.9.0"
@@ -2854,13 +2866,14 @@ __metadata:
tailwind-variants: "npm:^0.2.1"
tailwindcss: "npm:^3.4.4"
tslib: "npm:^2.4.1"
- typescript: "npm:^5.0.0"
+ typescript: "npm:^5.7.2"
vite: "npm:^5.0.11"
vite-plugin-compression: "npm:^0.5.1"
vite-plugin-copy: "npm:^0.1.6"
vite-plugin-top-level-await: "npm:^1.4.4"
vite-plugin-wasm: "npm:^3.3.0"
vitest: "npm:^2.0.0"
+ webcoreui: "npm:^0.8.1"
peerDependencies:
svelte: ^5
languageName: unknown
@@ -5937,6 +5950,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/trusted-types@npm:^2.0.7":
+ version: 2.0.7
+ resolution: "@types/trusted-types@npm:2.0.7"
+ checksum: 10c0/4c4855f10de7c6c135e0d32ce462419d8abbbc33713b31d294596c0cc34ae1fa6112a2f9da729c8f7a20707782b0d69da3b1f8df6645b0366d08825ca1522e0c
+ languageName: node
+ linkType: hard
+
"@types/unist@npm:*, @types/unist@npm:^3.0.0":
version: 3.0.3
resolution: "@types/unist@npm:3.0.3"
@@ -7406,7 +7426,7 @@ __metadata:
languageName: node
linkType: hard
-"aria-query@npm:^5.3.1":
+"aria-query@npm:^5.3.0, aria-query@npm:^5.3.1":
version: 5.3.2
resolution: "aria-query@npm:5.3.2"
checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e
@@ -7618,7 +7638,7 @@ __metadata:
languageName: node
linkType: hard
-"axobject-query@npm:^4.1.0":
+"axobject-query@npm:^4.0.0, axobject-query@npm:^4.1.0":
version: 4.1.0
resolution: "axobject-query@npm:4.1.0"
checksum: 10c0/c470e4f95008f232eadd755b018cb55f16c03ccf39c027b941cd8820ac6b68707ce5d7368a46756db4256fbc91bb4ead368f84f7fb034b2b7932f082f6dc0775
@@ -7982,6 +8002,13 @@ __metadata:
languageName: node
linkType: hard
+"buffer-builder@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "buffer-builder@npm:0.2.0"
+ checksum: 10c0/e50c3a379f4acaea75ade1ee3e8c07ed6d7c5dfc3f98adbcf0159bfe1a4ce8ca1fe3689e861fcdb3fcef0012ebd4345a6112a5b8a1185295452bb66d7b6dc8a1
+ languageName: node
+ linkType: hard
+
"buffer-crc32@npm:^1.0.0":
version: 1.0.0
resolution: "buffer-crc32@npm:1.0.0"
@@ -8538,6 +8565,19 @@ __metadata:
languageName: node
linkType: hard
+"code-red@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "code-red@npm:1.0.4"
+ dependencies:
+ "@jridgewell/sourcemap-codec": "npm:^1.4.15"
+ "@types/estree": "npm:^1.0.1"
+ acorn: "npm:^8.10.0"
+ estree-walker: "npm:^3.0.3"
+ periscopic: "npm:^3.1.0"
+ checksum: 10c0/1309f062369ae520c422d7f45b93190faea2cbc7e3fe3375918f36bb394030d0936d940601426564c30abc71b8aa8e6d1505cccd67a8620183fb01c84bcb7304
+ languageName: node
+ linkType: hard
+
"collect-v8-coverage@npm:^1.0.0":
version: 1.0.2
resolution: "collect-v8-coverage@npm:1.0.2"
@@ -8620,6 +8660,13 @@ __metadata:
languageName: node
linkType: hard
+"colorjs.io@npm:^0.5.0":
+ version: 0.5.2
+ resolution: "colorjs.io@npm:0.5.2"
+ checksum: 10c0/2e6ea43629e325e721b92429239de3a6f42fb6d88ba6e4c2aeff0288c196d876f2f7ee82aea95bd40072d5cdc8cb87f042f4d94c134dcabf0e34a717e4caacb9
+ languageName: node
+ linkType: hard
+
"colorspace@npm:1.1.x":
version: 1.1.4
resolution: "colorspace@npm:1.1.4"
@@ -9009,6 +9056,16 @@ __metadata:
languageName: node
linkType: hard
+"css-tree@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "css-tree@npm:2.3.1"
+ dependencies:
+ mdn-data: "npm:2.0.30"
+ source-map-js: "npm:^1.0.1"
+ checksum: 10c0/6f8c1a11d5e9b14bf02d10717fc0351b66ba12594166f65abfbd8eb8b5b490dd367f5c7721db241a3c792d935fc6751fbc09f7e1598d421477ad9fadc30f4f24
+ languageName: node
+ linkType: hard
+
"csscolorparser@npm:~1.0.3":
version: 1.0.3
resolution: "csscolorparser@npm:1.0.3"
@@ -9861,6 +9918,18 @@ __metadata:
languageName: node
linkType: hard
+"dompurify@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "dompurify@npm:3.2.3"
+ dependencies:
+ "@types/trusted-types": "npm:^2.0.7"
+ dependenciesMeta:
+ "@types/trusted-types":
+ optional: true
+ checksum: 10c0/0ce5cb89b76f396d800751bcb48e0d137792891d350ccc049f1bc9a5eca7332cc69030c25007ff4962e0824a5696904d4d74264df9277b5ad955642dfb6f313f
+ languageName: node
+ linkType: hard
+
"dotenv-expand@npm:~11.0.6":
version: 11.0.7
resolution: "dotenv-expand@npm:11.0.7"
@@ -11182,7 +11251,7 @@ __metadata:
languageName: node
linkType: hard
-"estree-walker@npm:^3.0.3":
+"estree-walker@npm:^3.0.0, estree-walker@npm:^3.0.3":
version: 3.0.3
resolution: "estree-walker@npm:3.0.3"
dependencies:
@@ -12704,6 +12773,13 @@ __metadata:
languageName: node
linkType: hard
+"immutable@npm:^5.0.2":
+ version: 5.0.3
+ resolution: "immutable@npm:5.0.3"
+ checksum: 10c0/3269827789e1026cd25c2ea97f0b2c19be852ffd49eda1b674b20178f73d84fa8d945ad6f5ac5bc4545c2b4170af9f6e1f77129bc1cae7974a4bf9b04a9cdfb9
+ languageName: node
+ linkType: hard
+
"import-fresh@npm:^3.2.1":
version: 3.3.0
resolution: "import-fresh@npm:3.3.0"
@@ -13165,7 +13241,7 @@ __metadata:
languageName: node
linkType: hard
-"is-reference@npm:^3.0.3":
+"is-reference@npm:^3.0.0, is-reference@npm:^3.0.1, is-reference@npm:^3.0.3":
version: 3.0.3
resolution: "is-reference@npm:3.0.3"
dependencies:
@@ -14836,6 +14912,15 @@ __metadata:
languageName: node
linkType: hard
+"magic-string@npm:^0.30.4":
+ version: 0.30.14
+ resolution: "magic-string@npm:0.30.14"
+ dependencies:
+ "@jridgewell/sourcemap-codec": "npm:^1.5.0"
+ checksum: 10c0/c52c2a6e699dfa8a840e13154da35464a40cd8b07049b695a8b282883b0426c0811af1e36ac26860b4267289340b42772c156a5608e87be97b63d510e617e87a
+ languageName: node
+ linkType: hard
+
"magicast@npm:^0.3.3":
version: 0.3.5
resolution: "magicast@npm:0.3.5"
@@ -14976,6 +15061,15 @@ __metadata:
languageName: node
linkType: hard
+"marked@npm:^15.0.3":
+ version: 15.0.3
+ resolution: "marked@npm:15.0.3"
+ bin:
+ marked: bin/marked.js
+ checksum: 10c0/2e08d50b2ad96509a8ca93a5b57e9c7bf64ea44c8f504392191955dac5b117996ee39ceaafe0330e87a3bd93f7af5942bb87ef9bf55664a8d660012e7a43c3cc
+ languageName: node
+ linkType: hard
+
"md5-hex@npm:^3.0.1":
version: 3.0.1
resolution: "md5-hex@npm:3.0.1"
@@ -15013,6 +15107,13 @@ __metadata:
languageName: node
linkType: hard
+"mdn-data@npm:2.0.30":
+ version: 2.0.30
+ resolution: "mdn-data@npm:2.0.30"
+ checksum: 10c0/a2c472ea16cee3911ae742593715aa4c634eb3d4b9f1e6ada0902aa90df13dcbb7285d19435f3ff213ebaa3b2e0c0265c1eb0e3fb278fda7f8919f046a410cd9
+ languageName: node
+ linkType: hard
+
"mdurl@npm:^2.0.0":
version: 2.0.0
resolution: "mdurl@npm:2.0.0"
@@ -16759,6 +16860,17 @@ __metadata:
languageName: node
linkType: hard
+"periscopic@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "periscopic@npm:3.1.0"
+ dependencies:
+ "@types/estree": "npm:^1.0.0"
+ estree-walker: "npm:^3.0.0"
+ is-reference: "npm:^3.0.0"
+ checksum: 10c0/fb5ce7cd810c49254cdf1cd3892811e6dd1a1dfbdf5f10a0a33fb7141baac36443c4cad4f0e2b30abd4eac613f6ab845c2bc1b7ce66ae9694c7321e6ada5bd96
+ languageName: node
+ linkType: hard
+
"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1":
version: 1.1.1
resolution: "picocolors@npm:1.1.1"
@@ -18415,6 +18527,15 @@ __metadata:
languageName: node
linkType: hard
+"rxjs@npm:^7.4.0":
+ version: 7.8.1
+ resolution: "rxjs@npm:7.8.1"
+ dependencies:
+ tslib: "npm:^2.1.0"
+ checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68
+ languageName: node
+ linkType: hard
+
"sade@npm:^1.7.3, sade@npm:^1.7.4, sade@npm:^1.8.1":
version: 1.8.1
resolution: "sade@npm:1.8.1"
@@ -18507,6 +18628,225 @@ __metadata:
languageName: node
linkType: hard
+"sass-embedded-android-arm64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-android-arm64@npm:1.82.0"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-android-arm@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-android-arm@npm:1.82.0"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"sass-embedded-android-ia32@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-android-ia32@npm:1.82.0"
+ conditions: os=android & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"sass-embedded-android-riscv64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-android-riscv64@npm:1.82.0"
+ conditions: os=android & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-android-x64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-android-x64@npm:1.82.0"
+ conditions: os=android & cpu=x64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-darwin-arm64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-darwin-arm64@npm:1.82.0"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-darwin-x64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-darwin-x64@npm:1.82.0"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-arm64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-arm64@npm:1.82.0"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-arm@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-arm@npm:1.82.0"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-ia32@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-ia32@npm:1.82.0"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-musl-arm64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-musl-arm64@npm:1.82.0"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-musl-arm@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-musl-arm@npm:1.82.0"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-musl-ia32@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-musl-ia32@npm:1.82.0"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-musl-riscv64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-musl-riscv64@npm:1.82.0"
+ conditions: os=linux & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-musl-x64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-musl-x64@npm:1.82.0"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-riscv64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-riscv64@npm:1.82.0"
+ conditions: os=linux & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-linux-x64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-linux-x64@npm:1.82.0"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-win32-arm64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-win32-arm64@npm:1.82.0"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"sass-embedded-win32-ia32@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-win32-ia32@npm:1.82.0"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"sass-embedded-win32-x64@npm:1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded-win32-x64@npm:1.82.0"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"sass-embedded@npm:^1.82.0":
+ version: 1.82.0
+ resolution: "sass-embedded@npm:1.82.0"
+ dependencies:
+ "@bufbuild/protobuf": "npm:^2.0.0"
+ buffer-builder: "npm:^0.2.0"
+ colorjs.io: "npm:^0.5.0"
+ immutable: "npm:^5.0.2"
+ rxjs: "npm:^7.4.0"
+ sass-embedded-android-arm: "npm:1.82.0"
+ sass-embedded-android-arm64: "npm:1.82.0"
+ sass-embedded-android-ia32: "npm:1.82.0"
+ sass-embedded-android-riscv64: "npm:1.82.0"
+ sass-embedded-android-x64: "npm:1.82.0"
+ sass-embedded-darwin-arm64: "npm:1.82.0"
+ sass-embedded-darwin-x64: "npm:1.82.0"
+ sass-embedded-linux-arm: "npm:1.82.0"
+ sass-embedded-linux-arm64: "npm:1.82.0"
+ sass-embedded-linux-ia32: "npm:1.82.0"
+ sass-embedded-linux-musl-arm: "npm:1.82.0"
+ sass-embedded-linux-musl-arm64: "npm:1.82.0"
+ sass-embedded-linux-musl-ia32: "npm:1.82.0"
+ sass-embedded-linux-musl-riscv64: "npm:1.82.0"
+ sass-embedded-linux-musl-x64: "npm:1.82.0"
+ sass-embedded-linux-riscv64: "npm:1.82.0"
+ sass-embedded-linux-x64: "npm:1.82.0"
+ sass-embedded-win32-arm64: "npm:1.82.0"
+ sass-embedded-win32-ia32: "npm:1.82.0"
+ sass-embedded-win32-x64: "npm:1.82.0"
+ supports-color: "npm:^8.1.1"
+ sync-child-process: "npm:^1.0.2"
+ varint: "npm:^6.0.0"
+ dependenciesMeta:
+ sass-embedded-android-arm:
+ optional: true
+ sass-embedded-android-arm64:
+ optional: true
+ sass-embedded-android-ia32:
+ optional: true
+ sass-embedded-android-riscv64:
+ optional: true
+ sass-embedded-android-x64:
+ optional: true
+ sass-embedded-darwin-arm64:
+ optional: true
+ sass-embedded-darwin-x64:
+ optional: true
+ sass-embedded-linux-arm:
+ optional: true
+ sass-embedded-linux-arm64:
+ optional: true
+ sass-embedded-linux-ia32:
+ optional: true
+ sass-embedded-linux-musl-arm:
+ optional: true
+ sass-embedded-linux-musl-arm64:
+ optional: true
+ sass-embedded-linux-musl-ia32:
+ optional: true
+ sass-embedded-linux-musl-riscv64:
+ optional: true
+ sass-embedded-linux-musl-x64:
+ optional: true
+ sass-embedded-linux-riscv64:
+ optional: true
+ sass-embedded-linux-x64:
+ optional: true
+ sass-embedded-win32-arm64:
+ optional: true
+ sass-embedded-win32-ia32:
+ optional: true
+ sass-embedded-win32-x64:
+ optional: true
+ bin:
+ sass: dist/bin/sass.js
+ checksum: 10c0/c7c938c25adb9167a7e8fa05a1e392e1e8dcc87e6948fbbc37f51c8e5ff5f8f026e2188b2fce8ce15c6e4d867a3857e97e7df0e09eb1a9662dd65338f4fee8a2
+ languageName: node
+ linkType: hard
+
"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0":
version: 3.3.0
resolution: "schema-utils@npm:3.3.0"
@@ -18924,7 +19264,7 @@ __metadata:
languageName: node
linkType: hard
-"source-map-js@npm:^1.2.0, source-map-js@npm:^1.2.1":
+"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.0, source-map-js@npm:^1.2.1":
version: 1.2.1
resolution: "source-map-js@npm:1.2.1"
checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
@@ -19482,7 +19822,7 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^8.0.0":
+"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1":
version: 8.1.1
resolution: "supports-color@npm:8.1.1"
dependencies:
@@ -19511,6 +19851,15 @@ __metadata:
languageName: node
linkType: hard
+"svelte-bricks@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "svelte-bricks@npm:0.2.1"
+ dependencies:
+ svelte: "npm:^4.2.1"
+ checksum: 10c0/480738a87a33217a819bbc4f94f8b4b914adf3275cf60843266a56e24f660eca8d4b27d62ef41d42ee3730577847f382d0ce5527afda682b6a4cb8fd4c6d40b3
+ languageName: node
+ linkType: hard
+
"svelte-check@npm:^3.6.0":
version: 3.8.6
resolution: "svelte-check@npm:3.8.6"
@@ -19558,6 +19907,15 @@ __metadata:
languageName: node
linkType: hard
+"svelte-masonry@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "svelte-masonry@npm:0.1.1"
+ peerDependencies:
+ svelte: ^4.0.0
+ checksum: 10c0/904c4d2908132cea45541fe2d517f5f80169dd8aa40fa40b2c8687dae9587e21badfe597ff33fd438341cc691020f4c6268e5fce99a157ef260ee7fd18c69ed8
+ languageName: node
+ linkType: hard
+
"svelte-preprocess@npm:^5.1.3":
version: 5.1.4
resolution: "svelte-preprocess@npm:5.1.4"
@@ -19702,6 +20060,28 @@ __metadata:
languageName: node
linkType: hard
+"svelte@npm:^4.2.1":
+ version: 4.2.19
+ resolution: "svelte@npm:4.2.19"
+ dependencies:
+ "@ampproject/remapping": "npm:^2.2.1"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.15"
+ "@jridgewell/trace-mapping": "npm:^0.3.18"
+ "@types/estree": "npm:^1.0.1"
+ acorn: "npm:^8.9.0"
+ aria-query: "npm:^5.3.0"
+ axobject-query: "npm:^4.0.0"
+ code-red: "npm:^1.0.3"
+ css-tree: "npm:^2.3.1"
+ estree-walker: "npm:^3.0.3"
+ is-reference: "npm:^3.0.1"
+ locate-character: "npm:^3.0.0"
+ magic-string: "npm:^0.30.4"
+ periscopic: "npm:^3.1.0"
+ checksum: 10c0/77700133e90f86da3072ebfd5e8546b4ebe7296424bd65f89a7247fbcbae5dc56f56d15154e2a929ee3aa7da018cb5d5db24b99b7cb72f0ba2db2ad966d603dc
+ languageName: node
+ linkType: hard
+
"svelte@npm:^5.2.7":
version: 5.2.7
resolution: "svelte@npm:5.2.7"
@@ -19723,6 +20103,22 @@ __metadata:
languageName: node
linkType: hard
+"sync-child-process@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "sync-child-process@npm:1.0.2"
+ dependencies:
+ sync-message-port: "npm:^1.0.0"
+ checksum: 10c0/f73c87251346fba28da8ac5bc8ed4c9474504a5250ab4bd44582beae8e25c230e0a5b7b16076488fee1aed39a1865de5ed4cec19c6fa4efdbb1081c514615170
+ languageName: node
+ linkType: hard
+
+"sync-message-port@npm:^1.0.0":
+ version: 1.1.3
+ resolution: "sync-message-port@npm:1.1.3"
+ checksum: 10c0/d259b08ab6da284135ba45bc13724268688b469371259f5978b2905e2c79342032b9240093b2483e83cfeccfd3a5e8300978e67090385f9b6b38941fcce1aec4
+ languageName: node
+ linkType: hard
+
"synckit@npm:^0.9.1":
version: 0.9.2
resolution: "synckit@npm:0.9.2"
@@ -20426,7 +20822,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.6.2, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1":
+"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.6.2, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1":
version: 2.8.1
resolution: "tslib@npm:2.8.1"
checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62
@@ -21120,6 +21516,13 @@ __metadata:
languageName: node
linkType: hard
+"varint@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "varint@npm:6.0.0"
+ checksum: 10c0/737fc37088a62ed3bd21466e318d21ca7ac4991d0f25546f518f017703be4ed0f9df1c5559f1dd533dddba4435a1b758fd9230e4772c1a930ef72b42f5c750fd
+ languageName: node
+ linkType: hard
+
"vary@npm:~1.1.2":
version: 1.1.2
resolution: "vary@npm:1.1.2"
@@ -21851,6 +22254,13 @@ __metadata:
languageName: node
linkType: hard
+"webcoreui@npm:^0.8.1":
+ version: 0.8.1
+ resolution: "webcoreui@npm:0.8.1"
+ checksum: 10c0/753e663c2032d22a64583f36ec5776816fab249d04fb8d11cd5c7a37531c0bef39b3b1616ebff04a4065a165bad1c1df3e07b728d85a525ad1c986177967032a
+ languageName: node
+ linkType: hard
+
"webidl-conversions@npm:^3.0.0":
version: 3.0.1
resolution: "webidl-conversions@npm:3.0.1"