Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32512049
D10953.1767115784.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
15 KB
Referenced Files
None
Subscribers
None
D10953.1767115784.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D10953: [lib][keyserver] Extract rawThreadInfo validators into their own file
Attached
Detach File
Event Timeline
Log In to Comment