@absolutejs/absolute 0.19.0-beta.336 → 0.19.0-beta.338
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 -11
- package/dist/angular/browser.js.map +3 -3
- package/dist/angular/index.js +33 -11
- package/dist/angular/index.js.map +3 -3
- package/dist/client/index.js +33 -11
- package/dist/client/index.js.map +3 -3
- package/dist/islands/browser.js +33 -11
- package/dist/islands/browser.js.map +3 -3
- package/dist/islands/index.js +33 -11
- package/dist/islands/index.js.map +3 -3
- package/dist/islands/server.js +33 -11
- package/dist/islands/server.js.map +3 -3
- package/dist/react/browser.js +33 -11
- package/dist/react/browser.js.map +3 -3
- package/dist/react/hooks/index.js +33 -11
- package/dist/react/hooks/index.js.map +3 -3
- package/dist/react/index.js +33 -11
- package/dist/react/index.js.map +3 -3
- package/dist/src/client/islandStore.d.ts +6 -2
- package/dist/svelte/browser.js +33 -11
- package/dist/svelte/browser.js.map +3 -3
- package/dist/svelte/index.js +33 -11
- package/dist/svelte/index.js.map +3 -3
- package/dist/vue/browser.js +33 -11
- package/dist/vue/browser.js.map +3 -3
- package/dist/vue/index.js +33 -11
- package/dist/vue/index.js.map +3 -3
- package/package.json +1 -1
|
@@ -2,14 +2,18 @@ import { type StateCreator, type StoreApi } from 'zustand/vanilla';
|
|
|
2
2
|
export type IslandStoreState = Record<string, unknown>;
|
|
3
3
|
export type IslandStateSnapshot = Record<string, IslandStoreState>;
|
|
4
4
|
type AnyIslandStore = StoreApi<IslandStoreState>;
|
|
5
|
+
type IslandStoreInstance = {
|
|
6
|
+
applyExternalSnapshot: (snapshot: IslandStoreState) => void;
|
|
7
|
+
store: AnyIslandStore;
|
|
8
|
+
};
|
|
5
9
|
declare const ABSOLUTE_ISLAND_STATE = "__ABS_ISLAND_STATE__";
|
|
6
10
|
declare const ABSOLUTE_ISLAND_STORES = "__ABS_ISLAND_STORES__";
|
|
7
11
|
declare global {
|
|
8
12
|
var __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;
|
|
9
|
-
var __ABS_ISLAND_STORES__: Map<string,
|
|
13
|
+
var __ABS_ISLAND_STORES__: Map<string, Set<IslandStoreInstance>> | undefined;
|
|
10
14
|
}
|
|
11
15
|
export declare const initializeIslandStores: (state: IslandStateSnapshot) => void;
|
|
12
|
-
export declare const createIslandStore:
|
|
16
|
+
export declare const createIslandStore: <T extends IslandStoreState>(storeId: string, createState: StateCreator<T, [], []>) => StoreApi<T>;
|
|
13
17
|
export declare const readIslandStore: <TState extends IslandStoreState, TSelected>(store: StoreApi<TState>, selector: (state: TState) => TSelected) => TSelected;
|
|
14
18
|
export declare const subscribeIslandStore: <TState extends IslandStoreState, TSelected>(store: StoreApi<TState>, selector: (state: TState) => TSelected, listener: (value: TSelected) => void) => () => void;
|
|
15
19
|
export declare const getIslandStoreServerSnapshot: <TState extends IslandStoreState, TSelected>(store: StoreApi<TState>, selector: (state: TState) => TSelected) => TSelected;
|
package/dist/svelte/browser.js
CHANGED
|
@@ -223,23 +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()(createState);
|
|
234
|
+
const storeInstances = stores.get(storeId) ?? new Set;
|
|
236
235
|
const initialSnapshot = getIslandStoreSnapshot()[storeId];
|
|
237
236
|
applySnapshot(store, initialSnapshot);
|
|
238
|
-
|
|
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());
|
|
239
258
|
store.subscribe((state) => {
|
|
240
|
-
|
|
259
|
+
if (isApplyingExternalSnapshot) {
|
|
260
|
+
isApplyingExternalSnapshot = false;
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
syncSnapshot(state);
|
|
241
264
|
});
|
|
242
|
-
stores.set(storeId, store);
|
|
243
265
|
return store;
|
|
244
266
|
};
|
|
245
267
|
var readIslandStore = (store, selector) => selector(store.getState());
|
|
@@ -276,5 +298,5 @@ export {
|
|
|
276
298
|
Island_default as Island
|
|
277
299
|
};
|
|
278
300
|
|
|
279
|
-
//# debugId=
|
|
301
|
+
//# debugId=9FC43098F735C99364756E2164756E21
|
|
280
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 StateCreator,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string, IslandStoreState>;\ntype AnyIslandStore = StoreApi<IslandStoreState>;\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__
|
|
11
|
+
"import {\n\tcreateStore,\n\ttype StateCreator,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string, IslandStoreState>;\ntype AnyIslandStore = StoreApi<IslandStoreState>;\ntype IslandStoreInstance = {\n\tapplyExternalSnapshot: (snapshot: IslandStoreState) => 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 IslandStoreState>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends IslandStoreState>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreState | 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: IslandStoreState) => {\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": "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",
|
|
16
|
+
"debugId": "9FC43098F735C99364756E2164756E21",
|
|
17
17
|
"names": []
|
|
18
18
|
}
|
package/dist/svelte/index.js
CHANGED
|
@@ -30719,23 +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()(createState);
|
|
30730
|
+
const storeInstances = stores.get(storeId) ?? new Set;
|
|
30732
30731
|
const initialSnapshot = getIslandStoreSnapshot()[storeId];
|
|
30733
30732
|
applySnapshot(store, initialSnapshot);
|
|
30734
|
-
|
|
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());
|
|
30735
30754
|
store.subscribe((state) => {
|
|
30736
|
-
|
|
30755
|
+
if (isApplyingExternalSnapshot) {
|
|
30756
|
+
isApplyingExternalSnapshot = false;
|
|
30757
|
+
return;
|
|
30758
|
+
}
|
|
30759
|
+
syncSnapshot(state);
|
|
30737
30760
|
});
|
|
30738
|
-
stores.set(storeId, store);
|
|
30739
30761
|
return store;
|
|
30740
30762
|
};
|
|
30741
30763
|
var readIslandStore = (store, selector) => selector(store.getState());
|
|
@@ -30780,5 +30802,5 @@ export {
|
|
|
30780
30802
|
Island_default as Island
|
|
30781
30803
|
};
|
|
30782
30804
|
|
|
30783
|
-
//# debugId=
|
|
30805
|
+
//# debugId=9CFC1F9433B3007E64756E2164756E21
|
|
30784
30806
|
//# sourceMappingURL=index.js.map
|