epos 1.7.0 → 1.7.2

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.
@@ -5,166 +5,159 @@ import type * as reactDom from 'react-dom';
5
5
  import type * as reactDomClient from 'react-dom/client';
6
6
  import type * as reactJsxRuntime from 'react/jsx-runtime';
7
7
  import type * as yjs from 'yjs';
8
- type Fn<T = any> = (...args: any[]) => T;
9
- type Cls<T = any> = new (...args: any[]) => T;
10
- type State = Record<string, StateValue>;
11
- type Versioner = Record<number, (state: State) => void>;
12
- type ClassName = string | null | boolean | undefined | ClassName[];
13
- type StateValue = undefined | null | boolean | number | string | Unit | StateValue[] | {
14
- [key: string]: StateValue;
8
+ export type Fn<T = any> = (...args: any[]) => T;
9
+ export type Obj = Record<string, unknown>;
10
+ export type Versioner = Record<number, (this: any, state: any) => void>;
11
+ export type ClassName = string | null | boolean | undefined | ClassName[];
12
+ export type ModelClass = new (...args: any[]) => any;
13
+ export type ConnectOptions<T extends Obj> = {
14
+ initial?: () => T;
15
+ models?: Record<string, ModelClass>;
16
+ versioner?: Versioner;
15
17
  };
16
18
  type Storage = {
17
- /** Get value from storage. */
19
+ /** Get value from the storage. */
18
20
  get<T = unknown>(key: string): Promise<T>;
19
- /** Set value in storage. */
21
+ /** Set value in the storage. */
20
22
  set<T = unknown>(key: string, value: T): Promise<void>;
21
- /** Delete value from storage. */
23
+ /** Delete value from the storage. */
22
24
  delete(key: string): Promise<void>;
23
- /** Get all keys from storage. */
25
+ /** Get all keys from the storage. */
24
26
  keys(): Promise<string[]>;
25
- /** Clear storage. Deletes all keys and storage itself. */
27
+ /** Clear the storage. Deletes all keys and storage itself. */
26
28
  clear(): Promise<void>;
27
29
  };
28
- declare class Unit<TRoot = unknown> {
29
- /** Reference to the root unit. */
30
- $: TRoot;
31
- log: Fn<void> & {
32
- warn: Fn<void>;
33
- error: Fn<void>;
34
- };
35
- constructor(parent?: Unit<TRoot> | null);
36
- /** Find ancestor unit by its class. */
37
- up<T extends Unit<TRoot>>(Ancestor: Cls<T>): T | null;
38
- up<T extends Unit<TRoot>, K extends keyof T>(Ancestor: Cls<T>, key: K): T[K] | null;
39
- autorun: typeof mobx.autorun;
40
- reaction: typeof mobx.reaction;
41
- setTimeout: typeof self.setTimeout;
42
- setInterval: typeof self.setInterval;
43
- static v: Record<number, (this: Unit, unit: Unit) => void>;
44
- }
45
30
  export interface Epos {
46
- /** Listen for an event. */
47
- on(eventName: string, callback: Fn, thisValue?: unknown): void;
48
- /** Remove event listener. */
49
- off(eventName: string, callback?: Fn): void;
50
- /** Listen for an event once. */
51
- once(eventName: string, callback: Fn, thisValue?: unknown): void;
52
- /** Send an event to all remote listeners (local listeners are ignored). */
53
- send<T = unknown>(eventName: string, ...args: unknown[]): Promise<T>;
54
- /** Emit event locally (calls local listeners only). */
55
- emit<T = unknown>(eventName: string, ...args: unknown[]): Promise<T>;
56
- /** Connect to the state. */
57
- connect: {
58
- <T extends State = {}>(): Promise<T>;
59
- <T extends State = {}>(initial: () => T): Promise<T>;
60
- <T extends State = {}>(initial: () => T, versioner: Versioner): Promise<T>;
61
- <T extends State = {}>(name: string): Promise<T>;
62
- <T extends State = {}>(name: string, initial: () => T): Promise<T>;
63
- <T extends State = {}>(name: string, initial: () => T, versioner: Versioner): Promise<T>;
64
- };
65
- /** Disconnect from the state. */
66
- disconnect(name?: string): void;
67
- /** Create local state (no sync). */
68
- local<T extends State = {}>(state?: T): T;
69
- /** Get the list of all state names. */
70
- states(opts?: {
71
- connected?: boolean;
72
- }): Promise<Array<{
73
- name: string | null;
74
- }>>;
75
- /** Destroy state. */
76
- destroy(name?: string): Promise<void>;
77
- /** Performs any state changes in a batch. */
78
- transaction: (fn: () => void) => void;
79
- /** @see https://mobx.js.org/reactions.html#autorun */
80
- autorun: typeof mobx.autorun;
81
- /** @see https://mobx.js.org/reactions.html#reaction */
82
- reaction: typeof mobx.reaction;
83
- root: HTMLElement;
84
- shadow: HTMLElement;
31
+ fetch: typeof window.fetch;
32
+ browser: typeof chrome;
33
+ element: HTMLDivElement;
34
+ render(node: react.ReactNode, container?: reactDomClient.Container): void;
85
35
  component: {
86
- <P>(fn: react.FC<P>): typeof fn;
87
- <P>(name: string, fn: react.FC<P>): typeof fn;
36
+ <P>(Component: react.FC<P>): typeof Component;
37
+ <P>(name: string, Component: react.FC<P>): typeof Component;
88
38
  };
89
- render(node: react.ReactNode, container?: reactDomClient.Container): void;
90
- portal: typeof reactDom.createPortal;
91
- useState: typeof mobxReactLite.useLocalObservable;
92
- useAutorun(...args: Parameters<typeof mobx.autorun>): void;
93
- useReaction(...args: Parameters<typeof mobx.reaction>): void;
94
- Unit: typeof Unit;
95
- /** Register unit class. */
96
- register(Unit: Cls<Unit>): void;
97
- units(): {
98
- [name: string]: typeof Unit;
39
+ bus: {
40
+ /** Listen for an event. */
41
+ on(eventName: string, callback: Fn, thisValue?: unknown): void;
42
+ /** Remove event listener. */
43
+ off(eventName: string, callback?: Fn): void;
44
+ /** Listen for an event once. */
45
+ once(eventName: string, callback: Fn, thisValue?: unknown): void;
46
+ /** Send an event to all remote listeners (local listeners are ignored). */
47
+ send<T = unknown>(eventName: string, ...args: unknown[]): Promise<T>;
48
+ /** Emit event locally (calls local listeners only). */
49
+ emit<T = unknown>(eventName: string, ...args: unknown[]): Promise<T>;
99
50
  };
100
- fetch: typeof window.fetch;
101
- browser: typeof chrome;
102
- /** Get value from the storage. */
103
- get<T = unknown>(key: string, storageName?: string): Promise<T>;
104
- /** Set value in the storage. */
105
- set<T = unknown>(key: string, value: T, storageName?: string): Promise<void>;
106
- /** Delete value from the storage. */
107
- delete(key: string, storageName?: string): Promise<void>;
108
- /** Get all keys from the storage. */
109
- keys(storageName?: string): Promise<string[]>;
110
- /** Clear storage. Removes all keys and storage itself. */
111
- clear(storageName?: string): Promise<void>;
112
- /** Create storage API. */
113
- storage(name: string): Promise<Storage>;
114
- /** Get list of all storage names. */
115
- storages(): Promise<Array<{
116
- name: string | null;
117
- }>>;
118
- /** Get asset URL. Asset must be loaded first. */
119
- url(path: string): Promise<string>;
120
- /** Load asset to memory. Pass '*' to load all assets. */
121
- load(path: string): Promise<void>;
122
- /** Unload asset from memory. Pass '*' to unload all assets.*/
123
- unload(path: string): void;
124
- /** Get list of all available asset paths. */
125
- assets(opts?: {
126
- loaded?: boolean;
127
- }): Promise<Array<{
128
- path: string;
129
- loaded: boolean;
130
- }>>;
131
- /** Current tab ID. */
132
- tabId: number;
133
- is: {
134
- /** True if running in a tab. */
135
- tab: boolean;
136
- /** True if running on a hub page (<hub>). */
137
- hub: boolean;
138
- /** True if running on any page except hub. */
139
- page: boolean;
140
- /** True if running in a popup or in side panel (<popup> or <panel>). */
141
- shell: boolean;
142
- /** True if running in a popup (<popup>). */
143
- popup: boolean;
144
- /** True if running in a side panel (<panel>). */
145
- panel: boolean;
146
- /** True if running in background (<background>). */
147
- background: boolean;
148
- /** True if running in foreground */
149
- foreground: boolean;
51
+ state: {
52
+ /** Connect state. */
53
+ connect: {
54
+ <T extends Obj>(name?: string, options?: ConnectOptions<T>): Promise<T>;
55
+ <T extends Obj>(options?: ConnectOptions<T>): Promise<T>;
56
+ };
57
+ /** Disconnect state. */
58
+ disconnect(name?: string): void;
59
+ /** Run any state changes in a batch. */
60
+ transaction: (fn: () => void) => void;
61
+ /** Create local state (no sync). */
62
+ local<T extends Obj = {}>(state?: T): T;
63
+ /** Get the list of all state names. */
64
+ list(filter?: {
65
+ connected?: boolean;
66
+ }): Promise<Array<{
67
+ name: string | null;
68
+ }>>;
69
+ /** Remove state and all its data. */
70
+ destroy(name?: string): Promise<void>;
71
+ /** Dynamically register models for all states. */
72
+ registerGlobalModels(models: Record<string, ModelClass>): void;
73
+ symbols: {
74
+ model: {
75
+ readonly init: unique symbol;
76
+ readonly cleanup: unique symbol;
77
+ readonly versioner: unique symbol;
78
+ readonly parent: unique symbol;
79
+ };
80
+ };
81
+ };
82
+ storage: {
83
+ /** Get value from the storage. */
84
+ get<T = unknown>(key: string, storageName?: string): Promise<T>;
85
+ /** Set value in the storage. */
86
+ set<T = unknown>(key: string, value: T, storageName?: string): Promise<void>;
87
+ /** Delete value from the storage. */
88
+ delete(key: string, storageName?: string): Promise<void>;
89
+ /** Get all keys from the storage. */
90
+ keys(storageName?: string): Promise<string[]>;
91
+ /** Clear storage. Removes all keys and storage itself. */
92
+ clear(storageName?: string): Promise<void>;
93
+ /** Create storage API. */
94
+ use(name: string): Promise<Storage>;
95
+ /** Get list of all storage names. */
96
+ list(): Promise<Array<{
97
+ name: string | null;
98
+ }>>;
99
+ };
100
+ assets: {
101
+ /** Get asset URL. Asset must be loaded first. */
102
+ url(path: string): Promise<string>;
103
+ /** Load asset to memory. Pass '*' to load all assets. */
104
+ load(path: string): Promise<void>;
105
+ /** Unload asset from memory. Pass '*' to unload all assets.*/
106
+ unload(path: string): void;
107
+ /** Get list of all available asset paths. */
108
+ list(filter?: {
109
+ loaded?: boolean;
110
+ }): Array<{
111
+ path: string;
112
+ loaded: boolean;
113
+ }>;
114
+ };
115
+ frames: {
116
+ /** Create a new frame. */
117
+ create(name: string, url: string, attributes?: Record<string, unknown>): Promise<void>;
118
+ /** Remove frame by name. */
119
+ remove(name: string): Promise<void>;
120
+ /** Get list of all created frames. */
121
+ list(): Promise<Array<{
122
+ name: string;
123
+ url: string;
124
+ }>>;
125
+ };
126
+ env: {
127
+ /** Current tab ID. */
128
+ tabId: number;
129
+ /** True if running in a tab (top-level, not iframe). */
130
+ isTab: boolean;
131
+ /** True if running in an iframe. */
132
+ isFrame: boolean;
133
+ /** True if running in a popup or side panel (`<popup>` or `<sidePanel>`). */
134
+ isShell: boolean;
135
+ /** True if running in a popup (`<popup>`). */
136
+ isPopup: boolean;
137
+ /** True if running in a side panel (`<sidePanel>`). */
138
+ isSidePanel: boolean;
139
+ /** True if running in the background (`<background>`). */
140
+ isBackground: boolean;
141
+ /** True if running in the foreground (not `<background>` and not inside iframe). */
142
+ isForeground: boolean;
143
+ };
144
+ libs: {
145
+ mobx: typeof mobx;
146
+ mobxReactLite: typeof mobxReactLite;
147
+ react: typeof react;
148
+ reactDom: typeof reactDom;
149
+ reactDomClient: typeof reactDomClient;
150
+ reactJsxRuntime: typeof reactJsxRuntime;
151
+ yjs: typeof yjs;
150
152
  };
151
- mobx: typeof mobx;
152
- mobxReactLite: typeof mobxReactLite;
153
- react: typeof react;
154
- reactDom: typeof reactDom;
155
- reactDomClient: typeof reactDomClient;
156
- reactJsxRuntime: typeof reactJsxRuntime;
157
- yjs: typeof yjs;
158
153
  }
159
154
  declare global {
160
155
  var epos: Epos;
161
156
  namespace React {
162
157
  interface HTMLAttributes<T> {
163
158
  class?: ClassName;
164
- [key: `$${string}`]: boolean;
165
159
  }
166
160
  }
167
161
  }
168
162
  declare const _epos: Epos;
169
163
  export { _epos as epos };
170
- export default _epos;
package/dist/epos/epos.js CHANGED
@@ -1,3 +1,2 @@
1
1
  const _epos = epos;
2
2
  export { _epos as epos };
3
- export default _epos;
@@ -0,0 +1,3 @@
1
+ import { epos } from './epos';
2
+ export { epos };
3
+ export default epos;
@@ -0,0 +1,3 @@
1
+ import { epos } from './epos';
2
+ export { epos };
3
+ export default epos;
@@ -1 +1 @@
1
- export const { enableStaticRendering, isUsingStaticRendering, observer, Observer, observerBatching, useAsObservableSource, useLocalObservable, useLocalStore, useObserver, useStaticRendering, } = epos.mobxReactLite;
1
+ export const { enableStaticRendering, isUsingStaticRendering, observer, Observer, observerBatching, useAsObservableSource, useLocalObservable, useLocalStore, useObserver, useStaticRendering, } = epos.libs.mobxReactLite;
@@ -1 +1 @@
1
- export const { _allowStateChanges, _allowStateChangesInsideComputed, _allowStateReadsEnd, _allowStateReadsStart, _autoAction, _endAction, _getAdministration, _getGlobalState, _interceptReads, _isComputingDerivation, _resetGlobalState, _startAction, $mobx, action, autorun, comparer, computed, configure, createAtom, defineProperty, entries, extendObservable, FlowCancellationError, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, ObservableMap, ObservableSet, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, ownKeys, reaction, Reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when, } = epos.mobx;
1
+ export const { _allowStateChanges, _allowStateChangesInsideComputed, _allowStateReadsEnd, _allowStateReadsStart, _autoAction, _endAction, _getAdministration, _getGlobalState, _interceptReads, _isComputingDerivation, _resetGlobalState, _startAction, $mobx, action, autorun, comparer, computed, configure, createAtom, defineProperty, entries, extendObservable, FlowCancellationError, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, ObservableMap, ObservableSet, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, ownKeys, reaction, Reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when, } = epos.libs.mobx;
@@ -1,2 +1,2 @@
1
- export default epos.reactDomClient;
2
- export const { createRoot, hydrateRoot } = epos.reactDomClient;
1
+ export default epos.libs.reactDomClient;
2
+ export const { createRoot, hydrateRoot } = epos.libs.reactDomClient;
@@ -1,2 +1,2 @@
1
- export default epos.reactDom;
2
- export const { createPortal, flushSync, preconnect, prefetchDNS, preinit, preinitModule, preload, preloadModule, requestFormReset, unstable_batchedUpdates, useFormState, useFormStatus, version, } = epos.reactDom;
1
+ export default epos.libs.reactDom;
2
+ export const { createPortal, flushSync, preconnect, prefetchDNS, preinit, preinitModule, preload, preloadModule, requestFormReset, unstable_batchedUpdates, useFormState, useFormStatus, version, } = epos.libs.reactDom;
@@ -1,2 +1,2 @@
1
- export default epos.reactJsxRuntime;
2
- export const { Fragment, jsx, jsxs } = epos.reactJsxRuntime;
1
+ export default epos.libs.reactJsxRuntime;
2
+ export const { Fragment, jsx, jsxs } = epos.libs.reactJsxRuntime;
@@ -1,2 +1,2 @@
1
- export default epos.react;
2
- export const { act, cache, Children, cloneElement, Component, createContext, createElement, createRef, forwardRef, Fragment, isValidElement, lazy, memo, Profiler, PureComponent, startTransition, StrictMode, Suspense, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version, } = epos.react;
1
+ export default epos.libs.react;
2
+ export const { act, cache, Children, cloneElement, Component, createContext, createElement, createRef, forwardRef, Fragment, isValidElement, lazy, memo, Profiler, PureComponent, startTransition, StrictMode, Suspense, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version, } = epos.libs.react;
package/epos.schema.json CHANGED
@@ -13,7 +13,8 @@
13
13
  "targets": { "$ref": "#/definitions/Targets" },
14
14
  "matches": { "$ref": "#/definitions/Matches" },
15
15
  "load": { "$ref": "#/definitions/Load" },
16
- "mode": { "$ref": "#/definitions/Mode" }
16
+ "mode": { "$ref": "#/definitions/Mode" },
17
+ "manifest": { "$ref": "#/definitions/Manifest" }
17
18
  },
18
19
  "required": ["name"],
19
20
  "additionalProperties": false,
@@ -35,7 +36,7 @@
35
36
  },
36
37
 
37
38
  "Action": {
38
- "oneOf": [{ "type": "null" }, { "type": "string" }, true]
39
+ "oneOf": [{ "type": "null" }, { "type": "string" }, { "type": "boolean" }]
39
40
  },
40
41
 
41
42
  "Popup": {
@@ -97,6 +98,10 @@
97
98
  "Mode": {
98
99
  "type": "string",
99
100
  "enum": ["normal", "shadow", "lite"]
101
+ },
102
+
103
+ "Manifest": {
104
+ "$ref": "https://json.schemastore.org/chrome-manifest.json"
100
105
  }
101
106
  }
102
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epos",
3
- "version": "1.7.0",
3
+ "version": "1.7.2",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "imkost",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "exports": {
16
16
  ".": {
17
- "import": "./dist/epos/epos.js"
17
+ "import": "./dist/epos/index.js"
18
18
  },
19
19
  "./vite": {
20
20
  "import": "./dist/plugin/plugin-vite.js"
@@ -28,8 +28,8 @@
28
28
  "epos.schema.json"
29
29
  ],
30
30
  "dependencies": {
31
- "@types/chrome": "^0.1.4",
32
- "@types/react": "^19.1.12",
31
+ "@types/chrome": "^0.1.11",
32
+ "@types/react": "^19.1.13",
33
33
  "@types/react-dom": "^19.1.9",
34
34
  "mobx": "^6.13.7",
35
35
  "mobx-react-lite": "^4.1.0",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "esbuild": "^0.25.9",
41
- "vite": "^7.1.4"
41
+ "vite": "^7.1.5"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "esbuild": "^0.25.9",