<commit_before>/* @flow */
import type { Store } from './store';
import type { Action, Dispatch } from './actions';
import type { State, GetState } from './reducers';

export type UserType = {
    uid: string,
    displayName: string,
    email: string,
    photoURL: string,
};

export type UserMapType = {[uid: string]: UserType};

export type ItemType = {
    code: string,
    name: string,
    note?: string,
    crowdin?: string,
};

export type NodeType = {
    slug: string;
    title: string;
};

export type CrowdinNodeType = NodeType & {
    data: number[];
};

export type VideoNodeType = NodeType & {
    subdub: boolean[];
    duration?: number;
};

export type TopicNodeType = NodeType & {
    meta: number[];
    children: Array<Array<string>>,
    topics?: ?{[slug: string]: TopicNodeType}
};

export type NodeMapType = {[slug: string]: NodeType};

export type NodesType = {
    exercises: {[slug: string]: CrowdinNodeType},
    articles: {[slug: string]: CrowdinNodeType},
    scratchpads: {[slug: string]: CrowdinNodeType},
    videos: {[slug: string]: VideoNodeType},
    topics: {[slug: string]: TopicNodeType},
};

export type WorkflowType = {
    uid?: string,
    status?: string,
};

export type WorkflowMapType = {[slug: string]: WorkflowType};

export type HistoryRecordType = {
    time: number;
    uid: ?string;
    status: ?string;
};

export type HistoryType = {
    slug: string;
    timeline: ?{[key: string]: HistoryRecordType};
};

export type DurationsType = {[ytid: string]: number};

export type ActionType = (dispatch: Dispatch, getState: GetState) => void;

export type RouteParamsType = {
    lang: ?string,
    kind: ?string,
    topic: ?string,
};

// re-export types for conveniance
export type {
    Action,
    Dispatch,
    Store,
    State,
    GetState,
};
<commit_msg>Fixed structure of User flow type.<commit_after>/* @flow */
import type { Store } from './store';
import type { Action, Dispatch } from './actions';
import type { State, GetState } from './reducers';

export type BaseUserType = {
    displayName: string,
    email: string,
    photoURL: string,
};

export type UserType = BaseUserType & {
    uid: string,
};

export type UserMapType = {[uid: string]: BaseUserType};

export type ItemType = {
    code: string,
    name: string,
    note?: string,
    crowdin?: string,
};

export type NodeType = {
    slug: string;
    title: string;
};

export type CrowdinNodeType = NodeType & {
    data: number[];
};

export type VideoNodeType = NodeType & {
    subdub: boolean[];
    duration?: number;
};

export type TopicNodeType = NodeType & {
    meta: number[];
    children: Array<Array<string>>,
    topics?: ?{[slug: string]: TopicNodeType}
};

export type NodeMapType = {[slug: string]: NodeType};

export type NodesType = {
    exercises: {[slug: string]: CrowdinNodeType},
    articles: {[slug: string]: CrowdinNodeType},
    scratchpads: {[slug: string]: CrowdinNodeType},
    videos: {[slug: string]: VideoNodeType},
    topics: {[slug: string]: TopicNodeType},
};

export type WorkflowType = {
    uid?: string,
    status?: string,
};

export type WorkflowMapType = {[slug: string]: WorkflowType};

export type HistoryRecordType = {
    time: number;
    uid: ?string;
    status: ?string;
};

export type HistoryType = {
    slug: string;
    timeline: ?{[key: string]: HistoryRecordType};
};

export type DurationsType = {[ytid: string]: number};

export type ActionType = (dispatch: Dispatch, getState: GetState) => void;

export type RouteParamsType = {
    lang: ?string,
    kind: ?string,
    topic: ?string,
};

// re-export types for conveniance
export type {
    Action,
    Dispatch,
    Store,
    State,
    GetState,
};

{'fraction_non_alphanumeric': 0.13958501751549449, 'fraction_numerical': 0.0, 'mean_word_length': 3.5714285714285716, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2708557', 'n_tokens_mistral': 1186, 'n_tokens_neox': 1203, 'n_words': 357}