Page MenuHomePhorge

D10953.1767115784.diff
No OneTemporary

Size
15 KB
Referenced Files
None
Subscribers
None

D10953.1767115784.diff

diff --git a/keyserver/src/responders/redux-state-responders.js b/keyserver/src/responders/redux-state-responders.js
--- a/keyserver/src/responders/redux-state-responders.js
+++ b/keyserver/src/responders/redux-state-responders.js
@@ -4,7 +4,7 @@
import t, { type TInterface } from 'tcomb';
import { baseLegalPolicies } from 'lib/facts/policies.js';
-import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-raw-thread-info-validators.js';
import { daysToEntriesFromEntryInfos } from 'lib/reducers/entry-reducer.js';
import { freshMessageStore } from 'lib/reducers/message-reducer.js';
import { mostRecentlyReadThread } from 'lib/selectors/thread-selectors.js';
diff --git a/keyserver/src/responders/thread-responders.js b/keyserver/src/responders/thread-responders.js
--- a/keyserver/src/responders/thread-responders.js
+++ b/keyserver/src/responders/thread-responders.js
@@ -3,7 +3,7 @@
import t from 'tcomb';
import type { TInterface, TUnion } from 'tcomb';
-import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-raw-thread-info-validators.js';
import { mediaValidator } from 'lib/types/media-types.js';
import {
rawMessageInfoValidator,
diff --git a/keyserver/src/responders/user-responders.js b/keyserver/src/responders/user-responders.js
--- a/keyserver/src/responders/user-responders.js
+++ b/keyserver/src/responders/user-responders.js
@@ -12,7 +12,7 @@
policies,
policyTypeValidator,
} from 'lib/facts/policies.js';
-import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-raw-thread-info-validators.js';
import { hasMinCodeVersion } from 'lib/shared/version-utils.js';
import type {
KeyserverAuthRequest,
diff --git a/keyserver/src/shared/state-sync/threads-state-sync-spec.js b/keyserver/src/shared/state-sync/threads-state-sync-spec.js
--- a/keyserver/src/shared/state-sync/threads-state-sync-spec.js
+++ b/keyserver/src/shared/state-sync/threads-state-sync-spec.js
@@ -1,6 +1,6 @@
// @flow
-import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from 'lib/permissions/minimally-encoded-raw-thread-info-validators.js';
import { threadsStateSyncSpec as libSpec } from 'lib/shared/state-sync/threads-state-sync-spec.js';
import type { RawThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import type { ClientThreadInconsistencyReportCreationRequest } from 'lib/types/report-types.js';
diff --git a/lib/permissions/minimally-encoded-thread-permissions-validators.js b/lib/permissions/minimally-encoded-raw-thread-info-validators.js
copy from lib/permissions/minimally-encoded-thread-permissions-validators.js
copy to lib/permissions/minimally-encoded-raw-thread-info-validators.js
--- a/lib/permissions/minimally-encoded-thread-permissions-validators.js
+++ b/lib/permissions/minimally-encoded-raw-thread-info-validators.js
@@ -7,33 +7,21 @@
tHexEncodedRolePermission,
} from './minimally-encoded-thread-permissions.js';
import { specialRoleValidator } from './special-roles.js';
-import { clientAvatarValidator } from '../types/avatar-types.js';
import type {
MemberInfo,
ThreadCurrentUserInfo,
RawThreadInfo,
- RelativeMemberInfo,
RoleInfo,
- ThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
-import { threadTypeValidator } from '../types/thread-types-enum.js';
import {
+ type LegacyRawThreadInfo,
legacyMemberInfoValidator,
legacyRawThreadInfoValidator,
legacyRoleInfoValidator,
legacyThreadCurrentUserInfoValidator,
} from '../types/thread-types.js';
-import type { LegacyRawThreadInfo } from '../types/thread-types.js';
-import { threadEntityValidator } from '../utils/entity-text.js';
import { tBool, tID, tShape } from '../utils/validation-utils.js';
-const roleInfoValidator: TInterface<RoleInfo> = tShape<RoleInfo>({
- ...legacyRoleInfoValidator.meta.props,
- minimallyEncoded: tBool(true),
- permissions: t.list(tHexEncodedRolePermission),
- specialRole: t.maybe(specialRoleValidator),
-});
-
const threadCurrentUserInfoValidator: TInterface<ThreadCurrentUserInfo> =
tShape<ThreadCurrentUserInfo>({
...legacyThreadCurrentUserInfoValidator.meta.props,
@@ -41,59 +29,36 @@
permissions: tHexEncodedPermissionsBitmask,
});
-const MemberInfoValidator: TInterface<MemberInfo> = tShape<MemberInfo>({
- ...legacyMemberInfoValidator.meta.props,
+const roleInfoValidator: TInterface<RoleInfo> = tShape<RoleInfo>({
+ ...legacyRoleInfoValidator.meta.props,
minimallyEncoded: tBool(true),
- permissions: tHexEncodedPermissionsBitmask,
+ permissions: t.list(tHexEncodedRolePermission),
+ specialRole: t.maybe(specialRoleValidator),
});
-const relativeMemberInfoValidator: TInterface<RelativeMemberInfo> =
- tShape<RelativeMemberInfo>({
- ...MemberInfoValidator.meta.props,
- username: t.maybe(t.String),
- isViewer: t.Boolean,
- });
-
-const threadInfoValidator: TInterface<ThreadInfo> = tShape<ThreadInfo>({
+const memberInfoValidator: TInterface<MemberInfo> = tShape<MemberInfo>({
+ ...legacyMemberInfoValidator.meta.props,
minimallyEncoded: tBool(true),
- id: tID,
- type: threadTypeValidator,
- name: t.maybe(t.String),
- uiName: t.union([t.String, threadEntityValidator]),
- avatar: t.maybe(clientAvatarValidator),
- description: t.maybe(t.String),
- color: t.String,
- creationTime: t.Number,
- parentThreadID: t.maybe(tID),
- containingThreadID: t.maybe(tID),
- community: t.maybe(tID),
- members: t.list(relativeMemberInfoValidator),
- roles: t.dict(tID, roleInfoValidator),
- currentUser: threadCurrentUserInfoValidator,
- sourceMessageID: t.maybe(tID),
- repliesCount: t.Number,
- pinnedCount: t.maybe(t.Number),
+ permissions: tHexEncodedPermissionsBitmask,
});
const rawThreadInfoValidator: TInterface<RawThreadInfo> = tShape<RawThreadInfo>(
{
...legacyRawThreadInfoValidator.meta.props,
minimallyEncoded: tBool(true),
- members: t.list(MemberInfoValidator),
+ members: t.list(memberInfoValidator),
roles: t.dict(tID, roleInfoValidator),
currentUser: threadCurrentUserInfoValidator,
},
);
-export const mixedRawThreadInfoValidator: TUnion<
- LegacyRawThreadInfo | RawThreadInfo,
-> = t.union([legacyRawThreadInfoValidator, rawThreadInfoValidator]);
+const mixedRawThreadInfoValidator: TUnion<LegacyRawThreadInfo | RawThreadInfo> =
+ t.union([legacyRawThreadInfoValidator, rawThreadInfoValidator]);
export {
+ memberInfoValidator,
roleInfoValidator,
threadCurrentUserInfoValidator,
- MemberInfoValidator,
- relativeMemberInfoValidator,
- threadInfoValidator,
rawThreadInfoValidator,
+ mixedRawThreadInfoValidator,
};
diff --git a/lib/permissions/minimally-encoded-thread-permissions-validators.js b/lib/permissions/minimally-encoded-thread-permissions-validators.js
--- a/lib/permissions/minimally-encoded-thread-permissions-validators.js
+++ b/lib/permissions/minimally-encoded-thread-permissions-validators.js
@@ -1,55 +1,24 @@
// @flow
-import t, { type TInterface, type TUnion } from 'tcomb';
+import t, { type TInterface } from 'tcomb';
import {
- tHexEncodedPermissionsBitmask,
- tHexEncodedRolePermission,
-} from './minimally-encoded-thread-permissions.js';
-import { specialRoleValidator } from './special-roles.js';
+ roleInfoValidator,
+ threadCurrentUserInfoValidator,
+ memberInfoValidator,
+} from './minimally-encoded-raw-thread-info-validators.js';
import { clientAvatarValidator } from '../types/avatar-types.js';
import type {
- MemberInfo,
- ThreadCurrentUserInfo,
- RawThreadInfo,
RelativeMemberInfo,
- RoleInfo,
ThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
import { threadTypeValidator } from '../types/thread-types-enum.js';
-import {
- legacyMemberInfoValidator,
- legacyRawThreadInfoValidator,
- legacyRoleInfoValidator,
- legacyThreadCurrentUserInfoValidator,
-} from '../types/thread-types.js';
-import type { LegacyRawThreadInfo } from '../types/thread-types.js';
import { threadEntityValidator } from '../utils/entity-text.js';
import { tBool, tID, tShape } from '../utils/validation-utils.js';
-const roleInfoValidator: TInterface<RoleInfo> = tShape<RoleInfo>({
- ...legacyRoleInfoValidator.meta.props,
- minimallyEncoded: tBool(true),
- permissions: t.list(tHexEncodedRolePermission),
- specialRole: t.maybe(specialRoleValidator),
-});
-
-const threadCurrentUserInfoValidator: TInterface<ThreadCurrentUserInfo> =
- tShape<ThreadCurrentUserInfo>({
- ...legacyThreadCurrentUserInfoValidator.meta.props,
- minimallyEncoded: tBool(true),
- permissions: tHexEncodedPermissionsBitmask,
- });
-
-const MemberInfoValidator: TInterface<MemberInfo> = tShape<MemberInfo>({
- ...legacyMemberInfoValidator.meta.props,
- minimallyEncoded: tBool(true),
- permissions: tHexEncodedPermissionsBitmask,
-});
-
const relativeMemberInfoValidator: TInterface<RelativeMemberInfo> =
tShape<RelativeMemberInfo>({
- ...MemberInfoValidator.meta.props,
+ ...memberInfoValidator.meta.props,
username: t.maybe(t.String),
isViewer: t.Boolean,
});
@@ -75,25 +44,4 @@
pinnedCount: t.maybe(t.Number),
});
-const rawThreadInfoValidator: TInterface<RawThreadInfo> = tShape<RawThreadInfo>(
- {
- ...legacyRawThreadInfoValidator.meta.props,
- minimallyEncoded: tBool(true),
- members: t.list(MemberInfoValidator),
- roles: t.dict(tID, roleInfoValidator),
- currentUser: threadCurrentUserInfoValidator,
- },
-);
-
-export const mixedRawThreadInfoValidator: TUnion<
- LegacyRawThreadInfo | RawThreadInfo,
-> = t.union([legacyRawThreadInfoValidator, rawThreadInfoValidator]);
-
-export {
- roleInfoValidator,
- threadCurrentUserInfoValidator,
- MemberInfoValidator,
- relativeMemberInfoValidator,
- threadInfoValidator,
- rawThreadInfoValidator,
-};
+export { relativeMemberInfoValidator, threadInfoValidator };
diff --git a/lib/permissions/minimally-encoded-thread-permissions.test.js b/lib/permissions/minimally-encoded-thread-permissions.test.js
--- a/lib/permissions/minimally-encoded-thread-permissions.test.js
+++ b/lib/permissions/minimally-encoded-thread-permissions.test.js
@@ -1,16 +1,16 @@
// @flow
+import {
+ memberInfoValidator,
+ rawThreadInfoValidator,
+ roleInfoValidator,
+ threadCurrentUserInfoValidator,
+} from './minimally-encoded-raw-thread-info-validators.js';
import {
exampleMinimallyEncodedRawThreadInfoA,
exampleRawThreadInfoA,
expectedDecodedExampleRawThreadInfoA,
} from './minimally-encoded-thread-permissions-test-data.js';
-import {
- MemberInfoValidator,
- rawThreadInfoValidator,
- roleInfoValidator,
- threadCurrentUserInfoValidator,
-} from './minimally-encoded-thread-permissions-validators.js';
import {
decodeRolePermissionBitmask,
decodeThreadRolePermissionsBitmaskArray,
@@ -446,7 +446,7 @@
describe('minimallyEncodedMemberInfoValidator', () => {
it('should validate correctly formed MinimallyEncodedMemberInfo', () => {
expect(
- MemberInfoValidator.is({
+ memberInfoValidator.is({
minimallyEncoded: true,
id: 'memberID',
permissions: 'ABCDEF',
@@ -455,7 +455,7 @@
).toBe(true);
expect(
- MemberInfoValidator.is({
+ memberInfoValidator.is({
minimallyEncoded: true,
id: 'memberID',
permissions: '01b',
@@ -466,7 +466,7 @@
it('should NOT validate malformed MinimallyEncodedMemberInfo', () => {
expect(
- MemberInfoValidator.is({
+ memberInfoValidator.is({
minimallyEncoded: true,
id: 'memberID',
permissions: 'INVALID',
@@ -475,7 +475,7 @@
).toBe(false);
expect(
- MemberInfoValidator.is({
+ memberInfoValidator.is({
minimallyEncoded: true,
id: 'memberID',
permissions: 100,
diff --git a/lib/shared/updates/join-thread-spec.js b/lib/shared/updates/join-thread-spec.js
--- a/lib/shared/updates/join-thread-spec.js
+++ b/lib/shared/updates/join-thread-spec.js
@@ -5,7 +5,7 @@
import t from 'tcomb';
import type { UpdateInfoFromRawInfoParams, UpdateSpec } from './update-spec.js';
-import { mixedRawThreadInfoValidator } from '../../permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from '../../permissions/minimally-encoded-raw-thread-info-validators.js';
import {
type RawEntryInfo,
rawEntryInfoValidator,
diff --git a/lib/shared/updates/update-thread-spec.js b/lib/shared/updates/update-thread-spec.js
--- a/lib/shared/updates/update-thread-spec.js
+++ b/lib/shared/updates/update-thread-spec.js
@@ -5,7 +5,7 @@
import t from 'tcomb';
import type { UpdateInfoFromRawInfoParams, UpdateSpec } from './update-spec.js';
-import { mixedRawThreadInfoValidator } from '../../permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from '../../permissions/minimally-encoded-raw-thread-info-validators.js';
import type { RawThreadInfos } from '../../types/thread-types.js';
import { updateTypes } from '../../types/update-types-enum.js';
import type {
diff --git a/lib/types/request-types.js b/lib/types/request-types.js
--- a/lib/types/request-types.js
+++ b/lib/types/request-types.js
@@ -26,7 +26,7 @@
type AccountUserInfo,
accountUserInfoValidator,
} from './user-types.js';
-import { mixedRawThreadInfoValidator } from '../permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from '../permissions/minimally-encoded-raw-thread-info-validators.js';
import { tNumber, tShape, tID } from '../utils/validation-utils.js';
// "Server requests" are requests for information that the server delivers to
diff --git a/lib/types/socket-types.js b/lib/types/socket-types.js
--- a/lib/types/socket-types.js
+++ b/lib/types/socket-types.js
@@ -50,7 +50,7 @@
type LoggedOutUserInfo,
loggedOutUserInfoValidator,
} from './user-types.js';
-import { mixedRawThreadInfoValidator } from '../permissions/minimally-encoded-thread-permissions-validators.js';
+import { mixedRawThreadInfoValidator } from '../permissions/minimally-encoded-raw-thread-info-validators.js';
import { tShape, tNumber, tID } from '../utils/validation-utils.js';
// The types of messages that the client sends across the socket
diff --git a/lib/utils/thread-ops-utils.js b/lib/utils/thread-ops-utils.js
--- a/lib/utils/thread-ops-utils.js
+++ b/lib/utils/thread-ops-utils.js
@@ -3,10 +3,10 @@
import invariant from 'invariant';
import {
- MemberInfoValidator,
+ memberInfoValidator,
roleInfoValidator,
threadCurrentUserInfoValidator,
-} from '../permissions/minimally-encoded-thread-permissions-validators.js';
+} from '../permissions/minimally-encoded-raw-thread-info-validators.js';
import type {
MemberInfo,
RawThreadInfo,
@@ -49,7 +49,7 @@
const minimallyEncodedMembers: $ReadOnlyArray<MemberInfo> = rawMembers.map(
rawMember => {
invariant(
- MemberInfoValidator.is(rawMember) ||
+ memberInfoValidator.is(rawMember) ||
legacyMemberInfoValidator.is(rawMember),
'rawMember must be valid [MinimallyEncoded/Legacy]MemberInfo',
);

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 30, 5:29 PM (20 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5868310
Default Alt Text
D10953.1767115784.diff (15 KB)

Event Timeline