diff --git a/flow-typed/npm/uuid_v3.x.x.js b/flow-typed/npm/uuid_v3.x.x.js new file mode 100644 index 000000000..bf8d507b3 --- /dev/null +++ b/flow-typed/npm/uuid_v3.x.x.js @@ -0,0 +1,102 @@ +// flow-typed signature: 3cf668e64747095cab0bb360cf2fb34f +// flow-typed version: d659bd0cb8/uuid_v3.x.x/flow_>=v0.32.x + +declare module "uuid" { + declare class uuid { + static ( + options?: {| + random?: number[], + rng?: () => number[] | Buffer + |}, + buffer?: number[] | Buffer, + offset?: number + ): string, + + static v1( + options?: {| + node?: number[], + clockseq?: number, + msecs?: number | Date, + nsecs?: number + |}, + buffer?: number[] | Buffer, + offset?: number + ): string, + + static v4( + options?: {| + random?: number[], + rng?: () => number[] | Buffer + |}, + buffer?: number[] | Buffer, + offset?: number + ): string + } + declare module.exports: Class; +} + +declare module "uuid/v1" { + declare class v1 { + static ( + options?: {| + node?: number[], + clockseq?: number, + msecs?: number | Date, + nsecs?: number + |}, + buffer?: number[] | Buffer, + offset?: number + ): string + } + + declare module.exports: Class; +} + +declare module "uuid/v3" { + declare class v3 { + static ( + name?: string | number[], + namespace?: string | number[], + buffer?: number[] | Buffer, + offset?: number + ): string, + + static name: string, + static DNS: string, + static URL: string + } + + declare module.exports: Class; +} + +declare module "uuid/v4" { + declare class v4 { + static ( + options?: {| + random?: number[], + rng?: () => number[] | Buffer + |}, + buffer?: number[] | Buffer, + offset?: number + ): string + } + + declare module.exports: Class; +} + +declare module "uuid/v5" { + declare class v5 { + static ( + name?: string | number[], + namespace?: string | number[], + buffer?: number[] | Buffer, + offset?: number + ): string, + + static name: string, + static DNS: string, + static URL: string + } + + declare module.exports: Class; +} diff --git a/package.json b/package.json index 6b14697fd..0500b2996 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "socket.io": "^2.0.4", "string-natural-compare": "^2.0.2", "tmp": "^0.0.33", + "uuid": "^3.3.2", "websocket": "^1.0.24", "which": "^1.3.1", "xml2js": "^0.4.19", diff --git a/src/fb-stubs/Logger.js b/src/fb-stubs/Logger.js index f602f2a72..3ddb6ebf5 100644 --- a/src/fb-stubs/Logger.js +++ b/src/fb-stubs/Logger.js @@ -10,7 +10,7 @@ export type TrackType = 'duration' | 'usage' | 'performance'; import ScribeLogger from './ScribeLogger'; export default class LogManager { - constructor() { + constructor(store: ?Store) { this.scribeLogger = new ScribeLogger(this); } diff --git a/src/init.js b/src/init.js index 311029738..5ab00ba6a 100644 --- a/src/init.js +++ b/src/init.js @@ -26,7 +26,7 @@ const store = createStore( ); persistStore(store); -const logger = new Logger(); +const logger = new Logger(store); const bugReporter = new BugReporter(logger, store); dispatcher(store, logger); GK.init(); diff --git a/src/reducers/application.js b/src/reducers/application.js index 2c8073039..6aac10874 100644 --- a/src/reducers/application.js +++ b/src/reducers/application.js @@ -6,6 +6,7 @@ */ import {remote} from 'electron'; +import uuidv1 from 'uuid/v1'; export const ACTIVE_SHEET_PLUGIN_SHEET: 'PLUGIN_SHEET' = 'PLUGIN_SHEET'; export const ACTIVE_SHEET_BUG_REPORTER: 'BUG_REPORTER' = 'BUG_REPORTER'; @@ -24,6 +25,7 @@ export type State = { rightSidebarAvailable: boolean, windowIsFocused: boolean, activeSheet: ActiveSheet, + sessionId: ?string, }; type BooleanActionType = @@ -48,6 +50,7 @@ const initialState: () => State = () => ({ rightSidebarAvailable: false, windowIsFocused: remote.getCurrentWindow().isFocused(), activeSheet: null, + sessionId: uuidv1(), }); export default function reducer(state: State, action: Action): State {