@replicast/react 1.0.0-rc.5 → 1.0.0-rc.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"init-rpc.d.ts","sourceRoot":"","sources":["../src/init-rpc.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,cAAc;IACtB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,OAAO,EAAE,GAAG,CAAA;QACZ,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;QACtC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;KAC1D,CAAA;IACD,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAA;AAE7C,KAAK,SAAS,CAAC,MAAM,SAAS,UAAU,EAAE,IAAI;IAC5C,aAAa,EAAE,MAAM,OAAO,uBAAuB,EAAE,eAAe,CAAA;CACrE,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;CACjF,CAAA;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,MAAM,SAAS,UAAU,EAAE,EACvD,OAAO,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5D,SAAS,CAAC,MAAM,CAAC,CAuDnB"}
1
+ {"version":3,"file":"init-rpc.d.ts","sourceRoot":"","sources":["../src/init-rpc.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,cAAc;IACtB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,OAAO,EAAE,GAAG,CAAA;QACZ,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;QACtC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;KAC1D,CAAA;IACD,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAA;AAE7C,KAAK,SAAS,CAAC,MAAM,SAAS,UAAU,EAAE,IAAI;IAC5C,aAAa,EAAE,MAAM,OAAO,uBAAuB,EAAE,eAAe,CAAA;CACrE,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;CACjF,CAAA;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,MAAM,SAAS,UAAU,EAAE,EACvD,OAAO,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5D,SAAS,CAAC,MAAM,CAAC,CAyDnB"}
package/dist/init-rpc.js CHANGED
@@ -22,9 +22,9 @@ export function initRPC(options) {
22
22
  : Object.fromEntries(Object.entries(instance)
23
23
  .filter(([k, v]) => !k.startsWith('_') && v !== undefined));
24
24
  const zustandStore = create(() => ({ ...initialState }));
25
- // Wire up _onReplication to update the Zustand store if instance is a BaseStore.
26
- // Always overwrite to ensure re-wiring on a second initRPC call is consistent.
27
- maybeStore._onReplication = (batch) => {
25
+ // Subscribe to replication batches (multi-listener) so the game loop can subscribe too;
26
+ // falls back to the legacy single slot for stores without subscribe().
27
+ const onBatch = (batch) => {
28
28
  const update = {};
29
29
  if (batch.global && Object.keys(batch.global).length > 0) {
30
30
  Object.assign(update, batch.global);
@@ -39,6 +39,10 @@ export function initRPC(options) {
39
39
  zustandStore.setState(update);
40
40
  }
41
41
  };
42
+ if (typeof maybeStore.subscribe === 'function')
43
+ maybeStore.subscribe(onBatch);
44
+ else
45
+ maybeStore._onReplication = onBatch;
42
46
  storeHooks[`use${name[0].toUpperCase() + name.slice(1)}`] = () => zustandStore();
43
47
  }
44
48
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"init-rpc.js","sourceRoot":"","sources":["../src/init-rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-rpc.js","sourceRoot":"","sources":["../src/init-rpc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@replicast/react",
3
- "version": "1.0.0-rc.5",
3
+ "version": "1.0.0-rc.7",
4
4
  "description": "React hooks for replicast — initRPC, useConnection, and reactive per-store hooks",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,17 +18,18 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@replicast/core": "*",
21
- "zustand": "^4.5.0"
21
+ "zustand": "^5.0.0"
22
22
  },
23
23
  "peerDependencies": {
24
- "react": "^18.0.0"
24
+ "react": "^18.0.0 || ^19.0.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@testing-library/react": "^16.3.2",
28
- "@types/react": "^18.0.0",
28
+ "@types/react": "^19.0.0",
29
29
  "jsdom": "^29.1.1",
30
30
  "react": "^19.2.7",
31
31
  "react-dom": "^19.2.7",
32
- "vitest": "^1.6.0"
32
+ "vitest": "^1.6.0",
33
+ "@types/react-dom": "^19.0.0"
33
34
  }
34
35
  }