@absolutejs/absolute 0.19.0-beta.337 → 0.19.0-beta.339
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular/browser.js +33 -19
- package/dist/angular/browser.js.map +3 -3
- package/dist/angular/index.js +33 -19
- package/dist/angular/index.js.map +3 -3
- package/dist/client/index.js +33 -19
- package/dist/client/index.js.map +3 -3
- package/dist/islands/browser.js +33 -19
- package/dist/islands/browser.js.map +3 -3
- package/dist/islands/index.js +33 -19
- package/dist/islands/index.js.map +3 -3
- package/dist/islands/server.js +33 -19
- package/dist/islands/server.js.map +3 -3
- package/dist/react/browser.js +33 -19
- package/dist/react/browser.js.map +3 -3
- package/dist/react/hooks/index.js +33 -19
- package/dist/react/hooks/index.js.map +3 -3
- package/dist/react/index.js +33 -19
- package/dist/react/index.js.map +3 -3
- package/dist/src/client/islandStore.d.ts +11 -8
- package/dist/svelte/browser.js +33 -19
- package/dist/svelte/browser.js.map +3 -3
- package/dist/svelte/index.js +33 -19
- package/dist/svelte/index.js.map +3 -3
- package/dist/vue/browser.js +33 -19
- package/dist/vue/browser.js.map +3 -3
- package/dist/vue/index.js +33 -19
- package/dist/vue/index.js.map +3 -3
- package/package.json +1 -1
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { type StoreApi } from 'zustand/vanilla';
|
|
2
|
-
export type IslandStoreState =
|
|
3
|
-
|
|
4
|
-
export type
|
|
5
|
-
|
|
6
|
-
type
|
|
1
|
+
import { type StateCreator, type StoreApi } from 'zustand/vanilla';
|
|
2
|
+
export type IslandStoreState = object;
|
|
3
|
+
type IslandStoreSnapshot = Record<string, unknown>;
|
|
4
|
+
export type IslandStateSnapshot = Record<string, IslandStoreSnapshot>;
|
|
5
|
+
type AnyIslandStore = StoreApi<object>;
|
|
6
|
+
type IslandStoreInstance = {
|
|
7
|
+
applyExternalSnapshot: (snapshot: IslandStoreSnapshot) => void;
|
|
8
|
+
store: AnyIslandStore;
|
|
9
|
+
};
|
|
7
10
|
declare const ABSOLUTE_ISLAND_STATE = "__ABS_ISLAND_STATE__";
|
|
8
11
|
declare const ABSOLUTE_ISLAND_STORES = "__ABS_ISLAND_STORES__";
|
|
9
12
|
declare global {
|
|
10
13
|
var __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;
|
|
11
|
-
var __ABS_ISLAND_STORES__: Map<string,
|
|
14
|
+
var __ABS_ISLAND_STORES__: Map<string, Set<IslandStoreInstance>> | undefined;
|
|
12
15
|
}
|
|
13
16
|
export declare const initializeIslandStores: (state: IslandStateSnapshot) => void;
|
|
14
|
-
export declare const createIslandStore:
|
|
17
|
+
export declare const createIslandStore: <T extends IslandStoreState>(storeId: string, createState: StateCreator<T, [], []>) => StoreApi<T>;
|
|
15
18
|
export declare const readIslandStore: <TState extends IslandStoreState, TSelected>(store: StoreApi<TState>, selector: (state: TState) => TSelected) => TSelected;
|
|
16
19
|
export declare const subscribeIslandStore: <TState extends IslandStoreState, TSelected>(store: StoreApi<TState>, selector: (state: TState) => TSelected, listener: (value: TSelected) => void) => () => void;
|
|
17
20
|
export declare const getIslandStoreServerSnapshot: <TState extends IslandStoreState, TSelected>(store: StoreApi<TState>, selector: (state: TState) => TSelected) => TSelected;
|
package/dist/svelte/browser.js
CHANGED
|
@@ -223,31 +223,45 @@ var initializeIslandStores = (state) => {
|
|
|
223
223
|
};
|
|
224
224
|
globalThis.__ABS_ISLAND_STATE__ = nextSnapshot;
|
|
225
225
|
for (const [storeId, store] of getIslandStores()) {
|
|
226
|
-
|
|
226
|
+
for (const instance of store) {
|
|
227
|
+
instance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});
|
|
228
|
+
}
|
|
227
229
|
}
|
|
228
230
|
};
|
|
229
|
-
var createIslandStore = (storeId
|
|
231
|
+
var createIslandStore = (storeId, createState) => {
|
|
232
|
+
const store = createStore(createState);
|
|
230
233
|
const stores = getIslandStores();
|
|
231
|
-
const
|
|
232
|
-
if (existingStore) {
|
|
233
|
-
return existingStore;
|
|
234
|
-
}
|
|
235
|
-
const store = createStore()((set, get, api) => createState((update) => {
|
|
236
|
-
set((state) => {
|
|
237
|
-
const nextPartial = typeof update === "function" ? update(state) : update;
|
|
238
|
-
return {
|
|
239
|
-
...state,
|
|
240
|
-
...nextPartial
|
|
241
|
-
};
|
|
242
|
-
});
|
|
243
|
-
}, get, api));
|
|
234
|
+
const storeInstances = stores.get(storeId) ?? new Set;
|
|
244
235
|
const initialSnapshot = getIslandStoreSnapshot()[storeId];
|
|
245
236
|
applySnapshot(store, initialSnapshot);
|
|
246
|
-
|
|
237
|
+
let isApplyingExternalSnapshot = false;
|
|
238
|
+
const applyExternalSnapshot = (snapshot) => {
|
|
239
|
+
isApplyingExternalSnapshot = true;
|
|
240
|
+
applySnapshot(store, snapshot);
|
|
241
|
+
};
|
|
242
|
+
const syncSnapshot = (state) => {
|
|
243
|
+
const nextSnapshot = toSerializableState(state);
|
|
244
|
+
getIslandStoreSnapshot()[storeId] = nextSnapshot;
|
|
245
|
+
for (const peerStore of storeInstances) {
|
|
246
|
+
if (peerStore.store === store) {
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
peerStore.applyExternalSnapshot(nextSnapshot);
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
storeInstances.add({
|
|
253
|
+
applyExternalSnapshot,
|
|
254
|
+
store
|
|
255
|
+
});
|
|
256
|
+
stores.set(storeId, storeInstances);
|
|
257
|
+
syncSnapshot(store.getState());
|
|
247
258
|
store.subscribe((state) => {
|
|
248
|
-
|
|
259
|
+
if (isApplyingExternalSnapshot) {
|
|
260
|
+
isApplyingExternalSnapshot = false;
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
syncSnapshot(state);
|
|
249
264
|
});
|
|
250
|
-
stores.set(storeId, store);
|
|
251
265
|
return store;
|
|
252
266
|
};
|
|
253
267
|
var readIslandStore = (store, selector) => selector(store.getState());
|
|
@@ -284,5 +298,5 @@ export {
|
|
|
284
298
|
Island_default as Island
|
|
285
299
|
};
|
|
286
300
|
|
|
287
|
-
//# debugId=
|
|
301
|
+
//# debugId=9FC43098F735C99364756E2164756E21
|
|
288
302
|
//# sourceMappingURL=browser.js.map
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"import type {\n\tIslandRegistry,\n\tIslandRegistryInput,\n\tTypedIslandRenderProps\n} from '../../types/island';\nimport {\n\tgetIslandMarkerAttributes,\n\tserializeIslandAttributes\n} from '../core/islandMarkupAttributes';\n\nexport const createTypedIsland = <T extends IslandRegistryInput>(\n\t_registry: IslandRegistry<T>\n) => {\n\treturn (props: TypedIslandRenderProps<T>) => {\n\t\tconst attributes = getIslandMarkerAttributes(props);\n\t\treturn `<div ${serializeIslandAttributes(attributes)}></div>`;\n\t};\n};\n",
|
|
9
9
|
"import type { RuntimeIslandRenderProps } from '../../types/island';\nimport {\n\tgetIslandMarkerAttributes,\n\tserializeIslandAttributes\n} from '../core/islandMarkupAttributes';\n\nconst getIslandSnapshot = (slotId: string) => {\n\tif (typeof window === 'undefined') {\n\t\treturn null;\n\t}\n\n\tconst snapshot = window.__ABS_SVELTE_ISLAND_HTML__;\n\tif (!snapshot || typeof snapshot !== 'object') {\n\t\treturn null;\n\t}\n\n\tconst value = snapshot[slotId];\n\treturn typeof value === 'string' ? value : null;\n};\n\nconst buildFallbackMarkup = (props: RuntimeIslandRenderProps) =>\n\t`<div ${serializeIslandAttributes(getIslandMarkerAttributes(props))}></div>`;\n\nexport const resolveIslandHtml = (\n\tslotId: string,\n\tprops: RuntimeIslandRenderProps\n) => {\n\tconst snapshot = getIslandSnapshot(slotId);\n\tif (snapshot !== null) {\n\t\treturn snapshot;\n\t}\n\n\tif (typeof document === 'undefined') {\n\t\treturn buildFallbackMarkup(props);\n\t}\n\n\tconst slot = document.querySelector<HTMLElement>(\n\t\t`[data-absolute-island-slot=\"${slotId}\"]`\n\t);\n\n\treturn slot?.innerHTML ?? buildFallbackMarkup(props);\n};\n",
|
|
10
10
|
"const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n",
|
|
11
|
-
"import {\n\tcreateStore,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string,
|
|
11
|
+
"import {\n\tcreateStore,\n\ttype StateCreator,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = object;\ntype IslandStoreSnapshot = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string, IslandStoreSnapshot>;\ntype AnyIslandStore = StoreApi<object>;\ntype IslandStoreInstance = {\n\tapplyExternalSnapshot: (snapshot: IslandStoreSnapshot) => void;\n\tstore: AnyIslandStore;\n};\n\nconst ABSOLUTE_ISLAND_STATE = '__ABS_ISLAND_STATE__';\nconst ABSOLUTE_ISLAND_STORES = '__ABS_ISLAND_STORES__';\n\ndeclare global {\n\tvar __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;\n\tvar __ABS_ISLAND_STORES__:\n\t\t| Map<string, Set<IslandStoreInstance>>\n\t\t| undefined;\n}\n\nconst getIslandStoreSnapshot = () => {\n\tglobalThis.__ABS_ISLAND_STATE__ ??= {};\n\treturn globalThis.__ABS_ISLAND_STATE__;\n};\n\nconst getIslandStores = () => {\n\tglobalThis.__ABS_ISLAND_STORES__ ??= new Map();\n\treturn globalThis.__ABS_ISLAND_STORES__;\n};\n\nconst isSerializableValue = (value: unknown) =>\n\ttypeof value !== 'function' && value !== undefined;\n\nconst toSerializableState = <T extends object>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends object>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreSnapshot | undefined\n) => {\n\tif (!snapshot) {\n\t\treturn;\n\t}\n\n\tstore.setState({\n\t\t...store.getState(),\n\t\t...snapshot\n\t});\n};\n\nexport const initializeIslandStores = (state: IslandStateSnapshot) => {\n\tconst currentSnapshot = getIslandStoreSnapshot();\n\tconst nextSnapshot = {\n\t\t...state,\n\t\t...currentSnapshot\n\t};\n\n\tglobalThis.__ABS_ISLAND_STATE__ = nextSnapshot;\n\n\tfor (const [storeId, store] of getIslandStores()) {\n\t\tfor (const instance of store) {\n\t\t\tinstance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});\n\t\t}\n\t}\n};\n\nexport const createIslandStore = <T extends IslandStoreState>(\n\tstoreId: string,\n\tcreateState: StateCreator<T, [], []>\n) => {\n\tconst store = createStore<T>(createState);\n\tconst stores = getIslandStores();\n\tconst storeInstances = stores.get(storeId) ?? new Set<IslandStoreInstance>();\n\tconst initialSnapshot = getIslandStoreSnapshot()[storeId];\n\tapplySnapshot(store, initialSnapshot);\n\tlet isApplyingExternalSnapshot = false;\n\n\tconst applyExternalSnapshot = (snapshot: IslandStoreSnapshot) => {\n\t\tisApplyingExternalSnapshot = true;\n\t\tapplySnapshot(store, snapshot);\n\t};\n\n\tconst syncSnapshot = (state: T) => {\n\t\tconst nextSnapshot = toSerializableState(state);\n\t\tgetIslandStoreSnapshot()[storeId] = nextSnapshot;\n\n\t\tfor (const peerStore of storeInstances) {\n\t\t\tif (peerStore.store === store) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpeerStore.applyExternalSnapshot(nextSnapshot);\n\t\t}\n\t};\n\n\tstoreInstances.add({\n\t\tapplyExternalSnapshot,\n\t\tstore\n\t});\n\tstores.set(storeId, storeInstances);\n\n\tsyncSnapshot(store.getState());\n\tstore.subscribe((state) => {\n\t\tif (isApplyingExternalSnapshot) {\n\t\t\tisApplyingExternalSnapshot = false;\n\t\t\treturn;\n\t\t}\n\n\t\tsyncSnapshot(state);\n\t});\n\n\treturn store;\n};\n\nexport const readIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getState());\n\nexport const subscribeIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected,\n\tlistener: (value: TSelected) => void\n) => {\n\tlet currentSelection = selector(store.getState());\n\n\treturn store.subscribe((state) => {\n\t\tconst nextSelection = selector(state);\n\t\tif (Object.is(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentSelection = nextSelection;\n\t\tlistener(nextSelection);\n\t});\n};\n\nexport const getIslandStoreServerSnapshot = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getInitialState());\n\nexport const resetIslandStoreForTesting = () => {\n\tdelete globalThis.__ABS_ISLAND_STATE__;\n\tdelete globalThis.__ABS_ISLAND_STORES__;\n};\n\nexport { ABSOLUTE_ISLAND_STATE, ABSOLUTE_ISLAND_STORES };\n",
|
|
12
12
|
"import type { StoreApi } from 'zustand/vanilla';\nimport {\n\treadIslandStore,\n\tsubscribeIslandStore,\n\ttype IslandStoreState\n} from '../client/islandStore';\n\nexport const useIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => ({\n\tsubscribe(listener: (value: TSelected) => void) {\n\t\tlistener(readIslandStore(store, selector));\n\t\treturn subscribeIslandStore(store, selector, listener);\n\t}\n});\n",
|
|
13
13
|
"export { default as Island } from './components/Island.svelte';\nexport { createTypedIsland } from './createIsland.browser';\nexport { resolveIslandHtml } from './resolveIslandHtml.browser';\nexport { useIslandStore } from './islandStore';\n\nexport const renderIsland = async () => {\n\tthrow new Error(\n\t\t'renderIsland is server-only. Use it during SSR, not in the browser.'\n\t);\n};\n"
|
|
14
14
|
],
|
|
15
|
-
"mappings": "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
|
|
16
|
-
"debugId": "
|
|
15
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEM,2BAA2B,CAAC,cACjC,UAAU,IAAI,YAAY,IAAI,UAAU,MAAM,CAAC,GAEnC,uBAAuB,CACnC,WACA,cACI,SAAS,yBAAyB,SAAS,IAAI,aAEvC,2BAA2B,CAAC,aAAqC;AAAA,EAC7E,MAAM,UACL,CAAC;AAAA,EACF,MAAM,aAAgC,CAAC,SAAS,UAAU,OAAO,SAAS;AAAA,EAE1E,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,SAAS,SAAS,yBAAyB,SAAS;AAAA,IAC1D,YAAY,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;AAAA,MACpD,IAAI,CAAC,IAAI,WAAW,MAAM;AAAA,QAAG;AAAA,MAE7B,MAAM,YAAY,IAAI,MAAM,OAAO,MAAM;AAAA,MACzC,IAAI,CAAC;AAAA,QAAW;AAAA,MAEhB,MAAM,mBAAmB,QAAQ,cAAc,CAAC;AAAA,MAChD,iBAAiB,aAAa;AAAA,MAC9B,QAAQ,aAAa;AAAA,IACtB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;;;ACQD,SAAS,kBAA6B,CAC5C,WACC;AAAA,EACD,IAAI,4BAA4B,SAAS,GAAG;AAAA,IAC3C,OAAO,UAAU;AAAA,EAClB;AAAA,EAEA,OAAO;AAAA;AAAA,IAtCK,uBAAuB,CACnC,aACI,UAEQ,wBAAwB,CACpC,WACA,aAI2C;AAAA,EAC3C;AAAA,EACA,QAAQ,QAAQ;AAAA,EAChB,QAAQ,QAAQ;AACjB,IAEM,WAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAE3B,8BAA8B,CAC1C,UAEA,SAAS,KAAK,MACd,eAAe,WACf,YAAY,UACZ,OAAO,MAAM,WAAW,UAgBZ,0BAA0B,CACtC,cACI;AAAA,EACJ,IAAI,CAAC,4BAA4B,SAAS;AAAA,IAAG,OAAO;AAAA,EAEpD,OAAO;AAAA,IACN,QAAQ,UAAU;AAAA,IAClB,QAAQ,UAAU;AAAA,EACnB;AAAA,GAGY,uBAAuB,CAAC,UACpC,KAAK,UAAU,SAAS,CAAC,CAAC,GAEd,mBAAmB,CAAC,aAA4B;AAAA,EAC5D,IAAI,CAAC;AAAA,IAAU,OAAO,CAAC;AAAA,EAEvB,OAAO,KAAK,MAAM,QAAQ;AAAA;AAAA;;;ICpDd,4BAA4B,CACxC,OACA,cAC6B;AAAA,EAC7B,kBAAkB,MAAM;AAAA,EACxB,kBAAkB,MAAM;AAAA,EACxB,gBAAgB,MAAM,WAAW;AAAA,EACjC,eAAe;AAAA,KACX,WAAW,EAAE,kBAAkB,SAAS,IAAI,CAAC;AAAA,EACjD,cAAc,qBAAqB,MAAM,KAAK;AAC/C,IAEM,sBAAsB,CAAC,UAC5B,MACE,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,QAAQ,EACxB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM,GAEZ,4BAA4B,CAAC,eACzC,OAAO,QAAQ,UAAU,EACvB,IAAI,EAAE,KAAK,WAAW,GAAG,QAAQ,oBAAoB,KAAK,IAAI,EAC9D,KAAK,GAAG;AAAA;AAAA,EAjCX;AAAA;;;;;ACIA;AAKO,IAAM,oBAAoB,CAChC,cACI;AAAA,EACJ,OAAO,CAAC,UAAqC;AAAA,IAC5C,MAAM,aAAa,0BAA0B,KAAK;AAAA,IAClD,OAAO,QAAQ,0BAA0B,UAAU;AAAA;AAAA;;ACdrD;AAKA,IAAM,oBAAoB,CAAC,WAAmB;AAAA,EAC7C,IAAI,OAAO,WAAW,aAAa;AAAA,IAClC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WAAW,OAAO;AAAA,EACxB,IAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAAA,IAC9C,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,QAAQ,SAAS;AAAA,EACvB,OAAO,OAAO,UAAU,WAAW,QAAQ;AAAA;AAG5C,IAAM,sBAAsB,CAAC,UAC5B,QAAQ,0BAA0B,0BAA0B,KAAK,CAAC;AAE5D,IAAM,oBAAoB,CAChC,QACA,UACI;AAAA,EACJ,MAAM,WAAW,kBAAkB,MAAM;AAAA,EACzC,IAAI,aAAa,MAAM;AAAA,IACtB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,OAAO,aAAa,aAAa;AAAA,IACpC,OAAO,oBAAoB,KAAK;AAAA,EACjC;AAAA,EAEA,MAAM,OAAO,SAAS,cACrB,+BAA+B,UAChC;AAAA,EAEA,OAAO,MAAM,aAAa,oBAAoB,KAAK;AAAA;;ACxCpD,IAAM,kBAAkB,CAAC,gBAAgB;AAAA,EACvC,IAAI;AAAA,EACJ,MAAM,4BAA4B,IAAI;AAAA,EACtC,MAAM,WAAW,CAAC,SAAS,YAAY;AAAA,IACrC,MAAM,YAAY,OAAO,YAAY,aAAa,QAAQ,KAAK,IAAI;AAAA,IACnE,IAAI,CAAC,OAAO,GAAG,WAAW,KAAK,GAAG;AAAA,MAChC,MAAM,gBAAgB;AAAA,MACtB,SAAS,WAAW,OAAO,UAAU,OAAO,cAAc,YAAY,cAAc,QAAQ,YAAY,OAAO,OAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC1I,UAAU,QAAQ,CAAC,aAAa,SAAS,OAAO,aAAa,CAAC;AAAA,IAChE;AAAA;AAAA,EAEF,MAAM,WAAW,MAAM;AAAA,EACvB,MAAM,kBAAkB,MAAM;AAAA,EAC9B,MAAM,YAAY,CAAC,aAAa;AAAA,IAC9B,UAAU,IAAI,QAAQ;AAAA,IACtB,OAAO,MAAM,UAAU,OAAO,QAAQ;AAAA;AAAA,EAExC,MAAM,MAAM,EAAE,UAAU,UAAU,iBAAiB,UAAU;AAAA,EAC7D,MAAM,eAAe,QAAQ,YAAY,UAAU,UAAU,GAAG;AAAA,EAChE,OAAO;AAAA;AAET,IAAM,cAAe,CAAC,gBAAgB,cAAc,gBAAgB,WAAW,IAAI;;;ACInF,IAAM,yBAAyB,MAAM;AAAA,EACpC,WAAW,yBAAyB,CAAC;AAAA,EACrC,OAAO,WAAW;AAAA;AAGnB,IAAM,kBAAkB,MAAM;AAAA,EAC7B,WAAW,0BAA0B,IAAI;AAAA,EACzC,OAAO,WAAW;AAAA;AAGnB,IAAM,sBAAsB,CAAC,UAC5B,OAAO,UAAU,cAAc,UAAU;AAE1C,IAAM,sBAAsB,CAAmB,UAC9C,OAAO,YACN,OAAO,QAAQ,KAAK,EAAE,OAAO,IAAI,WAAW,oBAAoB,KAAK,CAAC,CACvE;AAED,IAAM,gBAAgB,CACrB,OACA,aACI;AAAA,EACJ,IAAI,CAAC,UAAU;AAAA,IACd;AAAA,EACD;AAAA,EAEA,MAAM,SAAS;AAAA,OACX,MAAM,SAAS;AAAA,OACf;AAAA,EACJ,CAAC;AAAA;AAGK,IAAM,yBAAyB,CAAC,UAA+B;AAAA,EACrE,MAAM,kBAAkB,uBAAuB;AAAA,EAC/C,MAAM,eAAe;AAAA,OACjB;AAAA,OACA;AAAA,EACJ;AAAA,EAEA,WAAW,uBAAuB;AAAA,EAElC,YAAY,SAAS,UAAU,gBAAgB,GAAG;AAAA,IACjD,WAAW,YAAY,OAAO;AAAA,MAC7B,SAAS,sBAAsB,aAAa,YAAY,CAAC,CAAC;AAAA,IAC3D;AAAA,EACD;AAAA;AAGM,IAAM,oBAAoB,CAChC,SACA,gBACI;AAAA,EACJ,MAAM,QAAQ,YAAe,WAAW;AAAA,EACxC,MAAM,SAAS,gBAAgB;AAAA,EAC/B,MAAM,iBAAiB,OAAO,IAAI,OAAO,KAAK,IAAI;AAAA,EAClD,MAAM,kBAAkB,uBAAuB,EAAE;AAAA,EACjD,cAAc,OAAO,eAAe;AAAA,EACpC,IAAI,6BAA6B;AAAA,EAEjC,MAAM,wBAAwB,CAAC,aAAkC;AAAA,IAChE,6BAA6B;AAAA,IAC7B,cAAc,OAAO,QAAQ;AAAA;AAAA,EAG9B,MAAM,eAAe,CAAC,UAAa;AAAA,IAClC,MAAM,eAAe,oBAAoB,KAAK;AAAA,IAC9C,uBAAuB,EAAE,WAAW;AAAA,IAEpC,WAAW,aAAa,gBAAgB;AAAA,MACvC,IAAI,UAAU,UAAU,OAAO;AAAA,QAC9B;AAAA,MACD;AAAA,MAEA,UAAU,sBAAsB,YAAY;AAAA,IAC7C;AAAA;AAAA,EAGD,eAAe,IAAI;AAAA,IAClB;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,OAAO,IAAI,SAAS,cAAc;AAAA,EAElC,aAAa,MAAM,SAAS,CAAC;AAAA,EAC7B,MAAM,UAAU,CAAC,UAAU;AAAA,IAC1B,IAAI,4BAA4B;AAAA,MAC/B,6BAA6B;AAAA,MAC7B;AAAA,IACD;AAAA,IAEA,aAAa,KAAK;AAAA,GAClB;AAAA,EAED,OAAO;AAAA;AAGD,IAAM,kBAAkB,CAI9B,OACA,aACI,SAAS,MAAM,SAAS,CAAC;AAEvB,IAAM,uBAAuB,CAInC,OACA,UACA,aACI;AAAA,EACJ,IAAI,mBAAmB,SAAS,MAAM,SAAS,CAAC;AAAA,EAEhD,OAAO,MAAM,UAAU,CAAC,UAAU;AAAA,IACjC,MAAM,gBAAgB,SAAS,KAAK;AAAA,IACpC,IAAI,OAAO,GAAG,eAAe,gBAAgB,GAAG;AAAA,MAC/C;AAAA,IACD;AAAA,IAEA,mBAAmB;AAAA,IACnB,SAAS,aAAa;AAAA,GACtB;AAAA;AAGK,IAAM,+BAA+B,CAI3C,OACA,aACI,SAAS,MAAM,gBAAgB,CAAC;;;ACrJ9B,IAAM,iBAAiB,CAI7B,OACA,cACK;AAAA,EACL,SAAS,CAAC,UAAsC;AAAA,IAC/C,SAAS,gBAAgB,OAAO,QAAQ,CAAC;AAAA,IACzC,OAAO,qBAAqB,OAAO,UAAU,QAAQ;AAAA;AAEvD;;;ACbO,IAAM,eAAe,YAAY;AAAA,EACvC,MAAM,IAAI,MACT,qEACD;AAAA;",
|
|
16
|
+
"debugId": "9FC43098F735C99364756E2164756E21",
|
|
17
17
|
"names": []
|
|
18
18
|
}
|
package/dist/svelte/index.js
CHANGED
|
@@ -30719,31 +30719,45 @@ var initializeIslandStores = (state) => {
|
|
|
30719
30719
|
};
|
|
30720
30720
|
globalThis.__ABS_ISLAND_STATE__ = nextSnapshot;
|
|
30721
30721
|
for (const [storeId, store] of getIslandStores()) {
|
|
30722
|
-
|
|
30722
|
+
for (const instance of store) {
|
|
30723
|
+
instance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});
|
|
30724
|
+
}
|
|
30723
30725
|
}
|
|
30724
30726
|
};
|
|
30725
|
-
var createIslandStore = (storeId
|
|
30727
|
+
var createIslandStore = (storeId, createState) => {
|
|
30728
|
+
const store = createStore(createState);
|
|
30726
30729
|
const stores = getIslandStores();
|
|
30727
|
-
const
|
|
30728
|
-
if (existingStore) {
|
|
30729
|
-
return existingStore;
|
|
30730
|
-
}
|
|
30731
|
-
const store = createStore()((set, get, api) => createState((update) => {
|
|
30732
|
-
set((state) => {
|
|
30733
|
-
const nextPartial = typeof update === "function" ? update(state) : update;
|
|
30734
|
-
return {
|
|
30735
|
-
...state,
|
|
30736
|
-
...nextPartial
|
|
30737
|
-
};
|
|
30738
|
-
});
|
|
30739
|
-
}, get, api));
|
|
30730
|
+
const storeInstances = stores.get(storeId) ?? new Set;
|
|
30740
30731
|
const initialSnapshot = getIslandStoreSnapshot()[storeId];
|
|
30741
30732
|
applySnapshot(store, initialSnapshot);
|
|
30742
|
-
|
|
30733
|
+
let isApplyingExternalSnapshot = false;
|
|
30734
|
+
const applyExternalSnapshot = (snapshot) => {
|
|
30735
|
+
isApplyingExternalSnapshot = true;
|
|
30736
|
+
applySnapshot(store, snapshot);
|
|
30737
|
+
};
|
|
30738
|
+
const syncSnapshot = (state) => {
|
|
30739
|
+
const nextSnapshot = toSerializableState(state);
|
|
30740
|
+
getIslandStoreSnapshot()[storeId] = nextSnapshot;
|
|
30741
|
+
for (const peerStore of storeInstances) {
|
|
30742
|
+
if (peerStore.store === store) {
|
|
30743
|
+
continue;
|
|
30744
|
+
}
|
|
30745
|
+
peerStore.applyExternalSnapshot(nextSnapshot);
|
|
30746
|
+
}
|
|
30747
|
+
};
|
|
30748
|
+
storeInstances.add({
|
|
30749
|
+
applyExternalSnapshot,
|
|
30750
|
+
store
|
|
30751
|
+
});
|
|
30752
|
+
stores.set(storeId, storeInstances);
|
|
30753
|
+
syncSnapshot(store.getState());
|
|
30743
30754
|
store.subscribe((state) => {
|
|
30744
|
-
|
|
30755
|
+
if (isApplyingExternalSnapshot) {
|
|
30756
|
+
isApplyingExternalSnapshot = false;
|
|
30757
|
+
return;
|
|
30758
|
+
}
|
|
30759
|
+
syncSnapshot(state);
|
|
30745
30760
|
});
|
|
30746
|
-
stores.set(storeId, store);
|
|
30747
30761
|
return store;
|
|
30748
30762
|
};
|
|
30749
30763
|
var readIslandStore = (store, selector) => selector(store.getState());
|
|
@@ -30788,5 +30802,5 @@ export {
|
|
|
30788
30802
|
Island_default as Island
|
|
30789
30803
|
};
|
|
30790
30804
|
|
|
30791
|
-
//# debugId=
|
|
30805
|
+
//# debugId=9CFC1F9433B3007E64756E2164756E21
|
|
30792
30806
|
//# sourceMappingURL=index.js.map
|