apache-iggy 0.5.0-edge.1
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.
- package/LICENSE +201 -0
- package/README.md +81 -0
- package/dist/src/bdd/auth.d.ts +20 -0
- package/dist/src/bdd/auth.js +38 -0
- package/dist/src/bdd/message.d.ts +20 -0
- package/dist/src/bdd/message.js +70 -0
- package/dist/src/bdd/stream.d.ts +20 -0
- package/dist/src/bdd/stream.js +39 -0
- package/dist/src/bdd/topic.d.ts +20 -0
- package/dist/src/bdd/topic.js +36 -0
- package/dist/src/bdd/world.d.ts +30 -0
- package/dist/src/bdd/world.js +21 -0
- package/dist/src/client/client.connection.d.ts +40 -0
- package/dist/src/client/client.connection.js +171 -0
- package/dist/src/client/client.d.ts +38 -0
- package/dist/src/client/client.debug.d.ts +21 -0
- package/dist/src/client/client.debug.js +21 -0
- package/dist/src/client/client.js +97 -0
- package/dist/src/client/client.socket.d.ts +48 -0
- package/dist/src/client/client.socket.js +156 -0
- package/dist/src/client/client.type.d.ts +69 -0
- package/dist/src/client/client.type.js +20 -0
- package/dist/src/client/client.utils.d.ts +29 -0
- package/dist/src/client/client.utils.js +54 -0
- package/dist/src/client/index.d.ts +23 -0
- package/dist/src/client/index.js +23 -0
- package/dist/src/client.e2e.d.ts +20 -0
- package/dist/src/client.e2e.js +54 -0
- package/dist/src/debug-send.d.ts +20 -0
- package/dist/src/debug-send.js +117 -0
- package/dist/src/debug.d.ts +20 -0
- package/dist/src/debug.js +107 -0
- package/dist/src/e2e/tcp.client.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.client.e2e.js +45 -0
- package/dist/src/e2e/tcp.consumer-group.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.consumer-group.e2e.js +111 -0
- package/dist/src/e2e/tcp.consumer-stream.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.consumer-stream.e2e.js +92 -0
- package/dist/src/e2e/tcp.parallel.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.parallel.e2e.js +59 -0
- package/dist/src/e2e/tcp.send-message.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.send-message.e2e.js +118 -0
- package/dist/src/e2e/tcp.stream.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.stream.e2e.js +59 -0
- package/dist/src/e2e/tcp.system.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.system.e2e.js +46 -0
- package/dist/src/e2e/tcp.token.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.token.e2e.js +43 -0
- package/dist/src/e2e/tcp.topic.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.topic.e2e.js +83 -0
- package/dist/src/e2e/tcp.user.e2e.d.ts +20 -0
- package/dist/src/e2e/tcp.user.e2e.js +95 -0
- package/dist/src/e2e/test-client.utils.d.ts +21 -0
- package/dist/src/e2e/test-client.utils.js +28 -0
- package/dist/src/index.d.ts +22 -0
- package/dist/src/index.js +22 -0
- package/dist/src/stream/consumer-stream.d.ts +40 -0
- package/dist/src/stream/consumer-stream.js +79 -0
- package/dist/src/stream/index.d.ts +20 -0
- package/dist/src/stream/index.js +20 -0
- package/dist/src/tcp.e2e.d.ts +20 -0
- package/dist/src/tcp.e2e.js +106 -0
- package/dist/src/tcp.sm.utils.d.ts +97 -0
- package/dist/src/tcp.sm.utils.js +66 -0
- package/dist/src/tls.system.e2e.d.ts +20 -0
- package/dist/src/tls.system.e2e.js +49 -0
- package/dist/src/type.utils.d.ts +21 -0
- package/dist/src/type.utils.js +25 -0
- package/dist/src/wire/client/client.utils.d.ts +32 -0
- package/dist/src/wire/client/client.utils.js +48 -0
- package/dist/src/wire/client/get-client.command.d.ts +30 -0
- package/dist/src/wire/client/get-client.command.js +33 -0
- package/dist/src/wire/client/get-clients.command.d.ts +27 -0
- package/dist/src/wire/client/get-clients.command.js +38 -0
- package/dist/src/wire/client/get-me.command.d.ts +27 -0
- package/dist/src/wire/client/get-me.command.js +28 -0
- package/dist/src/wire/client/index.d.ts +22 -0
- package/dist/src/wire/client/index.js +22 -0
- package/dist/src/wire/command-set.d.ts +128 -0
- package/dist/src/wire/command-set.js +157 -0
- package/dist/src/wire/command.code.d.ts +68 -0
- package/dist/src/wire/command.code.js +72 -0
- package/dist/src/wire/command.utils.d.ts +26 -0
- package/dist/src/wire/command.utils.js +29 -0
- package/dist/src/wire/consumer-group/create-group.command.d.ts +34 -0
- package/dist/src/wire/consumer-group/create-group.command.js +44 -0
- package/dist/src/wire/consumer-group/create-group.command.test.d.ts +20 -0
- package/dist/src/wire/consumer-group/create-group.command.test.js +47 -0
- package/dist/src/wire/consumer-group/delete-group.command.d.ts +31 -0
- package/dist/src/wire/consumer-group/delete-group.command.js +31 -0
- package/dist/src/wire/consumer-group/get-group.command.d.ts +33 -0
- package/dist/src/wire/consumer-group/get-group.command.js +32 -0
- package/dist/src/wire/consumer-group/get-groups.command.d.ts +32 -0
- package/dist/src/wire/consumer-group/get-groups.command.js +36 -0
- package/dist/src/wire/consumer-group/group.command.test.d.ts +20 -0
- package/dist/src/wire/consumer-group/group.command.test.js +50 -0
- package/dist/src/wire/consumer-group/group.utils.d.ts +34 -0
- package/dist/src/wire/consumer-group/group.utils.js +53 -0
- package/dist/src/wire/consumer-group/index.d.ts +25 -0
- package/dist/src/wire/consumer-group/index.js +25 -0
- package/dist/src/wire/consumer-group/join-group.command.d.ts +31 -0
- package/dist/src/wire/consumer-group/join-group.command.js +31 -0
- package/dist/src/wire/consumer-group/leave-group.command.d.ts +31 -0
- package/dist/src/wire/consumer-group/leave-group.command.js +31 -0
- package/dist/src/wire/error.code.d.ts +20 -0
- package/dist/src/wire/error.code.js +202 -0
- package/dist/src/wire/error.utils.d.ts +20 -0
- package/dist/src/wire/error.utils.js +23 -0
- package/dist/src/wire/identifier.utils.d.ts +21 -0
- package/dist/src/wire/identifier.utils.js +49 -0
- package/dist/src/wire/identifier.utils.test.d.ts +20 -0
- package/dist/src/wire/identifier.utils.test.js +40 -0
- package/dist/src/wire/index.d.ts +32 -0
- package/dist/src/wire/index.js +31 -0
- package/dist/src/wire/message/flush-unsaved-buffers.command.d.ts +31 -0
- package/dist/src/wire/message/flush-unsaved-buffers.command.js +31 -0
- package/dist/src/wire/message/header.type.d.ts +101 -0
- package/dist/src/wire/message/header.type.js +55 -0
- package/dist/src/wire/message/header.utils.d.ts +67 -0
- package/dist/src/wire/message/header.utils.js +248 -0
- package/dist/src/wire/message/header.utils.test.d.ts +20 -0
- package/dist/src/wire/message/header.utils.test.js +39 -0
- package/dist/src/wire/message/iggy-header.utils.d.ts +32 -0
- package/dist/src/wire/message/iggy-header.utils.js +50 -0
- package/dist/src/wire/message/index.d.ts +25 -0
- package/dist/src/wire/message/index.js +25 -0
- package/dist/src/wire/message/message.utils.d.ts +35 -0
- package/dist/src/wire/message/message.utils.js +112 -0
- package/dist/src/wire/message/partitioning.utils.d.ts +51 -0
- package/dist/src/wire/message/partitioning.utils.js +77 -0
- package/dist/src/wire/message/poll-messages.command.d.ts +43 -0
- package/dist/src/wire/message/poll-messages.command.js +32 -0
- package/dist/src/wire/message/poll.utils.d.ts +93 -0
- package/dist/src/wire/message/poll.utils.js +135 -0
- package/dist/src/wire/message/send-messages.command.d.ts +34 -0
- package/dist/src/wire/message/send-messages.command.js +31 -0
- package/dist/src/wire/message/send-messages.command.test.d.ts +20 -0
- package/dist/src/wire/message/send-messages.command.test.js +88 -0
- package/dist/src/wire/number.utils.d.ts +32 -0
- package/dist/src/wire/number.utils.js +85 -0
- package/dist/src/wire/offset/delete-offset.command.d.ts +28 -0
- package/dist/src/wire/offset/delete-offset.command.js +31 -0
- package/dist/src/wire/offset/get-offset.command.d.ts +34 -0
- package/dist/src/wire/offset/get-offset.command.js +41 -0
- package/dist/src/wire/offset/index.d.ts +22 -0
- package/dist/src/wire/offset/index.js +22 -0
- package/dist/src/wire/offset/offset.utils.d.ts +54 -0
- package/dist/src/wire/offset/offset.utils.js +60 -0
- package/dist/src/wire/offset/store-offset.command.d.ts +34 -0
- package/dist/src/wire/offset/store-offset.command.js +29 -0
- package/dist/src/wire/partition/create-partition.command.d.ts +31 -0
- package/dist/src/wire/partition/create-partition.command.js +31 -0
- package/dist/src/wire/partition/delete-partition.command.d.ts +31 -0
- package/dist/src/wire/partition/delete-partition.command.js +31 -0
- package/dist/src/wire/partition/index.d.ts +21 -0
- package/dist/src/wire/partition/index.js +21 -0
- package/dist/src/wire/partition/partition.utils.d.ts +21 -0
- package/dist/src/wire/partition/partition.utils.js +33 -0
- package/dist/src/wire/partition/partition.utils.test.d.ts +20 -0
- package/dist/src/wire/partition/partition.utils.test.js +33 -0
- package/dist/src/wire/segment/delete-segments.command.d.ts +32 -0
- package/dist/src/wire/segment/delete-segments.command.js +31 -0
- package/dist/src/wire/segment/index.d.ts +20 -0
- package/dist/src/wire/segment/index.js +20 -0
- package/dist/src/wire/segment/segment.utils.d.ts +21 -0
- package/dist/src/wire/segment/segment.utils.js +35 -0
- package/dist/src/wire/serialize.utils.d.ts +22 -0
- package/dist/src/wire/serialize.utils.js +27 -0
- package/dist/src/wire/session/index.d.ts +23 -0
- package/dist/src/wire/session/index.js +22 -0
- package/dist/src/wire/session/login-with-token.command.d.ts +32 -0
- package/dist/src/wire/session/login-with-token.command.js +30 -0
- package/dist/src/wire/session/login-with-token.command.test.d.ts +20 -0
- package/dist/src/wire/session/login-with-token.command.test.js +38 -0
- package/dist/src/wire/session/login.command.d.ts +29 -0
- package/dist/src/wire/session/login.command.js +30 -0
- package/dist/src/wire/session/login.command.test.d.ts +20 -0
- package/dist/src/wire/session/login.command.test.js +52 -0
- package/dist/src/wire/session/login.utils.d.ts +30 -0
- package/dist/src/wire/session/login.utils.js +54 -0
- package/dist/src/wire/session/logout.command.d.ts +25 -0
- package/dist/src/wire/session/logout.command.js +30 -0
- package/dist/src/wire/stream/create-stream.command.d.ts +31 -0
- package/dist/src/wire/stream/create-stream.command.js +41 -0
- package/dist/src/wire/stream/create-stream.command.test.d.ts +20 -0
- package/dist/src/wire/stream/create-stream.command.test.js +45 -0
- package/dist/src/wire/stream/delete-stream.command.d.ts +29 -0
- package/dist/src/wire/stream/delete-stream.command.js +31 -0
- package/dist/src/wire/stream/get-stream.command.d.ts +31 -0
- package/dist/src/wire/stream/get-stream.command.js +33 -0
- package/dist/src/wire/stream/get-streams.command.d.ts +27 -0
- package/dist/src/wire/stream/get-streams.command.js +38 -0
- package/dist/src/wire/stream/index.d.ts +25 -0
- package/dist/src/wire/stream/index.js +25 -0
- package/dist/src/wire/stream/purge-stream.command.d.ts +29 -0
- package/dist/src/wire/stream/purge-stream.command.js +31 -0
- package/dist/src/wire/stream/stream.utils.d.ts +33 -0
- package/dist/src/wire/stream/stream.utils.js +35 -0
- package/dist/src/wire/stream/update-stream.command.d.ts +30 -0
- package/dist/src/wire/stream/update-stream.command.js +40 -0
- package/dist/src/wire/system/get-stats.command.d.ts +50 -0
- package/dist/src/wire/system/get-stats.command.js +83 -0
- package/dist/src/wire/system/index.d.ts +21 -0
- package/dist/src/wire/system/index.js +21 -0
- package/dist/src/wire/system/ping.command.d.ts +25 -0
- package/dist/src/wire/system/ping.command.js +30 -0
- package/dist/src/wire/token/create-token.command.d.ts +31 -0
- package/dist/src/wire/token/create-token.command.js +37 -0
- package/dist/src/wire/token/create-token.command.test.d.ts +20 -0
- package/dist/src/wire/token/create-token.command.test.js +45 -0
- package/dist/src/wire/token/delete-token.command.d.ts +28 -0
- package/dist/src/wire/token/delete-token.command.js +38 -0
- package/dist/src/wire/token/delete-token.command.test.d.ts +20 -0
- package/dist/src/wire/token/delete-token.command.test.js +42 -0
- package/dist/src/wire/token/get-tokens.command.d.ts +27 -0
- package/dist/src/wire/token/get-tokens.command.js +28 -0
- package/dist/src/wire/token/index.d.ts +22 -0
- package/dist/src/wire/token/index.js +22 -0
- package/dist/src/wire/token/token.utils.d.ts +38 -0
- package/dist/src/wire/token/token.utils.js +53 -0
- package/dist/src/wire/topic/create-topic.command.d.ts +38 -0
- package/dist/src/wire/topic/create-topic.command.js +53 -0
- package/dist/src/wire/topic/create-topic.command.test.d.ts +20 -0
- package/dist/src/wire/topic/create-topic.command.test.js +67 -0
- package/dist/src/wire/topic/delete-topic.command.d.ts +32 -0
- package/dist/src/wire/topic/delete-topic.command.js +36 -0
- package/dist/src/wire/topic/get-topic.command.d.ts +33 -0
- package/dist/src/wire/topic/get-topic.command.js +36 -0
- package/dist/src/wire/topic/get-topics.command.d.ts +31 -0
- package/dist/src/wire/topic/get-topics.command.js +33 -0
- package/dist/src/wire/topic/index.d.ts +25 -0
- package/dist/src/wire/topic/index.js +25 -0
- package/dist/src/wire/topic/purge-topic.command.d.ts +30 -0
- package/dist/src/wire/topic/purge-topic.command.js +34 -0
- package/dist/src/wire/topic/topic.utils.d.ts +71 -0
- package/dist/src/wire/topic/topic.utils.js +91 -0
- package/dist/src/wire/topic/update-topic.command.d.ts +36 -0
- package/dist/src/wire/topic/update-topic.command.js +50 -0
- package/dist/src/wire/user/change-password.command.d.ts +30 -0
- package/dist/src/wire/user/change-password.command.js +45 -0
- package/dist/src/wire/user/create-user.command.d.ts +34 -0
- package/dist/src/wire/user/create-user.command.js +48 -0
- package/dist/src/wire/user/create-user.command.test.d.ts +20 -0
- package/dist/src/wire/user/create-user.command.test.js +60 -0
- package/dist/src/wire/user/delete-user.command.d.ts +29 -0
- package/dist/src/wire/user/delete-user.command.js +31 -0
- package/dist/src/wire/user/get-user.command.d.ts +31 -0
- package/dist/src/wire/user/get-user.command.js +31 -0
- package/dist/src/wire/user/get-users.command.d.ts +27 -0
- package/dist/src/wire/user/get-users.command.js +28 -0
- package/dist/src/wire/user/index.d.ts +26 -0
- package/dist/src/wire/user/index.js +26 -0
- package/dist/src/wire/user/permissions.utils.d.ts +77 -0
- package/dist/src/wire/user/permissions.utils.js +161 -0
- package/dist/src/wire/user/permissions.utils.test.d.ts +20 -0
- package/dist/src/wire/user/permissions.utils.test.js +44 -0
- package/dist/src/wire/user/update-permissions.command.d.ts +31 -0
- package/dist/src/wire/user/update-permissions.command.js +39 -0
- package/dist/src/wire/user/update-user.command.d.ts +32 -0
- package/dist/src/wire/user/update-user.command.js +54 -0
- package/dist/src/wire/user/user.utils.d.ts +41 -0
- package/dist/src/wire/user/user.utils.js +74 -0
- package/dist/src/wire/uuid.utils.d.ts +22 -0
- package/dist/src/wire/uuid.utils.js +23 -0
- package/package.json +70 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
export type GlobalPermissions = {
|
|
20
|
+
ManageServers: boolean;
|
|
21
|
+
ReadServers: boolean;
|
|
22
|
+
ManageUsers: boolean;
|
|
23
|
+
ReadUsers: boolean;
|
|
24
|
+
ManageStreams: boolean;
|
|
25
|
+
ReadStreams: boolean;
|
|
26
|
+
ManageTopics: boolean;
|
|
27
|
+
ReadTopics: boolean;
|
|
28
|
+
PollMessages: boolean;
|
|
29
|
+
SendMessages: boolean;
|
|
30
|
+
};
|
|
31
|
+
type GlobalPermissionsDeserialized = {
|
|
32
|
+
bytesRead: number;
|
|
33
|
+
data: GlobalPermissions;
|
|
34
|
+
};
|
|
35
|
+
export type TopicPermissions = {
|
|
36
|
+
manage: boolean;
|
|
37
|
+
read: boolean;
|
|
38
|
+
pollMessages: boolean;
|
|
39
|
+
sendMessages: boolean;
|
|
40
|
+
};
|
|
41
|
+
export type TopicPerms = {
|
|
42
|
+
topicId: number;
|
|
43
|
+
permissions: TopicPermissions;
|
|
44
|
+
};
|
|
45
|
+
type TopicPermissionsDeserialized = {
|
|
46
|
+
bytesRead: number;
|
|
47
|
+
} & TopicPerms;
|
|
48
|
+
export type StreamPermissions = {
|
|
49
|
+
manageStream: boolean;
|
|
50
|
+
readStream: boolean;
|
|
51
|
+
manageTopics: boolean;
|
|
52
|
+
readTopics: boolean;
|
|
53
|
+
pollMessages: boolean;
|
|
54
|
+
sendMessages: boolean;
|
|
55
|
+
};
|
|
56
|
+
export type StreamPerms = {
|
|
57
|
+
streamId: number;
|
|
58
|
+
permissions: StreamPermissions;
|
|
59
|
+
topics: TopicPerms[];
|
|
60
|
+
};
|
|
61
|
+
type StreamPermissionsDeserialized = {
|
|
62
|
+
bytesRead: number;
|
|
63
|
+
} & StreamPerms;
|
|
64
|
+
export type UserPermissions = {
|
|
65
|
+
global: GlobalPermissions;
|
|
66
|
+
streams: StreamPerms[];
|
|
67
|
+
};
|
|
68
|
+
export declare const deserializeGlobalPermissions: (p: Buffer, pos?: number) => GlobalPermissionsDeserialized;
|
|
69
|
+
export declare const serializeGlobalPermission: (p: GlobalPermissions) => Buffer<ArrayBuffer>;
|
|
70
|
+
export declare const deserializeTopicPermissions: (p: Buffer, pos?: number) => TopicPermissionsDeserialized;
|
|
71
|
+
export declare const serializeTopicPermissions: (p: TopicPerms) => Buffer<ArrayBuffer>;
|
|
72
|
+
export declare const deserializeStreamPermissions: (p: Buffer, pos?: number) => StreamPermissionsDeserialized;
|
|
73
|
+
export declare const serializeStreamPermissions: (p: StreamPerms) => Buffer<ArrayBuffer>;
|
|
74
|
+
export declare const deserializePermissions: (p: Buffer, pos?: number) => UserPermissions;
|
|
75
|
+
export declare const serializePermissions: (p?: UserPermissions) => Buffer<ArrayBuffer>;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=permissions.utils.d.ts.map
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { uint8ToBuf, uint32ToBuf } from '../number.utils.js';
|
|
20
|
+
const toBool = (u) => u === 1;
|
|
21
|
+
const boolToByte = (b) => b ? 1 : 0;
|
|
22
|
+
export const deserializeGlobalPermissions = (p, pos = 0) => {
|
|
23
|
+
return {
|
|
24
|
+
bytesRead: 10,
|
|
25
|
+
data: {
|
|
26
|
+
ManageServers: toBool(p.readUInt8(pos)),
|
|
27
|
+
ReadServers: toBool(p.readUInt8(pos + 1)),
|
|
28
|
+
ManageUsers: toBool(p.readUInt8(pos + 2)),
|
|
29
|
+
ReadUsers: toBool(p.readUInt8(pos + 3)),
|
|
30
|
+
ManageStreams: toBool(p.readUInt8(pos + 4)),
|
|
31
|
+
ReadStreams: toBool(p.readUInt8(pos + 5)),
|
|
32
|
+
ManageTopics: toBool(p.readUInt8(pos + 6)),
|
|
33
|
+
ReadTopics: toBool(p.readUInt8(pos + 7)),
|
|
34
|
+
PollMessages: toBool(p.readUInt8(pos + 8)),
|
|
35
|
+
SendMessages: toBool(p.readUInt8(pos + 9)),
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export const serializeGlobalPermission = (p) => {
|
|
40
|
+
return Buffer.concat([
|
|
41
|
+
uint8ToBuf(boolToByte(p.ManageServers)),
|
|
42
|
+
uint8ToBuf(boolToByte(p.ReadServers)),
|
|
43
|
+
uint8ToBuf(boolToByte(p.ManageUsers)),
|
|
44
|
+
uint8ToBuf(boolToByte(p.ReadUsers)),
|
|
45
|
+
uint8ToBuf(boolToByte(p.ManageStreams)),
|
|
46
|
+
uint8ToBuf(boolToByte(p.ReadStreams)),
|
|
47
|
+
uint8ToBuf(boolToByte(p.ManageTopics)),
|
|
48
|
+
uint8ToBuf(boolToByte(p.ReadTopics)),
|
|
49
|
+
uint8ToBuf(boolToByte(p.PollMessages)),
|
|
50
|
+
uint8ToBuf(boolToByte(p.SendMessages)),
|
|
51
|
+
]);
|
|
52
|
+
};
|
|
53
|
+
export const deserializeTopicPermissions = (p, pos = 0) => {
|
|
54
|
+
const topicId = p.readUInt32LE(pos);
|
|
55
|
+
const permissions = {
|
|
56
|
+
manage: toBool(p.readUInt8(pos + 4)),
|
|
57
|
+
read: toBool(p.readUInt8(pos + 5)),
|
|
58
|
+
pollMessages: toBool(p.readUInt8(pos + 6)),
|
|
59
|
+
sendMessages: toBool(p.readUInt8(pos + 7)),
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
bytesRead: 8,
|
|
63
|
+
topicId,
|
|
64
|
+
permissions
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export const serializeTopicPermissions = (p) => {
|
|
68
|
+
return Buffer.concat([
|
|
69
|
+
uint32ToBuf(p.topicId),
|
|
70
|
+
uint8ToBuf(boolToByte(p.permissions.manage)),
|
|
71
|
+
uint8ToBuf(boolToByte(p.permissions.read)),
|
|
72
|
+
uint8ToBuf(boolToByte(p.permissions.pollMessages)),
|
|
73
|
+
uint8ToBuf(boolToByte(p.permissions.sendMessages)),
|
|
74
|
+
]);
|
|
75
|
+
};
|
|
76
|
+
export const deserializeStreamPermissions = (p, pos = 0) => {
|
|
77
|
+
const start = pos;
|
|
78
|
+
const streamId = p.readUInt32LE(pos);
|
|
79
|
+
const permissions = {
|
|
80
|
+
manageStream: toBool(p.readUInt8(pos + 4)),
|
|
81
|
+
readStream: toBool(p.readUInt8(pos + 5)),
|
|
82
|
+
manageTopics: toBool(p.readUInt8(pos + 6)),
|
|
83
|
+
readTopics: toBool(p.readUInt8(pos + 7)),
|
|
84
|
+
pollMessages: toBool(p.readUInt8(pos + 8)),
|
|
85
|
+
sendMessages: toBool(p.readUInt8(pos + 9)),
|
|
86
|
+
};
|
|
87
|
+
pos += 10;
|
|
88
|
+
const topics = [];
|
|
89
|
+
const hasTopics = toBool(p.readUInt8(pos));
|
|
90
|
+
if (hasTopics) {
|
|
91
|
+
let read = true;
|
|
92
|
+
pos += 1;
|
|
93
|
+
while (read) {
|
|
94
|
+
const { bytesRead, topicId, permissions } = deserializeTopicPermissions(p, pos);
|
|
95
|
+
pos += bytesRead;
|
|
96
|
+
topics.push({ topicId, permissions });
|
|
97
|
+
if (p.readUInt8(pos) === 0)
|
|
98
|
+
read = false; // break
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
bytesRead: pos - start,
|
|
103
|
+
streamId,
|
|
104
|
+
permissions,
|
|
105
|
+
topics
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
export const serializeStreamPermissions = (p) => {
|
|
109
|
+
const bStream = Buffer.concat([
|
|
110
|
+
uint32ToBuf(p.streamId),
|
|
111
|
+
uint8ToBuf(boolToByte(p.permissions.manageStream)),
|
|
112
|
+
uint8ToBuf(boolToByte(p.permissions.readStream)),
|
|
113
|
+
uint8ToBuf(boolToByte(p.permissions.manageTopics)),
|
|
114
|
+
uint8ToBuf(boolToByte(p.permissions.readTopics)),
|
|
115
|
+
uint8ToBuf(boolToByte(p.permissions.pollMessages)),
|
|
116
|
+
uint8ToBuf(boolToByte(p.permissions.sendMessages)),
|
|
117
|
+
]);
|
|
118
|
+
const hasTopic = p.topics.length > 0;
|
|
119
|
+
const bHasTopic = uint8ToBuf(boolToByte(hasTopic));
|
|
120
|
+
const bHead = Buffer.concat([bStream, bHasTopic]);
|
|
121
|
+
if (!hasTopic)
|
|
122
|
+
return bHead;
|
|
123
|
+
return p.topics.reduce((ac, c) => Buffer.concat([
|
|
124
|
+
ac, serializeTopicPermissions(c)
|
|
125
|
+
]), bHead);
|
|
126
|
+
};
|
|
127
|
+
export const deserializePermissions = (p, pos = 0) => {
|
|
128
|
+
const { bytesRead, data } = deserializeGlobalPermissions(p, pos);
|
|
129
|
+
pos += bytesRead;
|
|
130
|
+
const streams = [];
|
|
131
|
+
const hasStream = toBool(p.readUInt8(pos));
|
|
132
|
+
if (hasStream) {
|
|
133
|
+
let readStream = true;
|
|
134
|
+
pos += 1;
|
|
135
|
+
while (readStream) {
|
|
136
|
+
const { bytesRead, streamId, permissions, topics } = deserializeStreamPermissions(p, pos);
|
|
137
|
+
streams.push({ streamId, permissions, topics });
|
|
138
|
+
pos += bytesRead;
|
|
139
|
+
if (p.readUInt8(pos) === 0)
|
|
140
|
+
readStream = false; // break
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
global: data,
|
|
145
|
+
streams
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
export const serializePermissions = (p) => {
|
|
149
|
+
if (!p)
|
|
150
|
+
return uint8ToBuf(0);
|
|
151
|
+
const bGlobal = serializeGlobalPermission(p.global);
|
|
152
|
+
const hasStream = p.streams.length > 0;
|
|
153
|
+
const bHasStream = uint8ToBuf(boolToByte(hasStream));
|
|
154
|
+
const bHead = Buffer.concat([bGlobal, bHasStream]);
|
|
155
|
+
if (!hasStream)
|
|
156
|
+
return bHead;
|
|
157
|
+
return p.streams.reduce((ac, c) => Buffer.concat([
|
|
158
|
+
ac, serializeStreamPermissions(c)
|
|
159
|
+
]), bHead);
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=permissions.utils.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=permissions.utils.test.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { describe, it } from 'node:test';
|
|
20
|
+
import assert from 'node:assert/strict';
|
|
21
|
+
import { serializePermissions, deserializePermissions } from './permissions.utils.js';
|
|
22
|
+
describe('Permissions', () => {
|
|
23
|
+
const permissions = {
|
|
24
|
+
global: {
|
|
25
|
+
ManageServers: true,
|
|
26
|
+
ReadServers: true,
|
|
27
|
+
ManageUsers: true,
|
|
28
|
+
ReadUsers: true,
|
|
29
|
+
ManageStreams: true,
|
|
30
|
+
ReadStreams: true,
|
|
31
|
+
ManageTopics: true,
|
|
32
|
+
ReadTopics: true,
|
|
33
|
+
PollMessages: true,
|
|
34
|
+
SendMessages: true
|
|
35
|
+
},
|
|
36
|
+
streams: []
|
|
37
|
+
};
|
|
38
|
+
it('serialize/deserialize', () => {
|
|
39
|
+
const s = serializePermissions(permissions);
|
|
40
|
+
const d = deserializePermissions(s);
|
|
41
|
+
assert.deepEqual(permissions, d);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=permissions.utils.test.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { type Id } from '../identifier.utils.js';
|
|
20
|
+
import { type UserPermissions } from './permissions.utils.js';
|
|
21
|
+
export type UpdatePermissions = {
|
|
22
|
+
userId: Id;
|
|
23
|
+
permissions: UserPermissions;
|
|
24
|
+
};
|
|
25
|
+
export declare const UPDATE_PERMISSIONS: {
|
|
26
|
+
code: number;
|
|
27
|
+
serialize: ({ userId, permissions }: UpdatePermissions) => Buffer<ArrayBuffer>;
|
|
28
|
+
deserialize: (r: import("../../index.js").CommandResponse) => boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare const updatePermissions: (getClient: import("../../index.js").ClientProvider) => (arg: UpdatePermissions) => Promise<boolean>;
|
|
31
|
+
//# sourceMappingURL=update-permissions.command.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { wrapCommand } from '../command.utils.js';
|
|
20
|
+
import { COMMAND_CODE } from '../command.code.js';
|
|
21
|
+
import { deserializeVoidResponse } from '../../client/client.utils.js';
|
|
22
|
+
import { uint32ToBuf, boolToBuf } from '../number.utils.js';
|
|
23
|
+
import { serializeIdentifier } from '../identifier.utils.js';
|
|
24
|
+
import { serializePermissions } from './permissions.utils.js';
|
|
25
|
+
export const UPDATE_PERMISSIONS = {
|
|
26
|
+
code: COMMAND_CODE.UpdatePermissions,
|
|
27
|
+
serialize: ({ userId, permissions }) => {
|
|
28
|
+
const bPermissions = serializePermissions(permissions);
|
|
29
|
+
return Buffer.concat([
|
|
30
|
+
serializeIdentifier(userId),
|
|
31
|
+
boolToBuf(!!permissions),
|
|
32
|
+
uint32ToBuf(bPermissions.length),
|
|
33
|
+
bPermissions
|
|
34
|
+
]);
|
|
35
|
+
},
|
|
36
|
+
deserialize: deserializeVoidResponse
|
|
37
|
+
};
|
|
38
|
+
export const updatePermissions = wrapCommand(UPDATE_PERMISSIONS);
|
|
39
|
+
//# sourceMappingURL=update-permissions.command.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import type { UserStatus } from './user.utils.js';
|
|
20
|
+
import { type Id } from '../identifier.utils.js';
|
|
21
|
+
export type UpdateUser = {
|
|
22
|
+
userId: Id;
|
|
23
|
+
username?: string;
|
|
24
|
+
status?: UserStatus;
|
|
25
|
+
};
|
|
26
|
+
export declare const UPDATE_USER: {
|
|
27
|
+
code: number;
|
|
28
|
+
serialize: ({ userId, username, status }: UpdateUser) => Buffer<ArrayBuffer>;
|
|
29
|
+
deserialize: (r: import("../../index.js").CommandResponse) => boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare const updateUser: (getClient: import("../../index.js").ClientProvider) => (arg: UpdateUser) => Promise<boolean>;
|
|
32
|
+
//# sourceMappingURL=update-user.command.d.ts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { wrapCommand } from '../command.utils.js';
|
|
20
|
+
import { COMMAND_CODE } from '../command.code.js';
|
|
21
|
+
import { deserializeVoidResponse } from '../../client/client.utils.js';
|
|
22
|
+
import { serializeIdentifier } from '../identifier.utils.js';
|
|
23
|
+
import { uint8ToBuf } from '../number.utils.js';
|
|
24
|
+
export const UPDATE_USER = {
|
|
25
|
+
code: COMMAND_CODE.UpdateUser,
|
|
26
|
+
serialize: ({ userId, username, status }) => {
|
|
27
|
+
const bId = serializeIdentifier(userId);
|
|
28
|
+
let bUsername, bStatus;
|
|
29
|
+
if (username) {
|
|
30
|
+
const bn = Buffer.from(username);
|
|
31
|
+
if (bn.length < 1 || bn.length > 255)
|
|
32
|
+
throw new Error('User username should be between 1 and 255 bytes');
|
|
33
|
+
bUsername = Buffer.concat([
|
|
34
|
+
uint8ToBuf(1),
|
|
35
|
+
uint8ToBuf(bn.length),
|
|
36
|
+
bn
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
else
|
|
40
|
+
bUsername = uint8ToBuf(0);
|
|
41
|
+
if (status)
|
|
42
|
+
bStatus = Buffer.concat([uint8ToBuf(1), uint8ToBuf(status)]);
|
|
43
|
+
else
|
|
44
|
+
bStatus = uint8ToBuf(0);
|
|
45
|
+
return Buffer.concat([
|
|
46
|
+
bId,
|
|
47
|
+
bUsername,
|
|
48
|
+
bStatus,
|
|
49
|
+
]);
|
|
50
|
+
},
|
|
51
|
+
deserialize: deserializeVoidResponse
|
|
52
|
+
};
|
|
53
|
+
export const updateUser = wrapCommand(UPDATE_USER);
|
|
54
|
+
//# sourceMappingURL=update-user.command.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { type UserPermissions } from './permissions.utils.js';
|
|
20
|
+
export type BaseUser = {
|
|
21
|
+
id: number;
|
|
22
|
+
createdAt: Date;
|
|
23
|
+
status: string;
|
|
24
|
+
userName: string;
|
|
25
|
+
};
|
|
26
|
+
type BaseUserDeserialized = {
|
|
27
|
+
bytesRead: number;
|
|
28
|
+
data: BaseUser;
|
|
29
|
+
};
|
|
30
|
+
export type User = BaseUser & {
|
|
31
|
+
permissions: UserPermissions | null;
|
|
32
|
+
};
|
|
33
|
+
export declare enum UserStatus {
|
|
34
|
+
Active = 1,
|
|
35
|
+
Inactive = 2
|
|
36
|
+
}
|
|
37
|
+
export declare const deserializeBaseUser: (p: Buffer, pos?: number) => BaseUserDeserialized;
|
|
38
|
+
export declare const deserializeUser: (p: Buffer, pos?: number) => User;
|
|
39
|
+
export declare const deserializeUsers: (p: Buffer, pos?: number) => BaseUser[];
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=user.utils.d.ts.map
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { toDate } from '../serialize.utils.js';
|
|
20
|
+
import { deserializePermissions } from './permissions.utils.js';
|
|
21
|
+
export var UserStatus;
|
|
22
|
+
(function (UserStatus) {
|
|
23
|
+
UserStatus[UserStatus["Active"] = 1] = "Active";
|
|
24
|
+
UserStatus[UserStatus["Inactive"] = 2] = "Inactive";
|
|
25
|
+
})(UserStatus || (UserStatus = {}));
|
|
26
|
+
;
|
|
27
|
+
const statusString = (t) => {
|
|
28
|
+
switch (t.toString()) {
|
|
29
|
+
case '1': return 'Active';
|
|
30
|
+
case '2': return 'Inactive';
|
|
31
|
+
default: return `unknown_status_${t}`;
|
|
32
|
+
// default: throw new Error(`unknown_status_${t}`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export const deserializeBaseUser = (p, pos = 0) => {
|
|
36
|
+
const id = p.readUInt32LE(pos);
|
|
37
|
+
const createdAt = toDate(p.readBigUInt64LE(pos + 4));
|
|
38
|
+
const status = statusString(p.readUInt8(pos + 12));
|
|
39
|
+
const userNameLength = p.readUInt8(pos + 13);
|
|
40
|
+
const userName = p.subarray(pos + 14, pos + 14 + userNameLength).toString();
|
|
41
|
+
return {
|
|
42
|
+
bytesRead: 14 + userNameLength,
|
|
43
|
+
data: {
|
|
44
|
+
id,
|
|
45
|
+
createdAt,
|
|
46
|
+
status,
|
|
47
|
+
userName,
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export const deserializeUser = (p, pos = 0) => {
|
|
52
|
+
const { bytesRead, data } = deserializeBaseUser(p, pos);
|
|
53
|
+
pos += bytesRead;
|
|
54
|
+
const hasPerm = 1 === p.readUInt8(pos);
|
|
55
|
+
let permissions = null;
|
|
56
|
+
if (hasPerm) {
|
|
57
|
+
pos += 1;
|
|
58
|
+
const permLength = p.readUInt32LE(pos);
|
|
59
|
+
const permBuffer = p.subarray(pos + 4, pos + 4 + permLength);
|
|
60
|
+
permissions = deserializePermissions(permBuffer, 0);
|
|
61
|
+
}
|
|
62
|
+
return { ...data, permissions };
|
|
63
|
+
};
|
|
64
|
+
export const deserializeUsers = (p, pos = 0) => {
|
|
65
|
+
const users = [];
|
|
66
|
+
const end = p.length;
|
|
67
|
+
while (pos < end) {
|
|
68
|
+
const { bytesRead, data } = deserializeBaseUser(p, pos);
|
|
69
|
+
users.push(data);
|
|
70
|
+
pos += bytesRead;
|
|
71
|
+
}
|
|
72
|
+
return users;
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=user.utils.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { UUID } from "uuidv7";
|
|
20
|
+
export declare const parse: (uid: string) => UUID;
|
|
21
|
+
export declare const v7: () => string;
|
|
22
|
+
//# sourceMappingURL=uuid.utils.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { uuidv7, UUID } from "uuidv7";
|
|
20
|
+
export const parse = (uid) => UUID.parse(uid);
|
|
21
|
+
// https://github.com/LiosK/uuidv7
|
|
22
|
+
export const v7 = () => uuidv7();
|
|
23
|
+
//# sourceMappingURL=uuid.utils.js.map
|