New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@xstate/store

Package Overview
Dependencies
Maintainers
0
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xstate/store - npm Package Compare versions

Comparing version 2.1.0 to 2.2.0

10

dist/declarations/src/types.d.ts

@@ -0,1 +1,2 @@

import { InspectionEvent } from 'xstate';
export type EventPayloadMap = Record<string, {} | null | undefined>;

@@ -45,2 +46,11 @@ export type ExtractEventsFromPayloadMap<T extends EventPayloadMap> = Values<{

getInitialSnapshot: () => StoreSnapshot<TContext>;
/**
* Subscribes to [inspection events](https://stately.ai/docs/inspection) from
* the store.
*
* Inspectors that call `store.inspect(…)` will immediately receive an
* "@xstate.actor" inspection event.
*/
inspect: (observer: Observer<InspectionEvent> | ((inspectionEvent: InspectionEvent) => void)) => Subscription;
sessionId: string;
}

@@ -47,0 +57,0 @@ export type SnapshotFromStore<TStore extends Store<any, any>> = TStore extends Store<infer TContext, any> ? StoreSnapshot<TContext> : never;

@@ -18,2 +18,3 @@ 'use strict';

}
const inspectionObservers = new WeakMap();
function createStoreCore(initialContext, transitions, updater) {

@@ -31,6 +32,25 @@ let observers;

currentSnapshot = transition(currentSnapshot, event);
inspectionObservers.get(store)?.forEach(observer => {
observer.next?.({
type: '@xstate.snapshot',
event,
snapshot: currentSnapshot,
actorRef: store,
rootId: store.sessionId
});
});
observers?.forEach(o => o.next?.(currentSnapshot));
}
const store = {
sessionId: 'test',
send(event) {
inspectionObservers.get(store)?.forEach(observer => {
observer.next?.({
type: '@xstate.event',
event,
sourceRef: undefined,
actorRef: store,
rootId: store.sessionId
});
});
receive(event);

@@ -56,2 +76,26 @@ },

return this;
},
inspect: observerOrFn => {
const observer = toObserver(observerOrFn);
inspectionObservers.set(store, inspectionObservers.get(store) ?? new Set());
inspectionObservers.get(store).add(observer);
observer.next?.({
type: '@xstate.actor',
actorRef: store,
rootId: store.sessionId
});
observer.next?.({
type: '@xstate.snapshot',
snapshot: initialSnapshot,
event: {
type: '@xstate.init'
},
actorRef: store,
rootId: store.sessionId
});
return {
unsubscribe() {
return inspectionObservers.get(store)?.delete(observer);
}
};
}

@@ -58,0 +102,0 @@ };

@@ -14,2 +14,3 @@ const symbolObservable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();

}
const inspectionObservers = new WeakMap();
function createStoreCore(initialContext, transitions, updater) {

@@ -27,6 +28,25 @@ let observers;

currentSnapshot = transition(currentSnapshot, event);
inspectionObservers.get(store)?.forEach(observer => {
observer.next?.({
type: '@xstate.snapshot',
event,
snapshot: currentSnapshot,
actorRef: store,
rootId: store.sessionId
});
});
observers?.forEach(o => o.next?.(currentSnapshot));
}
const store = {
sessionId: 'test',
send(event) {
inspectionObservers.get(store)?.forEach(observer => {
observer.next?.({
type: '@xstate.event',
event,
sourceRef: undefined,
actorRef: store,
rootId: store.sessionId
});
});
receive(event);

@@ -52,2 +72,26 @@ },

return this;
},
inspect: observerOrFn => {
const observer = toObserver(observerOrFn);
inspectionObservers.set(store, inspectionObservers.get(store) ?? new Set());
inspectionObservers.get(store).add(observer);
observer.next?.({
type: '@xstate.actor',
actorRef: store,
rootId: store.sessionId
});
observer.next?.({
type: '@xstate.snapshot',
snapshot: initialSnapshot,
event: {
type: '@xstate.init'
},
actorRef: store,
rootId: store.sessionId
});
return {
unsubscribe() {
return inspectionObservers.get(store)?.delete(observer);
}
};
}

@@ -54,0 +98,0 @@ };

4

package.json
{
"name": "@xstate/store",
"version": "2.1.0",
"version": "2.2.0",
"description": "Simple stores",

@@ -56,3 +56,3 @@ "keywords": [

"react-dom": "^18.0.0",
"xstate": "^5.17.0"
"xstate": "^5.17.4"
},

@@ -59,0 +59,0 @@ "peerDependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc