atom.io 0.40.8 → 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 (80) hide show
  1. package/dist/{chunk-Cl8Af3a2.js → chunk-CTAAG5j7.js} +3 -1
  2. package/dist/eslint-plugin/index.js +2 -3
  3. package/dist/eslint-plugin/index.js.map +1 -1
  4. package/dist/internal/index.d.ts +4 -3
  5. package/dist/internal/index.d.ts.map +1 -1
  6. package/dist/internal/index.js +1129 -3
  7. package/dist/internal/index.js.map +1 -1
  8. package/dist/react-devtools/index.js.map +1 -1
  9. package/dist/realtime/index.d.ts +29 -5
  10. package/dist/realtime/index.d.ts.map +1 -1
  11. package/dist/realtime/index.js +46 -3
  12. package/dist/realtime/index.js.map +1 -1
  13. package/dist/realtime-client/index.d.ts +1 -2
  14. package/dist/realtime-client/index.d.ts.map +1 -1
  15. package/dist/realtime-client/index.js +1 -2
  16. package/dist/realtime-client/index.js.map +1 -1
  17. package/dist/realtime-react/index.d.ts +4 -4
  18. package/dist/realtime-react/index.d.ts.map +1 -1
  19. package/dist/realtime-react/index.js +1 -2
  20. package/dist/realtime-react/index.js.map +1 -1
  21. package/dist/realtime-server/index.d.ts +5 -16
  22. package/dist/realtime-server/index.d.ts.map +1 -1
  23. package/dist/realtime-server/index.js +6 -10
  24. package/dist/realtime-server/index.js.map +1 -1
  25. package/dist/realtime-testing/index.d.ts +2 -2
  26. package/dist/realtime-testing/index.d.ts.map +1 -1
  27. package/dist/realtime-testing/index.js +2 -2
  28. package/dist/realtime-testing/index.js.map +1 -1
  29. package/dist/transceivers/set-rtx/index.d.ts +1 -1
  30. package/dist/transceivers/set-rtx/index.d.ts.map +1 -1
  31. package/dist/transceivers/set-rtx/index.js +2 -2
  32. package/dist/transceivers/set-rtx/index.js.map +1 -1
  33. package/dist/transceivers/u-list/index.d.ts +29 -0
  34. package/dist/transceivers/u-list/index.d.ts.map +1 -0
  35. package/dist/transceivers/u-list/index.js +87 -0
  36. package/dist/transceivers/u-list/index.js.map +1 -0
  37. package/package.json +8 -4
  38. package/src/internal/mutable/tracker.ts +21 -21
  39. package/src/internal/mutable/transceiver.ts +4 -4
  40. package/src/internal/set-state/index.ts +1 -0
  41. package/src/{realtime-server → realtime}/employ-socket.ts +2 -2
  42. package/src/realtime/index.ts +2 -0
  43. package/src/realtime/shared-room-store.ts +12 -11
  44. package/src/realtime-client/continuity/register-and-attempt-confirmed-update.ts +1 -1
  45. package/src/realtime-client/push-state.ts +1 -2
  46. package/src/realtime-react/use-single-effect.ts +1 -1
  47. package/src/realtime-server/continuity/continuity-store.ts +1 -1
  48. package/src/realtime-server/continuity/provide-outcomes.ts +2 -2
  49. package/src/realtime-server/continuity/provide-perspectives.ts +1 -2
  50. package/src/realtime-server/continuity/provide-startup-payloads.ts +3 -3
  51. package/src/realtime-server/continuity/receive-action-requests.ts +2 -4
  52. package/src/realtime-server/continuity/track-acknowledgements.ts +2 -3
  53. package/src/realtime-server/index.ts +0 -1
  54. package/src/realtime-server/ipc-sockets/custom-socket.ts +1 -2
  55. package/src/realtime-server/ipc-sockets/parent-socket.ts +2 -4
  56. package/src/realtime-server/realtime-family-provider.ts +1 -1
  57. package/src/realtime-server/realtime-mutable-family-provider.ts +1 -1
  58. package/src/realtime-server/realtime-mutable-provider.ts +1 -1
  59. package/src/realtime-server/realtime-server-stores/server-room-external-store.ts +2 -2
  60. package/src/realtime-server/realtime-server-stores/server-user-store.ts +8 -9
  61. package/src/realtime-server/realtime-state-provider.ts +1 -1
  62. package/src/realtime-server/realtime-state-receiver.ts +3 -6
  63. package/src/realtime-server/server-config.ts +1 -2
  64. package/src/realtime-testing/setup-realtime-test.tsx +3 -4
  65. package/src/transceivers/set-rtx/set-rtx.ts +3 -3
  66. package/src/transceivers/u-list/index.ts +1 -0
  67. package/src/transceivers/u-list/u-list.ts +123 -0
  68. package/dist/employ-socket-D6wgByWh.js +0 -12
  69. package/dist/employ-socket-D6wgByWh.js.map +0 -1
  70. package/dist/has-role-CMlaUlaf.js +0 -1133
  71. package/dist/has-role-CMlaUlaf.js.map +0 -1
  72. package/dist/is-fn-DY1wZ-md.js +0 -10
  73. package/dist/is-fn-DY1wZ-md.js.map +0 -1
  74. package/dist/mutex-store-CSvxY9i3.js +0 -11
  75. package/dist/mutex-store-CSvxY9i3.js.map +0 -1
  76. package/dist/shared-room-store-BfW3nWif.js +0 -31
  77. package/dist/shared-room-store-BfW3nWif.js.map +0 -1
  78. package/dist/shared-room-store-D2o4ZLjC.d.ts +0 -15
  79. package/dist/shared-room-store-D2o4ZLjC.d.ts.map +0 -1
  80. /package/src/{realtime-server → realtime}/socket-interface.ts +0 -0
@@ -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,YAAY;CAC7B,MAAM,qBAAqB;AAC1B,SAAO,IAAI,OAAO,YAAY;;AAE/B,QAAO"}