spacetimedb 2.1.0 → 2.3.0

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.
Files changed (125) hide show
  1. package/LICENSE.txt +2 -2
  2. package/dist/angular/index.cjs +7 -2
  3. package/dist/angular/index.cjs.map +1 -1
  4. package/dist/angular/index.mjs +7 -2
  5. package/dist/angular/index.mjs.map +1 -1
  6. package/dist/browser/angular/index.mjs +7 -2
  7. package/dist/browser/angular/index.mjs.map +1 -1
  8. package/dist/browser/react/index.mjs +57 -6
  9. package/dist/browser/react/index.mjs.map +1 -1
  10. package/dist/browser/svelte/index.mjs +7 -2
  11. package/dist/browser/svelte/index.mjs.map +1 -1
  12. package/dist/browser/vue/index.mjs +43 -3
  13. package/dist/browser/vue/index.mjs.map +1 -1
  14. package/dist/index.browser.mjs +459 -138
  15. package/dist/index.browser.mjs.map +1 -1
  16. package/dist/index.cjs +459 -138
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.mjs +459 -138
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/lib/binary_reader.d.ts +1 -1
  21. package/dist/lib/binary_reader.d.ts.map +1 -1
  22. package/dist/lib/binary_writer.d.ts +2 -1
  23. package/dist/lib/binary_writer.d.ts.map +1 -1
  24. package/dist/lib/filter.d.ts +2 -1
  25. package/dist/lib/filter.d.ts.map +1 -1
  26. package/dist/lib/reducers.d.ts +2 -0
  27. package/dist/lib/reducers.d.ts.map +1 -1
  28. package/dist/lib/table.d.ts +6 -0
  29. package/dist/lib/table.d.ts.map +1 -1
  30. package/dist/min/index.browser.mjs +1 -1
  31. package/dist/min/index.browser.mjs.map +1 -1
  32. package/dist/min/react/index.mjs +1 -1
  33. package/dist/min/react/index.mjs.map +1 -1
  34. package/dist/min/sdk/index.browser.mjs +1 -1
  35. package/dist/min/sdk/index.browser.mjs.map +1 -1
  36. package/dist/react/index.cjs +57 -5
  37. package/dist/react/index.cjs.map +1 -1
  38. package/dist/react/index.d.ts +1 -0
  39. package/dist/react/index.d.ts.map +1 -1
  40. package/dist/react/index.mjs +57 -6
  41. package/dist/react/index.mjs.map +1 -1
  42. package/dist/react/useProcedure.d.ts +4 -0
  43. package/dist/react/useProcedure.d.ts.map +1 -0
  44. package/dist/react/useTable.d.ts +2 -0
  45. package/dist/react/useTable.d.ts.map +1 -1
  46. package/dist/sdk/db_connection_builder.d.ts +3 -3
  47. package/dist/sdk/db_connection_builder.d.ts.map +1 -1
  48. package/dist/sdk/db_connection_impl.d.ts +3 -3
  49. package/dist/sdk/db_connection_impl.d.ts.map +1 -1
  50. package/dist/sdk/decompress.d.ts +1 -1
  51. package/dist/sdk/decompress.d.ts.map +1 -1
  52. package/dist/sdk/index.browser.mjs +459 -138
  53. package/dist/sdk/index.browser.mjs.map +1 -1
  54. package/dist/sdk/index.cjs +459 -138
  55. package/dist/sdk/index.cjs.map +1 -1
  56. package/dist/sdk/index.mjs +459 -138
  57. package/dist/sdk/index.mjs.map +1 -1
  58. package/dist/sdk/table_cache.d.ts +1 -0
  59. package/dist/sdk/table_cache.d.ts.map +1 -1
  60. package/dist/sdk/type_utils.d.ts +4 -1
  61. package/dist/sdk/type_utils.d.ts.map +1 -1
  62. package/dist/sdk/websocket_decompress_adapter.d.ts +5 -21
  63. package/dist/sdk/websocket_decompress_adapter.d.ts.map +1 -1
  64. package/dist/sdk/websocket_protocols.d.ts +6 -0
  65. package/dist/sdk/websocket_protocols.d.ts.map +1 -0
  66. package/dist/sdk/websocket_test_adapter.d.ts +14 -18
  67. package/dist/sdk/websocket_test_adapter.d.ts.map +1 -1
  68. package/dist/sdk/websocket_v3_frames.d.ts +9 -0
  69. package/dist/sdk/websocket_v3_frames.d.ts.map +1 -0
  70. package/dist/sdk/ws.d.ts +26 -1
  71. package/dist/sdk/ws.d.ts.map +1 -1
  72. package/dist/server/http_internal.d.ts.map +1 -1
  73. package/dist/server/index.d.ts +1 -1
  74. package/dist/server/index.d.ts.map +1 -1
  75. package/dist/server/index.mjs +61 -8
  76. package/dist/server/index.mjs.map +1 -1
  77. package/dist/server/procedures.d.ts +2 -0
  78. package/dist/server/procedures.d.ts.map +1 -1
  79. package/dist/server/runtime.d.ts +30 -2
  80. package/dist/server/runtime.d.ts.map +1 -1
  81. package/dist/svelte/index.cjs +7 -2
  82. package/dist/svelte/index.cjs.map +1 -1
  83. package/dist/svelte/index.mjs +7 -2
  84. package/dist/svelte/index.mjs.map +1 -1
  85. package/dist/tanstack/index.cjs +41 -2
  86. package/dist/tanstack/index.cjs.map +1 -1
  87. package/dist/tanstack/index.d.ts +1 -0
  88. package/dist/tanstack/index.d.ts.map +1 -1
  89. package/dist/tanstack/index.mjs +41 -3
  90. package/dist/tanstack/index.mjs.map +1 -1
  91. package/dist/vue/index.cjs +43 -2
  92. package/dist/vue/index.cjs.map +1 -1
  93. package/dist/vue/index.d.ts +1 -0
  94. package/dist/vue/index.d.ts.map +1 -1
  95. package/dist/vue/index.mjs +43 -3
  96. package/dist/vue/index.mjs.map +1 -1
  97. package/dist/vue/useProcedure.d.ts +4 -0
  98. package/dist/vue/useProcedure.d.ts.map +1 -0
  99. package/package.json +2 -2
  100. package/src/lib/binary_reader.ts +5 -2
  101. package/src/lib/binary_writer.ts +7 -1
  102. package/src/lib/filter.ts +12 -1
  103. package/src/lib/reducers.ts +2 -0
  104. package/src/lib/table.ts +9 -1
  105. package/src/react/index.ts +1 -0
  106. package/src/react/useProcedure.ts +60 -0
  107. package/src/react/useTable.ts +17 -2
  108. package/src/sdk/db_connection_builder.ts +16 -7
  109. package/src/sdk/db_connection_impl.ts +404 -89
  110. package/src/sdk/decompress.ts +7 -23
  111. package/src/sdk/table_cache.ts +5 -5
  112. package/src/sdk/type_utils.ts +10 -1
  113. package/src/sdk/websocket_decompress_adapter.ts +15 -77
  114. package/src/sdk/websocket_protocols.ts +25 -0
  115. package/src/sdk/websocket_test_adapter.ts +65 -29
  116. package/src/sdk/websocket_v3_frames.ts +126 -0
  117. package/src/sdk/ws.ts +81 -3
  118. package/src/server/http_internal.ts +10 -1
  119. package/src/server/index.ts +1 -1
  120. package/src/server/procedures.ts +7 -1
  121. package/src/server/runtime.ts +44 -2
  122. package/src/server/sys.d.ts +4 -0
  123. package/src/tanstack/index.ts +1 -0
  124. package/src/vue/index.ts +1 -0
  125. package/src/vue/useProcedure.ts +62 -0
@@ -432,8 +432,8 @@ var BinaryReader = class {
432
432
  this.view = input instanceof DataView ? input : new DataView(input.buffer, input.byteOffset, input.byteLength);
433
433
  this.offset = 0;
434
434
  }
435
- reset(view) {
436
- this.view = view;
435
+ reset(input) {
436
+ this.view = input instanceof DataView ? input : new DataView(input.buffer, input.byteOffset, input.byteLength);
437
437
  this.offset = 0;
438
438
  }
439
439
  get remaining() {
@@ -625,6 +625,11 @@ var BinaryWriter = class {
625
625
  this.view.setUint8(this.offset, value);
626
626
  this.offset += 1;
627
627
  }
628
+ writeBytes(value) {
629
+ this.expandBuffer(value.length);
630
+ new Uint8Array(this.buffer.buffer, this.offset, value.length).set(value);
631
+ this.offset += value.length;
632
+ }
628
633
  writeI8(value) {
629
634
  this.expandBuffer(1);
630
635
  this.view.setInt8(this.offset, value);
@@ -1736,8 +1741,44 @@ function useReducer(reducerDef) {
1736
1741
  return fn(...params);
1737
1742
  };
1738
1743
  }
1744
+ function useProcedure(procedureDef) {
1745
+ const conn = useSpacetimeDB();
1746
+ const procedureName = procedureDef.accessorName;
1747
+ const queueRef = vue.shallowRef([]);
1748
+ const stopWatch = vue.watch(
1749
+ () => conn.isActive,
1750
+ () => {
1751
+ const connection = conn.getConnection();
1752
+ if (!connection) return;
1753
+ const fn = connection.procedures[procedureName];
1754
+ if (queueRef.value.length) {
1755
+ const pending = queueRef.value.splice(0);
1756
+ for (const item of pending) {
1757
+ fn(...item.params).then(item.resolve, item.reject);
1758
+ }
1759
+ }
1760
+ },
1761
+ { immediate: true }
1762
+ );
1763
+ vue.onUnmounted(() => {
1764
+ stopWatch();
1765
+ });
1766
+ return (...params) => {
1767
+ const connection = conn.getConnection();
1768
+ if (!connection) {
1769
+ return new Promise(
1770
+ (resolve, reject) => {
1771
+ queueRef.value.push({ params, resolve, reject });
1772
+ }
1773
+ );
1774
+ }
1775
+ const fn = connection.procedures[procedureName];
1776
+ return fn(...params);
1777
+ };
1778
+ }
1739
1779
 
1740
1780
  exports.SpacetimeDBProvider = SpacetimeDBProvider;
1781
+ exports.useProcedure = useProcedure;
1741
1782
  exports.useReducer = useReducer;
1742
1783
  exports.useSpacetimeDB = useSpacetimeDB;
1743
1784
  exports.useSpacetimeDBProvider = useSpacetimeDBProvider;