@synnaxlabs/drift 0.37.0 → 0.38.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.
Files changed (65) hide show
  1. package/dist/debounce-BUAIXXZt.cjs +1 -0
  2. package/dist/debounce-DOZKRZa9.js +9 -0
  3. package/dist/electron.cjs +1 -0
  4. package/dist/electron.js +256 -0
  5. package/dist/index.cjs +1 -0
  6. package/dist/index.js +491 -0
  7. package/dist/react.cjs +1 -0
  8. package/dist/react.js +70 -0
  9. package/dist/selectors-CYHEOjO4.cjs +1 -0
  10. package/dist/selectors-DwAh3Dt_.js +25 -0
  11. package/dist/src/configureStore.d.ts +43 -0
  12. package/dist/src/configureStore.d.ts.map +1 -0
  13. package/dist/src/debug.d.ts +4 -0
  14. package/dist/src/debug.d.ts.map +1 -0
  15. package/dist/src/electron/index.d.ts +49 -0
  16. package/dist/src/electron/index.d.ts.map +1 -0
  17. package/dist/src/external.d.ts +8 -0
  18. package/dist/src/external.d.ts.map +1 -0
  19. package/dist/src/index.d.ts +3 -0
  20. package/dist/src/index.d.ts.map +1 -0
  21. package/dist/src/middleware.d.ts +27 -0
  22. package/dist/src/middleware.d.ts.map +1 -0
  23. package/dist/src/middleware.spec.d.ts +2 -0
  24. package/dist/src/middleware.spec.d.ts.map +1 -0
  25. package/dist/src/mock/index.d.ts +2 -0
  26. package/dist/src/mock/index.d.ts.map +1 -0
  27. package/dist/src/mock/runtime.d.ts +44 -0
  28. package/dist/src/mock/runtime.d.ts.map +1 -0
  29. package/dist/src/react/Provider.d.ts +23 -0
  30. package/dist/src/react/Provider.d.ts.map +1 -0
  31. package/dist/src/react/hooks.d.ts +15 -0
  32. package/dist/src/react/hooks.d.ts.map +1 -0
  33. package/dist/src/react/index.d.ts +4 -0
  34. package/dist/src/react/index.d.ts.map +1 -0
  35. package/dist/src/react/selectors.d.ts +13 -0
  36. package/dist/src/react/selectors.d.ts.map +1 -0
  37. package/dist/src/runtime.d.ts +99 -0
  38. package/dist/src/runtime.d.ts.map +1 -0
  39. package/dist/src/selectors.d.ts +9 -0
  40. package/dist/src/selectors.d.ts.map +1 -0
  41. package/dist/src/serialization/index.d.ts +6 -0
  42. package/dist/src/serialization/index.d.ts.map +1 -0
  43. package/dist/src/state.d.ts +100 -0
  44. package/dist/src/state.d.ts.map +1 -0
  45. package/dist/src/sugar.d.ts +24 -0
  46. package/dist/src/sugar.d.ts.map +1 -0
  47. package/dist/src/sugar.spec.d.ts +2 -0
  48. package/dist/src/sugar.spec.d.ts.map +1 -0
  49. package/dist/src/sync.d.ts +11 -0
  50. package/dist/src/sync.d.ts.map +1 -0
  51. package/dist/src/sync.spec.d.ts +2 -0
  52. package/dist/src/sync.spec.d.ts.map +1 -0
  53. package/dist/src/tauri/index.d.ts +47 -0
  54. package/dist/src/tauri/index.d.ts.map +1 -0
  55. package/dist/src/validate.d.ts +11 -0
  56. package/dist/src/validate.d.ts.map +1 -0
  57. package/dist/src/validate.spec.d.ts +2 -0
  58. package/dist/src/validate.spec.d.ts.map +1 -0
  59. package/dist/src/window.d.ts +177 -0
  60. package/dist/src/window.d.ts.map +1 -0
  61. package/dist/state-B8DVhsB5.js +5852 -0
  62. package/dist/state-Nl_4DIvw.cjs +13 -0
  63. package/dist/tauri.cjs +1 -0
  64. package/dist/tauri.js +2714 -0
  65. package/package.json +11 -12
@@ -0,0 +1,47 @@
1
+ import { Action, UnknownAction } from '@reduxjs/toolkit';
2
+ import { dimensions, xy } from '@synnaxlabs/x';
3
+ import { WebviewWindow } from '@tauri-apps/api/webviewWindow';
4
+ import { Event, Runtime } from '../runtime';
5
+ import { StoreState } from '../state';
6
+ import { WindowProps } from '../window';
7
+ /**
8
+ * A Tauri backed implementation of the drift Runtime.
9
+ */
10
+ export declare class TauriRuntime<S extends StoreState, A extends Action = UnknownAction> implements Runtime<S, A> {
11
+ private readonly win;
12
+ private unsubscribe;
13
+ private fullscreenPoll;
14
+ /**
15
+ * @param window - The WebviewWindow to use as the underlying engine for this runtime.
16
+ * This should not be set in 99% of cases. Only use this if you know what you're doing.
17
+ */
18
+ constructor(window?: WebviewWindow);
19
+ configure(): Promise<void>;
20
+ private startFullscreenPoll;
21
+ label(): string;
22
+ isMain(): boolean;
23
+ release(): void;
24
+ emit(event_: Omit<Event<S, A>, "emitter">, to?: string, emitter?: string): Promise<void>;
25
+ subscribe(lis: (action: Event<S, A>) => void): Promise<void>;
26
+ onCloseRequested(cb: () => void): void;
27
+ create(label: string, props: Omit<WindowProps, "key">): Promise<void>;
28
+ close(label: string): Promise<void>;
29
+ listLabels(): Promise<string[]>;
30
+ focus(): Promise<void>;
31
+ setMinimized(value: boolean): Promise<void>;
32
+ setMaximized(value: boolean): Promise<void>;
33
+ setVisible(value: boolean): Promise<void>;
34
+ setFullscreen(value: boolean): Promise<void>;
35
+ center(): Promise<void>;
36
+ setPosition(xy: xy.XY): Promise<void>;
37
+ setSize(dims: dimensions.Dimensions): Promise<void>;
38
+ setMinSize(dims: dimensions.Dimensions): Promise<void>;
39
+ setMaxSize(dims: dimensions.Dimensions): Promise<void>;
40
+ setResizable(value: boolean): Promise<void>;
41
+ setSkipTaskbar(value: boolean): Promise<void>;
42
+ setAlwaysOnTop(value: boolean): Promise<void>;
43
+ setTitle(title: string): Promise<void>;
44
+ setDecorations(value: boolean): Promise<void>;
45
+ getProps(): Promise<Omit<WindowProps, "key">>;
46
+ }
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tauri/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { UnknownAction } from '@reduxjs/toolkit';
2
+ /**
3
+ * Ensures an action is valid, and throws an error if it is not.
4
+ * @param a - The action to validate.
5
+ */
6
+ export declare const validateAction: (meta: {
7
+ emitted?: boolean;
8
+ action?: UnknownAction;
9
+ emitter?: string;
10
+ }) => void;
11
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD;;;GAGG;AACH,eAAO,MAAM,cAAc,SAAU;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,IAUH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validate.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.spec.d.ts","sourceRoot":"","sources":["../../src/validate.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,177 @@
1
+ import { dimensions, xy } from '@synnaxlabs/x';
2
+ import { z } from 'zod';
3
+ /** Represents the state of a window in it's lifecycle */
4
+ export type WindowStage = "creating" | "created" | "closing" | "closed" | "reloading";
5
+ export declare const MAIN_WINDOW = "main";
6
+ export declare const PRERENDER_WINDOW = "prerender";
7
+ export interface WindowStateExtensionProps {
8
+ /** Lifecycle stage */
9
+ stage: WindowStage;
10
+ /** Number of active processes */
11
+ processCount: number;
12
+ /**
13
+ * Whether the window has been reserved for use. If this value is false,
14
+ * the window is a pre-forked window that is not currently in use.
15
+ */
16
+ reserved: boolean;
17
+ /**
18
+ * If something went wrong while making changes to the window, the error
19
+ * will be stored here.
20
+ */
21
+ error?: string;
22
+ /** Incremented to focus the window */
23
+ focusCount: number;
24
+ /** Incremented to center the window */
25
+ centerCount: number;
26
+ }
27
+ export declare const INITIAL_WINDOW_STATE: WindowStateExtensionProps;
28
+ export declare const INITIAL_PRERENDER_WINDOW_STATE: WindowState;
29
+ /** State of a window managed by drift */
30
+ export interface WindowState extends WindowProps, WindowStateExtensionProps {
31
+ }
32
+ /**
33
+ * The properties to provide when creating a window.
34
+ */
35
+ export interface WindowProps {
36
+ key: string;
37
+ url?: string;
38
+ title?: string;
39
+ center?: boolean;
40
+ position?: xy.XY;
41
+ size?: dimensions.Dimensions;
42
+ minSize?: dimensions.Dimensions;
43
+ maxSize?: dimensions.Dimensions;
44
+ resizable?: boolean;
45
+ fullscreen?: boolean;
46
+ focus?: boolean;
47
+ maximized?: boolean;
48
+ visible?: boolean;
49
+ minimized?: boolean;
50
+ decorations?: boolean;
51
+ skipTaskbar?: boolean;
52
+ fileDropEnabled?: boolean;
53
+ transparent?: boolean;
54
+ alwaysOnTop?: boolean;
55
+ }
56
+ export declare const windowPropsZ: z.ZodObject<{
57
+ key: z.ZodString;
58
+ url: z.ZodOptional<z.ZodString>;
59
+ title: z.ZodOptional<z.ZodString>;
60
+ center: z.ZodOptional<z.ZodBoolean>;
61
+ position: z.ZodOptional<z.ZodObject<{
62
+ x: z.ZodNumber;
63
+ y: z.ZodNumber;
64
+ }, "strip", z.ZodTypeAny, {
65
+ x: number;
66
+ y: number;
67
+ }, {
68
+ x: number;
69
+ y: number;
70
+ }>>;
71
+ size: z.ZodOptional<z.ZodObject<{
72
+ width: z.ZodNumber;
73
+ height: z.ZodNumber;
74
+ }, "strip", z.ZodTypeAny, {
75
+ width: number;
76
+ height: number;
77
+ }, {
78
+ width: number;
79
+ height: number;
80
+ }>>;
81
+ minSize: z.ZodOptional<z.ZodObject<{
82
+ width: z.ZodNumber;
83
+ height: z.ZodNumber;
84
+ }, "strip", z.ZodTypeAny, {
85
+ width: number;
86
+ height: number;
87
+ }, {
88
+ width: number;
89
+ height: number;
90
+ }>>;
91
+ maxSize: z.ZodOptional<z.ZodObject<{
92
+ width: z.ZodNumber;
93
+ height: z.ZodNumber;
94
+ }, "strip", z.ZodTypeAny, {
95
+ width: number;
96
+ height: number;
97
+ }, {
98
+ width: number;
99
+ height: number;
100
+ }>>;
101
+ resizable: z.ZodOptional<z.ZodBoolean>;
102
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
103
+ focus: z.ZodOptional<z.ZodBoolean>;
104
+ maximized: z.ZodOptional<z.ZodBoolean>;
105
+ visible: z.ZodOptional<z.ZodBoolean>;
106
+ minimized: z.ZodOptional<z.ZodBoolean>;
107
+ decorations: z.ZodOptional<z.ZodBoolean>;
108
+ skipTaskbar: z.ZodOptional<z.ZodBoolean>;
109
+ fileDropEnabled: z.ZodOptional<z.ZodBoolean>;
110
+ transparent: z.ZodOptional<z.ZodBoolean>;
111
+ alwaysOnTop: z.ZodOptional<z.ZodBoolean>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ key: string;
114
+ url?: string | undefined;
115
+ title?: string | undefined;
116
+ center?: boolean | undefined;
117
+ position?: {
118
+ x: number;
119
+ y: number;
120
+ } | undefined;
121
+ size?: {
122
+ width: number;
123
+ height: number;
124
+ } | undefined;
125
+ minSize?: {
126
+ width: number;
127
+ height: number;
128
+ } | undefined;
129
+ maxSize?: {
130
+ width: number;
131
+ height: number;
132
+ } | undefined;
133
+ resizable?: boolean | undefined;
134
+ fullscreen?: boolean | undefined;
135
+ focus?: boolean | undefined;
136
+ maximized?: boolean | undefined;
137
+ visible?: boolean | undefined;
138
+ minimized?: boolean | undefined;
139
+ decorations?: boolean | undefined;
140
+ skipTaskbar?: boolean | undefined;
141
+ fileDropEnabled?: boolean | undefined;
142
+ transparent?: boolean | undefined;
143
+ alwaysOnTop?: boolean | undefined;
144
+ }, {
145
+ key: string;
146
+ url?: string | undefined;
147
+ title?: string | undefined;
148
+ center?: boolean | undefined;
149
+ position?: {
150
+ x: number;
151
+ y: number;
152
+ } | undefined;
153
+ size?: {
154
+ width: number;
155
+ height: number;
156
+ } | undefined;
157
+ minSize?: {
158
+ width: number;
159
+ height: number;
160
+ } | undefined;
161
+ maxSize?: {
162
+ width: number;
163
+ height: number;
164
+ } | undefined;
165
+ resizable?: boolean | undefined;
166
+ fullscreen?: boolean | undefined;
167
+ focus?: boolean | undefined;
168
+ maximized?: boolean | undefined;
169
+ visible?: boolean | undefined;
170
+ minimized?: boolean | undefined;
171
+ decorations?: boolean | undefined;
172
+ skipTaskbar?: boolean | undefined;
173
+ fileDropEnabled?: boolean | undefined;
174
+ transparent?: boolean | undefined;
175
+ alwaysOnTop?: boolean | undefined;
176
+ }>;
177
+ //# sourceMappingURL=window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/window.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtF,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAE5C,MAAM,WAAW,yBAAyB;IACxC,sBAAsB;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,oBAAoB,EAAE,yBAMlC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,WAI5C,CAAC;AAEF,0CAA0C;AAC1C,MAAM,WAAW,WAAY,SAAQ,WAAW,EAAE,yBAAyB;CAAG;AAE9E;;GAEG;AACH,MAAM,WAAW,WAAW;IAE1B,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAEjB,IAAI,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAE7B,OAAO,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAEhC,OAAO,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IAEhC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,YAAY;;;;;;WA7DiB,EAAG,SAAS;WAAS,EAC7D,SAAO;;;;;;;;;eAlCsE,EAAG,SAC7E;gBAAc,EAAE,SAAS;;;;;;;;;eADiD,EAAG,SAC7E;gBAAc,EAAE,SAAS;;;;;;;;;eADiD,EAAG,SAC7E;gBAAc,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiH5B,CAAC"}