From 04af90232bd1d8620fd438422d9ca15567477484 Mon Sep 17 00:00:00 2001 From: defunkt-dev Date: Thu, 25 Jun 2026 20:57:46 -0600 Subject: [PATCH 01/26] feat: init commits for marko-store --- .changeset/add-marko-store.md | 5 + knip.json | 4 + packages/marko-store/README.md | 77 ++++ packages/marko-store/eslint.config.js | 6 + packages/marko-store/marko.json | 1 + packages/marko-store/package.json | 72 ++++ packages/marko-store/src/index.ts | 1 + .../marko-store/src/tags/store-atom.marko | 23 + .../marko-store/src/tags/store-selector.marko | 73 ++++ .../tests/fixtures/atom-host.marko | 13 + .../tests/fixtures/selector-host.marko | 12 + .../selector-selector-swap-host.marko | 17 + .../fixtures/selector-source-swap-host.marko | 21 + .../marko-store/tests/fixtures/ssr-atom.marko | 5 + .../fixtures/ssr-object-antipattern.marko | 25 ++ .../tests/fixtures/ssr-selector.marko | 5 + .../marko-store/tests/fixtures/ssr-store.ts | 6 + packages/marko-store/tests/index.test.ts | 37 ++ packages/marko-store/tests/marko.d.ts | 14 + packages/marko-store/tests/setup.ts | 48 +++ packages/marko-store/tests/ssr.test.ts | 58 +++ packages/marko-store/tests/tags.test.ts | 129 ++++++ packages/marko-store/tsconfig.build.json | 7 + packages/marko-store/tsconfig.json | 9 + packages/marko-store/tsdown.config.ts | 18 + packages/marko-store/vitest.config.ts | 18 + pnpm-lock.yaml | 402 ++++++++++++++++++ 27 files changed, 1106 insertions(+) create mode 100644 .changeset/add-marko-store.md create mode 100644 packages/marko-store/README.md create mode 100644 packages/marko-store/eslint.config.js create mode 100644 packages/marko-store/marko.json create mode 100644 packages/marko-store/package.json create mode 100644 packages/marko-store/src/index.ts create mode 100644 packages/marko-store/src/tags/store-atom.marko create mode 100644 packages/marko-store/src/tags/store-selector.marko create mode 100644 packages/marko-store/tests/fixtures/atom-host.marko create mode 100644 packages/marko-store/tests/fixtures/selector-host.marko create mode 100644 packages/marko-store/tests/fixtures/selector-selector-swap-host.marko create mode 100644 packages/marko-store/tests/fixtures/selector-source-swap-host.marko create mode 100644 packages/marko-store/tests/fixtures/ssr-atom.marko create mode 100644 packages/marko-store/tests/fixtures/ssr-object-antipattern.marko create mode 100644 packages/marko-store/tests/fixtures/ssr-selector.marko create mode 100644 packages/marko-store/tests/fixtures/ssr-store.ts create mode 100644 packages/marko-store/tests/index.test.ts create mode 100644 packages/marko-store/tests/marko.d.ts create mode 100644 packages/marko-store/tests/setup.ts create mode 100644 packages/marko-store/tests/ssr.test.ts create mode 100644 packages/marko-store/tests/tags.test.ts create mode 100644 packages/marko-store/tsconfig.build.json create mode 100644 packages/marko-store/tsconfig.json create mode 100644 packages/marko-store/tsdown.config.ts create mode 100644 packages/marko-store/vitest.config.ts diff --git a/.changeset/add-marko-store.md b/.changeset/add-marko-store.md new file mode 100644 index 00000000..da19fc7d --- /dev/null +++ b/.changeset/add-marko-store.md @@ -0,0 +1,5 @@ +--- +"@tanstack/marko-store": minor +--- + +Add `@tanstack/marko-store`, a Marko 6 adapter for TanStack Store. It provides the `` and `` tags — the Marko equivalents of the `useSelector` / `useStore` adapters — and re-exports the full `@tanstack/store` core. diff --git a/knip.json b/knip.json index 7b3bcfa8..5970b825 100644 --- a/knip.json +++ b/knip.json @@ -1,6 +1,10 @@ { "$schema": "https://unpkg.com/knip@5/schema.json", "workspaces": { + "packages/marko-store": { + "entry": ["src/index.ts", "src/tags/**/*.marko"], + "ignoreDependencies": ["marko", "@marko/vite"] + }, "packages/vue-store": { "ignoreDependencies": ["vue2", "vue2.7"] } diff --git a/packages/marko-store/README.md b/packages/marko-store/README.md new file mode 100644 index 00000000..f5f97b59 --- /dev/null +++ b/packages/marko-store/README.md @@ -0,0 +1,77 @@ +# @tanstack/marko-store + +Marko 6 adapter for [TanStack Store](https://tanstack.com/store). + +This package re-exports the entire `@tanstack/store` core and adds two Marko +tags that subscribe a component to a store and re-render only when the value +you select actually changes. + +## Installation + +```sh +npm install @tanstack/store @tanstack/marko-store +``` + +`marko` is a peer dependency (`^6`). + +## Sources are always passed as thunks + +Every tag takes its source through a `from` function — `from=(() => store)`, +never `from=store`. A registered function keeps the (non-serializable) store +inside its closure, which is what lets a component resume on the client after +server rendering. Passing the store object directly would put it into +serializable component state and break resume. `from` must return the same +store instance every call (don't create the store inside the thunk). + +## `` + +Reads a value out of any store or atom and keeps it in sync. With a `selector`, +the tag re-renders only when the selected slice changes. + +```marko +import { createStore } from "@tanstack/store" + +static const store = createStore({ count: 0, name: "Ada" }) + + store) selector=(s => s.count)> +

Count: ${count}

+
+``` + +| Attribute | Required | Description | +| ---------- | -------- | ------------------------------------------------------------------ | +| `from` | yes | Thunk returning the store/atom (`() => store`). | +| `selector` | no | Maps the snapshot to the slice you want. Defaults to the snapshot. | +| `compare` | no | Equality check for the selected slice. Defaults to `===`. | + +Without a `selector` it tracks the whole snapshot. The tag returns the selected +value, so `` binds `x` for use in the body. + +## `` + +Two-way binding for an atom created with `createAtom`. The returned value is +writable: assigning it calls the atom's setter. + +```marko +import { createAtom } from "@tanstack/store" + +static const count = createAtom(0) + + count)> + + +``` + +| Attribute | Required | Description | +| --------- | -------- | ------------------------------------ | +| `from` | yes | Thunk returning the atom (`() => a`). | + +`` is for atoms (it writes via `.set`). For a writable `Store`, read +it with `` and write with `store.setState(...)` directly. + +> Burst writes in a single tick collapse to one update. To apply several +> dependent updates synchronously, use the updater form: `atom.set(p => p + 1)`. + +## License + +MIT diff --git a/packages/marko-store/eslint.config.js b/packages/marko-store/eslint.config.js new file mode 100644 index 00000000..6f7e1f4a --- /dev/null +++ b/packages/marko-store/eslint.config.js @@ -0,0 +1,6 @@ +// @ts-check + +import { defineConfig } from 'eslint/config' +import rootConfig from '../../eslint.config.js' + +export default defineConfig([...rootConfig]) diff --git a/packages/marko-store/marko.json b/packages/marko-store/marko.json new file mode 100644 index 00000000..82bf8ffd --- /dev/null +++ b/packages/marko-store/marko.json @@ -0,0 +1 @@ +{ "tags-dir": "./src/tags", "script-lang": "ts" } diff --git a/packages/marko-store/package.json b/packages/marko-store/package.json new file mode 100644 index 00000000..46fac8db --- /dev/null +++ b/packages/marko-store/package.json @@ -0,0 +1,72 @@ +{ + "name": "@tanstack/marko-store", + "version": "0.11.0", + "description": "Framework agnostic type-safe store w/ reactive framework adapters", + "author": "Tanner Linsley", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/store.git", + "directory": "packages/marko-store" + }, + "homepage": "https://tanstack.com/store", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "keywords": [ + "store", + "marko", + "typescript" + ], + "scripts": { + "clean": "premove ./dist ./coverage", + "test:eslint": "eslint ./src ./tests", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js", + "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js", + "test:types:ts58": "node ../../node_modules/typescript58/lib/tsc.js", + "test:types:ts59": "tsc", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch", + "test:build": "publint --strict", + "build": "tsdown --tsconfig tsconfig.build.json" + }, + "type": "module", + "types": "./dist/index.d.ts", + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + }, + "./package.json": "./package.json", + "./marko.json": "./marko.json", + "./src/tags/*": "./src/tags/*" + }, + "sideEffects": false, + "files": [ + "dist", + "src/tags", + "marko.json", + "README.md" + ], + "dependencies": { + "@tanstack/store": "workspace:*" + }, + "devDependencies": { + "@marko/vite": "^6", + "@testing-library/dom": "^10.4.0", + "marko": "^6" + }, + "peerDependencies": { + "marko": "^6" + } +} diff --git a/packages/marko-store/src/index.ts b/packages/marko-store/src/index.ts new file mode 100644 index 00000000..877b23ea --- /dev/null +++ b/packages/marko-store/src/index.ts @@ -0,0 +1 @@ +export * from '@tanstack/store' diff --git a/packages/marko-store/src/tags/store-atom.marko b/packages/marko-store/src/tags/store-atom.marko new file mode 100644 index 00000000..845c04a3 --- /dev/null +++ b/packages/marko-store/src/tags/store-atom.marko @@ -0,0 +1,23 @@ +export interface Input { + from: () => { + get(): T + set(value: T | ((prev: T) => T)): void + subscribe(listener: (value: T) => void): { unsubscribe(): void } + } +} + + + + void) | null }> + onMount() { + this.unsub = input.from().subscribe((next) => { + value = next as any + }).unsubscribe + } + onDestroy() { + this.unsub?.() + this.unsub = null + } +/> + + diff --git a/packages/marko-store/src/tags/store-selector.marko b/packages/marko-store/src/tags/store-selector.marko new file mode 100644 index 00000000..a8798eb1 --- /dev/null +++ b/packages/marko-store/src/tags/store-selector.marko @@ -0,0 +1,73 @@ +export interface Input { + from: () => { + get(): TSource + subscribe(listener: (value: TSource) => void): { unsubscribe(): void } + } + selector?: (snapshot: TSource) => TSelected + compare?: (a: TSelected, b: TSelected) => boolean +} + + a === b)/> + snapshot))/> + + + void) | null + src: ReturnType["from"]> | null + sel: Input["selector"] + last: unknown +}> + onMount() { + const source = input.from() + this.src = source + this.sel = input.selector + const selector = input.selector ?? ((snapshot: any) => snapshot) + this.last = selector(source.get()) + value = this.last as any + this.unsub = source.subscribe((snapshot) => { + const sel = input.selector ?? ((s: any) => s) + const cmp = input.compare ?? defaultCompare + const next = sel(snapshot) + if (!cmp(this.last as any, next)) { + this.last = next + value = next as any + } + }).unsubscribe + } + + onUpdate() { + const source = input.from() + const selector = input.selector ?? ((snapshot: any) => snapshot) + const cmp = input.compare ?? defaultCompare + if (source !== this.src) { + this.unsub?.() + this.src = source + this.sel = input.selector + this.last = selector(source.get()) + value = this.last as any + this.unsub = source.subscribe((snapshot) => { + const sel = input.selector ?? ((s: any) => s) + const c = input.compare ?? defaultCompare + const next = sel(snapshot) + if (!c(this.last as any, next)) { + this.last = next + value = next as any + } + }).unsubscribe + } else if (input.selector !== this.sel) { + this.sel = input.selector + const next = selector(source.get()) + if (!cmp(this.last as any, next)) { + this.last = next + value = next as any + } + } + } + + onDestroy() { + this.unsub?.() + this.unsub = null + } +/> + + diff --git a/packages/marko-store/tests/fixtures/atom-host.marko b/packages/marko-store/tests/fixtures/atom-host.marko new file mode 100644 index 00000000..43f4a0c4 --- /dev/null +++ b/packages/marko-store/tests/fixtures/atom-host.marko @@ -0,0 +1,13 @@ +import StoreAtom from "../../src/tags/store-atom.marko" + +export interface Input { + from: () => { + get(): any + set(value: any): void + subscribe(listener: (value: any) => void): { unsubscribe(): void } + } +} + + +
${value}
+ diff --git a/packages/marko-store/tests/fixtures/selector-host.marko b/packages/marko-store/tests/fixtures/selector-host.marko new file mode 100644 index 00000000..ca5cc62c --- /dev/null +++ b/packages/marko-store/tests/fixtures/selector-host.marko @@ -0,0 +1,12 @@ +import StoreSelector from "../../src/tags/store-selector.marko" + +export interface Input { + from: () => { + get(): any + subscribe(listener: (value: any) => void): { unsubscribe(): void } + } + selector?: (snapshot: any) => any +} + + +
${value}
diff --git a/packages/marko-store/tests/fixtures/selector-selector-swap-host.marko b/packages/marko-store/tests/fixtures/selector-selector-swap-host.marko new file mode 100644 index 00000000..127a75e2 --- /dev/null +++ b/packages/marko-store/tests/fixtures/selector-selector-swap-host.marko @@ -0,0 +1,17 @@ +import StoreSelector from "../../src/tags/store-selector.marko" + +// Keeps one source but toggles the selector. Flipping it leaves the source equal +// (source === this.src) and changes input.selector, so the tag's onUpdate takes +// the re-seed branch (input.selector !== this.sel). +export interface Input { + from: () => { + get(): any + subscribe(listener: (value: any) => void): { unsubscribe(): void } + } +} + + + s.other) : ((s) => s.count))/> + +
${value}
+ diff --git a/packages/marko-store/tests/fixtures/selector-source-swap-host.marko b/packages/marko-store/tests/fixtures/selector-source-swap-host.marko new file mode 100644 index 00000000..0ea5435c --- /dev/null +++ b/packages/marko-store/tests/fixtures/selector-source-swap-host.marko @@ -0,0 +1,21 @@ +import StoreSelector from "../../src/tags/store-selector.marko" + +// Toggles which of two stores is passed to through `from`. +// Flipping the toggle changes the resolved source, so the tag's onUpdate takes +// the resubscribe-and-re-seed branch (source !== this.src). +export interface Input { + storeA: { + get(): any + subscribe(listener: (value: any) => void): { unsubscribe(): void } + } + storeB: { + get(): any + subscribe(listener: (value: any) => void): { unsubscribe(): void } + } +} + + + + active) selector=(s => s.count)/> +
${value}
+ diff --git a/packages/marko-store/tests/fixtures/ssr-atom.marko b/packages/marko-store/tests/fixtures/ssr-atom.marko new file mode 100644 index 00000000..78e00876 --- /dev/null +++ b/packages/marko-store/tests/fixtures/ssr-atom.marko @@ -0,0 +1,5 @@ +import { countAtom } from "./ssr-store" +import StoreAtom from "../../src/tags/store-atom.marko" + + countAtom)/> +
${value}
diff --git a/packages/marko-store/tests/fixtures/ssr-object-antipattern.marko b/packages/marko-store/tests/fixtures/ssr-object-antipattern.marko new file mode 100644 index 00000000..5cb018ca --- /dev/null +++ b/packages/marko-store/tests/fixtures/ssr-object-antipattern.marko @@ -0,0 +1,25 @@ +// Anti-pattern on purpose: the store arrives as a bare OBJECT attribute and is +// captured in a client-resumable lifecycle closure. The serializer walks the +// attribute value (a Store instance) and rejects. This is the failure the thunk +// channel exists to avoid; the real tags never trigger it because they only ever +// close over the registered `from` function. +export interface Input { + store: { + get(): any + subscribe(listener: (value: any) => void): { unsubscribe(): void } + } +} + + + void) | null }> + onMount() { + this.unsub = input.store.subscribe((next) => { + value = next + }).unsubscribe + } + onDestroy() { + this.unsub?.() + this.unsub = null + } +/> +
${JSON.stringify(value)}
diff --git a/packages/marko-store/tests/fixtures/ssr-selector.marko b/packages/marko-store/tests/fixtures/ssr-selector.marko new file mode 100644 index 00000000..18a12f98 --- /dev/null +++ b/packages/marko-store/tests/fixtures/ssr-selector.marko @@ -0,0 +1,5 @@ +import { counterStore } from "./ssr-store" +import StoreSelector from "../../src/tags/store-selector.marko" + + counterStore) selector=(s => s.count)/> +
${count}
diff --git a/packages/marko-store/tests/fixtures/ssr-store.ts b/packages/marko-store/tests/fixtures/ssr-store.ts new file mode 100644 index 00000000..b1c6949c --- /dev/null +++ b/packages/marko-store/tests/fixtures/ssr-store.ts @@ -0,0 +1,6 @@ +import { createAtom, createStore } from '../../src/index' + +// Module singletons so the SSR fixtures' inline thunks close over a stable, +// compiler-registered reference (see ssr.test.ts header for why this matters). +export const counterStore = createStore({ count: 5, other: 0 }) +export const countAtom = createAtom(7) diff --git a/packages/marko-store/tests/index.test.ts b/packages/marko-store/tests/index.test.ts new file mode 100644 index 00000000..4a87c746 --- /dev/null +++ b/packages/marko-store/tests/index.test.ts @@ -0,0 +1,37 @@ +import { describe, expect, test } from 'vitest' +import { + ReadonlyStore, + Store, + batch, + createAsyncAtom, + createAtom, + createStore, + flush, + shallow, + toObserver, +} from '../src/index' + +describe('@tanstack/marko-store re-exports @tanstack/store', () => { + test('store constructors are present', () => { + expect(typeof createStore).toBe('function') + expect(typeof Store).toBe('function') + expect(typeof ReadonlyStore).toBe('function') + }) + + test('atom constructors are present', () => { + expect(typeof createAtom).toBe('function') + expect(typeof createAsyncAtom).toBe('function') + }) + + test('utilities are present', () => { + for (const fn of [batch, flush, shallow, toObserver]) { + expect(typeof fn).toBe('function') + } + }) + + test('a re-exported store actually works', () => { + const store = createStore({ n: 1 }) + store.setState((prev) => ({ n: prev.n + 1 })) + expect(store.get().n).toBe(2) + }) +}) diff --git a/packages/marko-store/tests/marko.d.ts b/packages/marko-store/tests/marko.d.ts new file mode 100644 index 00000000..8e45baed --- /dev/null +++ b/packages/marko-store/tests/marko.d.ts @@ -0,0 +1,14 @@ +// Ambient declaration for *.marko template imports in tests. +// @marko/vite compiles .marko files to browser templates exposing mount(); the +// SSR (node-environment) tests additionally use the server template's render(), +// for which they cast the import to `any`. We declare the minimal browser shape +// here so the .ts test files type-check without the full Marko language toolchain. +declare module '*.marko' { + const template: { + mount: ( + input: Record, + container: Element | DocumentFragment, + ) => { destroy: () => void } + } + export default template +} diff --git a/packages/marko-store/tests/setup.ts b/packages/marko-store/tests/setup.ts new file mode 100644 index 00000000..9f8bc9d5 --- /dev/null +++ b/packages/marko-store/tests/setup.ts @@ -0,0 +1,48 @@ +/** + * Marko scheduler polyfills for jsdom. + * + * Marko 6's scheduler (schedule.ts) walks queueMicrotask -> requestAnimationFrame + * -> MessageChannel. jsdom's rAF and MessageChannel are unreliable: rAF may never + * fire and MessageChannel may not integrate with the event loop. Without these, + * the module-level `isScheduled` flag sticks after the first scheduled render and + * every later update queues but never flushes. These mirror Marko's own test + * infrastructure (runtime-tags create-browser.ts), as does @tanstack/marko-query. + */ + +if (typeof window !== 'undefined') { + // requestAnimationFrame: batch callbacks, fire on the next macrotask. + let queue: Array | undefined + ;(window as any).requestAnimationFrame = function requestAnimationFrame( + fn: FrameRequestCallback, + ) { + if (queue) { + queue.push(fn) + } else { + queue = [fn] + setTimeout(() => { + const timestamp = performance.now() + const batch = queue! + queue = undefined + for (const cb of batch) cb(timestamp) + }) + } + return 0 + } + ;(window as any).cancelAnimationFrame = () => {} + + // MessageChannel: postMessage -> setImmediate -> queueMicrotask. + ;(window as any).MessageChannel = class MessageChannel { + port1: any + port2: any + constructor() { + this.port1 = { onmessage() {} } + this.port2 = { + postMessage: () => { + setImmediate(() => { + window.queueMicrotask(this.port1.onmessage) + }) + }, + } + } + } +} diff --git a/packages/marko-store/tests/ssr.test.ts b/packages/marko-store/tests/ssr.test.ts new file mode 100644 index 00000000..4b55c8b8 --- /dev/null +++ b/packages/marko-store/tests/ssr.test.ts @@ -0,0 +1,58 @@ +// @vitest-environment node +// +// Server-render guard. The node environment is deliberate: vitest then uses +// @marko/vite's HTML (server) transform, so Marko's serializer actually runs -- +// the path the jsdom client-mount tests never touch, and where a non-serializable +// value would crash on resume. +// +// The positive cases prove the thunk channel (from={() => store}) survives SSR: +// the tag closes over the registered thunk function, so the store stays inside +// the closure and is never walked by the serializer. The SSR fixtures define the +// thunk INLINE (compiler-registered) over a module-singleton store -- a thunk +// created in this .ts file would itself be an unregistered function and fail to +// serialize. +// +// The keystone guard proves the failure mode the thunk channel exists to avoid: +// a store passed as a bare OBJECT attribute is captured in a resumable closure, +// the attribute value is walked, and serialization rejects. + +import { describe, expect, it } from 'vitest' +import SsrSelector from './fixtures/ssr-selector.marko' +import SsrAtom from './fixtures/ssr-atom.marko' +import SsrObjectAntipattern from './fixtures/ssr-object-antipattern.marko' +import { counterStore } from './fixtures/ssr-store' + +async function renderToString( + template: any, + input: Record, +): Promise { + let out = '' + for await (const chunk of template.render(input)) out += String(chunk) + return out +} + +const cell = (html: string, id: string): string | null => { + const m = html.match(new RegExp(`data-testid=["']?${id}["']?>([^<]*)`)) + return m?.[1] ?? null +} + +describe('SSR render — thunk channel', () => { + it(' renders server-side and seeds the selected value', async () => { + await expect(renderToString(SsrSelector, {})).resolves.toBeTypeOf('string') + const html = await renderToString(SsrSelector, {}) + expect(cell(html, 'count')).toBe('5') + }) + + it(' renders server-side and seeds the value', async () => { + const html = await renderToString(SsrAtom, {}) + expect(cell(html, 'value')).toBe('7') + }) +}) + +describe('SSR keystone guard — why sources must be thunks', () => { + it('rejects when a store is passed as a bare object attribute', async () => { + await expect( + renderToString(SsrObjectAntipattern, { store: counterStore }), + ).rejects.toThrow(/serialize/i) + }) +}) diff --git a/packages/marko-store/tests/tags.test.ts b/packages/marko-store/tests/tags.test.ts new file mode 100644 index 00000000..14d1a094 --- /dev/null +++ b/packages/marko-store/tests/tags.test.ts @@ -0,0 +1,129 @@ +/** + * Tag-level integration tests for and . + * + * We call template.mount() directly (the Marko 6 DOM API) instead of using + * @marko/testing-library: its v6 detection (`!template.renderSync`) misfires on + * Marko 6 browser templates — which DO have renderSync — and takes the Marko + * 3/4 path, calling a render() that browser templates don't expose. The same + * workaround is used by @tanstack/marko-virtual. @marko/vite compiles the .marko + * fixtures to browser templates in jsdom, and waitFor() retries until Marko's + * rAF-based reactive flush completes. + * + * Each test creates a FRESH store/atom and passes it as a thunk (from: () => x). + * Client mounts never serialize, so a test-created thunk is fine here; the SSR + * tests (ssr.test.ts) cover the resume/serialization path separately. + */ + +import { afterEach, describe, expect, test } from 'vitest' +import { waitFor } from '@testing-library/dom' +import { createAtom, createStore } from '../src/index' +import SelectorHostTemplate from './fixtures/selector-host.marko' +import AtomHostTemplate from './fixtures/atom-host.marko' +import SourceSwapHostTemplate from './fixtures/selector-source-swap-host.marko' +import SelectorSwapHostTemplate from './fixtures/selector-selector-swap-host.marko' + +const SelectorHost = SelectorHostTemplate as any +const AtomHost = AtomHostTemplate as any +const SourceSwapHost = SourceSwapHostTemplate as any +const SelectorSwapHost = SelectorSwapHostTemplate as any + +const instances: Array<{ destroy: () => void }> = [] + +function mount(Template: any, input: Record = {}) { + const container = document.createElement('div') + document.body.appendChild(container) + instances.push(Template.mount(input, container)) + return container +} + +afterEach(() => { + instances.forEach((i) => i.destroy()) + instances.length = 0 + document.body.innerHTML = '' +}) + +const cell = (el: Element, id: string) => + el.querySelector(`[data-testid='${id}']`)?.textContent ?? null + +describe(' read path', () => { + test('seeds from the store and updates when the selected slice changes', async () => { + const store = createStore({ count: 5, other: 0 }) + const el = mount(SelectorHost, { + from: () => store, + selector: (s: { count: number }) => s.count, + }) + expect(cell(el, 'value')).toBe('5') + + store.setState((s) => ({ ...s, count: s.count + 1 })) + await waitFor(() => expect(cell(el, 'value')).toBe('6')) + }) + + test('dedupes when an unrelated field changes', async () => { + const store = createStore({ count: 5, other: 0 }) + const el = mount(SelectorHost, { + from: () => store, + selector: (s: { count: number }) => s.count, + }) + await waitFor(() => expect(cell(el, 'value')).toBe('5')) + + // The selected slice (count) is unchanged, so the tag must not re-render. + store.setState((s) => ({ ...s, other: s.other + 99 })) + await new Promise((resolve) => setTimeout(resolve, 20)) + expect(cell(el, 'value')).toBe('5') + }) +}) + +describe(' write path', () => { + test('echoes a write back through valueChange without looping', async () => { + const atom = createAtom(7) + const el = mount(AtomHost, { from: () => atom }) + expect(cell(el, 'value')).toBe('7') + ;(el.querySelector("[data-testid='inc']") as HTMLElement).dispatchEvent( + new MouseEvent('click', { bubbles: true }), + ) + + await waitFor(() => expect(cell(el, 'value')).toBe('8')) + expect(atom.get()).toBe(8) + }) +}) + +describe(' onUpdate', () => { + test('resubscribes and re-seeds when the source store changes', async () => { + const storeA = createStore({ count: 1, other: 0 }) + const storeB = createStore({ count: 100, other: 0 }) + const el = mount(SourceSwapHost, { storeA, storeB }) + expect(cell(el, 'value')).toBe('1') + + // Swap the source: a new resolved store reaches onUpdate, which unsubscribes + // from the old one, re-seeds from the new one, and subscribes to it. + ;(el.querySelector("[data-testid='swap']") as HTMLElement).dispatchEvent( + new MouseEvent('click', { bubbles: true }), + ) + await waitFor(() => expect(cell(el, 'value')).toBe('100')) + + // Updates to the new source now flow through. + storeB.setState((s) => ({ ...s, count: 101 })) + await waitFor(() => expect(cell(el, 'value')).toBe('101')) + + // The old source is no longer observed. + storeA.setState((s) => ({ ...s, count: 999 })) + await new Promise((resolve) => setTimeout(resolve, 20)) + expect(cell(el, 'value')).toBe('101') + }) + + test('re-seeds when the selector changes against the same source', async () => { + const store = createStore({ count: 5, other: 42 }) + const el = mount(SelectorSwapHost, { from: () => store }) + expect(cell(el, 'value')).toBe('5') + + // Swap the selector: same source, so onUpdate re-seeds with the new selection. + ;( + el.querySelector("[data-testid='swap-selector']") as HTMLElement + ).dispatchEvent(new MouseEvent('click', { bubbles: true })) + await waitFor(() => expect(cell(el, 'value')).toBe('42')) + + // The live subscription reflects the new selector on the next change. + store.setState((s) => ({ ...s, other: 43 })) + await waitFor(() => expect(cell(el, 'value')).toBe('43')) + }) +}); diff --git a/packages/marko-store/tsconfig.build.json b/packages/marko-store/tsconfig.build.json new file mode 100644 index 00000000..89dadab5 --- /dev/null +++ b/packages/marko-store/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": {} + }, + "include": ["src"] +} diff --git a/packages/marko-store/tsconfig.json b/packages/marko-store/tsconfig.json new file mode 100644 index 00000000..95732870 --- /dev/null +++ b/packages/marko-store/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "paths": { + "@tanstack/store": ["../store/src"] + } + }, + "include": ["src/**/*.ts", "tests/**/*.ts", "eslint.config.js", "vitest.config.ts"] +} diff --git a/packages/marko-store/tsdown.config.ts b/packages/marko-store/tsdown.config.ts new file mode 100644 index 00000000..918fd624 --- /dev/null +++ b/packages/marko-store/tsdown.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'tsdown' + +export default defineConfig({ + entry: ['./src/index.ts'], + format: ['esm', 'cjs'], + unbundle: true, + dts: true, + sourcemap: true, + clean: true, + minify: false, + fixedExtension: false, + // NOTE: unlike react-store, `exports: true` is intentionally NOT set here. + // tsdown's `exports: true` rewrites package.json "exports" from the built + // entries only, which wipes the hand-authored ".marko" tag subpaths + // ("./marko.json", "./src/tags/*") — those ship as source, not built output. + // We maintain "exports" by hand in package.json. publint --strict still runs. + publint: { strict: true }, +}) diff --git a/packages/marko-store/vitest.config.ts b/packages/marko-store/vitest.config.ts new file mode 100644 index 00000000..d7e035bc --- /dev/null +++ b/packages/marko-store/vitest.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vitest/config' +import marko from '@marko/vite' +import packageJson from './package.json' + +// @marko/vite is an app plugin (it sets up SSR + browser transforms) and is +// used by vitest only — never by the library build (tsdown handles that). +export default defineConfig({ + plugins: [marko() as any], + test: { + name: packageJson.name, + dir: './tests', + watch: false, + environment: 'jsdom', + setupFiles: ['./tests/setup.ts'], + coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, + typecheck: { enabled: true }, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5cfedcb..9400894a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -999,6 +999,22 @@ importers: specifier: ^3.3.1 version: 3.3.2 + packages/marko-store: + dependencies: + '@tanstack/store': + specifier: workspace:* + version: link:../store + devDependencies: + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + '@testing-library/dom': + specifier: ^10.4.0 + version: 10.4.1 + marko: + specifier: ^6 + version: 6.1.18 + packages/preact-store: dependencies: '@tanstack/store': @@ -2051,6 +2067,10 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@chialab/estransform@0.19.1': + resolution: {integrity: sha512-Op0TvQxnzdcnBriFUIjgg3V3MpOB9Cfs4S7TvIuypPegFOSvuFAOcPl5V02NJ9dyGoOc8W6ORbSldc5PYKhOCQ==} + engines: {node: '>=18'} + '@csstools/color-helpers@6.0.2': resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} engines: {node: '>=20.19.0'} @@ -2890,12 +2910,26 @@ packages: cpu: [x64] os: [win32] + '@luxass/strip-json-comments@1.4.0': + resolution: {integrity: sha512-Zl343to4u/t8jz1q7R/1UY6hLX+344cwPLEXsIYthVwdU5zyjuVBGcpf2E24+QZkwFfRfmnHTcscreQzWn3hiA==} + engines: {node: '>=18'} + '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@marko/compiler@5.39.66': + resolution: {integrity: sha512-Xky1vqj1wh8o0Cps/RRgo5p4i8DL+YOSFMvViFfRCTXbMMFNMFH6gUtk1S/oA9yIouhL1iULpxp3F87oWa2ZbA==} + engines: {node: 18 || 20 || >=22} + + '@marko/vite@6.1.0': + resolution: {integrity: sha512-aZrtaDehP4FebYm5GQIqgzyWNvEOeSPDufD1JF6UvN0AhQqyPVLgM25644dxvQSCbNoaOFNb+GQj1V/9Nn9PBw==} + peerDependencies: + '@marko/compiler': ^5 + vite: ^8 + '@mdn/browser-compat-data@5.7.6': resolution: {integrity: sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==} @@ -2942,6 +2976,88 @@ packages: cpu: [x64] os: [win32] + '@napi-rs/magic-string-android-arm-eabi@0.3.4': + resolution: {integrity: sha512-sszAYxqtzzJ4FDerDNHcqL9NhqPhj8W4DNiOanXYy50mA5oojlRtaAFPiB5ZMrWDBM32v5Q30LrmxQ4eTtu2Dg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/magic-string-android-arm64@0.3.4': + resolution: {integrity: sha512-jdQ6HuO0X5rkX4MauTcWR4HWdgjakTOmmzqXg8L26+jOHVVG1LZE+Su5qvV4bP8vMb2h+vPE+JsnwqSmWymu3Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/magic-string-darwin-arm64@0.3.4': + resolution: {integrity: sha512-6NmMtvURce9/oq09XBZmuIeI6lPLGtEJ2ZPO/QzL3nLZa6wygiCnO/sFACKYNg5/73ET5HMMTeuogE1JI+r2Lw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/magic-string-darwin-x64@0.3.4': + resolution: {integrity: sha512-f9LmfMiUAKDOtl0meOuLYeVb6OERrgGzrTg1Tn3R3fTAShM2kxRbfAuPE9ljuXxIFzOv/uqRNLSl/LqCJwpREA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/magic-string-freebsd-x64@0.3.4': + resolution: {integrity: sha512-rqduQ4odiDK4QdM45xHWRTU4wtFIfpp8g8QGpz+3qqg7ivldDqbbNOrBaf6Oeu77uuEvWggnkyuChotfKgJdJQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/magic-string-linux-arm-gnueabihf@0.3.4': + resolution: {integrity: sha512-pVaJEdEpiPqIfq3M4+yMAATS7Z9muDcWYn8H7GFH1ygh8GwgLgKfy/n/lG2M6zp18Mwd0x7E2E/qg9GgCyUzoQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/magic-string-linux-arm64-gnu@0.3.4': + resolution: {integrity: sha512-9FwoAih/0tzEZx0BjYYIxWkSRMjonIn91RFM3q3MBs/evmThXUYXUqLNa1PPIkK1JoksswtDi48qWWLt8nGflQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/magic-string-linux-arm64-musl@0.3.4': + resolution: {integrity: sha512-wCR7R+WPOcAKmVQc1s6h6HwfwW1vL9pM8BjUY9Ljkdb8wt1LmZEmV2Sgfc1SfbRQzbyl+pKeufP6adRRQVzYDA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/magic-string-linux-x64-gnu@0.3.4': + resolution: {integrity: sha512-sbxFDpYnt5WFbxQ1xozwOvh5A7IftqSI0WnE9O7KsQIOi0ej2dvFbfOW4tmFkvH/YP8KJELo5AhP2+kEq1DpYA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/magic-string-linux-x64-musl@0.3.4': + resolution: {integrity: sha512-jN4h/7e2Ul8v3UK5IZu38NXLMdzVWhY4uEDlnwuUAhwRh26wBQ1/pLD97Uy/Z3dFNBQPcsv60XS9fOM1YDNT6w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/magic-string-win32-arm64-msvc@0.3.4': + resolution: {integrity: sha512-gMUyTRHLWpzX2ntJFCbW2Gnla9Y/WUmbkZuW5SBAo/Jo8QojHn76Y4PNgnoXdzcsV9b/45RBxurYKAfFg9WTyg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/magic-string-win32-ia32-msvc@0.3.4': + resolution: {integrity: sha512-QIMauMOvEHgL00K9np/c9CT/CRtLOz3mRTQqcZ9XGzSoAMrpxH71KSpDJrKl7h7Ro6TZ+hJ0C3T+JVuTCZNv4A==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/magic-string-win32-x64-msvc@0.3.4': + resolution: {integrity: sha512-V8FMSf828MzOI3P6/765MR7zHU6CUZqiyPhmAnwYoKFNxfv7oCviN/G6NcENeCdcYOvNgh5fYzaNLB96ndId5A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/magic-string@0.3.4': + resolution: {integrity: sha512-DEWl/B99RQsyMT3F9bvrXuhL01/eIQp/dtNSE3G1jQ4mTGRcP4iHWxoPZ577WrbjUinrNgvRA5+08g8fkPgimQ==} + engines: {node: '>= 10'} + '@napi-rs/nice-android-arm-eabi@1.1.1': resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} engines: {node: '>= 10'} @@ -3206,12 +3322,22 @@ packages: cpu: [arm64] os: [darwin] + '@oxc-parser/binding-darwin-arm64@0.8.0': + resolution: {integrity: sha512-3Dws5Wzj9efojjqvhS4ZF+Abh0EoiI5ciOE2kdLifMzSg4fnmYAIOktoUnPEo87TNIb4SiFJ5JgPBgEyq42Eow==} + cpu: [arm64] + os: [darwin] + '@oxc-parser/binding-darwin-x64@0.121.0': resolution: {integrity: sha512-SsHzipdxTKUs3I9EOAPmnIimEeJOemqRlRDOp9LIj+96wtxZejF51gNibmoGq8KoqbT1ssAI5po/E3J+vEtXGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@oxc-parser/binding-darwin-x64@0.8.0': + resolution: {integrity: sha512-DAUJ/mfq0Jn2VDYn69bhHTsIWj+aZ/viamexFwaLL7ntkIFmGpzAJZUlWofpY1IRJynKWW+P5AOLYXMllw4qUw==} + cpu: [x64] + os: [darwin] + '@oxc-parser/binding-freebsd-x64@0.121.0': resolution: {integrity: sha512-v1APOTkCp+RWOIDAHRoaeW/UoaHF15a60E8eUL6kUQXh+i4K7PBwq2Wi7jm8p0ymID5/m/oC1w3W31Z/+r7HQw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3237,6 +3363,12 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-arm64-gnu@0.8.0': + resolution: {integrity: sha512-ZHQVey/O4K3zTIKtpfsbtJIE8MPTRHRxgY3dejaoeFQGf9C3HasgF132Yp4zN/jOUx+x8czKPVa/Af40ViyhGQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-arm64-musl@0.121.0': resolution: {integrity: sha512-qT663J/W8yQFw3dtscbEi9LKJevr20V7uWs2MPGTnvNZ3rm8anhhE16gXGpxDOHeg9raySaSHKhd4IGa3YZvuw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3244,6 +3376,12 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-arm64-musl@0.8.0': + resolution: {integrity: sha512-Diw+Tnf5v+zAYXzDoSKCZsMaroU6GoqZMS7smfDtFnZYTHWZrsTmPBLUQe7AFiG7O7tkhsCdcWjOYgbVkrSVOA==} + cpu: [arm64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-linux-ppc64-gnu@0.121.0': resolution: {integrity: sha512-mYNe4NhVvDBbPkAP8JaVS8lC1dsoJZWH5WCjpw5E+sjhk1R08wt3NnXYUzum7tIiWPfgQxbCMcoxgeemFASbRw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3279,6 +3417,12 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-x64-gnu@0.8.0': + resolution: {integrity: sha512-WloqcRrtQUVEP/Sy8ZeEgF0HgBKQjOv3zLFZqbC5ipkerKriGcVbsq3fOIMOi/55AM6/UhIAjeZGnoeco72JjQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-x64-musl@0.121.0': resolution: {integrity: sha512-P9KlyTpuBuMi3NRGpJO8MicuGZfOoqZVRP1WjOecwx8yk4L/+mrCRNc5egSi0byhuReblBF2oVoDSMgV9Bj4Hw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3286,6 +3430,12 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-x64-musl@0.8.0': + resolution: {integrity: sha512-2j7BD9szwSXTvSj0Q8VE98UHGYvrgZzdLy4EyB0FilhQnopEfz+YV674rWGY2Il1VYxHJwGctrTJHvARolu37g==} + cpu: [x64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-openharmony-arm64@0.121.0': resolution: {integrity: sha512-R+4jrWOfF2OAPPhj3Eb3U5CaKNAH9/btMveMULIrcNW/hjfysFQlF8wE0GaVBr81dWz8JLgQlsxwctoL78JwXw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3303,6 +3453,12 @@ packages: cpu: [arm64] os: [win32] + '@oxc-parser/binding-win32-arm64-msvc@0.8.0': + resolution: {integrity: sha512-mcomr1og17yCmnwn8Q7CRzrH9Va0HccWe4Ld3/u/elBsw0SEzYGVvECRzCyRglYAbKTtusz7as9Jee0RiMOMmg==} + cpu: [arm64] + os: [win32] + libc: [null] + '@oxc-parser/binding-win32-ia32-msvc@0.121.0': resolution: {integrity: sha512-4Ob1qvYMPnlF2N9rdmKdkQFdrq16QVcQwBsO8yiPZXof0fHKFF+LmQV501XFbi7lHyrKm8rlJRfQ/M8bZZPVLw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3315,6 +3471,12 @@ packages: cpu: [x64] os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.8.0': + resolution: {integrity: sha512-nIBkc1KZOVYUaHT3+U+gM354P3byMAIXMvlmLMbs0kWVRcI4vrzL8qwWpC6QdBQxWKZGqPEqGolv8H4dDYA9nQ==} + cpu: [x64] + os: [win32] + libc: [null] + '@oxc-project/types@0.113.0': resolution: {integrity: sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==} @@ -3438,6 +3600,10 @@ packages: '@package-json/types@0.0.12': resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} + '@parcel/source-map@2.1.1': + resolution: {integrity: sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==} + engines: {node: ^12.18.3 || >=14} + '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} @@ -5111,6 +5277,9 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -5186,6 +5355,9 @@ packages: compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + complain@1.6.1: + resolution: {integrity: sha512-WsiVAbAPcPSwyC5k8g/PLceaW0MXJUw61KqBd9uiyDOSuDIC6Ho/EbyhdFjeV6wq44R2g/b8IFpvV/1ZyXiqUQ==} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -5413,6 +5585,11 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -5567,6 +5744,9 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-abstract@1.24.1: resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} @@ -5586,6 +5766,9 @@ packages: resolution: {integrity: sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ==} engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.0.0: resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} @@ -5906,6 +6089,10 @@ packages: fast-uri@3.1.2: resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -6195,6 +6382,9 @@ packages: html-link-extractor@1.0.5: resolution: {integrity: sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==} + htmljs-parser@5.11.0: + resolution: {integrity: sha512-YXdNqYB/FChJMpCG+UfVS/q/zfFErui92zIIduCFT71C3F6+lZWE4K6l5nGfFWQ2w4GCkgH/eEWQ1nWayBXIDQ==} + htmlparser2@10.1.0: resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} @@ -6691,6 +6881,12 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + lasso-caching-fs@1.0.2: + resolution: {integrity: sha512-mudop0s8U3tLm3Fn9lhiZsiELpLeJToEo6RlDLdph7vWRxL9Sz0o+9WUw1IwlpCYXv/P0CLsMYWFgPwIKWEYvg==} + + lasso-package-root@1.0.1: + resolution: {integrity: sha512-j6LnauNCldqSDvOxoKpD6sTzudPGMiwcZQbySoF9KvJ0lD9Dp2t6QZF8kC0jbUDHuQPiAo5RuQ/mC3AGXscUYA==} + launch-editor@2.13.2: resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} @@ -6924,6 +7120,10 @@ packages: engines: {node: '>= 20'} hasBin: true + marko@6.1.18: + resolution: {integrity: sha512-gBYHZwsGINVz+2QEhV+mreocTF9JDa/cSndJafp+yGH1v9pudOtYLdLuPMP4ZPnaWvJwuAfmfUF1Xul4s3UEuQ==} + engines: {node: '>=22'} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -7325,6 +7525,9 @@ packages: resolution: {integrity: sha512-ek9o58+SCv6AV7nchiAcUJy1DNE2CC5WRdBcO0mF+W4oRjNQfPO7b3pLjTHSFECpHkKGOZSQxx3hk8viIL5YCg==} engines: {node: ^20.19.0 || >=22.12.0} + oxc-parser@0.8.0: + resolution: {integrity: sha512-ObPeMkbDX7igb7NyyAC8CbVC3fY+YmlMsxsRQ2oyFBkpQtI5tjoyqSDKbS9A9EcJvt2q89C4UoC+HjVBdLYYJg==} + oxc-resolver@11.19.1: resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} @@ -7666,6 +7869,15 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + raptor-async@1.1.3: + resolution: {integrity: sha512-VZCxygWMjW9lKqnApK9D2QbfyzRn7ehiTqnXWwMCLBXANSy+xbnYfbX/5f8YX3bZXu+g+JESmqWPchIQrZj2ig==} + + raptor-regexp@1.0.1: + resolution: {integrity: sha512-DqC7ViHJUs3jLIxJI1/HVvCu3yPJaP8CM7PGsHvjimg7yJ3lLOdCBxlPE0G2Q8OJgUA8Pe7nvhm6lcQ3hZepow==} + + raptor-util@3.2.0: + resolution: {integrity: sha512-uEDMMkBCJvjTqYMBnJNxn+neiS6a0rhybQNA9RaexGor1uvKjwyHA5VcbZMZEuqXhKUWbL+WNS7PhuZVZNB7pw==} + raw-body@2.5.3: resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} @@ -7751,6 +7963,9 @@ packages: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true + relative-import-path@1.0.0: + resolution: {integrity: sha512-ZvbtoduKQmD4PZeJPfH6Ql21qUWhaMxiHkIsH+FUnZqKDwNIXBtGg5zRZyHWomiGYk8n5+KMBPK7Mi4D0XWfNg==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -7939,6 +8154,10 @@ packages: select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + self-closing-tags@1.0.1: + resolution: {integrity: sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==} + engines: {node: '>=0.12.0'} + selfsigned@5.5.0: resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==} engines: {node: '>=18'} @@ -8195,6 +8414,9 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -10442,6 +10664,14 @@ snapshots: human-id: 4.1.3 prettier: 2.8.8 + '@chialab/estransform@0.19.1': + dependencies: + '@napi-rs/magic-string': 0.3.4 + '@parcel/source-map': 2.1.1 + cjs-module-lexer: 1.4.3 + es-module-lexer: 1.7.0 + oxc-parser: 0.8.0 + '@csstools/color-helpers@6.0.2': {} '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': @@ -11125,6 +11355,8 @@ snapshots: '@lmdb/lmdb-win32-x64@3.5.1': optional: true + '@luxass/strip-json-comments@1.4.0': {} + '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.29.2 @@ -11141,6 +11373,37 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 + '@marko/compiler@5.39.66': + dependencies: + '@luxass/strip-json-comments': 1.4.0 + complain: 1.6.1 + he: 1.2.0 + htmljs-parser: 5.11.0 + jsesc: 3.1.0 + kleur: 4.1.5 + lasso-package-root: 1.0.1 + raptor-regexp: 1.0.1 + raptor-util: 3.2.0 + relative-import-path: 1.0.0 + resolve-from: 5.0.0 + self-closing-tags: 1.0.1 + source-map-support: 0.5.21 + + '@marko/vite@6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))': + dependencies: + '@chialab/estransform': 0.19.1 + '@marko/compiler': 5.39.66 + anymatch: 3.1.3 + domelementtype: 2.3.0 + domhandler: 5.0.3 + fast-glob: 3.3.3 + htmljs-parser: 5.11.0 + htmlparser2: 10.1.0 + relative-import-path: 1.0.0 + resolve: 1.22.11 + resolve.exports: 2.0.3 + vite: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + '@mdn/browser-compat-data@5.7.6': {} '@mdn/browser-compat-data@6.1.5': {} @@ -11185,6 +11448,61 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true + '@napi-rs/magic-string-android-arm-eabi@0.3.4': + optional: true + + '@napi-rs/magic-string-android-arm64@0.3.4': + optional: true + + '@napi-rs/magic-string-darwin-arm64@0.3.4': + optional: true + + '@napi-rs/magic-string-darwin-x64@0.3.4': + optional: true + + '@napi-rs/magic-string-freebsd-x64@0.3.4': + optional: true + + '@napi-rs/magic-string-linux-arm-gnueabihf@0.3.4': + optional: true + + '@napi-rs/magic-string-linux-arm64-gnu@0.3.4': + optional: true + + '@napi-rs/magic-string-linux-arm64-musl@0.3.4': + optional: true + + '@napi-rs/magic-string-linux-x64-gnu@0.3.4': + optional: true + + '@napi-rs/magic-string-linux-x64-musl@0.3.4': + optional: true + + '@napi-rs/magic-string-win32-arm64-msvc@0.3.4': + optional: true + + '@napi-rs/magic-string-win32-ia32-msvc@0.3.4': + optional: true + + '@napi-rs/magic-string-win32-x64-msvc@0.3.4': + optional: true + + '@napi-rs/magic-string@0.3.4': + optionalDependencies: + '@napi-rs/magic-string-android-arm-eabi': 0.3.4 + '@napi-rs/magic-string-android-arm64': 0.3.4 + '@napi-rs/magic-string-darwin-arm64': 0.3.4 + '@napi-rs/magic-string-darwin-x64': 0.3.4 + '@napi-rs/magic-string-freebsd-x64': 0.3.4 + '@napi-rs/magic-string-linux-arm-gnueabihf': 0.3.4 + '@napi-rs/magic-string-linux-arm64-gnu': 0.3.4 + '@napi-rs/magic-string-linux-arm64-musl': 0.3.4 + '@napi-rs/magic-string-linux-x64-gnu': 0.3.4 + '@napi-rs/magic-string-linux-x64-musl': 0.3.4 + '@napi-rs/magic-string-win32-arm64-msvc': 0.3.4 + '@napi-rs/magic-string-win32-ia32-msvc': 0.3.4 + '@napi-rs/magic-string-win32-x64-msvc': 0.3.4 + '@napi-rs/nice-android-arm-eabi@1.1.1': optional: true @@ -11400,9 +11718,15 @@ snapshots: '@oxc-parser/binding-darwin-arm64@0.121.0': optional: true + '@oxc-parser/binding-darwin-arm64@0.8.0': + optional: true + '@oxc-parser/binding-darwin-x64@0.121.0': optional: true + '@oxc-parser/binding-darwin-x64@0.8.0': + optional: true + '@oxc-parser/binding-freebsd-x64@0.121.0': optional: true @@ -11415,9 +11739,15 @@ snapshots: '@oxc-parser/binding-linux-arm64-gnu@0.121.0': optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.8.0': + optional: true + '@oxc-parser/binding-linux-arm64-musl@0.121.0': optional: true + '@oxc-parser/binding-linux-arm64-musl@0.8.0': + optional: true + '@oxc-parser/binding-linux-ppc64-gnu@0.121.0': optional: true @@ -11433,9 +11763,15 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu@0.121.0': optional: true + '@oxc-parser/binding-linux-x64-gnu@0.8.0': + optional: true + '@oxc-parser/binding-linux-x64-musl@0.121.0': optional: true + '@oxc-parser/binding-linux-x64-musl@0.8.0': + optional: true + '@oxc-parser/binding-openharmony-arm64@0.121.0': optional: true @@ -11450,12 +11786,18 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc@0.121.0': optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.8.0': + optional: true + '@oxc-parser/binding-win32-ia32-msvc@0.121.0': optional: true '@oxc-parser/binding-win32-x64-msvc@0.121.0': optional: true + '@oxc-parser/binding-win32-x64-msvc@0.8.0': + optional: true + '@oxc-project/types@0.113.0': {} '@oxc-project/types@0.121.0': {} @@ -11531,6 +11873,10 @@ snapshots: '@package-json/types@0.0.12': {} + '@parcel/source-map@2.1.1': + dependencies: + detect-libc: 1.0.3 + '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -13295,6 +13641,8 @@ snapshots: chrome-trace-event@1.0.4: {} + cjs-module-lexer@1.4.3: {} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -13358,6 +13706,10 @@ snapshots: compare-versions@6.1.1: {} + complain@1.6.1: + dependencies: + error-stack-parser: 2.1.4 + compressible@2.0.18: dependencies: mime-db: 1.54.0 @@ -13589,6 +13941,8 @@ snapshots: detect-indent@6.1.0: {} + detect-libc@1.0.3: {} + detect-libc@2.1.2: {} detect-node@2.1.0: {} @@ -13718,6 +14072,10 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 @@ -13811,6 +14169,8 @@ snapshots: math-intrinsics: 1.1.0 safe-array-concat: 1.1.3 + es-module-lexer@1.7.0: {} + es-module-lexer@2.0.0: {} es-object-atoms@1.1.1: @@ -14352,6 +14712,8 @@ snapshots: fast-uri@3.1.2: {} + fastest-levenshtein@1.0.16: {} + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -14649,6 +15011,8 @@ snapshots: dependencies: cheerio: 1.2.0 + htmljs-parser@5.11.0: {} + htmlparser2@10.1.0: dependencies: domelementtype: 2.3.0 @@ -15150,6 +15514,14 @@ snapshots: kolorist@1.8.0: {} + lasso-caching-fs@1.0.2: + dependencies: + raptor-async: 1.1.3 + + lasso-package-root@1.0.1: + dependencies: + lasso-caching-fs: 1.0.2 + launch-editor@2.13.2: dependencies: picocolors: 1.1.1 @@ -15401,6 +15773,13 @@ snapshots: marked@17.0.5: {} + marko@6.1.18: + dependencies: + '@marko/compiler': 5.39.66 + csstype: 3.2.3 + fastest-levenshtein: 1.0.16 + magic-string: 0.30.21 + math-intrinsics@1.1.0: {} mdn-data@2.27.1: {} @@ -15894,6 +16273,17 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' + oxc-parser@0.8.0: + optionalDependencies: + '@oxc-parser/binding-darwin-arm64': 0.8.0 + '@oxc-parser/binding-darwin-x64': 0.8.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.8.0 + '@oxc-parser/binding-linux-arm64-musl': 0.8.0 + '@oxc-parser/binding-linux-x64-gnu': 0.8.0 + '@oxc-parser/binding-linux-x64-musl': 0.8.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.8.0 + '@oxc-parser/binding-win32-x64-msvc': 0.8.0 + oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.19.1 @@ -16232,6 +16622,12 @@ snapshots: range-parser@1.2.1: {} + raptor-async@1.1.3: {} + + raptor-regexp@1.0.1: {} + + raptor-util@3.2.0: {} + raw-body@2.5.3: dependencies: bytes: 3.1.2 @@ -16340,6 +16736,8 @@ snapshots: dependencies: jsesc: 3.1.0 + relative-import-path@1.0.0: {} + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -16596,6 +16994,8 @@ snapshots: select-hose@2.0.0: {} + self-closing-tags@1.0.1: {} + selfsigned@5.5.0: dependencies: '@peculiar/x509': 1.14.3 @@ -16914,6 +17314,8 @@ snapshots: stackback@0.0.2: {} + stackframe@1.3.4: {} + statuses@1.5.0: {} statuses@2.0.2: {} From 6ac2983607541455bc5a08270a8df1ee91435f7b Mon Sep 17 00:00:00 2001 From: defunkt-dev Date: Thu, 25 Jun 2026 21:40:25 -0600 Subject: [PATCH 02/26] fix type issues --- knip.json | 2 +- packages/marko-store/package.json | 5 +- .../marko-store/src/tags/store-atom.marko | 2 +- .../marko-store/src/tags/store-selector.marko | 10 +- .../selector-selector-swap-host.marko | 2 +- .../fixtures/selector-source-swap-host.marko | 2 +- .../fixtures/ssr-object-antipattern.marko | 2 +- .../tests/fixtures/ssr-selector.marko | 2 +- packages/marko-store/tests/tags.test.ts | 2 +- packages/marko-store/tsconfig.marko.json | 14 + .../marko-store/tsconfig.marko.tsbuildinfo | 1 + pnpm-lock.yaml | 417 ++++++++++++++++-- 12 files changed, 419 insertions(+), 42 deletions(-) create mode 100644 packages/marko-store/tsconfig.marko.json create mode 100644 packages/marko-store/tsconfig.marko.tsbuildinfo diff --git a/knip.json b/knip.json index 5970b825..15da7038 100644 --- a/knip.json +++ b/knip.json @@ -3,7 +3,7 @@ "workspaces": { "packages/marko-store": { "entry": ["src/index.ts", "src/tags/**/*.marko"], - "ignoreDependencies": ["marko", "@marko/vite"] + "ignoreDependencies": ["@marko/language-tools", "@marko/type-check", "@marko/vite", "marko"] }, "packages/vue-store": { "ignoreDependencies": ["vue2", "vue2.7"] diff --git a/packages/marko-store/package.json b/packages/marko-store/package.json index 46fac8db..95e9e635 100644 --- a/packages/marko-store/package.json +++ b/packages/marko-store/package.json @@ -22,11 +22,12 @@ "scripts": { "clean": "premove ./dist ./coverage", "test:eslint": "eslint ./src ./tests", - "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"", + "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\" && pnpm run test:types:marko", "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js", "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js", "test:types:ts58": "node ../../node_modules/typescript58/lib/tsc.js", "test:types:ts59": "tsc", + "test:types:marko": "marko-type-check -p tsconfig.marko.json", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", @@ -62,6 +63,8 @@ "@tanstack/store": "workspace:*" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", + "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "@testing-library/dom": "^10.4.0", "marko": "^6" diff --git a/packages/marko-store/src/tags/store-atom.marko b/packages/marko-store/src/tags/store-atom.marko index 845c04a3..0bf40133 100644 --- a/packages/marko-store/src/tags/store-atom.marko +++ b/packages/marko-store/src/tags/store-atom.marko @@ -8,7 +8,7 @@ export interface Input { - void) | null }> + void) | null }> onMount() { this.unsub = input.from().subscribe((next) => { value = next as any diff --git a/packages/marko-store/src/tags/store-selector.marko b/packages/marko-store/src/tags/store-selector.marko index a8798eb1..fa1200b2 100644 --- a/packages/marko-store/src/tags/store-selector.marko +++ b/packages/marko-store/src/tags/store-selector.marko @@ -7,15 +7,15 @@ export interface Input { compare?: (a: TSelected, b: TSelected) => boolean } - a === b)/> + a === b)/> snapshot))/> void) | null - src: ReturnType["from"]> | null - sel: Input["selector"] - last: unknown + unsub?: (() => void) | null + src?: ReturnType["from"]> | null + sel?: Input["selector"] + last?: unknown }> onMount() { const source = input.from() diff --git a/packages/marko-store/tests/fixtures/selector-selector-swap-host.marko b/packages/marko-store/tests/fixtures/selector-selector-swap-host.marko index 127a75e2..554219f3 100644 --- a/packages/marko-store/tests/fixtures/selector-selector-swap-host.marko +++ b/packages/marko-store/tests/fixtures/selector-selector-swap-host.marko @@ -11,7 +11,7 @@ export interface Input { } - s.other) : ((s) => s.count))/> + s.other) : ((s: any) => s.count))/>
${value}
diff --git a/packages/marko-store/tests/fixtures/selector-source-swap-host.marko b/packages/marko-store/tests/fixtures/selector-source-swap-host.marko index 0ea5435c..2ca471ab 100644 --- a/packages/marko-store/tests/fixtures/selector-source-swap-host.marko +++ b/packages/marko-store/tests/fixtures/selector-source-swap-host.marko @@ -16,6 +16,6 @@ export interface Input { - active) selector=(s => s.count)/> + active) selector=((s: any) => s.count)/>
${value}
diff --git a/packages/marko-store/tests/fixtures/ssr-object-antipattern.marko b/packages/marko-store/tests/fixtures/ssr-object-antipattern.marko index 5cb018ca..94dd6969 100644 --- a/packages/marko-store/tests/fixtures/ssr-object-antipattern.marko +++ b/packages/marko-store/tests/fixtures/ssr-object-antipattern.marko @@ -11,7 +11,7 @@ export interface Input { } - void) | null }> + void) | null }> onMount() { this.unsub = input.store.subscribe((next) => { value = next diff --git a/packages/marko-store/tests/fixtures/ssr-selector.marko b/packages/marko-store/tests/fixtures/ssr-selector.marko index 18a12f98..5f9a266b 100644 --- a/packages/marko-store/tests/fixtures/ssr-selector.marko +++ b/packages/marko-store/tests/fixtures/ssr-selector.marko @@ -1,5 +1,5 @@ import { counterStore } from "./ssr-store" import StoreSelector from "../../src/tags/store-selector.marko" - counterStore) selector=(s => s.count)/> + counterStore) selector=((s: any) => s.count)/>
${count}
diff --git a/packages/marko-store/tests/tags.test.ts b/packages/marko-store/tests/tags.test.ts index 14d1a094..f17a974e 100644 --- a/packages/marko-store/tests/tags.test.ts +++ b/packages/marko-store/tests/tags.test.ts @@ -126,4 +126,4 @@ describe(' onUpdate', () => { store.setState((s) => ({ ...s, other: 43 })) await waitFor(() => expect(cell(el, 'value')).toBe('43')) }) -}); +}) diff --git a/packages/marko-store/tsconfig.marko.json b/packages/marko-store/tsconfig.marko.json new file mode 100644 index 00000000..3d1d5546 --- /dev/null +++ b/packages/marko-store/tsconfig.marko.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": true, + "paths": {}, + "types": ["node"] + }, + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "tests/**/*.ts", + "tests/**/*.marko" + ] +} diff --git a/packages/marko-store/tsconfig.marko.tsbuildinfo b/packages/marko-store/tsconfig.marko.tsbuildinfo new file mode 100644 index 00000000..797fe624 --- /dev/null +++ b/packages/marko-store/tsconfig.marko.tsbuildinfo @@ -0,0 +1 @@ +{"fileNames":["../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../store/dist/alien.d.ts","../store/dist/types.d.ts","../store/dist/atom.d.ts","../store/dist/store.d.ts","../store/dist/shallow.d.ts","../store/dist/index.d.ts","./src/index.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/let.d.marko","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/lifecycle.d.marko","./src/tags/store-atom.marko","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/const.d.marko","./src/tags/store-selector.marko","../../node_modules/.pnpm/@vitest+pretty-format@4.1.4/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/display.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/timers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/tasks.d-bh0ijn67.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/traces.d.402v_yfi.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/hmrpayload.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/customevent.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/dist/node/module-runner.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/config.d.chuh6-ad.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/rpc.d.bfmwpdph.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/worker.d.ccknuvi5.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/browser.d.c0zgu1u9.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.4/node_modules/@vitest/spy/optional-types.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.4/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../node_modules/.pnpm/@vitest+expect@4.1.4/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/global.d.d74z04p1.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/optional-runtime-types.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/runners.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/index.d.ts","./tests/index.test.ts","./tests/marko.d.ts","./tests/setup.ts","./tests/fixtures/ssr-store.ts","./tests/fixtures/ssr-selector.marko","./tests/fixtures/ssr-atom.marko","./tests/fixtures/ssr-object-antipattern.marko","./tests/ssr.test.ts","../../node_modules/.pnpm/@types+aria-query@5.0.4/node_modules/@types/aria-query/index.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/matches.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/query-helpers.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/queries.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-queries-for-element.d.ts","../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/types.d.ts","../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/index.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/screen.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for-element-to-be-removed.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-node-text.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/events.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/pretty-dom.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/role-helpers.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/config.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/suggestions.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/index.d.ts","./tests/fixtures/selector-host.marko","./tests/fixtures/atom-host.marko","./tests/fixtures/selector-source-swap-host.marko","./tests/fixtures/selector-selector-swap-host.marko","./tests/tags.test.ts","../../node_modules/.pnpm/@marko+language-tools@2.6.0/node_modules/@marko/language-tools/marko.internal.d.ts","../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags-html.d.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/blob.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/console.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/encoding.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client-stats.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/round-robin-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/messaging.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/performance.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/timers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/url.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/posix.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/win32.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/quic.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test/reporters.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util/types.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[159,222,230,234,237,239,240,241,254],[135,159,222,230,234,237,239,240,241,254],[132,133,134,135,136,139,140,141,142,143,144,145,146,159,222,230,234,237,239,240,241,254],[131,159,222,230,234,237,239,240,241,254],[138,159,222,230,234,237,239,240,241,254],[132,133,134,159,222,230,234,237,239,240,241,254],[132,133,159,222,230,234,237,239,240,241,254],[135,136,138,159,222,230,234,237,239,240,241,254],[133,159,222,230,234,237,239,240,241,254],[102,103,159,222,230,234,237,239,240,241,254],[159,219,220,222,230,234,237,239,240,241,254],[159,221,222,230,234,237,239,240,241,254],[222,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,262],[159,222,223,228,230,233,234,237,239,240,241,243,254,259,271],[159,222,223,224,230,233,234,237,239,240,241,254],[159,222,225,230,234,237,239,240,241,254,272],[159,222,226,227,230,234,237,239,240,241,245,254],[159,222,227,230,234,237,239,240,241,254,259,268],[159,222,228,230,233,234,237,239,240,241,243,254],[159,221,222,229,230,234,237,239,240,241,254],[159,222,230,231,234,237,239,240,241,254],[159,222,230,232,233,234,237,239,240,241,254],[159,221,222,230,233,234,237,239,240,241,254],[159,222,230,233,234,235,237,239,240,241,254,259,271],[159,222,230,233,234,235,237,239,240,241,254,259,262],[159,209,222,230,233,234,236,237,239,240,241,243,254,259,271],[159,222,230,233,234,236,237,239,240,241,243,254,259,268,271],[159,222,230,234,236,237,238,239,240,241,254,259,268,271],[157,158,159,160,161,162,163,164,165,166,167,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[159,222,230,233,234,237,239,240,241,254],[159,222,230,234,237,239,241,254],[159,222,230,234,237,239,240,241,242,254,271],[159,222,230,233,234,237,239,240,241,243,254,259],[159,222,230,234,237,239,240,241,245,254],[159,222,230,234,237,239,240,241,246,254],[159,222,230,233,234,237,239,240,241,249,254],[159,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[159,222,230,234,237,239,240,241,251,254],[159,222,230,234,237,239,240,241,252,254],[159,222,227,230,234,237,239,240,241,243,254,262],[159,222,230,233,234,237,239,240,241,254,255],[159,222,230,234,237,239,240,241,254,256,272,275],[159,222,230,233,234,237,239,240,241,254,259,261,262],[159,222,230,234,237,239,240,241,254,260,262],[159,222,230,234,237,239,240,241,254,262,272],[159,222,230,234,237,239,240,241,254,263],[159,219,222,230,234,237,239,240,241,254,259,265,271],[159,222,230,234,237,239,240,241,254,259,264],[159,222,230,233,234,237,239,240,241,254,266,267],[159,222,230,234,237,239,240,241,254,266,267],[159,222,227,230,234,237,239,240,241,243,254,259,268],[159,222,230,234,237,239,240,241,254,269],[159,222,230,234,237,239,240,241,243,254,270],[159,222,230,234,236,237,239,240,241,252,254,271],[159,222,230,234,237,239,240,241,254,272,273],[159,222,227,230,234,237,239,240,241,254,273],[159,222,230,234,237,239,240,241,254,259,274],[159,222,230,234,237,239,240,241,242,254,275],[159,222,230,234,237,239,240,241,254,276],[159,222,225,230,234,237,239,240,241,254],[159,222,227,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,272],[159,209,222,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,254,277],[159,222,230,234,237,239,240,241,249,254],[159,222,230,234,237,239,240,241,254,267],[159,209,222,230,233,234,235,237,239,240,241,249,254,259,262,271,274,275,277],[159,222,230,234,237,239,240,241,254,259,278],[75,81,99,100,101,104,159,222,230,234,237,239,240,241,254],[111,159,222,230,234,237,239,240,241,254],[111,112,159,222,230,234,237,239,240,241,254],[79,81,82,159,222,230,234,237,239,240,241,254],[79,81,159,222,230,234,237,239,240,241,254],[79,159,222,230,234,237,239,240,241,254],[74,79,90,91,159,222,230,234,237,239,240,241,254],[74,79,90,159,222,230,234,237,239,240,241,254],[98,159,222,230,234,237,239,240,241,254],[74,80,159,222,230,234,237,239,240,241,254],[74,159,222,230,234,237,239,240,241,254],[76,159,222,230,234,237,239,240,241,254],[74,75,76,77,78,159,222,230,234,237,239,240,241,254],[117,118,159,222,230,234,237,239,240,241,254],[117,118,119,120,159,222,230,234,237,239,240,241,254],[117,119,159,222,230,234,237,239,240,241,254],[117,159,222,230,234,237,239,240,241,254],[124,155,159,222,230,234,237,239,240,241,254],[154,159,222,230,234,237,239,240,241,254],[137,159,222,230,234,237,239,240,241,254],[159,174,177,180,181,222,230,234,237,239,240,241,254,271],[159,177,222,230,234,237,239,240,241,254,259,271],[159,177,181,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,254,259],[159,171,222,230,234,237,239,240,241,254],[159,175,222,230,234,237,239,240,241,254],[159,173,174,177,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,243,254,268],[159,222,230,234,237,239,240,241,254,279],[159,171,222,230,234,237,239,240,241,254,279],[159,173,177,222,230,234,237,239,240,241,243,254,271],[159,168,169,170,172,176,222,230,233,234,237,239,240,241,254,259,271],[159,177,186,194,222,230,234,237,239,240,241,254],[159,169,175,222,230,234,237,239,240,241,254],[159,177,203,204,222,230,234,237,239,240,241,254],[159,169,172,177,222,230,234,237,239,240,241,254,262,271,279],[159,177,222,230,234,237,239,240,241,254],[159,173,177,222,230,234,237,239,240,241,254,271],[159,168,222,230,234,237,239,240,241,254],[159,171,172,173,175,176,177,178,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,207,208,222,230,234,237,239,240,241,254],[159,177,196,199,222,230,234,237,239,240,241,254],[159,177,186,187,188,222,230,234,237,239,240,241,254],[159,175,177,187,189,222,230,234,237,239,240,241,254],[159,176,222,230,234,237,239,240,241,254],[159,169,171,177,222,230,234,237,239,240,241,254],[159,177,181,187,189,222,230,234,237,239,240,241,254],[159,181,222,230,234,237,239,240,241,254],[159,175,177,180,222,230,234,237,239,240,241,254,271],[159,169,173,177,186,222,230,234,237,239,240,241,254],[159,177,196,222,230,234,237,239,240,241,254],[159,189,222,230,234,237,239,240,241,254],[159,171,177,203,222,230,234,237,239,240,241,254,262,277,279],[85,159,222,230,234,237,239,240,241,254],[85,86,87,88,159,222,230,234,237,239,240,241,254],[87,159,222,230,234,237,239,240,241,254],[83,106,107,109,159,222,230,234,237,239,240,241,254],[83,84,96,109,159,222,230,234,237,239,240,241,254],[74,81,83,92,109,159,222,230,234,237,239,240,241,254],[89,159,222,230,234,237,239,240,241,254],[74,83,92,95,105,108,109,159,222,230,234,237,239,240,241,254],[83,84,89,92,109,159,222,230,234,237,239,240,241,254],[83,106,107,108,109,159,222,230,234,237,239,240,241,254],[83,89,93,94,95,109,159,222,230,234,237,239,240,241,254],[74,79,81,83,84,89,92,93,94,95,96,97,99,105,106,107,108,109,110,113,114,115,116,121,159,222,230,234,237,239,240,241,254],[74,81,83,84,92,93,106,107,108,109,114,159,222,230,234,237,239,240,241,254],[67,159,222,230,234,237,239,240,241,254],[69,70,159,222,230,234,237,239,240,241,254],[69,70,72,159,222,230,234,237,239,240,241,254],[71,159,222,230,234,237,239,240,241,254],[73,159,222,230,234,237,239,240,241,254],[69,72,73,159,222,230,234,237,239,240,241,254],[71,126,159,222,230,234,237,239,240,241,254],[73,126,159,222,230,234,237,239,240,241,254],[68,159,222,230,234,237,239,240,241,254],[68,122,159,222,230,234,237,239,240,241,254],[122,126,127,128,129,159,222,230,234,237,239,240,241,254],[68,122,147,148,149,150,151,159,222,230,234,237,239,240,241,254],[63,159,222,230,234,237,239,240,241,254],[63,64,65,66,159,222,230,234,237,239,240,241,254],[62,159,222,230,234,237,239,240,241,254]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"39f13fb4279fe07702c870642a2ec26db019d3afdb5b369523c45c77ed266c65","51aae950c97b61105064619e52f8b4e702ed9d88f6a38d8a6d461389be28dd0b","08a8feab6868367d5112474f9015e5b00c101012a639309e88fb105f94ced534","a15a870f6ab5a26a7eb91ddd8c47ff4e00bc23ece96ab48ff8aaf42450478a50","73390a82cbd5ea87d8bcdf183d66853207a111de00a8512c68ca17b47a11e65d","53755d0e8037d36720dc68e2e8c77512698befd0c0d48ac5d20c41986df91bc2","e746dbf4e43b9e40b9965f1cbe15f029b066423b294c6a69ea7f2f9cd9091758","2e88396eb16a936421ad6de3e2da7a7b","41f7e591762f7ab63f1cae9baad59534","b320bf9f32b091f50800df8894392fd5","10faacc9b67dd33e042f567ac9343c13","28934f4e9d4f4ee2fabd4e20e127c9d5",{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"9443967db823b66d1682be7fc66392be7c7924e10c3e54900f456341e94591a6","impliedFormat":99},{"version":"424f71d1fae96ac2e878af92345bb87bea1d29f757228fbc190133b305643f2c","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"16fe60bb544cfedfd2b5bb2f7d0b3957be7978706d57d9f06edc9c0c8dbdba23","impliedFormat":99},{"version":"de4a612aa8f1704af486f701e21993c786ba7d8cfed55fffa6684026aea2346e","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"8887e70871f697fa42ad7cdf32168db60ec2d6760c173c97973e35377fe5d83b","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"6bb6d57454370324434bcf355942dee45b0e0d8ab0fa3e98bafe8a30718273b4","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"a86701e56b10a6d1ef9b2ecaeedbab94ed7b957a646cd71fd09d02b323c6d3d7","impliedFormat":99},{"version":"976932e3807786cdae46ed5dfcd02c44f3fa25c157a0e8392f5a2dabb9a14a4e","impliedFormat":99},{"version":"59b7a8ec1781284f6602af48487b68fc3baadf34cb4cbcbb31f213b6712fac34","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"ed9bb55ddcbebd5cb3eee991f57ff21438546ee40ee1c310281bd12a6c7cf65b","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4c3d12ac5744ff4ba2e1ce97ec307f09d726b4cfcfd5eff3315ccc080d620fb9","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"abdaf8c2f20089a6b23a6287007ed16f9cf76d0045ce2973a5f8508c87286d21","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"8c9917efcdf61e9b9a73ac1e289c612f12db33519ca1445cca41865f7887c737","impliedFormat":99},"dc7de349426eeba24b0424219a61ef400d6fbbd9a75ce1a924964f33066e20a7","59ec10f39bff3eaf54f0ab11a2da8097a235519d4c2bebfff514ea3d83b4e3fa",{"version":"943627b96a61dbb76261f6cdf0192ae32ffd49ad466a87595e8fba1f748db814","affectsGlobalScope":true},"d513ea666385f2c8007e764e582e9ddb7bdcfe686eadf102be053e25ff9eb265","2adc3d8d9e7018f11f8f95f9772804f3","7e82a2d918950e6553231ada223aa21b","0a6ebd564b9cd399aab7fe4b29804fc5","c68a896d1a455d98f7b068f6c3e99c445b4c01c8dad8cd40c60804eab919e452",{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"3cfb7c0c642b19fb75132154040bb7cd840f0002f9955b14154e69611b9b3f81","impliedFormat":1},{"version":"8387ec1601cf6b8948672537cf8d430431ba0d87b1f9537b4597c1ab8d3ade5b","impliedFormat":1},{"version":"d16f1c460b1ca9158e030fdf3641e1de11135e0c7169d3e8cf17cc4cc35d5e64","impliedFormat":1},{"version":"a934063af84f8117b8ce51851c1af2b76efe960aa4c7b48d0343a1b15c01aedf","impliedFormat":1},{"version":"e3c5ad476eb2fca8505aee5bdfdf9bf11760df5d0f9545db23f12a5c4d72a718","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"d0570ce419fb38287e7b39c910b468becb5b2278cf33b1000a3d3e82a46ecae2","impliedFormat":1},{"version":"3aca7f4260dad9dcc0a0333654cb3cde6664d34a553ec06c953bce11151764d7","impliedFormat":1},{"version":"a0a6f0095f25f08a7129bc4d7cb8438039ec422dc341218d274e1e5131115988","impliedFormat":1},{"version":"b58f396fe4cfe5a0e4d594996bc8c1bfe25496fbc66cf169d41ac3c139418c77","impliedFormat":1},{"version":"45785e608b3d380c79e21957a6d1467e1206ac0281644e43e8ed6498808ace72","impliedFormat":1},{"version":"bece27602416508ba946868ad34d09997911016dbd6893fb884633017f74e2c5","impliedFormat":1},{"version":"2a90177ebaef25de89351de964c2c601ab54d6e3a157cba60d9cd3eaf5a5ee1a","impliedFormat":1},{"version":"82200e963d3c767976a5a9f41ecf8c65eca14a6b33dcbe00214fcbe959698c46","impliedFormat":1},{"version":"b4966c503c08bbd9e834037a8ab60e5f53c5fd1092e8873c4a1c344806acdab2","impliedFormat":1},"cbff6d86c61506feebebf2e5204c3a2e","77c5d8fa66f03d542472c4a343d84f8e","cc1ca60428e3906aa45dfb1d3b4dba23","0fc1985168c5d611789e82c0701bae48","70db4230f2c1d9974206ad3b904757972593c2fd2bec0d28ee474bc7a44ba6d0",{"version":"c265bff524f49bce83a4b52c16325e5bafbf5ee5b68e4544ceac12d8f1fcd7c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"bf987531ac8c5b5a795bbac840e92daea5b135ecdec6371c143e8d116599079f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b059875943da7c4555bb340cffea782dcc789d9cd633deed4fc1f856356f5784","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"f9713757bcdfa4d58b48c0fb249e752c94a3eee8bf4532b906094246ac49ef88","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"eab2f3179607acb3d44b2db2a76dd7d621c5039b145dc160a1ee733963f9d2f5","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[68,71,73,[123,130],[148,153],156],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"module":99,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"strict":true,"target":7},"referencedMap":[[153,1],[101,1],[145,1],[142,1],[141,1],[136,2],[147,3],[132,4],[143,5],[135,6],[134,7],[144,1],[139,8],[146,1],[140,9],[133,1],[131,1],[104,10],[102,1],[219,11],[220,11],[221,12],[159,13],[222,14],[223,15],[224,16],[157,1],[225,17],[226,18],[227,19],[228,20],[229,21],[230,22],[231,22],[232,23],[233,24],[234,25],[235,26],[160,1],[158,1],[236,27],[237,28],[238,29],[279,30],[239,31],[240,32],[241,31],[242,33],[243,34],[245,35],[246,36],[247,36],[248,36],[249,37],[250,38],[251,39],[252,40],[253,41],[254,42],[255,42],[256,43],[257,1],[258,1],[259,44],[260,45],[261,44],[262,46],[263,47],[264,48],[265,49],[266,50],[267,51],[268,52],[269,53],[270,54],[271,55],[272,56],[273,57],[274,58],[275,59],[276,60],[161,31],[162,1],[163,61],[164,62],[165,1],[166,63],[167,1],[210,64],[211,65],[212,66],[213,66],[214,67],[215,1],[216,14],[217,68],[218,65],[277,69],[278,70],[105,71],[112,72],[113,73],[111,1],[74,1],[83,74],[82,75],[106,74],[90,76],[92,77],[91,78],[99,79],[98,1],[81,80],[75,81],[77,82],[79,83],[78,1],[80,81],[76,1],[103,1],[244,1],[154,1],[119,84],[121,85],[120,86],[118,87],[117,1],[156,88],[155,89],[72,1],[69,1],[70,1],[138,90],[137,1],[107,1],[100,1],[60,1],[61,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[58,1],[1,1],[59,1],[186,91],[198,92],[183,93],[199,94],[208,95],[174,96],[175,97],[173,98],[207,99],[202,100],[206,101],[177,102],[195,103],[176,104],[205,105],[171,106],[172,100],[178,107],[179,1],[185,108],[182,107],[169,109],[209,110],[200,111],[189,112],[188,107],[190,113],[193,114],[187,115],[191,116],[203,99],[180,117],[181,118],[194,119],[170,94],[197,120],[196,107],[184,118],[192,121],[201,1],[168,1],[204,122],[86,123],[89,124],[87,123],[85,1],[88,125],[108,126],[97,127],[93,128],[94,76],[115,129],[109,130],[95,131],[114,132],[84,1],[96,133],[122,134],[116,135],[110,1],[68,136],[71,137],[73,138],[149,139],[148,140],[151,141],[150,141],[128,142],[129,137],[127,143],[126,144],[123,145],[124,1],[125,1],[130,146],[152,147],[62,1],[64,148],[67,149],[66,1],[65,148],[63,150]],"affectedFilesPendingEmit":[[68,17],[71,17],[73,17],[149,17],[148,17],[151,17],[150,17],[128,17],[129,17],[127,17],[126,17],[123,17],[125,17],[130,17],[152,17]],"emitSignatures":[68,71,73,123,125,126,127,128,129,130,148,149,150,151,152],"version":"6.0.3"} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9400894a..829610a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -969,7 +969,7 @@ importers: devDependencies: '@analogjs/vite-plugin-angular': specifier: ^2.4.5 - version: 2.4.5(cd1678fbfdd77b23b6bdbf3f09017a19) + version: 2.4.5(981d0923643984e7df52ebd265f97d33) '@angular/common': specifier: ^21.2.8 version: 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) @@ -1005,6 +1005,12 @@ importers: specifier: workspace:* version: link:../store devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 '@marko/vite': specifier: ^6 version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) @@ -1038,7 +1044,7 @@ importers: version: 10.29.1 typescript-eslint: specifier: ^8.58.1 - version: 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.2) + version: 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) vitest: specifier: ^4.1.4 version: 4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(jsdom@29.0.2)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) @@ -1103,7 +1109,7 @@ importers: version: 1.9.12 vue: specifier: ^3.5.32 - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) packages/svelte-store: dependencies: @@ -1113,7 +1119,7 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.5.7 - version: 2.5.7(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.2) + version: 2.5.7(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.3) '@sveltejs/vite-plugin-svelte': specifier: ^7.0.0 version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.1))(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) @@ -1128,7 +1134,7 @@ importers: version: 5.55.7(@typescript-eslint/types@8.58.1) svelte-check: specifier: ^4.4.6 - version: 4.4.6(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.2) + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.3) packages/vue-store: dependencies: @@ -1137,20 +1143,20 @@ importers: version: link:../store vue-demi: specifier: ^0.14.10 - version: 0.14.10(@vue/composition-api@1.7.2(vue@3.5.32(typescript@6.0.2)))(vue@3.5.32(typescript@6.0.2)) + version: 0.14.10(@vue/composition-api@1.7.2(vue@3.5.32(typescript@6.0.3)))(vue@3.5.32(typescript@6.0.3)) devDependencies: '@testing-library/vue': specifier: ^8.1.0 - version: 8.1.0(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) + version: 8.1.0(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.3)) '@vitejs/plugin-vue': specifier: ^6.0.5 - version: 6.0.5(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.2)) + version: 6.0.5(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.3)) '@vue/composition-api': specifier: ^1.7.2 - version: 1.7.2(vue@3.5.32(typescript@6.0.2)) + version: 1.7.2(vue@3.5.32(typescript@6.0.3)) vue: specifier: ^3.5.32 - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) vue2: specifier: npm:vue@2.6 version: vue@2.6.14 @@ -2924,6 +2930,13 @@ packages: resolution: {integrity: sha512-Xky1vqj1wh8o0Cps/RRgo5p4i8DL+YOSFMvViFfRCTXbMMFNMFH6gUtk1S/oA9yIouhL1iULpxp3F87oWa2ZbA==} engines: {node: 18 || 20 || >=22} + '@marko/language-tools@2.6.0': + resolution: {integrity: sha512-Ut35zMYlDXqxrhcF+I24XLngYKptAposGBADt3Ba6YO+fP13B5hZsMjCQLBJFzHjAkRutCmVT7/kaqAc4f88TQ==} + + '@marko/type-check@3.1.0': + resolution: {integrity: sha512-vPNhfN0RboRIflegKJK0mvs/jnZcntp684R5q+qrSAkUDn1Z3PkDfNc1SIl3uPcvJ746ZNqylXILLMjF39uUyA==} + hasBin: true + '@marko/vite@6.1.0': resolution: {integrity: sha512-aZrtaDehP4FebYm5GQIqgzyWNvEOeSPDufD1JF6UvN0AhQqyPVLgM25644dxvQSCbNoaOFNb+GQj1V/9Nn9PBw==} peerDependencies: @@ -4971,6 +4984,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -8786,6 +8802,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} @@ -9428,13 +9449,13 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@analogjs/vite-plugin-angular@2.4.5(cd1678fbfdd77b23b6bdbf3f09017a19)': + '@analogjs/vite-plugin-angular@2.4.5(981d0923643984e7df52ebd265f97d33)': dependencies: tinyglobby: 0.2.16 ts-morph: 21.0.1 optionalDependencies: - '@angular-devkit/build-angular': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(typescript@6.0.2)(vitest@4.1.4)(yaml@2.8.3) - '@angular/build': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.14)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.2)(vitest@4.1.4)(yaml@2.8.3) + '@angular-devkit/build-angular': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(typescript@6.0.3)(vitest@4.1.4)(yaml@2.8.3) + '@angular/build': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.14)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.4)(yaml@2.8.3) '@angular-devkit/architect@0.2102.7(chokidar@5.0.0)': dependencies: @@ -9530,6 +9551,94 @@ snapshots: - webpack-cli - yaml + '@angular-devkit/build-angular@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(typescript@6.0.3)(vitest@4.1.4)(yaml@2.8.3)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular-devkit/build-webpack': 0.2102.7(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)))(webpack@5.105.2(esbuild@0.27.3)) + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular/build': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.6)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.4)(yaml@2.8.3) + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3) + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) + '@babel/preset-env': 7.29.0(@babel/core@7.29.0) + '@babel/runtime': 7.28.6 + '@discoveryjs/json-ext': 0.6.3 + '@ngtools/webpack': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(typescript@6.0.3)(webpack@5.105.2(esbuild@0.27.3)) + ansi-colors: 4.1.3 + autoprefixer: 10.4.27(postcss@8.5.6) + babel-loader: 10.0.0(@babel/core@7.29.0)(webpack@5.105.2(esbuild@0.27.3)) + browserslist: 4.28.2 + copy-webpack-plugin: 14.0.0(webpack@5.105.2(esbuild@0.27.3)) + css-loader: 7.1.3(webpack@5.105.2(esbuild@0.27.3)) + esbuild-wasm: 0.27.3 + http-proxy-middleware: 3.0.5 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + karma-source-map-support: 1.4.0 + less: 4.4.2 + less-loader: 12.3.1(less@4.4.2)(webpack@5.105.2(esbuild@0.27.3)) + license-webpack-plugin: 4.0.2(webpack@5.105.2(esbuild@0.27.3)) + loader-utils: 3.3.1 + mini-css-extract-plugin: 2.10.0(webpack@5.105.2(esbuild@0.27.3)) + open: 11.0.0 + ora: 9.3.0 + picomatch: 4.0.4 + piscina: 5.1.4 + postcss: 8.5.6 + postcss-loader: 8.2.0(postcss@8.5.6)(typescript@6.0.3)(webpack@5.105.2(esbuild@0.27.3)) + resolve-url-loader: 5.0.0 + rxjs: 7.8.2 + sass: 1.97.3 + sass-loader: 16.0.7(sass@1.97.3)(webpack@5.105.2(esbuild@0.27.3)) + semver: 7.7.4 + source-map-loader: 5.0.0(webpack@5.105.2(esbuild@0.27.3)) + source-map-support: 0.5.21 + terser: 5.46.0 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + tslib: 2.8.1 + typescript: 6.0.3 + webpack: 5.105.2(esbuild@0.27.7) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(webpack@5.105.2(esbuild@0.27.3)) + optionalDependencies: + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + esbuild: 0.27.3 + transitivePeerDependencies: + - '@angular/compiler' + - '@emnapi/core' + - '@emnapi/runtime' + - '@rspack/core' + - '@swc/core' + - '@types/node' + - bufferutil + - chokidar + - debug + - html-webpack-plugin + - jiti + - lightningcss + - node-sass + - sass-embedded + - stylus + - sugarss + - supports-color + - tsx + - uglify-js + - utf-8-validate + - vitest + - webpack-cli + - yaml + optional: true + '@angular-devkit/build-webpack@0.2102.7(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)))(webpack@5.105.2(esbuild@0.27.3))': dependencies: '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) @@ -9565,7 +9674,7 @@ snapshots: '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) tslib: 2.8.1 - '@angular/build@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.14)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.2)(vitest@4.1.4)(yaml@2.8.3)': + '@angular/build@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.6)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.2)(vitest@4.1.4)(yaml@2.8.3)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) @@ -9598,6 +9707,61 @@ snapshots: undici: 7.24.4 vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) watchpack: 2.5.1 + optionalDependencies: + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + less: 4.4.2 + lmdb: 3.5.1 + postcss: 8.5.6 + vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(jsdom@29.0.2)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@angular/build@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.14)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.4)(yaml@2.8.3)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3) + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@inquirer/confirm': 5.1.21(@types/node@25.6.0) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + beasties: 0.4.1 + browserslist: 4.28.2 + esbuild: 0.27.3 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + listr2: 9.0.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 8.0.0 + picomatch: 4.0.4 + piscina: 5.1.4 + rolldown: 1.0.0-rc.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + sass: 1.97.3 + semver: 7.7.4 + source-map-support: 0.5.21 + tinyglobby: 0.2.15 + tslib: 2.8.1 + typescript: 6.0.3 + undici: 7.24.4 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + watchpack: 2.5.1 optionalDependencies: '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) @@ -9621,12 +9785,12 @@ snapshots: - yaml optional: true - '@angular/build@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.6)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.2)(vitest@4.1.4)(yaml@2.8.3)': + '@angular/build@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(postcss@8.5.6)(terser@5.46.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.4)(yaml@2.8.3)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) '@angular/compiler': 21.2.8 - '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3) '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 @@ -9650,7 +9814,7 @@ snapshots: source-map-support: 0.5.21 tinyglobby: 0.2.15 tslib: 2.8.1 - typescript: 6.0.2 + typescript: 6.0.3 undici: 7.24.4 vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) watchpack: 2.5.1 @@ -9660,7 +9824,7 @@ snapshots: less: 4.4.2 lmdb: 3.5.1 postcss: 8.5.6 - vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(jsdom@29.0.2)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(jsdom@29.0.2)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -9675,6 +9839,7 @@ snapshots: - terser - tsx - yaml + optional: true '@angular/cli@21.2.7(@types/node@25.6.0)(chokidar@5.0.0)': dependencies: @@ -9724,6 +9889,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3)': + dependencies: + '@angular/compiler': 21.2.8 + '@babel/core': 7.29.0 + '@jridgewell/sourcemap-codec': 1.5.5 + chokidar: 5.0.0 + convert-source-map: 1.9.0 + reflect-metadata: 0.2.2 + semver: 7.7.4 + tslib: 2.8.1 + yargs: 18.0.0 + optionalDependencies: + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + optional: true + '@angular/compiler@21.2.8': dependencies: tslib: 2.8.1 @@ -11389,6 +11571,22 @@ snapshots: self-closing-tags: 1.0.1 source-map-support: 0.5.21 + '@marko/language-tools@2.6.0': + dependencies: + '@luxass/strip-json-comments': 1.4.0 + '@marko/compiler': 5.39.66 + htmljs-parser: 5.11.0 + relative-import-path: 1.0.0 + + '@marko/type-check@3.1.0': + dependencies: + '@luxass/strip-json-comments': 1.4.0 + '@marko/compiler': 5.39.66 + '@marko/language-tools': 2.6.0 + arg: 5.0.2 + kleur: 4.1.5 + typescript: 6.0.3 + '@marko/vite@6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))': dependencies: '@chialab/estransform': 0.19.1 @@ -11601,6 +11799,13 @@ snapshots: typescript: 6.0.2 webpack: 5.105.2(esbuild@0.27.7) + '@ngtools/webpack@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3))(typescript@6.0.3)(webpack@5.105.2(esbuild@0.27.3))': + dependencies: + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3) + typescript: 6.0.3 + webpack: 5.105.2(esbuild@0.27.7) + optional: true + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -12407,14 +12612,14 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/package@2.5.7(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.2)': + '@sveltejs/package@2.5.7(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.3)': dependencies: chokidar: 5.0.0 kleur: 4.1.5 sade: 1.8.1 semver: 7.7.4 svelte: 5.55.7(@typescript-eslint/types@8.58.1) - svelte2tsx: 0.7.53(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.2) + svelte2tsx: 0.7.53(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.3) transitivePeerDependencies: - typescript @@ -12532,12 +12737,12 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 - '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2))': + '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.3))': dependencies: '@babel/runtime': 7.29.2 '@testing-library/dom': 9.3.4 '@vue/test-utils': 2.4.6 - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) optionalDependencies: '@vue/compiler-sfc': 3.5.32 @@ -12729,6 +12934,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.58.1 + eslint: 10.3.0(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.58.1 @@ -12741,6 +12962,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + eslint: 10.3.0(jiti@2.6.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.58.1(typescript@6.0.2)': dependencies: '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.2) @@ -12750,6 +12983,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.58.1(typescript@6.0.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.3) + '@typescript-eslint/types': 8.58.1 + debug: 4.4.3 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.58.1': dependencies: '@typescript-eslint/types': 8.58.1 @@ -12759,6 +13001,10 @@ snapshots: dependencies: typescript: 6.0.2 + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@6.0.3)': + dependencies: + typescript: 6.0.3 + '@typescript-eslint/type-utils@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@typescript-eslint/types': 8.58.1 @@ -12771,6 +13017,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)': + dependencies: + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) + debug: 4.4.3 + eslint: 10.3.0(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.58.1': {} '@typescript-eslint/typescript-estree@8.58.1(typescript@6.0.2)': @@ -12788,6 +13046,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.58.1(typescript@6.0.3)': + dependencies: + '@typescript-eslint/project-service': 8.58.1(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) @@ -12799,6 +13072,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.3) + eslint: 10.3.0(jiti@2.6.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.58.1': dependencies: '@typescript-eslint/types': 8.58.1 @@ -12878,6 +13162,12 @@ snapshots: vite: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) vue: 3.5.32(typescript@6.0.2) + '@vitejs/plugin-vue@6.0.5(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-rc.2 + vite: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + vue: 3.5.32(typescript@6.0.3) + '@vitest/coverage-istanbul@4.1.4(vitest@4.1.4)': dependencies: '@babel/core': 7.29.0 @@ -12994,9 +13284,9 @@ snapshots: '@vue/compiler-dom': 3.5.32 '@vue/shared': 3.5.32 - '@vue/composition-api@1.7.2(vue@3.5.32(typescript@6.0.2))': + '@vue/composition-api@1.7.2(vue@3.5.32(typescript@6.0.3))': dependencies: - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) '@vue/language-core@3.2.6': dependencies: @@ -13030,6 +13320,12 @@ snapshots: '@vue/shared': 3.5.32 vue: 3.5.32(typescript@6.0.2) + '@vue/server-renderer@3.5.32(vue@3.5.32(typescript@6.0.3))': + dependencies: + '@vue/compiler-ssr': 3.5.32 + '@vue/shared': 3.5.32 + vue: 3.5.32(typescript@6.0.3) + '@vue/shared@3.5.32': {} '@vue/test-utils@2.4.6': @@ -13243,6 +13539,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 + arg@5.0.2: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -13786,6 +14084,16 @@ snapshots: optionalDependencies: typescript: 6.0.2 + cosmiconfig@9.0.1(typescript@6.0.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + parse-json: 5.2.0 + optionalDependencies: + typescript: 6.0.3 + optional: true + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -16483,6 +16791,18 @@ snapshots: transitivePeerDependencies: - typescript + postcss-loader@8.2.0(postcss@8.5.6)(typescript@6.0.3)(webpack@5.105.2(esbuild@0.27.3)): + dependencies: + cosmiconfig: 9.0.1(typescript@6.0.3) + jiti: 2.6.1 + postcss: 8.5.6 + semver: 7.7.4 + optionalDependencies: + webpack: 5.105.2(esbuild@0.27.7) + transitivePeerDependencies: + - typescript + optional: true + postcss-media-query-parser@0.2.3: {} postcss-modules-extract-imports@3.1.0(postcss@8.5.14): @@ -17444,6 +17764,18 @@ snapshots: transitivePeerDependencies: - picomatch + svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + chokidar: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.55.7(@typescript-eslint/types@8.58.1) + typescript: 6.0.3 + transitivePeerDependencies: + - picomatch + svelte-eslint-parser@1.6.0(svelte@5.55.7(@typescript-eslint/types@8.58.1)): dependencies: eslint-scope: 8.4.0 @@ -17456,12 +17788,12 @@ snapshots: optionalDependencies: svelte: 5.55.7(@typescript-eslint/types@8.58.1) - svelte2tsx@0.7.53(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.2): + svelte2tsx@0.7.53(svelte@5.55.7(@typescript-eslint/types@8.58.1))(typescript@6.0.3): dependencies: dedent-js: 1.0.1 scule: 1.3.0 svelte: 5.55.7(@typescript-eslint/types@8.58.1) - typescript: 6.0.2 + typescript: 6.0.3 svelte@5.55.7(@typescript-eslint/types@8.58.1): dependencies: @@ -17579,6 +17911,10 @@ snapshots: dependencies: typescript: 6.0.2 + ts-api-utils@2.5.0(typescript@6.0.3): + dependencies: + typescript: 6.0.3 + ts-declaration-location@1.0.7(typescript@6.0.2): dependencies: picomatch: 4.0.4 @@ -17722,6 +18058,17 @@ snapshots: transitivePeerDependencies: - supports-color + typescript-eslint@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/parser': 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.1(eslint@10.3.0(jiti@2.6.1))(typescript@6.0.3) + eslint: 10.3.0(jiti@2.6.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + typescript@5.6.3: {} typescript@5.7.3: {} @@ -17730,6 +18077,8 @@ snapshots: typescript@6.0.2: {} + typescript@6.0.3: {} + uc.micro@2.1.0: {} unbash@2.2.0: {} @@ -17949,11 +18298,11 @@ snapshots: vue-component-type-helpers@2.2.12: {} - vue-demi@0.14.10(@vue/composition-api@1.7.2(vue@3.5.32(typescript@6.0.2)))(vue@3.5.32(typescript@6.0.2)): + vue-demi@0.14.10(@vue/composition-api@1.7.2(vue@3.5.32(typescript@6.0.3)))(vue@3.5.32(typescript@6.0.3)): dependencies: - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) optionalDependencies: - '@vue/composition-api': 1.7.2(vue@3.5.32(typescript@6.0.2)) + '@vue/composition-api': 1.7.2(vue@3.5.32(typescript@6.0.3)) vue-eslint-parser@10.4.0(eslint@10.3.0(jiti@2.6.1)): dependencies: @@ -17990,6 +18339,16 @@ snapshots: optionalDependencies: typescript: 6.0.2 + vue@3.5.32(typescript@6.0.3): + dependencies: + '@vue/compiler-dom': 3.5.32 + '@vue/compiler-sfc': 3.5.32 + '@vue/runtime-dom': 3.5.32 + '@vue/server-renderer': 3.5.32(vue@3.5.32(typescript@6.0.3)) + '@vue/shared': 3.5.32 + optionalDependencies: + typescript: 6.0.3 + w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 From c93c86cd425e9ada487936284a8aded82f6f06d1 Mon Sep 17 00:00:00 2001 From: defunkt-dev Date: Thu, 25 Jun 2026 22:35:51 -0600 Subject: [PATCH 03/26] knip failure fix --- knip.json | 2 +- packages/marko-store/tests/ssr.test.ts | 4 ++-- packages/marko-store/tsconfig.marko.tsbuildinfo | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/knip.json b/knip.json index 15da7038..e1dfef2b 100644 --- a/knip.json +++ b/knip.json @@ -3,7 +3,7 @@ "workspaces": { "packages/marko-store": { "entry": ["src/index.ts", "src/tags/**/*.marko"], - "ignoreDependencies": ["@marko/language-tools", "@marko/type-check", "@marko/vite", "marko"] + "ignoreDependencies": ["@marko/language-tools", "marko"] }, "packages/vue-store": { "ignoreDependencies": ["vue2", "vue2.7"] diff --git a/packages/marko-store/tests/ssr.test.ts b/packages/marko-store/tests/ssr.test.ts index 4b55c8b8..253ad55a 100644 --- a/packages/marko-store/tests/ssr.test.ts +++ b/packages/marko-store/tests/ssr.test.ts @@ -20,7 +20,7 @@ import { describe, expect, it } from 'vitest' import SsrSelector from './fixtures/ssr-selector.marko' import SsrAtom from './fixtures/ssr-atom.marko' import SsrObjectAntipattern from './fixtures/ssr-object-antipattern.marko' -import { counterStore } from './fixtures/ssr-store' +import { countAtom, counterStore } from './fixtures/ssr-store' async function renderToString( template: any, @@ -45,7 +45,7 @@ describe('SSR render — thunk channel', () => { it(' renders server-side and seeds the value', async () => { const html = await renderToString(SsrAtom, {}) - expect(cell(html, 'value')).toBe('7') + expect(cell(html, 'value')).toBe(String(countAtom.get())) }) }) diff --git a/packages/marko-store/tsconfig.marko.tsbuildinfo b/packages/marko-store/tsconfig.marko.tsbuildinfo index 797fe624..558c3cb5 100644 --- a/packages/marko-store/tsconfig.marko.tsbuildinfo +++ b/packages/marko-store/tsconfig.marko.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../store/dist/alien.d.ts","../store/dist/types.d.ts","../store/dist/atom.d.ts","../store/dist/store.d.ts","../store/dist/shallow.d.ts","../store/dist/index.d.ts","./src/index.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/let.d.marko","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/lifecycle.d.marko","./src/tags/store-atom.marko","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/const.d.marko","./src/tags/store-selector.marko","../../node_modules/.pnpm/@vitest+pretty-format@4.1.4/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/display.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/timers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/tasks.d-bh0ijn67.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/traces.d.402v_yfi.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/hmrpayload.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/customevent.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/dist/node/module-runner.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/config.d.chuh6-ad.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/rpc.d.bfmwpdph.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/worker.d.ccknuvi5.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/browser.d.c0zgu1u9.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.4/node_modules/@vitest/spy/optional-types.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.4/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../node_modules/.pnpm/@vitest+expect@4.1.4/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/global.d.d74z04p1.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/optional-runtime-types.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/runners.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/index.d.ts","./tests/index.test.ts","./tests/marko.d.ts","./tests/setup.ts","./tests/fixtures/ssr-store.ts","./tests/fixtures/ssr-selector.marko","./tests/fixtures/ssr-atom.marko","./tests/fixtures/ssr-object-antipattern.marko","./tests/ssr.test.ts","../../node_modules/.pnpm/@types+aria-query@5.0.4/node_modules/@types/aria-query/index.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/matches.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/query-helpers.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/queries.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-queries-for-element.d.ts","../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/types.d.ts","../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/index.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/screen.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for-element-to-be-removed.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-node-text.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/events.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/pretty-dom.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/role-helpers.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/config.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/suggestions.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/index.d.ts","./tests/fixtures/selector-host.marko","./tests/fixtures/atom-host.marko","./tests/fixtures/selector-source-swap-host.marko","./tests/fixtures/selector-selector-swap-host.marko","./tests/tags.test.ts","../../node_modules/.pnpm/@marko+language-tools@2.6.0/node_modules/@marko/language-tools/marko.internal.d.ts","../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags-html.d.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/blob.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/console.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/encoding.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client-stats.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/round-robin-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/messaging.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/performance.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/timers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/url.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/posix.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/win32.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/quic.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test/reporters.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util/types.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[159,222,230,234,237,239,240,241,254],[135,159,222,230,234,237,239,240,241,254],[132,133,134,135,136,139,140,141,142,143,144,145,146,159,222,230,234,237,239,240,241,254],[131,159,222,230,234,237,239,240,241,254],[138,159,222,230,234,237,239,240,241,254],[132,133,134,159,222,230,234,237,239,240,241,254],[132,133,159,222,230,234,237,239,240,241,254],[135,136,138,159,222,230,234,237,239,240,241,254],[133,159,222,230,234,237,239,240,241,254],[102,103,159,222,230,234,237,239,240,241,254],[159,219,220,222,230,234,237,239,240,241,254],[159,221,222,230,234,237,239,240,241,254],[222,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,262],[159,222,223,228,230,233,234,237,239,240,241,243,254,259,271],[159,222,223,224,230,233,234,237,239,240,241,254],[159,222,225,230,234,237,239,240,241,254,272],[159,222,226,227,230,234,237,239,240,241,245,254],[159,222,227,230,234,237,239,240,241,254,259,268],[159,222,228,230,233,234,237,239,240,241,243,254],[159,221,222,229,230,234,237,239,240,241,254],[159,222,230,231,234,237,239,240,241,254],[159,222,230,232,233,234,237,239,240,241,254],[159,221,222,230,233,234,237,239,240,241,254],[159,222,230,233,234,235,237,239,240,241,254,259,271],[159,222,230,233,234,235,237,239,240,241,254,259,262],[159,209,222,230,233,234,236,237,239,240,241,243,254,259,271],[159,222,230,233,234,236,237,239,240,241,243,254,259,268,271],[159,222,230,234,236,237,238,239,240,241,254,259,268,271],[157,158,159,160,161,162,163,164,165,166,167,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[159,222,230,233,234,237,239,240,241,254],[159,222,230,234,237,239,241,254],[159,222,230,234,237,239,240,241,242,254,271],[159,222,230,233,234,237,239,240,241,243,254,259],[159,222,230,234,237,239,240,241,245,254],[159,222,230,234,237,239,240,241,246,254],[159,222,230,233,234,237,239,240,241,249,254],[159,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[159,222,230,234,237,239,240,241,251,254],[159,222,230,234,237,239,240,241,252,254],[159,222,227,230,234,237,239,240,241,243,254,262],[159,222,230,233,234,237,239,240,241,254,255],[159,222,230,234,237,239,240,241,254,256,272,275],[159,222,230,233,234,237,239,240,241,254,259,261,262],[159,222,230,234,237,239,240,241,254,260,262],[159,222,230,234,237,239,240,241,254,262,272],[159,222,230,234,237,239,240,241,254,263],[159,219,222,230,234,237,239,240,241,254,259,265,271],[159,222,230,234,237,239,240,241,254,259,264],[159,222,230,233,234,237,239,240,241,254,266,267],[159,222,230,234,237,239,240,241,254,266,267],[159,222,227,230,234,237,239,240,241,243,254,259,268],[159,222,230,234,237,239,240,241,254,269],[159,222,230,234,237,239,240,241,243,254,270],[159,222,230,234,236,237,239,240,241,252,254,271],[159,222,230,234,237,239,240,241,254,272,273],[159,222,227,230,234,237,239,240,241,254,273],[159,222,230,234,237,239,240,241,254,259,274],[159,222,230,234,237,239,240,241,242,254,275],[159,222,230,234,237,239,240,241,254,276],[159,222,225,230,234,237,239,240,241,254],[159,222,227,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,272],[159,209,222,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,254,277],[159,222,230,234,237,239,240,241,249,254],[159,222,230,234,237,239,240,241,254,267],[159,209,222,230,233,234,235,237,239,240,241,249,254,259,262,271,274,275,277],[159,222,230,234,237,239,240,241,254,259,278],[75,81,99,100,101,104,159,222,230,234,237,239,240,241,254],[111,159,222,230,234,237,239,240,241,254],[111,112,159,222,230,234,237,239,240,241,254],[79,81,82,159,222,230,234,237,239,240,241,254],[79,81,159,222,230,234,237,239,240,241,254],[79,159,222,230,234,237,239,240,241,254],[74,79,90,91,159,222,230,234,237,239,240,241,254],[74,79,90,159,222,230,234,237,239,240,241,254],[98,159,222,230,234,237,239,240,241,254],[74,80,159,222,230,234,237,239,240,241,254],[74,159,222,230,234,237,239,240,241,254],[76,159,222,230,234,237,239,240,241,254],[74,75,76,77,78,159,222,230,234,237,239,240,241,254],[117,118,159,222,230,234,237,239,240,241,254],[117,118,119,120,159,222,230,234,237,239,240,241,254],[117,119,159,222,230,234,237,239,240,241,254],[117,159,222,230,234,237,239,240,241,254],[124,155,159,222,230,234,237,239,240,241,254],[154,159,222,230,234,237,239,240,241,254],[137,159,222,230,234,237,239,240,241,254],[159,174,177,180,181,222,230,234,237,239,240,241,254,271],[159,177,222,230,234,237,239,240,241,254,259,271],[159,177,181,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,254,259],[159,171,222,230,234,237,239,240,241,254],[159,175,222,230,234,237,239,240,241,254],[159,173,174,177,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,243,254,268],[159,222,230,234,237,239,240,241,254,279],[159,171,222,230,234,237,239,240,241,254,279],[159,173,177,222,230,234,237,239,240,241,243,254,271],[159,168,169,170,172,176,222,230,233,234,237,239,240,241,254,259,271],[159,177,186,194,222,230,234,237,239,240,241,254],[159,169,175,222,230,234,237,239,240,241,254],[159,177,203,204,222,230,234,237,239,240,241,254],[159,169,172,177,222,230,234,237,239,240,241,254,262,271,279],[159,177,222,230,234,237,239,240,241,254],[159,173,177,222,230,234,237,239,240,241,254,271],[159,168,222,230,234,237,239,240,241,254],[159,171,172,173,175,176,177,178,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,207,208,222,230,234,237,239,240,241,254],[159,177,196,199,222,230,234,237,239,240,241,254],[159,177,186,187,188,222,230,234,237,239,240,241,254],[159,175,177,187,189,222,230,234,237,239,240,241,254],[159,176,222,230,234,237,239,240,241,254],[159,169,171,177,222,230,234,237,239,240,241,254],[159,177,181,187,189,222,230,234,237,239,240,241,254],[159,181,222,230,234,237,239,240,241,254],[159,175,177,180,222,230,234,237,239,240,241,254,271],[159,169,173,177,186,222,230,234,237,239,240,241,254],[159,177,196,222,230,234,237,239,240,241,254],[159,189,222,230,234,237,239,240,241,254],[159,171,177,203,222,230,234,237,239,240,241,254,262,277,279],[85,159,222,230,234,237,239,240,241,254],[85,86,87,88,159,222,230,234,237,239,240,241,254],[87,159,222,230,234,237,239,240,241,254],[83,106,107,109,159,222,230,234,237,239,240,241,254],[83,84,96,109,159,222,230,234,237,239,240,241,254],[74,81,83,92,109,159,222,230,234,237,239,240,241,254],[89,159,222,230,234,237,239,240,241,254],[74,83,92,95,105,108,109,159,222,230,234,237,239,240,241,254],[83,84,89,92,109,159,222,230,234,237,239,240,241,254],[83,106,107,108,109,159,222,230,234,237,239,240,241,254],[83,89,93,94,95,109,159,222,230,234,237,239,240,241,254],[74,79,81,83,84,89,92,93,94,95,96,97,99,105,106,107,108,109,110,113,114,115,116,121,159,222,230,234,237,239,240,241,254],[74,81,83,84,92,93,106,107,108,109,114,159,222,230,234,237,239,240,241,254],[67,159,222,230,234,237,239,240,241,254],[69,70,159,222,230,234,237,239,240,241,254],[69,70,72,159,222,230,234,237,239,240,241,254],[71,159,222,230,234,237,239,240,241,254],[73,159,222,230,234,237,239,240,241,254],[69,72,73,159,222,230,234,237,239,240,241,254],[71,126,159,222,230,234,237,239,240,241,254],[73,126,159,222,230,234,237,239,240,241,254],[68,159,222,230,234,237,239,240,241,254],[68,122,159,222,230,234,237,239,240,241,254],[122,126,127,128,129,159,222,230,234,237,239,240,241,254],[68,122,147,148,149,150,151,159,222,230,234,237,239,240,241,254],[63,159,222,230,234,237,239,240,241,254],[63,64,65,66,159,222,230,234,237,239,240,241,254],[62,159,222,230,234,237,239,240,241,254]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"39f13fb4279fe07702c870642a2ec26db019d3afdb5b369523c45c77ed266c65","51aae950c97b61105064619e52f8b4e702ed9d88f6a38d8a6d461389be28dd0b","08a8feab6868367d5112474f9015e5b00c101012a639309e88fb105f94ced534","a15a870f6ab5a26a7eb91ddd8c47ff4e00bc23ece96ab48ff8aaf42450478a50","73390a82cbd5ea87d8bcdf183d66853207a111de00a8512c68ca17b47a11e65d","53755d0e8037d36720dc68e2e8c77512698befd0c0d48ac5d20c41986df91bc2","e746dbf4e43b9e40b9965f1cbe15f029b066423b294c6a69ea7f2f9cd9091758","2e88396eb16a936421ad6de3e2da7a7b","41f7e591762f7ab63f1cae9baad59534","b320bf9f32b091f50800df8894392fd5","10faacc9b67dd33e042f567ac9343c13","28934f4e9d4f4ee2fabd4e20e127c9d5",{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"9443967db823b66d1682be7fc66392be7c7924e10c3e54900f456341e94591a6","impliedFormat":99},{"version":"424f71d1fae96ac2e878af92345bb87bea1d29f757228fbc190133b305643f2c","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"16fe60bb544cfedfd2b5bb2f7d0b3957be7978706d57d9f06edc9c0c8dbdba23","impliedFormat":99},{"version":"de4a612aa8f1704af486f701e21993c786ba7d8cfed55fffa6684026aea2346e","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"8887e70871f697fa42ad7cdf32168db60ec2d6760c173c97973e35377fe5d83b","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"6bb6d57454370324434bcf355942dee45b0e0d8ab0fa3e98bafe8a30718273b4","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"a86701e56b10a6d1ef9b2ecaeedbab94ed7b957a646cd71fd09d02b323c6d3d7","impliedFormat":99},{"version":"976932e3807786cdae46ed5dfcd02c44f3fa25c157a0e8392f5a2dabb9a14a4e","impliedFormat":99},{"version":"59b7a8ec1781284f6602af48487b68fc3baadf34cb4cbcbb31f213b6712fac34","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"ed9bb55ddcbebd5cb3eee991f57ff21438546ee40ee1c310281bd12a6c7cf65b","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4c3d12ac5744ff4ba2e1ce97ec307f09d726b4cfcfd5eff3315ccc080d620fb9","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"abdaf8c2f20089a6b23a6287007ed16f9cf76d0045ce2973a5f8508c87286d21","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"8c9917efcdf61e9b9a73ac1e289c612f12db33519ca1445cca41865f7887c737","impliedFormat":99},"dc7de349426eeba24b0424219a61ef400d6fbbd9a75ce1a924964f33066e20a7","59ec10f39bff3eaf54f0ab11a2da8097a235519d4c2bebfff514ea3d83b4e3fa",{"version":"943627b96a61dbb76261f6cdf0192ae32ffd49ad466a87595e8fba1f748db814","affectsGlobalScope":true},"d513ea666385f2c8007e764e582e9ddb7bdcfe686eadf102be053e25ff9eb265","2adc3d8d9e7018f11f8f95f9772804f3","7e82a2d918950e6553231ada223aa21b","0a6ebd564b9cd399aab7fe4b29804fc5","c68a896d1a455d98f7b068f6c3e99c445b4c01c8dad8cd40c60804eab919e452",{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"3cfb7c0c642b19fb75132154040bb7cd840f0002f9955b14154e69611b9b3f81","impliedFormat":1},{"version":"8387ec1601cf6b8948672537cf8d430431ba0d87b1f9537b4597c1ab8d3ade5b","impliedFormat":1},{"version":"d16f1c460b1ca9158e030fdf3641e1de11135e0c7169d3e8cf17cc4cc35d5e64","impliedFormat":1},{"version":"a934063af84f8117b8ce51851c1af2b76efe960aa4c7b48d0343a1b15c01aedf","impliedFormat":1},{"version":"e3c5ad476eb2fca8505aee5bdfdf9bf11760df5d0f9545db23f12a5c4d72a718","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"d0570ce419fb38287e7b39c910b468becb5b2278cf33b1000a3d3e82a46ecae2","impliedFormat":1},{"version":"3aca7f4260dad9dcc0a0333654cb3cde6664d34a553ec06c953bce11151764d7","impliedFormat":1},{"version":"a0a6f0095f25f08a7129bc4d7cb8438039ec422dc341218d274e1e5131115988","impliedFormat":1},{"version":"b58f396fe4cfe5a0e4d594996bc8c1bfe25496fbc66cf169d41ac3c139418c77","impliedFormat":1},{"version":"45785e608b3d380c79e21957a6d1467e1206ac0281644e43e8ed6498808ace72","impliedFormat":1},{"version":"bece27602416508ba946868ad34d09997911016dbd6893fb884633017f74e2c5","impliedFormat":1},{"version":"2a90177ebaef25de89351de964c2c601ab54d6e3a157cba60d9cd3eaf5a5ee1a","impliedFormat":1},{"version":"82200e963d3c767976a5a9f41ecf8c65eca14a6b33dcbe00214fcbe959698c46","impliedFormat":1},{"version":"b4966c503c08bbd9e834037a8ab60e5f53c5fd1092e8873c4a1c344806acdab2","impliedFormat":1},"cbff6d86c61506feebebf2e5204c3a2e","77c5d8fa66f03d542472c4a343d84f8e","cc1ca60428e3906aa45dfb1d3b4dba23","0fc1985168c5d611789e82c0701bae48","70db4230f2c1d9974206ad3b904757972593c2fd2bec0d28ee474bc7a44ba6d0",{"version":"c265bff524f49bce83a4b52c16325e5bafbf5ee5b68e4544ceac12d8f1fcd7c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"bf987531ac8c5b5a795bbac840e92daea5b135ecdec6371c143e8d116599079f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b059875943da7c4555bb340cffea782dcc789d9cd633deed4fc1f856356f5784","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"f9713757bcdfa4d58b48c0fb249e752c94a3eee8bf4532b906094246ac49ef88","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"eab2f3179607acb3d44b2db2a76dd7d621c5039b145dc160a1ee733963f9d2f5","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[68,71,73,[123,130],[148,153],156],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"module":99,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"strict":true,"target":7},"referencedMap":[[153,1],[101,1],[145,1],[142,1],[141,1],[136,2],[147,3],[132,4],[143,5],[135,6],[134,7],[144,1],[139,8],[146,1],[140,9],[133,1],[131,1],[104,10],[102,1],[219,11],[220,11],[221,12],[159,13],[222,14],[223,15],[224,16],[157,1],[225,17],[226,18],[227,19],[228,20],[229,21],[230,22],[231,22],[232,23],[233,24],[234,25],[235,26],[160,1],[158,1],[236,27],[237,28],[238,29],[279,30],[239,31],[240,32],[241,31],[242,33],[243,34],[245,35],[246,36],[247,36],[248,36],[249,37],[250,38],[251,39],[252,40],[253,41],[254,42],[255,42],[256,43],[257,1],[258,1],[259,44],[260,45],[261,44],[262,46],[263,47],[264,48],[265,49],[266,50],[267,51],[268,52],[269,53],[270,54],[271,55],[272,56],[273,57],[274,58],[275,59],[276,60],[161,31],[162,1],[163,61],[164,62],[165,1],[166,63],[167,1],[210,64],[211,65],[212,66],[213,66],[214,67],[215,1],[216,14],[217,68],[218,65],[277,69],[278,70],[105,71],[112,72],[113,73],[111,1],[74,1],[83,74],[82,75],[106,74],[90,76],[92,77],[91,78],[99,79],[98,1],[81,80],[75,81],[77,82],[79,83],[78,1],[80,81],[76,1],[103,1],[244,1],[154,1],[119,84],[121,85],[120,86],[118,87],[117,1],[156,88],[155,89],[72,1],[69,1],[70,1],[138,90],[137,1],[107,1],[100,1],[60,1],[61,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[58,1],[1,1],[59,1],[186,91],[198,92],[183,93],[199,94],[208,95],[174,96],[175,97],[173,98],[207,99],[202,100],[206,101],[177,102],[195,103],[176,104],[205,105],[171,106],[172,100],[178,107],[179,1],[185,108],[182,107],[169,109],[209,110],[200,111],[189,112],[188,107],[190,113],[193,114],[187,115],[191,116],[203,99],[180,117],[181,118],[194,119],[170,94],[197,120],[196,107],[184,118],[192,121],[201,1],[168,1],[204,122],[86,123],[89,124],[87,123],[85,1],[88,125],[108,126],[97,127],[93,128],[94,76],[115,129],[109,130],[95,131],[114,132],[84,1],[96,133],[122,134],[116,135],[110,1],[68,136],[71,137],[73,138],[149,139],[148,140],[151,141],[150,141],[128,142],[129,137],[127,143],[126,144],[123,145],[124,1],[125,1],[130,146],[152,147],[62,1],[64,148],[67,149],[66,1],[65,148],[63,150]],"affectedFilesPendingEmit":[[68,17],[71,17],[73,17],[149,17],[148,17],[151,17],[150,17],[128,17],[129,17],[127,17],[126,17],[123,17],[125,17],[130,17],[152,17]],"emitSignatures":[68,71,73,123,125,126,127,128,129,130,148,149,150,151,152],"version":"6.0.3"} \ No newline at end of file +{"fileNames":["../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../store/dist/alien.d.ts","../store/dist/types.d.ts","../store/dist/atom.d.ts","../store/dist/store.d.ts","../store/dist/shallow.d.ts","../store/dist/index.d.ts","./src/index.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/let.d.marko","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/lifecycle.d.marko","./src/tags/store-atom.marko","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags/const.d.marko","./src/tags/store-selector.marko","../../node_modules/.pnpm/@vitest+pretty-format@4.1.4/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/display.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/timers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.4/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/tasks.d-bh0ijn67.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/traces.d.402v_yfi.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/hmrpayload.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/customevent.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4.2_sass@1.97.3_terser@5.46.0_yaml@2.8.3/node_modules/vite/dist/node/module-runner.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.4/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/config.d.chuh6-ad.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/rpc.d.bfmwpdph.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/worker.d.ccknuvi5.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/browser.d.c0zgu1u9.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.4/node_modules/@vitest/spy/optional-types.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.4/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../node_modules/.pnpm/@vitest+expect@4.1.4/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.4/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/global.d.d74z04p1.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/optional-runtime-types.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.4_vite@8.0.13_@types+node@25.6.0_esbuild@0.27.7_jiti@2.6.1_less@4.4._52529e11fbc5270d800772cd5a3414fe/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/runners.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.4_@types+node@25.6.0_@vitest+coverage-istanbul@4.1.4_jsdom@29.0.2_vite@8.0.1_22a3d0f58630d12022c9baef53fd7ab3/node_modules/vitest/dist/index.d.ts","./tests/index.test.ts","./tests/marko.d.ts","./tests/setup.ts","./tests/fixtures/ssr-store.ts","./tests/fixtures/ssr-selector.marko","./tests/fixtures/ssr-atom.marko","./tests/fixtures/ssr-object-antipattern.marko","./tests/ssr.test.ts","../../node_modules/.pnpm/@types+aria-query@5.0.4/node_modules/@types/aria-query/index.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/matches.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/query-helpers.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/queries.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-queries-for-element.d.ts","../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/types.d.ts","../../node_modules/.pnpm/pretty-format@27.5.1/node_modules/pretty-format/build/index.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/screen.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/wait-for-element-to-be-removed.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/get-node-text.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/events.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/pretty-dom.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/role-helpers.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/config.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/suggestions.d.ts","../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/types/index.d.ts","./tests/fixtures/selector-host.marko","./tests/fixtures/atom-host.marko","./tests/fixtures/selector-source-swap-host.marko","./tests/fixtures/selector-selector-swap-host.marko","./tests/tags.test.ts","../../node_modules/.pnpm/@marko+language-tools@2.6.0/node_modules/@marko/language-tools/marko.internal.d.ts","../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/tags-html.d.ts","../../node_modules/.pnpm/marko@6.1.18/node_modules/marko/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/blob.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/console.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/encoding.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client-stats.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/round-robin-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/messaging.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/performance.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/timers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/url.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/posix.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/win32.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/quic.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test/reporters.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util/types.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[159,222,230,234,237,239,240,241,254],[135,159,222,230,234,237,239,240,241,254],[132,133,134,135,136,139,140,141,142,143,144,145,146,159,222,230,234,237,239,240,241,254],[131,159,222,230,234,237,239,240,241,254],[138,159,222,230,234,237,239,240,241,254],[132,133,134,159,222,230,234,237,239,240,241,254],[132,133,159,222,230,234,237,239,240,241,254],[135,136,138,159,222,230,234,237,239,240,241,254],[133,159,222,230,234,237,239,240,241,254],[102,103,159,222,230,234,237,239,240,241,254],[159,219,220,222,230,234,237,239,240,241,254],[159,221,222,230,234,237,239,240,241,254],[222,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,262],[159,222,223,228,230,233,234,237,239,240,241,243,254,259,271],[159,222,223,224,230,233,234,237,239,240,241,254],[159,222,225,230,234,237,239,240,241,254,272],[159,222,226,227,230,234,237,239,240,241,245,254],[159,222,227,230,234,237,239,240,241,254,259,268],[159,222,228,230,233,234,237,239,240,241,243,254],[159,221,222,229,230,234,237,239,240,241,254],[159,222,230,231,234,237,239,240,241,254],[159,222,230,232,233,234,237,239,240,241,254],[159,221,222,230,233,234,237,239,240,241,254],[159,222,230,233,234,235,237,239,240,241,254,259,271],[159,222,230,233,234,235,237,239,240,241,254,259,262],[159,209,222,230,233,234,236,237,239,240,241,243,254,259,271],[159,222,230,233,234,236,237,239,240,241,243,254,259,268,271],[159,222,230,234,236,237,238,239,240,241,254,259,268,271],[157,158,159,160,161,162,163,164,165,166,167,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[159,222,230,233,234,237,239,240,241,254],[159,222,230,234,237,239,241,254],[159,222,230,234,237,239,240,241,242,254,271],[159,222,230,233,234,237,239,240,241,243,254,259],[159,222,230,234,237,239,240,241,245,254],[159,222,230,234,237,239,240,241,246,254],[159,222,230,233,234,237,239,240,241,249,254],[159,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278],[159,222,230,234,237,239,240,241,251,254],[159,222,230,234,237,239,240,241,252,254],[159,222,227,230,234,237,239,240,241,243,254,262],[159,222,230,233,234,237,239,240,241,254,255],[159,222,230,234,237,239,240,241,254,256,272,275],[159,222,230,233,234,237,239,240,241,254,259,261,262],[159,222,230,234,237,239,240,241,254,260,262],[159,222,230,234,237,239,240,241,254,262,272],[159,222,230,234,237,239,240,241,254,263],[159,219,222,230,234,237,239,240,241,254,259,265,271],[159,222,230,234,237,239,240,241,254,259,264],[159,222,230,233,234,237,239,240,241,254,266,267],[159,222,230,234,237,239,240,241,254,266,267],[159,222,227,230,234,237,239,240,241,243,254,259,268],[159,222,230,234,237,239,240,241,254,269],[159,222,230,234,237,239,240,241,243,254,270],[159,222,230,234,236,237,239,240,241,252,254,271],[159,222,230,234,237,239,240,241,254,272,273],[159,222,227,230,234,237,239,240,241,254,273],[159,222,230,234,237,239,240,241,254,259,274],[159,222,230,234,237,239,240,241,242,254,275],[159,222,230,234,237,239,240,241,254,276],[159,222,225,230,234,237,239,240,241,254],[159,222,227,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,272],[159,209,222,230,234,237,239,240,241,254],[159,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,254,277],[159,222,230,234,237,239,240,241,249,254],[159,222,230,234,237,239,240,241,254,267],[159,209,222,230,233,234,235,237,239,240,241,249,254,259,262,271,274,275,277],[159,222,230,234,237,239,240,241,254,259,278],[75,81,99,100,101,104,159,222,230,234,237,239,240,241,254],[111,159,222,230,234,237,239,240,241,254],[111,112,159,222,230,234,237,239,240,241,254],[79,81,82,159,222,230,234,237,239,240,241,254],[79,81,159,222,230,234,237,239,240,241,254],[79,159,222,230,234,237,239,240,241,254],[74,79,90,91,159,222,230,234,237,239,240,241,254],[74,79,90,159,222,230,234,237,239,240,241,254],[98,159,222,230,234,237,239,240,241,254],[74,80,159,222,230,234,237,239,240,241,254],[74,159,222,230,234,237,239,240,241,254],[76,159,222,230,234,237,239,240,241,254],[74,75,76,77,78,159,222,230,234,237,239,240,241,254],[117,118,159,222,230,234,237,239,240,241,254],[117,118,119,120,159,222,230,234,237,239,240,241,254],[117,119,159,222,230,234,237,239,240,241,254],[117,159,222,230,234,237,239,240,241,254],[124,155,159,222,230,234,237,239,240,241,254],[154,159,222,230,234,237,239,240,241,254],[137,159,222,230,234,237,239,240,241,254],[159,174,177,180,181,222,230,234,237,239,240,241,254,271],[159,177,222,230,234,237,239,240,241,254,259,271],[159,177,181,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,254,259],[159,171,222,230,234,237,239,240,241,254],[159,175,222,230,234,237,239,240,241,254],[159,173,174,177,222,230,234,237,239,240,241,254,271],[159,222,230,234,237,239,240,241,243,254,268],[159,222,230,234,237,239,240,241,254,279],[159,171,222,230,234,237,239,240,241,254,279],[159,173,177,222,230,234,237,239,240,241,243,254,271],[159,168,169,170,172,176,222,230,233,234,237,239,240,241,254,259,271],[159,177,186,194,222,230,234,237,239,240,241,254],[159,169,175,222,230,234,237,239,240,241,254],[159,177,203,204,222,230,234,237,239,240,241,254],[159,169,172,177,222,230,234,237,239,240,241,254,262,271,279],[159,177,222,230,234,237,239,240,241,254],[159,173,177,222,230,234,237,239,240,241,254,271],[159,168,222,230,234,237,239,240,241,254],[159,171,172,173,175,176,177,178,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,207,208,222,230,234,237,239,240,241,254],[159,177,196,199,222,230,234,237,239,240,241,254],[159,177,186,187,188,222,230,234,237,239,240,241,254],[159,175,177,187,189,222,230,234,237,239,240,241,254],[159,176,222,230,234,237,239,240,241,254],[159,169,171,177,222,230,234,237,239,240,241,254],[159,177,181,187,189,222,230,234,237,239,240,241,254],[159,181,222,230,234,237,239,240,241,254],[159,175,177,180,222,230,234,237,239,240,241,254,271],[159,169,173,177,186,222,230,234,237,239,240,241,254],[159,177,196,222,230,234,237,239,240,241,254],[159,189,222,230,234,237,239,240,241,254],[159,171,177,203,222,230,234,237,239,240,241,254,262,277,279],[85,159,222,230,234,237,239,240,241,254],[85,86,87,88,159,222,230,234,237,239,240,241,254],[87,159,222,230,234,237,239,240,241,254],[83,106,107,109,159,222,230,234,237,239,240,241,254],[83,84,96,109,159,222,230,234,237,239,240,241,254],[74,81,83,92,109,159,222,230,234,237,239,240,241,254],[89,159,222,230,234,237,239,240,241,254],[74,83,92,95,105,108,109,159,222,230,234,237,239,240,241,254],[83,84,89,92,109,159,222,230,234,237,239,240,241,254],[83,106,107,108,109,159,222,230,234,237,239,240,241,254],[83,89,93,94,95,109,159,222,230,234,237,239,240,241,254],[74,79,81,83,84,89,92,93,94,95,96,97,99,105,106,107,108,109,110,113,114,115,116,121,159,222,230,234,237,239,240,241,254],[74,81,83,84,92,93,106,107,108,109,114,159,222,230,234,237,239,240,241,254],[67,159,222,230,234,237,239,240,241,254],[69,70,159,222,230,234,237,239,240,241,254],[69,70,72,159,222,230,234,237,239,240,241,254],[71,159,222,230,234,237,239,240,241,254],[73,159,222,230,234,237,239,240,241,254],[69,72,73,159,222,230,234,237,239,240,241,254],[71,126,159,222,230,234,237,239,240,241,254],[73,126,159,222,230,234,237,239,240,241,254],[68,159,222,230,234,237,239,240,241,254],[68,122,159,222,230,234,237,239,240,241,254],[122,126,127,128,129,159,222,230,234,237,239,240,241,254],[68,122,147,148,149,150,151,159,222,230,234,237,239,240,241,254],[63,159,222,230,234,237,239,240,241,254],[63,64,65,66,159,222,230,234,237,239,240,241,254],[62,159,222,230,234,237,239,240,241,254]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"39f13fb4279fe07702c870642a2ec26db019d3afdb5b369523c45c77ed266c65","51aae950c97b61105064619e52f8b4e702ed9d88f6a38d8a6d461389be28dd0b","08a8feab6868367d5112474f9015e5b00c101012a639309e88fb105f94ced534","a15a870f6ab5a26a7eb91ddd8c47ff4e00bc23ece96ab48ff8aaf42450478a50","73390a82cbd5ea87d8bcdf183d66853207a111de00a8512c68ca17b47a11e65d","53755d0e8037d36720dc68e2e8c77512698befd0c0d48ac5d20c41986df91bc2","e746dbf4e43b9e40b9965f1cbe15f029b066423b294c6a69ea7f2f9cd9091758","2e88396eb16a936421ad6de3e2da7a7b","41f7e591762f7ab63f1cae9baad59534","b320bf9f32b091f50800df8894392fd5","10faacc9b67dd33e042f567ac9343c13","28934f4e9d4f4ee2fabd4e20e127c9d5",{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"9443967db823b66d1682be7fc66392be7c7924e10c3e54900f456341e94591a6","impliedFormat":99},{"version":"424f71d1fae96ac2e878af92345bb87bea1d29f757228fbc190133b305643f2c","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"16fe60bb544cfedfd2b5bb2f7d0b3957be7978706d57d9f06edc9c0c8dbdba23","impliedFormat":99},{"version":"de4a612aa8f1704af486f701e21993c786ba7d8cfed55fffa6684026aea2346e","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"8887e70871f697fa42ad7cdf32168db60ec2d6760c173c97973e35377fe5d83b","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"6bb6d57454370324434bcf355942dee45b0e0d8ab0fa3e98bafe8a30718273b4","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"a86701e56b10a6d1ef9b2ecaeedbab94ed7b957a646cd71fd09d02b323c6d3d7","impliedFormat":99},{"version":"976932e3807786cdae46ed5dfcd02c44f3fa25c157a0e8392f5a2dabb9a14a4e","impliedFormat":99},{"version":"59b7a8ec1781284f6602af48487b68fc3baadf34cb4cbcbb31f213b6712fac34","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"ed9bb55ddcbebd5cb3eee991f57ff21438546ee40ee1c310281bd12a6c7cf65b","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4c3d12ac5744ff4ba2e1ce97ec307f09d726b4cfcfd5eff3315ccc080d620fb9","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"abdaf8c2f20089a6b23a6287007ed16f9cf76d0045ce2973a5f8508c87286d21","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"8c9917efcdf61e9b9a73ac1e289c612f12db33519ca1445cca41865f7887c737","impliedFormat":99},"dc7de349426eeba24b0424219a61ef400d6fbbd9a75ce1a924964f33066e20a7","59ec10f39bff3eaf54f0ab11a2da8097a235519d4c2bebfff514ea3d83b4e3fa",{"version":"943627b96a61dbb76261f6cdf0192ae32ffd49ad466a87595e8fba1f748db814","affectsGlobalScope":true},"d513ea666385f2c8007e764e582e9ddb7bdcfe686eadf102be053e25ff9eb265","2adc3d8d9e7018f11f8f95f9772804f3","7e82a2d918950e6553231ada223aa21b","0a6ebd564b9cd399aab7fe4b29804fc5",{"version":"6bb962e9bdb839aa19ecb431d8ea9de269968bd2e7883523f68b6ac6e3d14ca9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"3cfb7c0c642b19fb75132154040bb7cd840f0002f9955b14154e69611b9b3f81","impliedFormat":1},{"version":"8387ec1601cf6b8948672537cf8d430431ba0d87b1f9537b4597c1ab8d3ade5b","impliedFormat":1},{"version":"d16f1c460b1ca9158e030fdf3641e1de11135e0c7169d3e8cf17cc4cc35d5e64","impliedFormat":1},{"version":"a934063af84f8117b8ce51851c1af2b76efe960aa4c7b48d0343a1b15c01aedf","impliedFormat":1},{"version":"e3c5ad476eb2fca8505aee5bdfdf9bf11760df5d0f9545db23f12a5c4d72a718","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"d0570ce419fb38287e7b39c910b468becb5b2278cf33b1000a3d3e82a46ecae2","impliedFormat":1},{"version":"3aca7f4260dad9dcc0a0333654cb3cde6664d34a553ec06c953bce11151764d7","impliedFormat":1},{"version":"a0a6f0095f25f08a7129bc4d7cb8438039ec422dc341218d274e1e5131115988","impliedFormat":1},{"version":"b58f396fe4cfe5a0e4d594996bc8c1bfe25496fbc66cf169d41ac3c139418c77","impliedFormat":1},{"version":"45785e608b3d380c79e21957a6d1467e1206ac0281644e43e8ed6498808ace72","impliedFormat":1},{"version":"bece27602416508ba946868ad34d09997911016dbd6893fb884633017f74e2c5","impliedFormat":1},{"version":"2a90177ebaef25de89351de964c2c601ab54d6e3a157cba60d9cd3eaf5a5ee1a","impliedFormat":1},{"version":"82200e963d3c767976a5a9f41ecf8c65eca14a6b33dcbe00214fcbe959698c46","impliedFormat":1},{"version":"b4966c503c08bbd9e834037a8ab60e5f53c5fd1092e8873c4a1c344806acdab2","impliedFormat":1},"cbff6d86c61506feebebf2e5204c3a2e","77c5d8fa66f03d542472c4a343d84f8e","cc1ca60428e3906aa45dfb1d3b4dba23","0fc1985168c5d611789e82c0701bae48","70db4230f2c1d9974206ad3b904757972593c2fd2bec0d28ee474bc7a44ba6d0",{"version":"c265bff524f49bce83a4b52c16325e5bafbf5ee5b68e4544ceac12d8f1fcd7c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"bf987531ac8c5b5a795bbac840e92daea5b135ecdec6371c143e8d116599079f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b059875943da7c4555bb340cffea782dcc789d9cd633deed4fc1f856356f5784","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"f9713757bcdfa4d58b48c0fb249e752c94a3eee8bf4532b906094246ac49ef88","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"eab2f3179607acb3d44b2db2a76dd7d621c5039b145dc160a1ee733963f9d2f5","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[68,71,73,[123,130],[148,153],156],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"module":99,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"strict":true,"target":7},"referencedMap":[[153,1],[101,1],[145,1],[142,1],[141,1],[136,2],[147,3],[132,4],[143,5],[135,6],[134,7],[144,1],[139,8],[146,1],[140,9],[133,1],[131,1],[104,10],[102,1],[219,11],[220,11],[221,12],[159,13],[222,14],[223,15],[224,16],[157,1],[225,17],[226,18],[227,19],[228,20],[229,21],[230,22],[231,22],[232,23],[233,24],[234,25],[235,26],[160,1],[158,1],[236,27],[237,28],[238,29],[279,30],[239,31],[240,32],[241,31],[242,33],[243,34],[245,35],[246,36],[247,36],[248,36],[249,37],[250,38],[251,39],[252,40],[253,41],[254,42],[255,42],[256,43],[257,1],[258,1],[259,44],[260,45],[261,44],[262,46],[263,47],[264,48],[265,49],[266,50],[267,51],[268,52],[269,53],[270,54],[271,55],[272,56],[273,57],[274,58],[275,59],[276,60],[161,31],[162,1],[163,61],[164,62],[165,1],[166,63],[167,1],[210,64],[211,65],[212,66],[213,66],[214,67],[215,1],[216,14],[217,68],[218,65],[277,69],[278,70],[105,71],[112,72],[113,73],[111,1],[74,1],[83,74],[82,75],[106,74],[90,76],[92,77],[91,78],[99,79],[98,1],[81,80],[75,81],[77,82],[79,83],[78,1],[80,81],[76,1],[103,1],[244,1],[154,1],[119,84],[121,85],[120,86],[118,87],[117,1],[156,88],[155,89],[72,1],[69,1],[70,1],[138,90],[137,1],[107,1],[100,1],[60,1],[61,1],[10,1],[11,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[58,1],[1,1],[59,1],[186,91],[198,92],[183,93],[199,94],[208,95],[174,96],[175,97],[173,98],[207,99],[202,100],[206,101],[177,102],[195,103],[176,104],[205,105],[171,106],[172,100],[178,107],[179,1],[185,108],[182,107],[169,109],[209,110],[200,111],[189,112],[188,107],[190,113],[193,114],[187,115],[191,116],[203,99],[180,117],[181,118],[194,119],[170,94],[197,120],[196,107],[184,118],[192,121],[201,1],[168,1],[204,122],[86,123],[89,124],[87,123],[85,1],[88,125],[108,126],[97,127],[93,128],[94,76],[115,129],[109,130],[95,131],[114,132],[84,1],[96,133],[122,134],[116,135],[110,1],[68,136],[71,137],[73,138],[149,139],[148,140],[151,141],[150,141],[128,142],[129,137],[127,143],[126,144],[123,145],[124,1],[125,1],[130,146],[152,147],[62,1],[64,148],[67,149],[66,1],[65,148],[63,150]],"affectedFilesPendingEmit":[[68,17],[71,17],[73,17],[149,17],[148,17],[151,17],[150,17],[128,17],[129,17],[127,17],[126,17],[123,17],[125,17],[130,17],[152,17]],"emitSignatures":[68,71,73,123,125,126,127,128,129,130,148,149,150,151,152],"version":"6.0.3"} \ No newline at end of file From 3d003fdde7ae3b0af10b3e23fc4fa9372acc1f9c Mon Sep 17 00:00:00 2001 From: defunkt-dev Date: Fri, 26 Jun 2026 11:06:08 -0600 Subject: [PATCH 04/26] e2e success with knip fails --- .prettierrc | 2 +- knip.json | 8 +- package.json | 1 + packages/marko-store/e2e/README.md | 50 ++++++ packages/marko-store/e2e/playwright.config.ts | 22 +++ packages/marko-store/e2e/server.mjs | 39 ++++ packages/marko-store/e2e/src/index.ts | 42 +++++ packages/marko-store/e2e/src/page.marko | 42 +++++ packages/marko-store/e2e/src/store.js | 8 + .../e2e/store-resume-liveness.spec.ts | 59 ++++++ packages/marko-store/package.json | 2 + .../marko-store/test-results/.last-run.json | 4 + pnpm-lock.yaml | 170 ++++++++++++++++-- 13 files changed, 433 insertions(+), 16 deletions(-) create mode 100644 packages/marko-store/e2e/README.md create mode 100644 packages/marko-store/e2e/playwright.config.ts create mode 100644 packages/marko-store/e2e/server.mjs create mode 100644 packages/marko-store/e2e/src/index.ts create mode 100644 packages/marko-store/e2e/src/page.marko create mode 100644 packages/marko-store/e2e/src/store.js create mode 100644 packages/marko-store/e2e/store-resume-liveness.spec.ts create mode 100644 packages/marko-store/test-results/.last-run.json diff --git a/.prettierrc b/.prettierrc index c4d3dad5..c324b915 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,6 +2,6 @@ "semi": false, "singleQuote": true, "trailingComma": "all", - "plugins": ["prettier-plugin-svelte"], + "plugins": ["prettier-plugin-svelte", "prettier-plugin-marko"], "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] } diff --git a/knip.json b/knip.json index e1dfef2b..758ef797 100644 --- a/knip.json +++ b/knip.json @@ -2,7 +2,13 @@ "$schema": "https://unpkg.com/knip@5/schema.json", "workspaces": { "packages/marko-store": { - "entry": ["src/index.ts", "src/tags/**/*.marko"], + "entry": [ + "src/index.ts", + "src/tags/**/*.marko", + "e2e/server.mjs", + "e2e/src/index.js", + "e2e/src/store.js" + ], "ignoreDependencies": ["@marko/language-tools", "marko"] }, "packages/vue-store": { diff --git a/package.json b/package.json index b3e0f4b6..61cfa049 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "nx": "22.6.5", "premove": "^4.0.0", "prettier": "^3.8.2", + "prettier-plugin-marko": "^4.0.9", "prettier-plugin-svelte": "^3.5.1", "publint": "^0.3.18", "sherif": "^1.11.1", diff --git a/packages/marko-store/e2e/README.md b/packages/marko-store/e2e/README.md new file mode 100644 index 00000000..eea11381 --- /dev/null +++ b/packages/marko-store/e2e/README.md @@ -0,0 +1,50 @@ +# marko-store e2e (resume liveness) + +A real-browser proof that an SSR'd page using `` and `` resumes and +stays reactive. jsdom can render and serialize but cannot faithfully reproduce Marko 6's client +resume, so this round-trip lives here (Playwright + real Chromium) rather than in the vitest +suite. + +## What it proves + +`store-resume-liveness.spec.ts` loads the SSR'd page and checks, in order: + +1. **The page resumed** -- a store-independent `data-testid="resumed"` marker flips from `no` + (server) to `yes` (client `onMount`). This is the precondition; if it stays `no`, the page + never resumed and any further result is inconclusive. +2. **Seeded values rendered** -- `selector-count` is `5` and `atom-value` is `7`, from the + module-singleton `createStore({ count: 5 })` / `createAtom(7)`. +3. **Selector subscription is live** -- clicking a button that calls `counterStore.setState` + from outside any tag moves `selector-count` to `6`. +4. **Atom write-back is live** -- clicking the atom button (`value++`) flows through the tag's + `valueChange` into `countAtom.set` and moves `atom-value` to `8`. +5. **No serialization crash** -- no `pageerror` / `console.error` during render or resume. + +A `resumed=yes` result with a stale value would mean a tag is inert after resume (the failure +this is designed to catch), distinct from a `resumed=no` setup failure. + +## Architecture + +- `server.mjs` -- Vite (middleware mode) + `@marko/vite`, on port 5188. It `ssrLoadModule`s the + JS entry `src/index.js` (not the `.marko` directly); only the JS-entry path makes `@marko/vite` + inject the client ` + + diff --git a/examples/marko/atoms/package.json b/examples/marko/atoms/package.json new file mode 100644 index 00000000..48953fac --- /dev/null +++ b/examples/marko/atoms/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/store-example-marko-atoms", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3061", + "build": "vite build", + "preview": "vite preview", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/atoms/src/App.marko b/examples/marko/atoms/src/App.marko new file mode 100644 index 00000000..b5cb22ad --- /dev/null +++ b/examples/marko/atoms/src/App.marko @@ -0,0 +1,20 @@ +import { countAtom } from './atom' + +
+

Marko Atoms

+

This example creates a module-level atom and reads and updates it with the tags.

+ + + countAtom)/> +

Total: ${total}

+ +
+ + +
+ + + countAtom)/> +

Editable count: ${count}

+ +
diff --git a/examples/marko/atoms/src/atom.ts b/examples/marko/atoms/src/atom.ts new file mode 100644 index 00000000..79fa57fc --- /dev/null +++ b/examples/marko/atoms/src/atom.ts @@ -0,0 +1,4 @@ +import { createAtom } from '@tanstack/marko-store' + +// You can create atoms outside of components, at module scope. +export const countAtom = createAtom(0) diff --git a/examples/marko/atoms/src/index.ts b/examples/marko/atoms/src/index.ts new file mode 100644 index 00000000..21867a93 --- /dev/null +++ b/examples/marko/atoms/src/index.ts @@ -0,0 +1,4 @@ +import App from './App.marko' + +const el = document.getElementById('app') +if (el) App.mount({}, el) diff --git a/examples/marko/atoms/tsconfig.json b/examples/marko/atoms/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/atoms/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/examples/marko/atoms/vite.config.ts b/examples/marko/atoms/vite.config.ts new file mode 100644 index 00000000..ac3ced6c --- /dev/null +++ b/examples/marko/atoms/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import marko from '@marko/vite' + +// linked: false => browser-only build (a client-only SPA, mounted in src/index.ts). +export default defineConfig({ + plugins: [marko({ linked: false })], +}) diff --git a/examples/marko/simple/README.md b/examples/marko/simple/README.md new file mode 100644 index 00000000..5dd074e6 --- /dev/null +++ b/examples/marko/simple/README.md @@ -0,0 +1,10 @@ +# Marko Store — simple + +A multi-component counter split across files. `Increment.marko` writes with +`store.setState`; `Display.marko` reads a slice with ``; +`App.marko` composes them around a module-level store in `store.ts`. + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/marko/simple/index.html b/examples/marko/simple/index.html new file mode 100644 index 00000000..0d0ff6ac --- /dev/null +++ b/examples/marko/simple/index.html @@ -0,0 +1,12 @@ + + + + + + Marko Store Example — simple + + +
+ + + diff --git a/examples/marko/simple/package.json b/examples/marko/simple/package.json new file mode 100644 index 00000000..331b7abb --- /dev/null +++ b/examples/marko/simple/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/store-example-marko-simple", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3060", + "build": "vite build", + "preview": "vite preview", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/simple/src/App.marko b/examples/marko/simple/src/App.marko new file mode 100644 index 00000000..50d72bf4 --- /dev/null +++ b/examples/marko/simple/src/App.marko @@ -0,0 +1,11 @@ +import Increment from './Increment.marko' +import Display from './Display.marko' + +
+

How many of your friends like cats or dogs?

+

Press a button to add a counter of how many of your friends like cats or dogs.

+ + + + +
diff --git a/examples/marko/simple/src/Display.marko b/examples/marko/simple/src/Display.marko new file mode 100644 index 00000000..68449c2c --- /dev/null +++ b/examples/marko/simple/src/Display.marko @@ -0,0 +1,9 @@ +import { store } from './store' + +export interface Input { + animal: 'dogs' | 'cats' +} + +// Re-renders only when state[animal] changes; an unrelated change won't re-render it. + store) selector=((s: { dogs: number; cats: number }) => s[input.animal])/> +
${input.animal}: ${count}
diff --git a/examples/marko/simple/src/Increment.marko b/examples/marko/simple/src/Increment.marko new file mode 100644 index 00000000..3d771c5d --- /dev/null +++ b/examples/marko/simple/src/Increment.marko @@ -0,0 +1,11 @@ +import { store } from './store' + +export interface Input { + animal: 'dogs' | 'cats' +} + + diff --git a/examples/marko/simple/src/index.ts b/examples/marko/simple/src/index.ts new file mode 100644 index 00000000..21867a93 --- /dev/null +++ b/examples/marko/simple/src/index.ts @@ -0,0 +1,4 @@ +import App from './App.marko' + +const el = document.getElementById('app') +if (el) App.mount({}, el) diff --git a/examples/marko/simple/src/store.ts b/examples/marko/simple/src/store.ts new file mode 100644 index 00000000..d3cc5d82 --- /dev/null +++ b/examples/marko/simple/src/store.ts @@ -0,0 +1,7 @@ +import { createStore } from '@tanstack/marko-store' + +// You can instantiate a Store outside of components, at module scope. +export const store = createStore({ + dogs: 0, + cats: 0, +}) diff --git a/examples/marko/simple/tsconfig.json b/examples/marko/simple/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/simple/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/examples/marko/simple/vite.config.ts b/examples/marko/simple/vite.config.ts new file mode 100644 index 00000000..ac3ced6c --- /dev/null +++ b/examples/marko/simple/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import marko from '@marko/vite' + +// linked: false => browser-only build (a client-only SPA, mounted in src/index.ts). +export default defineConfig({ + plugins: [marko({ linked: false })], +}) diff --git a/examples/marko/ssr-per-request-multi/README.md b/examples/marko/ssr-per-request-multi/README.md new file mode 100644 index 00000000..fb643d6a --- /dev/null +++ b/examples/marko/ssr-per-request-multi/README.md @@ -0,0 +1,15 @@ +# Marko Store — ssr-per-request-multi + +Two pages. The home page (`/`) rebuilds a store from per-request DATA passed by +the route: the data crosses in the serialized payload and the store is rebuilt on +each side. The `/multi` page parks a bundle of two stores in one provider, read +independently, with a context write targeting one. + +This is a development demonstration, run with the Marko Vite dev server. It is +NOT a deployable production server — real Marko production uses `@marko/run`. + +To run this example: + +- `npm install` +- `npm run dev` +- open `/` and `/multi` diff --git a/examples/marko/ssr-per-request-multi/package.json b/examples/marko/ssr-per-request-multi/package.json new file mode 100644 index 00000000..8db1c9fa --- /dev/null +++ b/examples/marko/ssr-per-request-multi/package.json @@ -0,0 +1,18 @@ +{ + "name": "@tanstack/store-example-marko-ssr-per-request-multi", + "private": true, + "type": "module", + "scripts": { + "dev": "node server.mjs", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/ssr-per-request-multi/server.mjs b/examples/marko/ssr-per-request-multi/server.mjs new file mode 100644 index 00000000..1967cf08 --- /dev/null +++ b/examples/marko/ssr-per-request-multi/server.mjs @@ -0,0 +1,47 @@ +import { createServer as createHttpServer } from 'node:http' +import { createRequire } from 'node:module' +import path from 'node:path' +import url from 'node:url' + +import { createServer as createViteServer } from 'vite' + +const require = createRequire(import.meta.url) +const marko = require('@marko/vite').default +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)) +const PORT = 5201 + +// A small Vite dev server in middleware mode renders the .marko pages and injects the browser +// scripts so the page resumes. NOTE: this is a development demonstration, not a deployable +// production server. Real Marko production uses @marko/run. + +// Create the HTTP server first so Vite can attach its HMR websocket to the same server/port +// (otherwise the browser's HMR client tries to open a socket that isn't there). +const httpServer = createHttpServer() + +const devServer = await createViteServer({ + root: __dirname, + configFile: false, + appType: 'custom', + logLevel: 'warn', + plugins: [marko()], + server: { middlewareMode: true, hmr: { server: httpServer } }, +}) + +devServer.middlewares.use((req, res, next) => { + if (req.url === '/favicon.ico') { res.statusCode = 204; res.end(); return } + next() +}) +devServer.middlewares.use(async (req, res, next) => { + try { + const { handler } = await devServer.ssrLoadModule(path.join(__dirname, './src/index.ts')) + await handler(req, res, next) + } catch (err) { + devServer.ssrFixStacktrace(err) + next(err) + } +}) + +httpServer.on('request', devServer.middlewares) +httpServer.listen(PORT, () => { + console.log('example server on http://localhost:' + PORT) +}) diff --git a/examples/marko/ssr-per-request-multi/src/index.ts b/examples/marko/ssr-per-request-multi/src/index.ts new file mode 100644 index 00000000..f6698a32 --- /dev/null +++ b/examples/marko/ssr-per-request-multi/src/index.ts @@ -0,0 +1,32 @@ +import perreqPage from './perreq-page.marko' +import multiPage from './multi-page.marko' + +// Minimal structural types for the Node req/res the dev server passes in — keeps this small +// example free of an @types/node dependency. The real Node objects satisfy these structurally. +interface Req { url?: string } +interface Res { + statusCode: number + headersSent: boolean + setHeader(name: string, value: string): void + write(chunk: string): void + end(data?: string): void +} + +type ServerTemplate = { render: (input: Record) => AsyncIterable } + +const routes: Record }> = { + '/': { page: perreqPage as unknown as ServerTemplate, input: { initial: { count: 42 } } }, + '/multi': { page: multiPage as unknown as ServerTemplate, input: {} }, +} + +export async function handler(req: Req, res: Res, next?: () => void) { + const url = (req.url ?? '/').split('?')[0] ?? '/' + const route = routes[url] + if (!route) { next?.(); return } + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html; charset=utf-8') + // Fresh $global per request — never share the resume/data box across requests. + const input = { ...route.input, $global: {} } + for await (const chunk of route.page.render(input)) res.write(chunk) + res.end() +} diff --git a/examples/marko/ssr-per-request-multi/src/multi-page.marko b/examples/marko/ssr-per-request-multi/src/multi-page.marko new file mode 100644 index 00000000..9c7ce72d --- /dev/null +++ b/examples/marko/ssr-per-request-multi/src/multi-page.marko @@ -0,0 +1,28 @@ +import { a, b } from './stores' + + + + Multiple stores in one provider + +
+

Multiple stores in one provider

+

One provider parks a bundle of two stores. Each selector picks a different member; a write to one moves only its own selector.

+ + + +

Resumed in browser: ${resumed}

+ + ({ a, b })> + c.a) selector=((s: any) => s.count)/> + c.b) selector=((s: any) => s.count)/> +

A: ${countA}

+

B: ${countB}

+ + +
+ + + +
+ + diff --git a/examples/marko/ssr-per-request-multi/src/perreq-page.marko b/examples/marko/ssr-per-request-multi/src/perreq-page.marko new file mode 100644 index 00000000..1bbc072c --- /dev/null +++ b/examples/marko/ssr-per-request-multi/src/perreq-page.marko @@ -0,0 +1,28 @@ +import { createStore } from '@tanstack/marko-store' +import type { Store } from '@tanstack/marko-store' + +export interface Input { + initial: { count: number } +} + + + + Per-request data + +
+

Per-request data, rebuilt on resume

+

The route passes plain DATA (input.initial); the provider creates the store from it. The data crosses in the serialized payload and the store is rebuilt on the client — a live store is never serialized.

+ + + +

Resumed in browser: ${resumed}

+ + ({ counter: createStore(input.initial) })> + }) => c.counter) selector=((s: { count: number }) => s.count)/> +

Count: ${count}

+ + +
+
+ + diff --git a/examples/marko/ssr-per-request-multi/src/stores.ts b/examples/marko/ssr-per-request-multi/src/stores.ts new file mode 100644 index 00000000..6d55e079 --- /dev/null +++ b/examples/marko/ssr-per-request-multi/src/stores.ts @@ -0,0 +1,5 @@ +import { createStore } from '@tanstack/marko-store' + +// Two isolated module stores for the multi-store page. +export const a = createStore({ count: 5 }) +export const b = createStore({ count: 50 }) diff --git a/examples/marko/ssr-per-request-multi/tsconfig.json b/examples/marko/ssr-per-request-multi/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/ssr-per-request-multi/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/examples/marko/ssr-resume/README.md b/examples/marko/ssr-resume/README.md new file mode 100644 index 00000000..21178edd --- /dev/null +++ b/examples/marko/ssr-resume/README.md @@ -0,0 +1,14 @@ +# Marko Store — ssr-resume + +A server-rendered page: the server paints the store's value, then the page +resumes and the store stays live (external writes and the atom write work after +load). The store is a module singleton and is rebuilt on each side, so no live +store is ever serialized. + +This is a development demonstration, run with the Marko Vite dev server. It is +NOT a deployable production server — real Marko production uses `@marko/run`. + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/marko/ssr-resume/package.json b/examples/marko/ssr-resume/package.json new file mode 100644 index 00000000..41e80d77 --- /dev/null +++ b/examples/marko/ssr-resume/package.json @@ -0,0 +1,18 @@ +{ + "name": "@tanstack/store-example-marko-ssr-resume", + "private": true, + "type": "module", + "scripts": { + "dev": "node server.mjs", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/ssr-resume/server.mjs b/examples/marko/ssr-resume/server.mjs new file mode 100644 index 00000000..cc0fedb0 --- /dev/null +++ b/examples/marko/ssr-resume/server.mjs @@ -0,0 +1,47 @@ +import { createServer as createHttpServer } from 'node:http' +import { createRequire } from 'node:module' +import path from 'node:path' +import url from 'node:url' + +import { createServer as createViteServer } from 'vite' + +const require = createRequire(import.meta.url) +const marko = require('@marko/vite').default +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)) +const PORT = 5200 + +// A small Vite dev server in middleware mode renders the .marko pages and injects the browser +// scripts so the page resumes. NOTE: this is a development demonstration, not a deployable +// production server. Real Marko production uses @marko/run. + +// Create the HTTP server first so Vite can attach its HMR websocket to the same server/port +// (otherwise the browser's HMR client tries to open a socket that isn't there). +const httpServer = createHttpServer() + +const devServer = await createViteServer({ + root: __dirname, + configFile: false, + appType: 'custom', + logLevel: 'warn', + plugins: [marko()], + server: { middlewareMode: true, hmr: { server: httpServer } }, +}) + +devServer.middlewares.use((req, res, next) => { + if (req.url === '/favicon.ico') { res.statusCode = 204; res.end(); return } + next() +}) +devServer.middlewares.use(async (req, res, next) => { + try { + const { handler } = await devServer.ssrLoadModule(path.join(__dirname, './src/index.ts')) + await handler(req, res, next) + } catch (err) { + devServer.ssrFixStacktrace(err) + next(err) + } +}) + +httpServer.on('request', devServer.middlewares) +httpServer.listen(PORT, () => { + console.log('example server on http://localhost:' + PORT) +}) diff --git a/examples/marko/ssr-resume/src/index.ts b/examples/marko/ssr-resume/src/index.ts new file mode 100644 index 00000000..d2e8a280 --- /dev/null +++ b/examples/marko/ssr-resume/src/index.ts @@ -0,0 +1,30 @@ +import page from './page.marko' + +// Minimal structural types for the Node req/res the dev server passes in — keeps this small +// example free of an @types/node dependency. The real Node objects satisfy these structurally. +interface Req { url?: string } +interface Res { + statusCode: number + headersSent: boolean + setHeader(name: string, value: string): void + write(chunk: string): void + end(data?: string): void +} + +type ServerTemplate = { render: (input: Record) => AsyncIterable } + +const routes: Record }> = { + '/': { page: page as unknown as ServerTemplate, input: {} }, +} + +export async function handler(req: Req, res: Res, next?: () => void) { + const url = (req.url ?? '/').split('?')[0] ?? '/' + const route = routes[url] + if (!route) { next?.(); return } + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html; charset=utf-8') + // Fresh $global per request — never share the resume box across requests. + const input = { ...route.input, $global: {} } + for await (const chunk of route.page.render(input)) res.write(chunk) + res.end() +} diff --git a/examples/marko/ssr-resume/src/page.marko b/examples/marko/ssr-resume/src/page.marko new file mode 100644 index 00000000..ff83e21c --- /dev/null +++ b/examples/marko/ssr-resume/src/page.marko @@ -0,0 +1,24 @@ +import { counterStore, countAtom } from './store' + + + + SSR resume + +
+

Server render and resume

+

The server paints the store's values; the page then resumes and the store stays live in the browser.

+ + + +

Resumed in browser: ${resumed}

+ + counterStore) selector=((s: { count: number }) => s.count)/> +

Count: ${count}

+ + + countAtom)/> +

Atom: ${atom}

+ +
+ + diff --git a/examples/marko/ssr-resume/src/store.ts b/examples/marko/ssr-resume/src/store.ts new file mode 100644 index 00000000..77651d15 --- /dev/null +++ b/examples/marko/ssr-resume/src/store.ts @@ -0,0 +1,7 @@ +import { createAtom, createStore } from '@tanstack/marko-store' + +// Module-level store + atom. The page's inline thunks (() => counterStore) close over these +// stable references, which keeps the live store OUT of the serialized resume payload — the +// store is rebuilt on each side, never serialized. +export const counterStore = createStore({ count: 5 }) +export const countAtom = createAtom(7) diff --git a/examples/marko/ssr-resume/tsconfig.json b/examples/marko/ssr-resume/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/ssr-resume/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/examples/marko/store-actions/README.md b/examples/marko/store-actions/README.md new file mode 100644 index 00000000..48525189 --- /dev/null +++ b/examples/marko/store-actions/README.md @@ -0,0 +1,11 @@ +# Marko Store — store-actions + +A module-level store created with actions. Reads go through ``; +mutations call `store.actions.addCat` / `addDog` / `log`. There is no Marko +equivalent of the experimental `_useStore` tuple, and none is needed — holding +the store directly, `` plus `store.actions` cover the same ground. + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/marko/store-actions/index.html b/examples/marko/store-actions/index.html new file mode 100644 index 00000000..571b8f86 --- /dev/null +++ b/examples/marko/store-actions/index.html @@ -0,0 +1,12 @@ + + + + + + Marko Store Example — store-actions + + +
+ + + diff --git a/examples/marko/store-actions/package.json b/examples/marko/store-actions/package.json new file mode 100644 index 00000000..712fe47a --- /dev/null +++ b/examples/marko/store-actions/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/store-example-marko-store-actions", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3062", + "build": "vite build", + "preview": "vite preview", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/store-actions/src/App.marko b/examples/marko/store-actions/src/App.marko new file mode 100644 index 00000000..2565f11a --- /dev/null +++ b/examples/marko/store-actions/src/App.marko @@ -0,0 +1,23 @@ +import { petStore } from './store' + +
+ +

Marko Store Actions

+

+ This example creates a module-level store with actions. Components read state + with a selector and mutate through store.actions. Marko has no equivalent of + the experimental _useStore tuple, and does not need one: you already hold the + store, so a selector for the read plus store.actions for the write cover it. +

+ + petStore) selector=(s => s.cats)/> +

Cats: ${cats}

+ + + petStore) selector=(s => s.dogs)/> +

Dogs: ${dogs}

+ + + petStore) selector=(s => s.cats + s.dogs)/> +

Total votes: ${total}

+
diff --git a/examples/marko/store-actions/src/index.ts b/examples/marko/store-actions/src/index.ts new file mode 100644 index 00000000..21867a93 --- /dev/null +++ b/examples/marko/store-actions/src/index.ts @@ -0,0 +1,4 @@ +import App from './App.marko' + +const el = document.getElementById('app') +if (el) App.mount({}, el) diff --git a/examples/marko/store-actions/src/store.ts b/examples/marko/store-actions/src/store.ts new file mode 100644 index 00000000..e84b6c5e --- /dev/null +++ b/examples/marko/store-actions/src/store.ts @@ -0,0 +1,11 @@ +import { createStore } from '@tanstack/marko-store' + +// A module-level store created WITH actions (the second argument). +export const petStore = createStore( + { cats: 0, dogs: 0 }, + ({ setState, get }) => ({ + addCat: () => setState((prev) => ({ ...prev, cats: prev.cats + 1 })), + addDog: () => setState((prev) => ({ ...prev, dogs: prev.dogs + 1 })), + log: () => console.log(get()), + }), +) diff --git a/examples/marko/store-actions/tsconfig.json b/examples/marko/store-actions/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/store-actions/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/examples/marko/store-actions/vite.config.ts b/examples/marko/store-actions/vite.config.ts new file mode 100644 index 00000000..ac3ced6c --- /dev/null +++ b/examples/marko/store-actions/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import marko from '@marko/vite' + +// linked: false => browser-only build (a client-only SPA, mounted in src/index.ts). +export default defineConfig({ + plugins: [marko({ linked: false })], +}) diff --git a/examples/marko/store-context/README.md b/examples/marko/store-context/README.md new file mode 100644 index 00000000..eaaa5ceb --- /dev/null +++ b/examples/marko/store-context/README.md @@ -0,0 +1,12 @@ +# Marko Store — store-context + +The flagship for the adapter's delivery trio. `` parks a bundle +of `{ votesStore, countAtom }`; nested components read the store with +``, read the atom the same way (and with `` +for read/write), and write through ``. Where the other frameworks +lean on their native context, Marko uses provider + context + selector. + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/marko/store-context/index.html b/examples/marko/store-context/index.html new file mode 100644 index 00000000..f50c0d29 --- /dev/null +++ b/examples/marko/store-context/index.html @@ -0,0 +1,12 @@ + + + + + + Marko Store Example — store-context + + +
+ + + diff --git a/examples/marko/store-context/package.json b/examples/marko/store-context/package.json new file mode 100644 index 00000000..9f652277 --- /dev/null +++ b/examples/marko/store-context/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/store-example-marko-store-context", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3063", + "build": "vite build", + "preview": "vite preview", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/store-context/src/App.marko b/examples/marko/store-context/src/App.marko new file mode 100644 index 00000000..4a7a73e9 --- /dev/null +++ b/examples/marko/store-context/src/App.marko @@ -0,0 +1,35 @@ +import { createStore, createAtom } from '@tanstack/marko-store' +import CatCard from './CatCard.marko' +import DogCard from './DogCard.marko' +import TotalCard from './TotalCard.marko' +import StoreButtons from './StoreButtons.marko' +import AtomSummary from './AtomSummary.marko' +import NestedAtomControls from './NestedAtomControls.marko' +import DeepAtomEditor from './DeepAtomEditor.marko' + +// Marko has no native context, so this example uses the adapter's delivery trio: +// parks a bundle, children read it with , +// and writes go through . (A real app would give the bundle a named type; +// the context pickers here use `any` to keep the example focused.) + + + + ({ votesStore, countAtom })> +
+

Marko Store Context

+

+ This example provides both a store and an atom through a single context + bundle, then reads them from nested components. +

+ + + + +
+

Nested Atom Components

+ + + +
+
+
diff --git a/examples/marko/store-context/src/AtomSummary.marko b/examples/marko/store-context/src/AtomSummary.marko new file mode 100644 index 00000000..13842cc8 --- /dev/null +++ b/examples/marko/store-context/src/AtomSummary.marko @@ -0,0 +1,3 @@ + + c.countAtom)/> +

Atom count: ${count}

diff --git a/examples/marko/store-context/src/CatCard.marko b/examples/marko/store-context/src/CatCard.marko new file mode 100644 index 00000000..f2267ecb --- /dev/null +++ b/examples/marko/store-context/src/CatCard.marko @@ -0,0 +1,2 @@ + c.votesStore) selector=((s: any) => s.cats)/> +

Cats: ${cats}

diff --git a/examples/marko/store-context/src/DeepAtomEditor.marko b/examples/marko/store-context/src/DeepAtomEditor.marko new file mode 100644 index 00000000..7f703302 --- /dev/null +++ b/examples/marko/store-context/src/DeepAtomEditor.marko @@ -0,0 +1,7 @@ + + + (ctx() as any).countAtom)/> +
+

Editable atom count: ${count}

+ +
diff --git a/examples/marko/store-context/src/DogCard.marko b/examples/marko/store-context/src/DogCard.marko new file mode 100644 index 00000000..0a1c2dd6 --- /dev/null +++ b/examples/marko/store-context/src/DogCard.marko @@ -0,0 +1,2 @@ + c.votesStore) selector=((s: any) => s.dogs)/> +

Dogs: ${dogs}

diff --git a/examples/marko/store-context/src/NestedAtomControls.marko b/examples/marko/store-context/src/NestedAtomControls.marko new file mode 100644 index 00000000..aacb2a78 --- /dev/null +++ b/examples/marko/store-context/src/NestedAtomControls.marko @@ -0,0 +1,5 @@ + +
+ + +
diff --git a/examples/marko/store-context/src/StoreButtons.marko b/examples/marko/store-context/src/StoreButtons.marko new file mode 100644 index 00000000..52b1de6b --- /dev/null +++ b/examples/marko/store-context/src/StoreButtons.marko @@ -0,0 +1,5 @@ + +
+ + +
diff --git a/examples/marko/store-context/src/TotalCard.marko b/examples/marko/store-context/src/TotalCard.marko new file mode 100644 index 00000000..f143f66b --- /dev/null +++ b/examples/marko/store-context/src/TotalCard.marko @@ -0,0 +1,2 @@ + c.votesStore) selector=((s: any) => s.cats + s.dogs)/> +

Total votes: ${total}

diff --git a/examples/marko/store-context/src/index.ts b/examples/marko/store-context/src/index.ts new file mode 100644 index 00000000..21867a93 --- /dev/null +++ b/examples/marko/store-context/src/index.ts @@ -0,0 +1,4 @@ +import App from './App.marko' + +const el = document.getElementById('app') +if (el) App.mount({}, el) diff --git a/examples/marko/store-context/tsconfig.json b/examples/marko/store-context/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/store-context/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/examples/marko/store-context/vite.config.ts b/examples/marko/store-context/vite.config.ts new file mode 100644 index 00000000..ac3ced6c --- /dev/null +++ b/examples/marko/store-context/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import marko from '@marko/vite' + +// linked: false => browser-only build (a client-only SPA, mounted in src/index.ts). +export default defineConfig({ + plugins: [marko({ linked: false })], +}) diff --git a/examples/marko/stores/README.md b/examples/marko/stores/README.md new file mode 100644 index 00000000..14dc412e --- /dev/null +++ b/examples/marko/stores/README.md @@ -0,0 +1,12 @@ +# Marko Store Example + +This example demonstrates: + +- `` +- `store.setState` +- module-level `Store` + +To run this example: + +- `npm install` +- `npm run dev` diff --git a/examples/marko/stores/index.html b/examples/marko/stores/index.html new file mode 100644 index 00000000..4f065f59 --- /dev/null +++ b/examples/marko/stores/index.html @@ -0,0 +1,12 @@ + + + + + + Marko Store Example + + +
+ + + diff --git a/examples/marko/stores/package.json b/examples/marko/stores/package.json new file mode 100644 index 00000000..301103f1 --- /dev/null +++ b/examples/marko/stores/package.json @@ -0,0 +1,20 @@ +{ + "name": "@tanstack/store-example-marko-stores", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --port=3070", + "build": "vite build", + "preview": "vite preview", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/stores/src/App.marko b/examples/marko/stores/src/App.marko new file mode 100644 index 00000000..3951a137 --- /dev/null +++ b/examples/marko/stores/src/App.marko @@ -0,0 +1,27 @@ +import { petStore } from './store' + +
+

Marko Store

+

+ This example creates a module-level store. Components read state with a + selector and update it directly with store.setState. +

+ + petStore) selector=(s => s.cats)/> +

Cats: ${cats}

+ + petStore) selector=(s => s.dogs)/> +

Dogs: ${dogs}

+ + petStore) selector=(s => s.cats + s.dogs)/> +

Total votes: ${total}

+ +
+ + +
+
diff --git a/examples/marko/stores/src/index.ts b/examples/marko/stores/src/index.ts new file mode 100644 index 00000000..21867a93 --- /dev/null +++ b/examples/marko/stores/src/index.ts @@ -0,0 +1,4 @@ +import App from './App.marko' + +const el = document.getElementById('app') +if (el) App.mount({}, el) diff --git a/examples/marko/stores/src/store.ts b/examples/marko/stores/src/store.ts new file mode 100644 index 00000000..c6fa9f56 --- /dev/null +++ b/examples/marko/stores/src/store.ts @@ -0,0 +1,7 @@ +import { createStore } from '@tanstack/marko-store' + +// You can create stores at module scope and import them wherever you need them. +export const petStore = createStore({ + cats: 0, + dogs: 0, +}) diff --git a/examples/marko/stores/tsconfig.json b/examples/marko/stores/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/stores/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/examples/marko/stores/vite.config.ts b/examples/marko/stores/vite.config.ts new file mode 100644 index 00000000..52bb3f3a --- /dev/null +++ b/examples/marko/stores/vite.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' +import marko from '@marko/vite' + +// linked: false => browser-only build. The .marko is mounted on the client (src/index.ts), +// so there is no server pass. The SSR examples (ssr-resume etc.) use the default linked mode. +export default defineConfig({ + plugins: [marko({ linked: false })], +}) diff --git a/examples/marko/streaming/README.md b/examples/marko/streaming/README.md new file mode 100644 index 00000000..c4c889fe --- /dev/null +++ b/examples/marko/streaming/README.md @@ -0,0 +1,20 @@ +# Marko Store — streaming + +Streaming server-computed per-request data into a live store with +``. The home page (`/`) shows the in-order case: a store +born from a value that arrives inside a late ``, painted server-side with +no flash and live after resume. The `/out-of-order` page wraps each `` in +`` with a `<@placeholder>`, so the fast block paints before the slow one +while each store stays live. + +Note the server gives each request its own fresh `$global`: born-with-data parks +the store on `$global`, so requests must not share it. + +This is a development demonstration, run with the Marko Vite dev server. It is +NOT a deployable production server — real Marko production uses `@marko/run`. + +To run this example: + +- `npm install` +- `npm run dev` +- open `/` and `/out-of-order` diff --git a/examples/marko/streaming/package.json b/examples/marko/streaming/package.json new file mode 100644 index 00000000..293e1e52 --- /dev/null +++ b/examples/marko/streaming/package.json @@ -0,0 +1,18 @@ +{ + "name": "@tanstack/store-example-marko-streaming", + "private": true, + "type": "module", + "scripts": { + "dev": "node server.mjs", + "test:types": "marko-type-check -p tsconfig.json" + }, + "dependencies": { + "@tanstack/marko-store": "^0.11.0", + "marko": "^6" + }, + "devDependencies": { + "@marko/type-check": "^3.1.0", + "@marko/vite": "^6", + "vite": "^8.0.8" + } +} diff --git a/examples/marko/streaming/server.mjs b/examples/marko/streaming/server.mjs new file mode 100644 index 00000000..1d4ad534 --- /dev/null +++ b/examples/marko/streaming/server.mjs @@ -0,0 +1,47 @@ +import { createServer as createHttpServer } from 'node:http' +import { createRequire } from 'node:module' +import path from 'node:path' +import url from 'node:url' + +import { createServer as createViteServer } from 'vite' + +const require = createRequire(import.meta.url) +const marko = require('@marko/vite').default +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)) +const PORT = 5202 + +// A small Vite dev server in middleware mode renders the .marko pages and injects the browser +// scripts so the page resumes. NOTE: this is a development demonstration, not a deployable +// production server. Real Marko production uses @marko/run. + +// Create the HTTP server first so Vite can attach its HMR websocket to the same server/port +// (otherwise the browser's HMR client tries to open a socket that isn't there). +const httpServer = createHttpServer() + +const devServer = await createViteServer({ + root: __dirname, + configFile: false, + appType: 'custom', + logLevel: 'warn', + plugins: [marko()], + server: { middlewareMode: true, hmr: { server: httpServer } }, +}) + +devServer.middlewares.use((req, res, next) => { + if (req.url === '/favicon.ico') { res.statusCode = 204; res.end(); return } + next() +}) +devServer.middlewares.use(async (req, res, next) => { + try { + const { handler } = await devServer.ssrLoadModule(path.join(__dirname, './src/index.ts')) + await handler(req, res, next) + } catch (err) { + devServer.ssrFixStacktrace(err) + next(err) + } +}) + +httpServer.on('request', devServer.middlewares) +httpServer.listen(PORT, () => { + console.log('example server on http://localhost:' + PORT) +}) diff --git a/examples/marko/streaming/src/index.ts b/examples/marko/streaming/src/index.ts new file mode 100644 index 00000000..2f505c9d --- /dev/null +++ b/examples/marko/streaming/src/index.ts @@ -0,0 +1,44 @@ +import inorderPage from './inorder-page.marko' +import outoforderPage from './outoforder-page.marko' + +// Minimal structural types for the Node req/res the dev server passes in — keeps this small +// example free of an @types/node dependency. The real Node objects satisfy these structurally. +interface Req { url?: string } +interface Res { + statusCode: number + headersSent: boolean + setHeader(name: string, value: string): void + write(chunk: string): void + end(data?: string): void +} + +type ServerTemplate = { render: (input: Record) => AsyncIterable } + +const routes: Record }> = { + '/': { page: inorderPage as unknown as ServerTemplate, input: { value: 77 } }, + '/out-of-order': { page: outoforderPage as unknown as ServerTemplate, input: { slow: 33, fast: 44 } }, +} + +export async function handler(req: Req, res: Res, next?: () => void) { + const url = (req.url ?? '/').split('?')[0] ?? '/' + const route = routes[url] + if (!route) { next?.(); return } + res.setHeader('Content-Type', 'text/html; charset=utf-8') + // Fresh $global per request: born-with-data parks the store on $global, so each request MUST + // get its own box or concurrent requests would see each other's stores. + const input = { ...route.input, $global: {} } + try { + res.statusCode = 200 + for await (const chunk of route.page.render(input)) res.write(chunk) + res.end() + } catch (err) { + // A throw before the first byte (e.g. a duplicate key caught outside ) becomes a clean + // 500; once streaming has started the status is already sent, so just end. + if (!res.headersSent) { + res.statusCode = 500 + res.end('SSR error: ' + (err instanceof Error ? err.message : String(err))) + } else { + res.end() + } + } +} diff --git a/examples/marko/streaming/src/inorder-page.marko b/examples/marko/streaming/src/inorder-page.marko new file mode 100644 index 00000000..ca342cc9 --- /dev/null +++ b/examples/marko/streaming/src/inorder-page.marko @@ -0,0 +1,30 @@ +import { createStore } from '@tanstack/marko-store' + +export interface Input { + value: number +} + + + + Streaming (in-order) + +
+

Streaming a store into a late await (in-order)

+

The server computes per-request data inside a late await; the store is born from that value with <stream-store-provider>, renders server-side with no flash, and stays live after resume.

+ + + +

Resumed in browser: ${resumed}

+ + + setTimeout(() => r(input.value), 2000))> + ({ store: createStore({ n: slice }) })> + c.store) selector=((s: any) => s.n)/> +

Streamed value: ${n}

+ + +
+ +
+ + diff --git a/examples/marko/streaming/src/outoforder-page.marko b/examples/marko/streaming/src/outoforder-page.marko new file mode 100644 index 00000000..a288a5bd --- /dev/null +++ b/examples/marko/streaming/src/outoforder-page.marko @@ -0,0 +1,46 @@ +import { createStore } from '@tanstack/marko-store' + +export interface Input { + slow: number + fast: number +} + + + + Streaming (out-of-order) + +
+

Streaming out-of-order with try/placeholder

+

Each awaited block is born with its own store. Wrapping an await in <try> with a <@placeholder> lets the fast block paint before the slow one, while each store stays live. Click either inc button after the block lands to confirm the store is interactive post-resume.

+ + + +

Resumed in browser: ${resumed}

+ + + + setTimeout(() => r(input.slow), 2500))> + ({ store: createStore({ n: ss }) })> + c.store) selector=((s: any) => s.n)/> +

Slow: ${vs}

+ + +
+ + <@placeholder>

loading slow…

+
+ + + setTimeout(() => r(input.fast), 800))> + ({ store: createStore({ n: sf }) })> + c.store) selector=((s: any) => s.n)/> +

Fast: ${vf}

+ + +
+ + <@placeholder>

loading fast…

+
+
+ + diff --git a/examples/marko/streaming/tsconfig.json b/examples/marko/streaming/tsconfig.json new file mode 100644 index 00000000..9e8192a6 --- /dev/null +++ b/examples/marko/streaming/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.marko"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ebdb7e9b..bb4f4e24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -354,6 +354,158 @@ importers: specifier: ^7.2.2 version: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + examples/marko/atoms: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + examples/marko/simple: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + examples/marko/ssr-per-request-multi: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + examples/marko/ssr-resume: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + examples/marko/store-actions: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + examples/marko/store-context: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + examples/marko/stores: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + examples/marko/streaming: + dependencies: + '@tanstack/marko-store': + specifier: ^0.11.0 + version: link:../../../packages/marko-store + marko: + specifier: ^6 + version: 6.1.18 + devDependencies: + '@marko/type-check': + specifier: ^3.1.0 + version: 3.1.0 + '@marko/vite': + specifier: ^6 + version: 6.1.0(@marko/compiler@5.39.66)(vite@8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + vite: + specifier: ^8.0.8 + version: 8.0.13(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + examples/preact/atoms: dependencies: '@tanstack/preact-store': @@ -9548,7 +9700,7 @@ snapshots: typescript: 6.0.2 webpack: 5.105.2(esbuild@0.27.7) webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.7)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.105.2(esbuild@0.27.3)) optionalDependencies: @@ -9633,7 +9785,7 @@ snapshots: tree-kill: 1.2.2 tslib: 2.8.1 typescript: 6.0.3 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) webpack-merge: 6.0.1 @@ -9672,7 +9824,7 @@ snapshots: dependencies: '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) rxjs: 7.8.2 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) transitivePeerDependencies: - chokidar @@ -11832,7 +11984,7 @@ snapshots: dependencies: '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.3) typescript: 6.0.3 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) optional: true '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': @@ -13702,7 +13854,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 find-up: 5.0.0 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) babel-plugin-jsx-dom-expressions@0.40.6(@babel/core@7.29.0): dependencies: @@ -14095,7 +14247,7 @@ snapshots: schema-utils: 4.3.3 serialize-javascript: 7.0.5 tinyglobby: 0.2.16 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) core-js-compat@3.49.0: dependencies: @@ -14144,7 +14296,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) css-select@5.2.2: dependencies: @@ -15875,7 +16027,7 @@ snapshots: dependencies: less: 4.4.2 optionalDependencies: - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) less@4.4.2: dependencies: @@ -15900,7 +16052,7 @@ snapshots: dependencies: webpack-sources: 3.3.4 optionalDependencies: - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) lightningcss-android-arm64@1.32.0: optional: true @@ -16194,7 +16346,7 @@ snapshots: dependencies: schema-utils: 4.3.3 tapable: 2.3.2 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) minimalistic-assert@1.0.1: {} @@ -16842,7 +16994,7 @@ snapshots: postcss: 8.5.6 semver: 7.7.4 optionalDependencies: - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) transitivePeerDependencies: - typescript optional: true @@ -17332,7 +17484,7 @@ snapshots: neo-async: 2.6.2 optionalDependencies: sass: 1.97.3 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) sass@1.97.3: dependencies: @@ -17624,7 +17776,7 @@ snapshots: dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.105.2(esbuild@0.27.3) + webpack: 5.105.2(esbuild@0.27.7) source-map-support@0.5.21: dependencies: @@ -17886,16 +18038,6 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.4.0(esbuild@0.27.3)(webpack@5.105.2(esbuild@0.27.3)): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.46.0 - webpack: 5.105.2(esbuild@0.27.3) - optionalDependencies: - esbuild: 0.27.3 - terser-webpack-plugin@5.4.0(esbuild@0.27.7)(webpack@5.105.2(esbuild@0.27.3)): dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -18434,19 +18576,6 @@ snapshots: webidl-conversions@8.0.1: {} webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)): - dependencies: - colorette: 2.0.20 - memfs: 4.57.1(tslib@2.8.1) - mime-types: 3.0.2 - on-finished: 2.4.1 - range-parser: 1.2.1 - schema-utils: 4.3.3 - optionalDependencies: - webpack: 5.105.2(esbuild@0.27.3) - transitivePeerDependencies: - - tslib - - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.7)): dependencies: colorette: 2.0.20 memfs: 4.57.1(tslib@2.8.1) @@ -18489,45 +18618,6 @@ snapshots: spdy: 4.0.2 webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.3)) ws: 8.20.0 - optionalDependencies: - webpack: 5.105.2(esbuild@0.27.3) - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - tslib - - utf-8-validate - - webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.7)): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.8 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.10 - '@types/sockjs': 0.3.36 - '@types/ws': 8.18.1 - ansi-html-community: 0.0.8 - bonjour-service: 1.3.0 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.8.1 - connect-history-api-fallback: 2.0.0 - express: 4.22.1 - graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25) - ipaddr.js: 2.3.0 - launch-editor: 2.13.2 - open: 10.2.0 - p-retry: 6.2.1 - schema-utils: 4.3.3 - selfsigned: 5.5.0 - serve-index: 1.9.2 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(esbuild@0.27.7)) - ws: 8.20.0 optionalDependencies: webpack: 5.105.2(esbuild@0.27.7) transitivePeerDependencies: @@ -18548,39 +18638,7 @@ snapshots: webpack-subresource-integrity@5.1.0(webpack@5.105.2(esbuild@0.27.3)): dependencies: typed-assert: 1.0.9 - webpack: 5.105.2(esbuild@0.27.3) - - webpack@5.105.2(esbuild@0.27.3): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.20.1 - es-module-lexer: 2.0.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.2 - terser-webpack-plugin: 5.4.0(esbuild@0.27.3)(webpack@5.105.2(esbuild@0.27.3)) - watchpack: 2.5.1 - webpack-sources: 3.3.4 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js + webpack: 5.105.2(esbuild@0.27.7) webpack@5.105.2(esbuild@0.27.7): dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index bd664ffb..b46cf665 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -17,6 +17,7 @@ packages: - 'examples/svelte/**' - 'examples/preact/**' - 'examples/lit/**' + - 'examples/marko/**' allowBuilds: # root dependency From c19cbcaa5da8012b5c16753215a274a34966662c Mon Sep 17 00:00:00 2001 From: defunkt-dev Date: Tue, 30 Jun 2026 13:11:55 -0600 Subject: [PATCH 25/26] update examples with lan tools as typecheck fails and add .d files --- examples/marko/atoms/package.json | 1 + examples/marko/atoms/tsconfig.json | 6 ++++- examples/marko/simple/package.json | 1 + examples/marko/simple/tsconfig.json | 6 ++++- .../marko/ssr-per-request-multi/package.json | 1 + .../marko/ssr-per-request-multi/tsconfig.json | 6 ++++- examples/marko/ssr-resume/package.json | 1 + examples/marko/ssr-resume/tsconfig.json | 6 ++++- examples/marko/store-actions/package.json | 1 + examples/marko/store-actions/tsconfig.json | 6 ++++- examples/marko/store-context/package.json | 1 + examples/marko/store-context/tsconfig.json | 6 ++++- examples/marko/stores/package.json | 1 + examples/marko/stores/tsconfig.json | 6 ++++- examples/marko/streaming/package.json | 1 + examples/marko/streaming/tsconfig.json | 6 ++++- .../marko-store/src/tags/store-atom.d.marko | 15 ++++++++++++ .../src/tags/store-context.d.marko | 7 ++++++ .../src/tags/store-provider.d.marko | 7 ++++++ .../src/tags/store-selector.d.marko | 17 +++++++++++++ .../src/tags/stream-store-provider.d.marko | 7 ++++++ packages/marko-store/vitest.config.ts | 2 +- pnpm-lock.yaml | 24 +++++++++++++++++++ 23 files changed, 126 insertions(+), 9 deletions(-) create mode 100644 packages/marko-store/src/tags/store-atom.d.marko create mode 100644 packages/marko-store/src/tags/store-context.d.marko create mode 100644 packages/marko-store/src/tags/store-provider.d.marko create mode 100644 packages/marko-store/src/tags/store-selector.d.marko create mode 100644 packages/marko-store/src/tags/stream-store-provider.d.marko diff --git a/examples/marko/atoms/package.json b/examples/marko/atoms/package.json index 48953fac..fc93ff83 100644 --- a/examples/marko/atoms/package.json +++ b/examples/marko/atoms/package.json @@ -13,6 +13,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/atoms/tsconfig.json b/examples/marko/atoms/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/atoms/tsconfig.json +++ b/examples/marko/atoms/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/examples/marko/simple/package.json b/examples/marko/simple/package.json index 331b7abb..ce367547 100644 --- a/examples/marko/simple/package.json +++ b/examples/marko/simple/package.json @@ -13,6 +13,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/simple/tsconfig.json b/examples/marko/simple/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/simple/tsconfig.json +++ b/examples/marko/simple/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/examples/marko/ssr-per-request-multi/package.json b/examples/marko/ssr-per-request-multi/package.json index 8db1c9fa..6e22fe54 100644 --- a/examples/marko/ssr-per-request-multi/package.json +++ b/examples/marko/ssr-per-request-multi/package.json @@ -11,6 +11,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/ssr-per-request-multi/tsconfig.json b/examples/marko/ssr-per-request-multi/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/ssr-per-request-multi/tsconfig.json +++ b/examples/marko/ssr-per-request-multi/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/examples/marko/ssr-resume/package.json b/examples/marko/ssr-resume/package.json index 41e80d77..255a9889 100644 --- a/examples/marko/ssr-resume/package.json +++ b/examples/marko/ssr-resume/package.json @@ -11,6 +11,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/ssr-resume/tsconfig.json b/examples/marko/ssr-resume/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/ssr-resume/tsconfig.json +++ b/examples/marko/ssr-resume/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/examples/marko/store-actions/package.json b/examples/marko/store-actions/package.json index 712fe47a..e0bf4258 100644 --- a/examples/marko/store-actions/package.json +++ b/examples/marko/store-actions/package.json @@ -13,6 +13,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/store-actions/tsconfig.json b/examples/marko/store-actions/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/store-actions/tsconfig.json +++ b/examples/marko/store-actions/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/examples/marko/store-context/package.json b/examples/marko/store-context/package.json index 9f652277..be7042b7 100644 --- a/examples/marko/store-context/package.json +++ b/examples/marko/store-context/package.json @@ -13,6 +13,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/store-context/tsconfig.json b/examples/marko/store-context/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/store-context/tsconfig.json +++ b/examples/marko/store-context/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/examples/marko/stores/package.json b/examples/marko/stores/package.json index 301103f1..6d82684c 100644 --- a/examples/marko/stores/package.json +++ b/examples/marko/stores/package.json @@ -13,6 +13,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/stores/tsconfig.json b/examples/marko/stores/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/stores/tsconfig.json +++ b/examples/marko/stores/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/examples/marko/streaming/package.json b/examples/marko/streaming/package.json index 293e1e52..198b1378 100644 --- a/examples/marko/streaming/package.json +++ b/examples/marko/streaming/package.json @@ -11,6 +11,7 @@ "marko": "^6" }, "devDependencies": { + "@marko/language-tools": "^2.6.0", "@marko/type-check": "^3.1.0", "@marko/vite": "^6", "vite": "^8.0.8" diff --git a/examples/marko/streaming/tsconfig.json b/examples/marko/streaming/tsconfig.json index 9e8192a6..91bb9b96 100644 --- a/examples/marko/streaming/tsconfig.json +++ b/examples/marko/streaming/tsconfig.json @@ -7,5 +7,9 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.marko"] + "include": [ + "src/**/*.ts", + "src/**/*.marko", + "../../../packages/marko-store/src/tags/*.d.marko" + ] } diff --git a/packages/marko-store/src/tags/store-atom.d.marko b/packages/marko-store/src/tags/store-atom.d.marko new file mode 100644 index 00000000..1f8d5000 --- /dev/null +++ b/packages/marko-store/src/tags/store-atom.d.marko @@ -0,0 +1,15 @@ +/** File for types only, not actual implementation **/ + +// V maps an untyped (any/unknown) source to `any` so reads stay usable, exactly +// like the implementation (value = source.get()); a concrete T is preserved. +export type Value = unknown extends T ? any : T + +export interface Input { + from: () => { + get(): T + set(value: T | ((prev: T) => T)): void + subscribe(listener: (value: T) => void): { unsubscribe(): void } + } +} + +return=(undefined as unknown as Value) valueChange=((next: Value) => input.from().set(next as T)) diff --git a/packages/marko-store/src/tags/store-context.d.marko b/packages/marko-store/src/tags/store-context.d.marko new file mode 100644 index 00000000..3724a0e2 --- /dev/null +++ b/packages/marko-store/src/tags/store-context.d.marko @@ -0,0 +1,7 @@ +/** File for types only, not actual implementation **/ + +export interface Input { + key?: string +} + +return=(() => undefined as unknown) diff --git a/packages/marko-store/src/tags/store-provider.d.marko b/packages/marko-store/src/tags/store-provider.d.marko new file mode 100644 index 00000000..d5ed2209 --- /dev/null +++ b/packages/marko-store/src/tags/store-provider.d.marko @@ -0,0 +1,7 @@ +/** File for types only, not actual implementation **/ + +export interface Input { + value: () => Record + key?: string + content?: Marko.Body +} diff --git a/packages/marko-store/src/tags/store-selector.d.marko b/packages/marko-store/src/tags/store-selector.d.marko new file mode 100644 index 00000000..7c6c06b0 --- /dev/null +++ b/packages/marko-store/src/tags/store-selector.d.marko @@ -0,0 +1,17 @@ +/** File for types only, not actual implementation **/ + +export interface Input { + from?: () => { + get(): TSource + subscribe(listener: (value: TSource) => void): { unsubscribe(): void } + } + context?: (bundle: any) => { + get(): TSource + subscribe(listener: (value: TSource) => void): { unsubscribe(): void } + } + key?: string + selector?: (snapshot: TSource) => TSelected + compare?: (a: TSelected, b: TSelected) => boolean +} + +return=(undefined as unknown as TSelected | undefined) diff --git a/packages/marko-store/src/tags/stream-store-provider.d.marko b/packages/marko-store/src/tags/stream-store-provider.d.marko new file mode 100644 index 00000000..fb755123 --- /dev/null +++ b/packages/marko-store/src/tags/stream-store-provider.d.marko @@ -0,0 +1,7 @@ +/** File for types only, not actual implementation **/ + +export interface Input { + value: () => Record + key: string + content?: Marko.Body +} diff --git a/packages/marko-store/vitest.config.ts b/packages/marko-store/vitest.config.ts index d7e035bc..e7e202ce 100644 --- a/packages/marko-store/vitest.config.ts +++ b/packages/marko-store/vitest.config.ts @@ -12,7 +12,7 @@ export default defineConfig({ watch: false, environment: 'jsdom', setupFiles: ['./tests/setup.ts'], - coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, + coverage: { enabled: true, provider: 'istanbul', include: ['src//*'], exclude: ['/*.d.marko'] }, typecheck: { enabled: true }, }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb4f4e24..fc79320a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -363,6 +363,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 @@ -382,6 +385,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 @@ -401,6 +407,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 @@ -420,6 +429,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 @@ -439,6 +451,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 @@ -458,6 +473,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 @@ -477,6 +495,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 @@ -496,6 +517,9 @@ importers: specifier: ^6 version: 6.1.18 devDependencies: + '@marko/language-tools': + specifier: ^2.6.0 + version: 2.6.0 '@marko/type-check': specifier: ^3.1.0 version: 3.1.0 From c880a77d357a0b7280f9229c4059739bf4386d9a Mon Sep 17 00:00:00 2001 From: defunkt-dev Date: Tue, 30 Jun 2026 15:14:17 -0600 Subject: [PATCH 26/26] update docs/ --- docs/config.json | 35 ++++++++ docs/framework/marko/quick-start.md | 88 +++++++++++++++++++ docs/framework/marko/reference/index.md | 20 +++++ .../marko/reference/tags/store-atom.md | 29 ++++++ .../marko/reference/tags/store-context.md | 28 ++++++ .../marko/reference/tags/store-provider.md | 28 ++++++ .../marko/reference/tags/store-selector.md | 38 ++++++++ .../reference/tags/stream-store-provider.md | 31 +++++++ 8 files changed, 297 insertions(+) create mode 100644 docs/framework/marko/quick-start.md create mode 100644 docs/framework/marko/reference/index.md create mode 100644 docs/framework/marko/reference/tags/store-atom.md create mode 100644 docs/framework/marko/reference/tags/store-context.md create mode 100644 docs/framework/marko/reference/tags/store-provider.md create mode 100644 docs/framework/marko/reference/tags/store-selector.md create mode 100644 docs/framework/marko/reference/tags/stream-store-provider.md diff --git a/docs/config.json b/docs/config.json index 3a34004f..4297029e 100644 --- a/docs/config.json +++ b/docs/config.json @@ -85,6 +85,15 @@ "to": "framework/lit/quick-start" } ] + }, + { + "label": "marko", + "children": [ + { + "label": "Quick Start - Marko", + "to": "framework/marko/quick-start" + } + ] } ] }, @@ -159,6 +168,12 @@ "to": "framework/lit/reference/index" } ] + }, + { + "label": "marko", + "children": [ + { "label": "Marko Tags", "to": "framework/marko/reference/index" } + ] } ] }, @@ -507,6 +522,16 @@ "to": "framework/lit/reference/interfaces/UseSelectorOptions" } ] + }, + { + "label": "marko", + "children": [ + { "label": "", "to": "framework/marko/reference/tags/store-provider" }, + { "label": "", "to": "framework/marko/reference/tags/store-context" }, + { "label": "", "to": "framework/marko/reference/tags/store-selector" }, + { "label": "", "to": "framework/marko/reference/tags/store-atom" }, + { "label": "", "to": "framework/marko/reference/tags/stream-store-provider" } + ] } ] }, @@ -672,6 +697,16 @@ "to": "framework/lit/examples/simple" } ] + }, + { + "label": "marko", + "children": [ + { "label": "Simple", "to": "framework/marko/examples/simple" }, + { "label": "Atoms", "to": "framework/marko/examples/atoms" }, + { "label": "Stores", "to": "framework/marko/examples/stores" }, + { "label": "Store Actions", "to": "framework/marko/examples/store-actions" }, + { "label": "Store Context", "to": "framework/marko/examples/store-context" } + ] } ] } diff --git a/docs/framework/marko/quick-start.md b/docs/framework/marko/quick-start.md new file mode 100644 index 00000000..6a893b61 --- /dev/null +++ b/docs/framework/marko/quick-start.md @@ -0,0 +1,88 @@ +--- +title: Quick Start +id: quick-start +--- + +The basic Marko app example to get started with TanStack `marko-store`. + +Marko exposes the store through tags rather than hooks. `` reads a slice of a store and keeps it live, re-rendering only when that selected slice changes. State is updated with `store.setState`, exactly as in the other adapters. + +```marko +import { createStore } from '@tanstack/marko-store' + +// You can instantiate a Store outside of Marko templates too! +export const store = createStore({ + dogs: 0, + cats: 0, +}) + +
+

How many of your friends like cats or dogs?

+

+ Press one of the buttons to add a counter of how many of your friends + like cats or dogs. +

+ + + // subscribes only to state.dogs + store selector=(state) => state.dogs/> +
dogs: ${dogs}
+ + + store selector=(state) => state.cats/> +
cats: ${cats}
+
+``` + +`` binds the latest selected value to its tag variable (here `dogs` and `cats`) and only updates when that specific selection changes. + +## A writable value: `` + +For a single writable value, `` gives two-way access to an atom — read its tag variable, and assign to it to write back: + +```marko +import { createAtom } from '@tanstack/marko-store' +export const countAtom = createAtom(0) + + countAtom/> + +``` + +## Sharing stores without imports: `` and `` + +To distribute one or more stores down the tree without importing them everywhere, wrap a subtree in `` with a bundle of stores, read any value below with `` in context mode, and grab the bundle to write with ``: + +```marko +import { createStore } from '@tanstack/marko-store' + + ({ cats: createStore({ count: 0 }) })> + c.cats selector=(s) => s.count/> +
cats: ${catCount}
+ + + +
+``` + +## Server rendering and streaming + +`marko-store` is resumable: a store rendered on the server stays live on the client after resume, with no re-execution. For server-computed, per-request data that arrives mid-render through ``, create the store from the awaited value inside the await using ``. The value then renders on the server with no first-paint flash and the store stays live after resume: + +```marko +import { createStore } from '@tanstack/marko-store' + + + ({ user: createStore(user) })> + c.user selector=(s) => s.name/> +
${name}
+
+
+``` + +Use a plain `` for in-order streaming, or wrap it in `` with a `<@placeholder>` for out-of-order streaming. Each `` needs a distinct `key`. + +For production SSR, use [`@marko/run`](https://github.com/marko-js/run), Marko's official server framework. Standalone `@marko/vite` SSR is intended for development only. diff --git a/docs/framework/marko/reference/index.md b/docs/framework/marko/reference/index.md new file mode 100644 index 00000000..6f0cb204 --- /dev/null +++ b/docs/framework/marko/reference/index.md @@ -0,0 +1,20 @@ +--- +id: "@tanstack/marko-store" +title: "@tanstack/marko-store" +--- + +# @tanstack/marko-store + +The Marko adapter exposes its API as custom tags. Each tag is documented on its own page below. + +## Tags + +- [``](tags/store-provider.md) +- [``](tags/store-context.md) +- [``](tags/store-selector.md) +- [``](tags/store-atom.md) +- [``](tags/stream-store-provider.md) + +## Re-exports + +`@tanstack/marko-store` re-exports the full `@tanstack/store` core, including `createStore`, `createAtom`, `Store`, `Derived`, and `shallow`. These are framework-agnostic; see the Store API Reference for their documentation. diff --git a/docs/framework/marko/reference/tags/store-atom.md b/docs/framework/marko/reference/tags/store-atom.md new file mode 100644 index 00000000..05211a79 --- /dev/null +++ b/docs/framework/marko/reference/tags/store-atom.md @@ -0,0 +1,29 @@ +--- +id: store-atom +title: "" +--- + +# Tag: `` + +Binds a single writable atom from `createAtom()` as a two-way value: it reads the atom's current value and writes back through the atom's `set`. Use it for a standalone writable value; for a `Store` (from `createStore`), read it with `` instead. + +```marko + qtyAtom> +

Quantity: ${qty}

+``` + +## Type parameters + +- **`T`** — the atom's value type. + +## Attributes + +- **`from`** — `() => { get(); set(); subscribe() }` (required). A thunk returning the atom (from `createAtom()`). The atom must have a `set` method; a `Store` does not and will throw. + +## Tag variable + +The atom's current value, typed `T`. The tag exposes a `value`/`valueChange` pair, so it is two-way bindable — bind it to a variable with `value:=` and assignments write back through the atom's `set`. + +## Behavior + +The value is seeded from `from().get()` at render and kept live by a subscription on mount, so it updates whenever the atom changes from anywhere. Writes go through `from().set(next)`. If `from()` returns something without a `set` method (such as a `Store`), the tag throws with guidance to use ``. diff --git a/docs/framework/marko/reference/tags/store-context.md b/docs/framework/marko/reference/tags/store-context.md new file mode 100644 index 00000000..3caa527c --- /dev/null +++ b/docs/framework/marko/reference/tags/store-context.md @@ -0,0 +1,28 @@ +--- +id: store-context +title: "" +--- + +# Tag: `` + +Reads the store bundle provided by the nearest `` with a matching key, so a descendant can use the live stores directly (for example to dispatch actions). Binds a getter. + +```marko + + + +``` + +## Attributes + +- **`key`** — `string` (optional, default `"__tanstack_store_context"`). The context key to read. Must match the key the `` used. + +## Tag variable + +A getter function, `() => bundle`. Call it to read the current bundle parked by the provider. It is a thunk rather than the bundle itself so the read happens at call time, after the provider has parked the bundle. + +## Behavior + +At render the tag checks that a bundle exists on `$global` under the key and throws if none is found — that is, when there is no `` above it. It does not subscribe to anything; use `` when you need a value that re-renders on change. diff --git a/docs/framework/marko/reference/tags/store-provider.md b/docs/framework/marko/reference/tags/store-provider.md new file mode 100644 index 00000000..d2674e82 --- /dev/null +++ b/docs/framework/marko/reference/tags/store-provider.md @@ -0,0 +1,28 @@ +--- +id: store-provider +title: "" +--- + +# Tag: `` + +Creates a bundle of stores for the current request and makes it available to descendant tags by a context key. Wraps the content it is given. + +```marko + ({ cart: createStore({ items: [] }) })> + + +``` + +## Attributes + +- **`value`** — `() => Record` (required). A thunk returning the bundle of named stores or atoms to provide. It is called once on the server at render and again on the client at mount, so each environment gets its own live instances. +- **`key`** — `string` (optional, default `"__tanstack_store_context"`). The context key the bundle is parked under. Use distinct keys to provide more than one bundle on a page. The matching `` and context-mode `` must use the same key. +- **`content`** — `Marko.Body` (optional). The body rendered inside the provider, usually supplied implicitly as the tag's children. + +## Tag variable + +None. `` is a wrapper: it renders its content and binds no tag variable. + +## Behavior + +The bundle is parked on `$global` under the context key at render, and re-created and published on mount so client subscribers attach to live instances. Only one provider may claim a given key: a second `` (or a ``) on the same key throws, to prevent two writers silently clobbering the same box. On destroy the box and its owner marker are cleared. diff --git a/docs/framework/marko/reference/tags/store-selector.md b/docs/framework/marko/reference/tags/store-selector.md new file mode 100644 index 00000000..4655b559 --- /dev/null +++ b/docs/framework/marko/reference/tags/store-selector.md @@ -0,0 +1,38 @@ +--- +id: store-selector +title: "" +--- + +# Tag: `` + +Subscribes to a store or atom, projects a slice of it, and re-renders when that slice changes. Works in two modes: `from` (a store passed directly) or `context` (a member of the provided bundle). Binds the selected value. + +```marko + + cartStore selector=(s) => s.items.length> +

${count} items

+ + + b.cart selector=(s) => s.items.length> +``` + +## Type parameters + +- **`TSource`** — the snapshot type of the source store or atom. +- **`TSelected`** — the projected slice type. Defaults to `TSource` when no `selector` is given. + +## Attributes + +- **`from`** — `() => { get(); subscribe() }` (optional). A thunk returning the source store or atom directly. Mutually exclusive with `context`. +- **`context`** — `(bundle) => { get(); subscribe() }` (optional). Selects the source from the provided bundle. Mutually exclusive with `from`. Annotate the parameter in typed projects, e.g. `context=(b: any) => b.cart`. +- **`key`** — `string` (optional, default `"__tanstack_store_context"`). The context key to read in `context` mode. Must match the provider's key. +- **`selector`** — `(snapshot: TSource) => TSelected` (optional, default identity). Projects the slice to track. +- **`compare`** — `(a: TSelected, b: TSelected) => boolean` (optional, default `===`). Equality check used to drop redundant updates. + +## Tag variable + +The current selected value, typed `TSelected | undefined`. It is `undefined` only at the brief moment on resume before a context-mode provider has parked its bundle; the tag recovers automatically and updates once the bundle is available. + +## Behavior + +Passing both `from` and `context` throws. The value is seeded at render (null-tolerant in context mode), then kept live by a subscription established on mount. In context mode the tag also listens on the internal publish bus, so it attaches to the store the moment the provider parks it during streaming or resume. Changing the source or swapping the `selector` re-projects; `compare` gates only store mutations, never a deliberate selector change. diff --git a/docs/framework/marko/reference/tags/stream-store-provider.md b/docs/framework/marko/reference/tags/stream-store-provider.md new file mode 100644 index 00000000..65ae8c69 --- /dev/null +++ b/docs/framework/marko/reference/tags/stream-store-provider.md @@ -0,0 +1,31 @@ +--- +id: stream-store-provider +title: "" +--- + +# Tag: `` + +A provider for progressive streaming: it creates a per-request store bundle from data that becomes available inside a late ``, and keeps it live across the server-to-client boundary. Place it inside the awaited body so the awaited value is captured into `value`. Wraps its content. + +```marko + + ({ order: createStore(order) })> + b.order selector=(o) => o.total> +

Total: ${total}

+
+
+``` + +## Attributes + +- **`value`** — `() => Record` (required). A thunk returning the bundle of stores or atoms, built from the awaited per-request data. Called on the server at render and again on the client at mount. +- **`key`** — `string` (**required**). The context key the bundle is parked under. Unlike ``, there is no default; each streamed provider needs an explicit, distinct key. +- **`content`** — `Marko.Body` (optional). The body rendered inside the provider. + +## Tag variable + +None. Like ``, it renders its content and binds no tag variable. + +## Behavior + +This is the "born-with-data" transport. The awaited value is captured by `value` and crosses to the client through the await subtree's resume scope; the bundle is built into `$global` under the key on the server, and rebuilt and published on mount so client subscribers attach to live instances. It shares ``'s owner marker, so a `` and a `` on the same key detect each other and throw rather than clobber. For production, a streaming Marko app must run under `@marko/run`; a standalone `@marko/vite` production build does not coordinate resume correctly.