atom.io 0.40.7 → 0.40.9

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 (104) hide show
  1. package/dist/{chunk-Cl8Af3a2.js → chunk-CTAAG5j7.js} +3 -1
  2. package/dist/data/index.js +1 -2
  3. package/dist/data/index.js.map +1 -1
  4. package/dist/eslint-plugin/index.js +2 -3
  5. package/dist/eslint-plugin/index.js.map +1 -1
  6. package/dist/internal/index.d.ts +4 -3
  7. package/dist/internal/index.d.ts.map +1 -1
  8. package/dist/internal/index.js +1231 -176
  9. package/dist/internal/index.js.map +1 -1
  10. package/dist/introspection/index.d.ts.map +1 -1
  11. package/dist/introspection/index.js +13 -32
  12. package/dist/introspection/index.js.map +1 -1
  13. package/dist/json/index.d.ts.map +1 -1
  14. package/dist/json/index.js.map +1 -1
  15. package/dist/main/index.d.ts.map +1 -1
  16. package/dist/main/index.js +1 -2
  17. package/dist/main/index.js.map +1 -1
  18. package/dist/react/index.d.ts.map +1 -1
  19. package/dist/react/index.js.map +1 -1
  20. package/dist/react-devtools/index.d.ts.map +1 -1
  21. package/dist/react-devtools/index.js +2 -4
  22. package/dist/react-devtools/index.js.map +1 -1
  23. package/dist/realtime/index.d.ts +29 -5
  24. package/dist/realtime/index.d.ts.map +1 -1
  25. package/dist/realtime/index.js +47 -5
  26. package/dist/realtime/index.js.map +1 -1
  27. package/dist/realtime-client/index.d.ts +2 -6
  28. package/dist/realtime-client/index.d.ts.map +1 -1
  29. package/dist/realtime-client/index.js +6 -22
  30. package/dist/realtime-client/index.js.map +1 -1
  31. package/dist/realtime-react/index.d.ts +6 -9
  32. package/dist/realtime-react/index.d.ts.map +1 -1
  33. package/dist/realtime-react/index.js +4 -16
  34. package/dist/realtime-react/index.js.map +1 -1
  35. package/dist/realtime-server/index.d.ts +38 -57
  36. package/dist/realtime-server/index.d.ts.map +1 -1
  37. package/dist/realtime-server/index.js +128 -178
  38. package/dist/realtime-server/index.js.map +1 -1
  39. package/dist/realtime-testing/index.d.ts +2 -0
  40. package/dist/realtime-testing/index.d.ts.map +1 -1
  41. package/dist/realtime-testing/index.js +15 -9
  42. package/dist/realtime-testing/index.js.map +1 -1
  43. package/dist/transceivers/set-rtx/index.d.ts +1 -1
  44. package/dist/transceivers/set-rtx/index.d.ts.map +1 -1
  45. package/dist/transceivers/set-rtx/index.js +5 -9
  46. package/dist/transceivers/set-rtx/index.js.map +1 -1
  47. package/dist/transceivers/u-list/index.d.ts +29 -0
  48. package/dist/transceivers/u-list/index.d.ts.map +1 -0
  49. package/dist/transceivers/u-list/index.js +87 -0
  50. package/dist/transceivers/u-list/index.js.map +1 -0
  51. package/dist/web/index.js.map +1 -1
  52. package/package.json +17 -13
  53. package/src/internal/mutable/tracker.ts +61 -46
  54. package/src/internal/mutable/transceiver.ts +4 -4
  55. package/src/internal/set-state/index.ts +1 -0
  56. package/src/internal/subscribe/subscribe-to-state.ts +9 -0
  57. package/src/{realtime-server → realtime}/employ-socket.ts +2 -2
  58. package/src/realtime/index.ts +2 -0
  59. package/src/realtime/shared-room-store.ts +12 -11
  60. package/src/realtime-client/continuity/register-and-attempt-confirmed-update.ts +1 -1
  61. package/src/realtime-client/index.ts +0 -1
  62. package/src/realtime-client/push-state.ts +1 -2
  63. package/src/realtime-react/index.ts +0 -1
  64. package/src/realtime-react/use-single-effect.ts +1 -1
  65. package/src/realtime-server/continuity/continuity-store.ts +2 -27
  66. package/src/realtime-server/continuity/provide-continuity.ts +50 -0
  67. package/src/realtime-server/continuity/{subscribe-to-continuity-actions.ts → provide-outcomes.ts} +16 -14
  68. package/src/realtime-server/continuity/{subscribe-to-continuity-perpectives.ts → provide-perspectives.ts} +11 -10
  69. package/src/realtime-server/continuity/{prepare-to-send-initial-payload.ts → provide-startup-payloads.ts} +8 -6
  70. package/src/realtime-server/continuity/receive-action-requests.ts +66 -0
  71. package/src/realtime-server/continuity/{prepare-to-track-client-acknowledgement.ts → track-acknowledgements.ts} +15 -9
  72. package/src/realtime-server/index.ts +1 -3
  73. package/src/realtime-server/ipc-sockets/custom-socket.ts +4 -5
  74. package/src/realtime-server/ipc-sockets/parent-socket.ts +21 -17
  75. package/src/realtime-server/realtime-family-provider.ts +1 -1
  76. package/src/realtime-server/realtime-mutable-family-provider.ts +1 -1
  77. package/src/realtime-server/realtime-mutable-provider.ts +1 -1
  78. package/src/realtime-server/realtime-server-stores/server-room-external-store.ts +2 -2
  79. package/src/realtime-server/realtime-server-stores/server-user-store.ts +8 -9
  80. package/src/realtime-server/realtime-state-provider.ts +1 -1
  81. package/src/realtime-server/realtime-state-receiver.ts +3 -6
  82. package/src/realtime-server/server-config.ts +1 -3
  83. package/src/realtime-testing/setup-realtime-test.tsx +23 -18
  84. package/src/transceivers/set-rtx/set-rtx.ts +3 -3
  85. package/src/transceivers/u-list/index.ts +1 -0
  86. package/src/transceivers/u-list/u-list.ts +123 -0
  87. package/dist/employ-socket-D6wgByWh.js +0 -12
  88. package/dist/employ-socket-D6wgByWh.js.map +0 -1
  89. package/dist/has-role-hv4-hJMw.js +0 -1149
  90. package/dist/has-role-hv4-hJMw.js.map +0 -1
  91. package/dist/is-fn-DY1wZ-md.js +0 -10
  92. package/dist/is-fn-DY1wZ-md.js.map +0 -1
  93. package/dist/mutex-store-CSvxY9i3.js +0 -11
  94. package/dist/mutex-store-CSvxY9i3.js.map +0 -1
  95. package/dist/shared-room-store-COGGKqes.js +0 -32
  96. package/dist/shared-room-store-COGGKqes.js.map +0 -1
  97. package/dist/shared-room-store-D2o4ZLjC.d.ts +0 -15
  98. package/dist/shared-room-store-D2o4ZLjC.d.ts.map +0 -1
  99. package/src/realtime-client/server-action.ts +0 -23
  100. package/src/realtime-react/use-server-action.ts +0 -19
  101. package/src/realtime-server/continuity/prepare-to-serve-transaction-request.ts +0 -59
  102. package/src/realtime-server/continuity/prepare-to-sync-realtime-continuity.ts +0 -145
  103. package/src/realtime-server/realtime-action-receiver.ts +0 -40
  104. /package/src/{realtime-server → realtime}/socket-interface.ts +0 -0
@@ -5,7 +5,7 @@ import { stringifyJson } from "atom.io/json"
5
5
 
6
6
  export type SetUpdateType = `add` | `clear` | `del` | `tx`
7
7
  export type SetUpdate = `${SetUpdateType}:${string}`
8
- export type NumberedSetUpdate = `${number}=${SetUpdate}`
8
+ export type NumberedSetUpdate = `${number | `*`}=${SetUpdate}`
9
9
 
10
10
  export interface SetRTXView<P extends primitive> extends ReadonlySet<P> {
11
11
  readonly cache: ReadonlyArray<NumberedSetUpdate | null>
@@ -182,8 +182,8 @@ export class SetRTX<P extends primitive>
182
182
  const updateNumber = Number(update.substring(0, breakpoint))
183
183
  const eventOffset = updateNumber - this.cacheUpdateNumber
184
184
  const isFuture = eventOffset > 0
185
- if (isFuture) {
186
- if (eventOffset === 1) {
185
+ if (isFuture || Number.isNaN(eventOffset)) {
186
+ if (eventOffset === 1 || Number.isNaN(eventOffset)) {
187
187
  this.mode = `playback`
188
188
  const innerUpdate = update.substring(breakpoint + 1) as SetUpdate
189
189
  this.doStep(innerUpdate)
@@ -0,0 +1 @@
1
+ export * from "./u-list"
@@ -0,0 +1,123 @@
1
+ import type { Transceiver, TransceiverMode } from "atom.io/internal"
2
+ import { Subject } from "atom.io/internal"
3
+ import type { Json, primitive, stringified } from "atom.io/json"
4
+ import { stringifyJson } from "atom.io/json"
5
+
6
+ export type UListUpdateType = `add` | `clear` | `del`
7
+ export type UListUpdate<P extends primitive> =
8
+ | `${`add` | `del`}:${stringified<P>}`
9
+ | `clear:${stringified<P[]>}`
10
+
11
+ export interface UListJson<P extends primitive> extends Json.Object {
12
+ members: P[]
13
+ }
14
+ export class UList<P extends primitive>
15
+ extends Set<P>
16
+ implements Transceiver<ReadonlySet<P>, UListUpdate<P>, UListJson<P>>
17
+ {
18
+ public mode: TransceiverMode = `record`
19
+ public readonly subject: Subject<UListUpdate<P>> = new Subject<
20
+ UListUpdate<P>
21
+ >()
22
+
23
+ public constructor(values?: Iterable<P>) {
24
+ super(values)
25
+ if (values instanceof UList) {
26
+ }
27
+ }
28
+
29
+ public readonly READONLY_VIEW: ReadonlySet<P> = this
30
+
31
+ public toJSON(): UListJson<P> {
32
+ return {
33
+ members: [...this],
34
+ }
35
+ }
36
+
37
+ public static fromJSON<P extends primitive>(json: UListJson<P>): UList<P> {
38
+ return new UList<P>(json.members)
39
+ }
40
+
41
+ public add(value: P): this {
42
+ const result = super.add(value)
43
+ if (this.mode === `record`) {
44
+ this.emit(`add:${stringifyJson<P>(value)}`)
45
+ }
46
+ return result
47
+ }
48
+
49
+ public clear(): void {
50
+ const capturedContents = this.mode === `record` ? [...this] : null
51
+ super.clear()
52
+ if (capturedContents) {
53
+ this.emit(`clear:${stringifyJson(capturedContents)}`)
54
+ }
55
+ }
56
+
57
+ public delete(value: P): boolean {
58
+ const result = super.delete(value)
59
+ if (this.mode === `record`) {
60
+ this.emit(`del:${stringifyJson<P>(value)}`)
61
+ }
62
+ return result
63
+ }
64
+
65
+ public subscribe(
66
+ key: string,
67
+ fn: (update: UListUpdate<P>) => void,
68
+ ): () => void {
69
+ return this.subject.subscribe(key, fn)
70
+ }
71
+
72
+ public emit(update: UListUpdate<P>): void {
73
+ this.subject.next(update)
74
+ }
75
+
76
+ private doStep(update: UListUpdate<P>): void {
77
+ const typeValueBreak = update.indexOf(`:`)
78
+ const type = update.substring(0, typeValueBreak) as UListUpdateType
79
+ const value = update.substring(typeValueBreak + 1)
80
+ switch (type) {
81
+ case `add`:
82
+ this.add(JSON.parse(value))
83
+ break
84
+ case `del`:
85
+ this.delete(JSON.parse(value))
86
+ break
87
+ case `clear`:
88
+ this.clear()
89
+ }
90
+ }
91
+
92
+ public do(update: UListUpdate<P>): null {
93
+ this.mode = `playback`
94
+ this.doStep(update)
95
+ this.mode = `record`
96
+ return null
97
+ }
98
+
99
+ public undoStep(update: UListUpdate<P>): void {
100
+ const breakpoint = update.indexOf(`:`)
101
+ const type = update.substring(0, breakpoint) as UListUpdateType
102
+ const value = update.substring(breakpoint + 1)
103
+ switch (type) {
104
+ case `add`:
105
+ this.delete(JSON.parse(value))
106
+ break
107
+ case `del`:
108
+ this.add(JSON.parse(value))
109
+ break
110
+ case `clear`: {
111
+ const values = JSON.parse(value) as P[]
112
+ for (const v of values) this.add(v)
113
+ }
114
+ }
115
+ }
116
+
117
+ public undo(update: UListUpdate<P>): number | null {
118
+ this.mode = `playback`
119
+ this.undoStep(update)
120
+ this.mode = `record`
121
+ return null
122
+ }
123
+ }
@@ -1,12 +0,0 @@
1
- //#region src/realtime-server/employ-socket.ts
2
- function employSocket(socket, event, handleEvent) {
3
- socket.on(event, handleEvent);
4
- const retireSocket = () => {
5
- socket.off(event, handleEvent);
6
- };
7
- return retireSocket;
8
- }
9
-
10
- //#endregion
11
- export { employSocket };
12
- //# sourceMappingURL=employ-socket-D6wgByWh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"employ-socket-D6wgByWh.js","names":[],"sources":["../src/realtime-server/employ-socket.ts"],"sourcesContent":["import type { Events } from \"./ipc-sockets\"\nimport type { Socket } from \"./socket-interface\"\n\nexport function employSocket<I extends Events, K extends string & keyof I>(\n\tsocket: Socket,\n\tevent: K,\n\thandleEvent: (...data: I[K]) => void,\n): () => void {\n\tsocket.on(event, handleEvent)\n\tconst retireSocket = () => {\n\t\tsocket.off(event, handleEvent)\n\t}\n\treturn retireSocket\n}\n"],"mappings":";AAGA,SAAgB,aACf,QACA,OACA,aACa;AACb,QAAO,GAAG,OAAO;CACjB,MAAM,qBAAqB;AAC1B,SAAO,IAAI,OAAO;;AAEnB,QAAO"}