@reboot-dev/reboot-std 0.31.0 → 0.32.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.
@@ -3,7 +3,7 @@ export default {
3
3
  servicers: () => {
4
4
  return [
5
5
  {
6
- nativeServicerModule: "reboot.std.collections.sorted_map",
6
+ nativeServicerModule: "reboot.std.collections.v1.sorted_map",
7
7
  },
8
8
  ];
9
9
  },
@@ -0,0 +1,6 @@
1
+ import { NativeServicer } from "@reboot-dev/reboot";
2
+ export * from "@reboot-dev/reboot-std-api/index/v1/index_rbt.js";
3
+ declare const _default: {
4
+ servicers: () => NativeServicer[];
5
+ };
6
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export * from "@reboot-dev/reboot-std-api/index/v1/index_rbt.js";
2
+ export default {
3
+ servicers: () => {
4
+ return [
5
+ {
6
+ nativeServicerModule: "reboot.std.index.v1.index",
7
+ },
8
+ ];
9
+ },
10
+ };
package/index.js CHANGED
@@ -2,4 +2,4 @@ export {};
2
2
  // NOTE: this file intentionally left blank. Import directly from the
3
3
  // file within this package, for example:
4
4
  //
5
- // import presence from "@reboot-dev/reboot-std/presence"
5
+ // import presence from "@reboot-dev/reboot-std/presence/v1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reboot-dev/reboot-std",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Reboot standard library.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -10,8 +10,8 @@
10
10
  },
11
11
  "author": "reboot-dev",
12
12
  "dependencies": {
13
- "@reboot-dev/reboot-std-api": "0.31.0",
14
- "@reboot-dev/reboot": "0.31.0",
13
+ "@reboot-dev/reboot-std-api": "0.32.0",
14
+ "@reboot-dev/reboot": "0.32.0",
15
15
  "@scarf/scarf": "1.4.0"
16
16
  },
17
17
  "license": "Apache-2.0",
@@ -21,8 +21,11 @@
21
21
  "exports": {
22
22
  "./package.json": "./package.json",
23
23
  ".": "./index.js",
24
- "./collections/sorted_map.js": "./collections/sorted_map.js",
25
- "./presence": "./presence/index.js",
24
+ "./collections/v1/sorted_map.js": "./collections/v1/sorted_map.js",
25
+ "./presence/v1": "./presence/v1/index.js",
26
+ "./presence/subscriber/v1": "./presence/subscriber/v1/index.js",
27
+ "./presence/mouse_tracker/v1": "./presence/mouse_tracker/v1/index.js",
28
+ "./index/v1": "./index/v1/index.js",
26
29
  "./vitest": "./vitest/index.js"
27
30
  }
28
31
  }
@@ -0,0 +1 @@
1
+ export * from "@reboot-dev/reboot-std-api/presence/mouse_tracker/v1/mouse_position_rbt.js";
@@ -0,0 +1 @@
1
+ export * from "@reboot-dev/reboot-std-api/presence/mouse_tracker/v1/mouse_position_rbt.js";
@@ -0,0 +1 @@
1
+ export * from "@reboot-dev/reboot-std-api/presence/subscriber/v1/subscriber_rbt.js";
@@ -0,0 +1 @@
1
+ export * from "@reboot-dev/reboot-std-api/presence/subscriber/v1/subscriber_rbt.js";
@@ -0,0 +1,6 @@
1
+ import { NativeServicer } from "@reboot-dev/reboot";
2
+ export * from "@reboot-dev/reboot-std-api/presence/v1/presence_rbt.js";
3
+ declare const _default: {
4
+ servicers: () => NativeServicer[];
5
+ };
6
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export * from "@reboot-dev/reboot-std-api/presence/v1/presence_rbt.js";
2
+ export default {
3
+ servicers: () => {
4
+ return [
5
+ {
6
+ nativeServicerModule: "reboot.std.presence.v1.presence",
7
+ },
8
+ ];
9
+ },
10
+ };
@@ -1,5 +0,0 @@
1
- import { ServicerFactory } from "@reboot-dev/reboot";
2
- declare const _default: {
3
- servicers: () => ServicerFactory[];
4
- };
5
- export default _default;
package/presence/index.js DELETED
@@ -1,137 +0,0 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _Event_resolve, _Event_promise, _SubscriberServicer_disconnectEvents;
13
- import { until, } from "@reboot-dev/reboot";
14
- import { AlreadyExists, FailedPrecondition, NotFound, } from "@reboot-dev/reboot-api/errors_pb.js";
15
- import { MousePosition, } from "@reboot-dev/reboot-std-api/presence/mouse_tracker/v1/mouse_position_rbt.js";
16
- import { Subscriber, } from "@reboot-dev/reboot-std-api/presence/subscriber/v1/subscriber_rbt.js";
17
- import { Presence, } from "@reboot-dev/reboot-std-api/presence/v1/presence_rbt.js";
18
- class Event {
19
- constructor() {
20
- _Event_resolve.set(this, void 0);
21
- _Event_promise.set(this, void 0);
22
- let _resolve = () => { };
23
- __classPrivateFieldSet(this, _Event_promise, new Promise((resolve, _) => {
24
- _resolve = resolve;
25
- }), "f");
26
- __classPrivateFieldSet(this, _Event_resolve, _resolve, "f");
27
- }
28
- async wait() {
29
- return await __classPrivateFieldGet(this, _Event_promise, "f");
30
- }
31
- set() {
32
- __classPrivateFieldGet(this, _Event_resolve, "f").call(this);
33
- }
34
- }
35
- _Event_resolve = new WeakMap(), _Event_promise = new WeakMap();
36
- class PresenceServicer extends Presence.Servicer {
37
- async subscribe(context, state, request) {
38
- // If this subscriber has already been added, then nothing to do!
39
- if (state.subscriberIds.includes(request.subscriberId)) {
40
- return {};
41
- }
42
- const status = await Subscriber.ref(request.subscriberId).status(context);
43
- if (!status.present) {
44
- throw new Presence.SubscribeAborted(new FailedPrecondition());
45
- }
46
- state.subscriberIds = state.subscriberIds.concat(request.subscriberId);
47
- await this.ref().schedule().watch(context, {
48
- subscriberId: request.subscriberId,
49
- });
50
- return {};
51
- }
52
- async watch(context, request) {
53
- // We *atomically* wait until no longer present and remove.
54
- await until("No longer present", context, async () => {
55
- return this.state.always().write(context, async (state) => {
56
- const subscriber = Subscriber.ref(request.subscriberId);
57
- const { present } = await subscriber.status(context);
58
- if (!present) {
59
- state.subscriberIds = state.subscriberIds.filter((subscriberId) => subscriberId !== request.subscriberId);
60
- return true;
61
- }
62
- return false;
63
- });
64
- });
65
- return {};
66
- }
67
- async list(context, state, request) {
68
- return { subscriberIds: state.subscriberIds };
69
- }
70
- }
71
- class SubscriberServicer extends Subscriber.Servicer {
72
- constructor() {
73
- super();
74
- _SubscriberServicer_disconnectEvents.set(this, void 0);
75
- __classPrivateFieldSet(this, _SubscriberServicer_disconnectEvents, {}, "f");
76
- }
77
- async create(context, state, request) {
78
- return {};
79
- }
80
- async connect(context, state, request) {
81
- const key = `${context.stateId}/${request.nonce}`;
82
- if (key in __classPrivateFieldGet(this, _SubscriberServicer_disconnectEvents, "f")) {
83
- throw new Subscriber.ConnectAborted(new AlreadyExists());
84
- }
85
- const event = new Event();
86
- __classPrivateFieldGet(this, _SubscriberServicer_disconnectEvents, "f")[key] = event;
87
- await context.cancelled;
88
- event.set();
89
- delete __classPrivateFieldGet(this, _SubscriberServicer_disconnectEvents, "f")[key];
90
- return {};
91
- }
92
- async toggle(context, state, request) {
93
- const key = `${context.stateId}/${request.nonce}`;
94
- // There's a chance toggle will be called before `connect` because
95
- // `connect` never returns so we have to call them "concurrently".
96
- if (!(key in __classPrivateFieldGet(this, _SubscriberServicer_disconnectEvents, "f"))) {
97
- throw new Subscriber.ToggleAborted(new NotFound());
98
- }
99
- state.toggles += 1;
100
- await this.ref()
101
- .schedule()
102
- .waitForDisconnect(context, { nonce: request.nonce });
103
- return {};
104
- }
105
- async waitForDisconnect(context, request) {
106
- const key = `${context.stateId}/${request.nonce}`;
107
- if (key in __classPrivateFieldGet(this, _SubscriberServicer_disconnectEvents, "f")) {
108
- await __classPrivateFieldGet(this, _SubscriberServicer_disconnectEvents, "f")[key].wait();
109
- }
110
- await this.state.write("untoggle", context, async (state) => {
111
- state.toggles -= 1;
112
- });
113
- return {};
114
- }
115
- async status(context, state, request) {
116
- return { present: state.toggles > 0 };
117
- }
118
- }
119
- _SubscriberServicer_disconnectEvents = new WeakMap();
120
- class MousePositionServicer extends MousePosition.Servicer {
121
- async update(context, state, { left, top }) {
122
- // Trade off the guarantee of the updated position being persisted
123
- // to disk with better performance.
124
- context.sync = false;
125
- state.left = left;
126
- state.top = top;
127
- return {};
128
- }
129
- async position(context, { left, top }, request) {
130
- return { left, top };
131
- }
132
- }
133
- export default {
134
- servicers: () => {
135
- return [PresenceServicer, SubscriberServicer, MousePositionServicer];
136
- },
137
- };