epos 1.55.0 → 1.58.0

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 (42) hide show
  1. package/dist/{epos-browser.d.ts → browser.d.ts} +2 -2
  2. package/dist/browser.js +2 -0
  3. package/dist/browser.js.map +1 -0
  4. package/dist/epos.d.ts +240 -189
  5. package/dist/epos.js.map +1 -1
  6. package/dist/{epos-vite-mobx-react-lite.js → libs/mobx-react-lite.js} +1 -1
  7. package/dist/libs/mobx-react-lite.js.map +1 -0
  8. package/dist/{epos-vite-mobx.js → libs/mobx.js} +1 -1
  9. package/dist/libs/mobx.js.map +1 -0
  10. package/dist/{epos-vite-react-dom-client.js → libs/react-dom-client.js} +1 -1
  11. package/dist/libs/react-dom-client.js.map +1 -0
  12. package/dist/{epos-vite-react-dom.js → libs/react-dom.js} +1 -1
  13. package/dist/libs/react-dom.js.map +1 -0
  14. package/dist/{epos-vite-react-jsx-runtime.js → libs/react-jsx-runtime.js} +1 -1
  15. package/dist/libs/react-jsx-runtime.js.map +1 -0
  16. package/dist/{epos-vite-react.js → libs/react.js} +1 -1
  17. package/dist/libs/react.js.map +1 -0
  18. package/dist/{epos-spec.d.ts → spec.d.ts} +9 -10
  19. package/dist/{epos-spec.js → spec.js} +116 -96
  20. package/dist/spec.js.map +1 -0
  21. package/dist/vite.d.ts +3 -0
  22. package/dist/vite.js +20 -0
  23. package/dist/vite.js.map +1 -0
  24. package/package.json +9 -9
  25. package/dist/epos-browser.js +0 -2
  26. package/dist/epos-browser.js.map +0 -1
  27. package/dist/epos-spec.js.map +0 -1
  28. package/dist/epos-vite-mobx-react-lite.js.map +0 -1
  29. package/dist/epos-vite-mobx.js.map +0 -1
  30. package/dist/epos-vite-react-dom-client.js.map +0 -1
  31. package/dist/epos-vite-react-dom.js.map +0 -1
  32. package/dist/epos-vite-react-jsx-runtime.js.map +0 -1
  33. package/dist/epos-vite-react.js.map +0 -1
  34. package/dist/epos-vite.d.ts +0 -8
  35. package/dist/epos-vite.js +0 -26
  36. package/dist/epos-vite.js.map +0 -1
  37. /package/dist/{epos-vite-mobx-react-lite.d.ts → libs/mobx-react-lite.d.ts} +0 -0
  38. /package/dist/{epos-vite-mobx.d.ts → libs/mobx.d.ts} +0 -0
  39. /package/dist/{epos-vite-react-dom-client.d.ts → libs/react-dom-client.d.ts} +0 -0
  40. /package/dist/{epos-vite-react-dom.d.ts → libs/react-dom.d.ts} +0 -0
  41. /package/dist/{epos-vite-react-jsx-runtime.d.ts → libs/react-jsx-runtime.d.ts} +0 -0
  42. /package/dist/{epos-vite-react.d.ts → libs/react.d.ts} +0 -0
@@ -48,7 +48,7 @@ export type DeclarativeNetRequest = Omit<typeof chrome.declarativeNetRequest, 'u
48
48
  /**
49
49
  * Modifies the current set of dynamic rules for the extension. The rules with IDs listed in `options.removeRuleIds` are first removed, and then the rules given in `options.addRules` are added. Notes:
50
50
  *
51
- * - In `epos`, `addRules` cannot have IDs, instead IDs will be assigned automatically and returned in the result.
51
+ * - In `epos`, `addRules` does not accept IDs, instead IDs will be assigned automatically and returned in the result.
52
52
  * - This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
53
53
  * - These rules are persisted across browser sessions and across extension updates.
54
54
  * - Static rules specified as part of the extension package can not be removed using this function.
@@ -64,7 +64,7 @@ export type DeclarativeNetRequest = Omit<typeof chrome.declarativeNetRequest, 'u
64
64
  *
65
65
  * Can return its result via Promise in Manifest V3 or later since Chrome 91.
66
66
  *
67
- * - In `epos`, `addRules` cannot have IDs, instead IDs will be assigned automatically and returned in the result.
67
+ * - In `epos`, `addRules` does not accept IDs, instead IDs will be assigned automatically and returned in the result.
68
68
  * - This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
69
69
  * - These rules are persisted across browser sessions and across extension updates.
70
70
  * - Static rules specified as part of the extension package can not be removed using this function.
@@ -0,0 +1,2 @@
1
+ import 'chrome';
2
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAA"}
package/dist/epos.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Arr, Ctor, Fn, Obj } from '@eposlabs/utils';
1
2
  import type * as mobx from 'mobx';
2
3
  import type * as mobxReactLite from 'mobx-react-lite';
3
4
  import type * as react from 'react';
@@ -5,26 +6,247 @@ import type * as reactDom from 'react-dom';
5
6
  import type * as reactDomClient from 'react-dom/client';
6
7
  import type * as reactJsxRuntime from 'react/jsx-runtime';
7
8
  import type * as yjs from 'yjs';
8
- import type { Browser } from './epos-browser.js';
9
- import type { Spec } from './epos-spec.js';
10
- export type Fn = (...args: any[]) => unknown;
11
- export type Cls = new (...args: any[]) => unknown;
12
- export type Obj = Record<PropertyKey, unknown>;
13
- export type Arr = unknown[];
14
- export type Instance<T> = T extends object ? Exclude<T, Obj | Arr | Fn> : never;
15
- export type FnArgsOrArr<T> = T extends Fn ? Parameters<T> : Arr;
16
- export type FnResultOrValue<T> = T extends Fn ? ReturnType<T> : T;
9
+ import type { Browser } from './browser.js';
10
+ import type { Spec } from './spec.js';
11
+ export interface Epos {
12
+ /** Like regular `fetch`, but bypasses CORS. Does not support streams. */
13
+ fetch: EposFetch;
14
+ /** WebExtensions API. Like `chrome.*`, but works in any context. */
15
+ browser: Browser;
16
+ /** Render React node. */
17
+ render(node: react.ReactNode, container?: reactDomClient.Container): void;
18
+ /** Make React component Epos-aware, so it reacts to state changes. */
19
+ component<T>(Component: react.FC<T>): react.FC<T>;
20
+ /** Environment variables. */
21
+ env: EposEnv;
22
+ /** DOM elements created by Epos. */
23
+ dom: EposDom;
24
+ /** Event bus for cross-context communication. */
25
+ bus: EposBus;
26
+ /** State management. */
27
+ state: EposState;
28
+ /** Storage management. */
29
+ storage: EposStorage;
30
+ /** Asset management. */
31
+ assets: EposAssets;
32
+ /** Background frames management. */
33
+ frames: EposFrames;
34
+ /** Project management. */
35
+ projects: EposProjects;
36
+ /** Third party libraries used by Epos. */
37
+ libs: EposLibs;
38
+ }
39
+ export type EposFetch = (url: string | URL, init?: ReqInit) => Promise<Res>;
40
+ export interface EposEnv {
41
+ /** Tab identifier, -1 for background and iframes. */
42
+ tabId: -1 | number;
43
+ /** Window identifier, -1 for background and iframes. */
44
+ windowId: -1 | number;
45
+ /** Indicates if running in `<popup>` context. */
46
+ isPopup: boolean;
47
+ /** Indicates if running in `<sidePanel>` context. */
48
+ isSidePanel: boolean;
49
+ /** Indicates if running in `<background>` context. */
50
+ isBackground: boolean;
51
+ /** Current project data. */
52
+ project: Project;
53
+ }
54
+ export interface EposDom {
55
+ /** Project's root element. */
56
+ root: HTMLDivElement;
57
+ /** Pre-created element used as default container for React. */
58
+ view: HTMLDivElement;
59
+ /** Pre-created shadow DOM. */
60
+ shadowRoot: ShadowRoot;
61
+ /** Pre-created element inside shadow DOM used as default container for React. */
62
+ shadowView: HTMLDivElement;
63
+ }
64
+ export interface EposBus {
65
+ /** Register an event listener. */
66
+ on<T extends Fn>(name: string, callback: T, thisArg?: unknown): void;
67
+ /** Remove an event listener. */
68
+ off<T extends Fn>(name: string, callback?: T): void;
69
+ /** Register a one-time event listener. */
70
+ once<T extends Fn>(name: string, callback: T, thisArg?: unknown): void;
71
+ /** Send an event to all remote listeners. */
72
+ send<T>(name: string, ...args: FnArgsOrArr<T>): Promise<FnResultOrValue<T> | null>;
73
+ /** Call local listeners for an event. */
74
+ emit<T>(name: string, ...args: FnArgsOrArr<T>): Promise<FnResultOrValue<T> | null>;
75
+ /** Set a signal with an optional value. */
76
+ setSignal(name: string, value?: unknown): void;
77
+ /** Wait for a signal to be set. */
78
+ waitSignal<T>(name: string, timeout?: number): Promise<T | null>;
79
+ /** Register an RPC API. */
80
+ register(name: string, api: RpcTarget): void;
81
+ /** Unregister an RPC API. */
82
+ unregister(name: string): void;
83
+ /** Use an RPC API. */
84
+ use<T extends RpcTarget>(name: string): Rpc<T>;
85
+ /** Create a namespaced bus instance. */
86
+ for(namespace: string): Omit<EposBus, 'for'> & {
87
+ /** Dispose namespaced bus instance. Removes all its listeners and ignores any further method calls. */
88
+ dispose: () => void;
89
+ };
90
+ }
91
+ export interface EposState {
92
+ /** Connect to the state. */
93
+ connect: {
94
+ <T>(initial?: Initial<T>, versioner?: Versioner<T>): Promise<T>;
95
+ <T>(name?: string, initial?: Initial<T>, versioner?: Versioner<T>): Promise<T>;
96
+ };
97
+ /** Disconnect from the state. */
98
+ disconnect(name?: string): void;
99
+ /** Run state changes in a batch. */
100
+ transaction: (fn: () => void) => void;
101
+ /** Create a reactive effect that runs when observed state changes. */
102
+ reaction: typeof mobx.reaction;
103
+ /** Create local state (no sync). */
104
+ local<T extends {}>(initial?: Initial<T>): T;
105
+ /** Get list of all state names. */
106
+ list(filter?: {
107
+ connected?: boolean;
108
+ }): Promise<{
109
+ name: string | null;
110
+ connected: boolean;
111
+ }[]>;
112
+ /** Remove state and all its data. */
113
+ remove(name?: string): Promise<void>;
114
+ /** Register models that can be used by all states. */
115
+ register(models: Record<string, Ctor>): void;
116
+ /** Parent access for state objects and array. */
117
+ PARENT: symbol;
118
+ ATTACH: symbol;
119
+ DETACH: symbol;
120
+ }
121
+ export interface EposStorage {
122
+ /** Get value from storage. */
123
+ get: {
124
+ <T>(key: string): Promise<T | null>;
125
+ <T>(name: string, key: string): Promise<T | null>;
126
+ };
127
+ /** Set value in storage. */
128
+ set: {
129
+ <T>(key: string, value: T): Promise<void>;
130
+ <T>(name: string, key: string, value: T): Promise<void>;
131
+ };
132
+ /** Check if key exists in storage. */
133
+ has: {
134
+ (key: string): Promise<boolean>;
135
+ (name: string, key: string): Promise<boolean>;
136
+ };
137
+ /** Delete key from storage. */
138
+ delete: {
139
+ (key: string): Promise<void>;
140
+ (name: string, key: string): Promise<void>;
141
+ };
142
+ /** Get all storage keys. */
143
+ keys(name?: string): Promise<string[]>;
144
+ /** Get list of all storages. */
145
+ list(): Promise<{
146
+ name: string | null;
147
+ keys: string[];
148
+ }[]>;
149
+ /** Remove storage and all its data. */
150
+ remove(name?: string): Promise<void>;
151
+ /** Create API for the specific storage. */
152
+ for(name?: string): {
153
+ /** Get value from storage. */
154
+ get<T>(key: string): Promise<T | null>;
155
+ /** Set value in storage. */
156
+ set(key: string, value: unknown): Promise<void>;
157
+ /** Check if key exists in storage. */
158
+ has(key: string): Promise<boolean>;
159
+ /** Delete key from storage. */
160
+ delete(key: string): Promise<void>;
161
+ /** Get all storage keys. */
162
+ keys(): Promise<string[]>;
163
+ /** Remove storage and all its data. */
164
+ remove(): Promise<void>;
165
+ };
166
+ }
167
+ export interface EposAssets {
168
+ /** Get asset URL.*/
169
+ url(path: string): string;
170
+ /** Get asset as Blob. */
171
+ get(path: string): Promise<Blob | null>;
172
+ /** Get list of all available assets. */
173
+ list(filter?: {
174
+ loaded?: boolean;
175
+ }): {
176
+ path: string;
177
+ loaded: boolean;
178
+ }[];
179
+ /** Load specified asset to memory. Loads all assets if no path is provided. */
180
+ load: {
181
+ /** Load all assets. */
182
+ (): Promise<void>;
183
+ /** Load specified asset. */
184
+ (path: string): Promise<void>;
185
+ };
186
+ /** Unload specified asset from memory. Unloads all assets if no path is provided. */
187
+ unload: {
188
+ /** Unload all assets. */
189
+ (): void;
190
+ /** Unload specified asset. */
191
+ (path: string): void;
192
+ };
193
+ }
194
+ export interface EposFrames {
195
+ /** Open background frame. */
196
+ create(url: string, attrs?: Attrs): Promise<string>;
197
+ /** Remove background frame. */
198
+ remove(id?: string): Promise<void>;
199
+ /** Check if background frame with the given id exists. */
200
+ has(id?: string): Promise<boolean>;
201
+ /** Get list of all open background frames. */
202
+ list(): Promise<{
203
+ id: string;
204
+ name: string;
205
+ url: string;
206
+ }[]>;
207
+ }
208
+ export interface EposProjects {
209
+ /** Check if project with the given id exists. */
210
+ has(id: string): Promise<boolean>;
211
+ /** Get project with the given id. */
212
+ get<T extends ProjectQuery>(id: string, query?: T): Promise<Project<T> | null>;
213
+ /** Get list of all projects. */
214
+ list<T extends ProjectQuery>(query?: T): Promise<Project<T>[]>;
215
+ /** Create a new project. */
216
+ create<T extends string>(params: Bundle & Partial<{
217
+ id: T;
218
+ } & ProjectSettings>): Promise<T>;
219
+ /** Update an existing project. */
220
+ update(id: string, updates: Partial<Bundle & ProjectSettings>): Promise<void>;
221
+ /** Remove a project. */
222
+ remove(id: string): Promise<void>;
223
+ /** Export a project. */
224
+ export(id: string): Promise<Record<string, Blob>>;
225
+ /** Watch for any project changes. */
226
+ watch(listener: () => void): void;
227
+ /** Fetch project bundle from project's spec URL (epos.json). */
228
+ fetch(url: string): Promise<Bundle>;
229
+ }
230
+ export interface EposLibs {
231
+ mobx: typeof mobx;
232
+ mobxReactLite: typeof mobxReactLite;
233
+ react: typeof react;
234
+ reactDom: typeof reactDom;
235
+ reactDomClient: typeof reactDomClient;
236
+ reactJsxRuntime: typeof reactJsxRuntime;
237
+ yjs: typeof yjs;
238
+ }
239
+ export type { Browser, Spec };
17
240
  export type Attrs = Record<string, string | number>;
18
- export type Asyncify<T> = T extends Fn ? (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>> : T extends object ? {
19
- [K in keyof T]: Asyncify<T[K]>;
20
- } : T;
21
241
  export type Root<T> = Initial<T> & {
22
242
  ':version'?: number;
23
243
  };
24
244
  export type Initial<T> = T extends Obj ? T : Instance<T>;
245
+ export type Instance<T> = T extends object ? Exclude<T, Obj | Arr | Fn> : never;
25
246
  export type Versioner<T> = Record<number, (this: Root<T>, state: Root<T>) => void>;
26
- export type { Browser, Spec };
27
- export type Manifest = chrome.runtime.ManifestV3;
247
+ export type RpcTarget = Obj<any>;
248
+ export type FnArgsOrArr<T> = T extends Fn ? Parameters<T> : Arr;
249
+ export type FnResultOrValue<T> = T extends Fn ? ReturnType<T> : T;
28
250
  export type Sources = {
29
251
  [path: string]: string;
30
252
  };
@@ -36,6 +258,7 @@ export type Bundle = {
36
258
  sources: Sources;
37
259
  assets: Assets;
38
260
  };
261
+ export type Manifest = chrome.runtime.ManifestV3;
39
262
  export type ProjectSettings = {
40
263
  debug: boolean;
41
264
  enabled: boolean;
@@ -70,6 +293,9 @@ export type Project<T extends ProjectQuery = {}> = ProjectBase & (T extends {
70
293
  } ? {
71
294
  assets: Assets;
72
295
  } : {});
296
+ export type Rpc<T extends RpcTarget> = {
297
+ [K in keyof T]: T[K] extends Fn ? (...args: Parameters<T[K]>) => Promise<Awaited<ReturnType<T[K]>>> : never;
298
+ };
73
299
  export type ReqInit = {
74
300
  body: RequestInit['body'];
75
301
  cache: RequestInit['cache'];
@@ -96,181 +322,6 @@ export type Res = {
96
322
  json: Response['json'];
97
323
  blob: Response['blob'];
98
324
  };
99
- export type Bus = {
100
- /** Register event listener. */
101
- on<T extends Fn>(name: string, callback: T, thisArg?: unknown): void;
102
- /** Remove event listener. */
103
- off<T extends Fn>(name: string, callback?: T): void;
104
- /** Register one-time event listener. */
105
- once<T extends Fn>(name: string, callback: T, thisArg?: unknown): void;
106
- /** Send event to all remote listeners (local listeners ignored). */
107
- send<T>(name: string, ...args: FnArgsOrArr<T>): Promise<FnResultOrValue<T> | null>;
108
- /** Call local listeners (remote listeners ignored). */
109
- emit<T>(name: string, ...args: FnArgsOrArr<T>): Promise<FnResultOrValue<T> | null>;
110
- /** Set signal with optional value. */
111
- setSignal(name: string, value?: unknown): void;
112
- /** Wait for signal to be set. */
113
- waitSignal<T>(name: string, timeout?: number): Promise<T | null>;
114
- /** Register RPC API. */
115
- register(name: string, api: unknown): void;
116
- /** Unregister RPC API. */
117
- unregister(name: string): void;
118
- /** Use RPC API. */
119
- use<T>(name: string): Asyncify<T>;
120
- };
121
- export interface Epos {
122
- fetch: (url: string | URL, init?: ReqInit) => Promise<Res>;
123
- browser: Browser;
124
- render(node: react.ReactNode, container?: reactDomClient.Container): void;
125
- component<T>(Component: react.FC<T>): react.FC<T>;
126
- env: {
127
- /** `tabId` is `-1` for `<background>`, regular iframes and iframes created with `epos.frames.create`. */
128
- tabId: -1 | number;
129
- /** `windowId` is `-1` for `<background>`, regular iframes and iframes created with `epos.frames.create`. */
130
- windowId: -1 | number;
131
- isPopup: boolean;
132
- isSidePanel: boolean;
133
- isBackground: boolean;
134
- project: ProjectBase;
135
- };
136
- dom: {
137
- root: HTMLDivElement;
138
- reactRoot: HTMLDivElement;
139
- shadowRoot: ShadowRoot;
140
- shadowReactRoot: HTMLDivElement;
141
- };
142
- bus: Bus & {
143
- for(namespace: string): Bus;
144
- };
145
- state: {
146
- /** Connect state. */
147
- connect: {
148
- <T>(initial?: Initial<T>, versioner?: Versioner<T>): Promise<T>;
149
- <T>(name?: string, initial?: Initial<T>, versioner?: Versioner<T>): Promise<T>;
150
- };
151
- /** Disconnect state. */
152
- disconnect(name?: string): void;
153
- /** Run state changes in a batch. */
154
- transaction: (fn: () => void) => void;
155
- /** Create local state (no sync). */
156
- create<T>(initial?: Initial<T>): T;
157
- /** Get list of all state names. */
158
- list(filter?: {
159
- connected?: boolean;
160
- }): Promise<{
161
- name: string | null;
162
- connected: boolean;
163
- }[]>;
164
- /** Remove state and all its data. */
165
- remove(name?: string): Promise<void>;
166
- /** Register models that can be used by all states. */
167
- register(models: Record<string, Cls>): void;
168
- PARENT: symbol;
169
- ATTACH: symbol;
170
- DETACH: symbol;
171
- };
172
- storage: {
173
- /** Get value from storage. */
174
- get: {
175
- <T>(key: string): Promise<T | null>;
176
- <T>(name: string, key: string): Promise<T | null>;
177
- };
178
- /** Set value in storage. */
179
- set: {
180
- <T>(key: string, value: T): Promise<void>;
181
- <T>(name: string, key: string, value: T): Promise<void>;
182
- };
183
- /** Delete key from storage. */
184
- delete: {
185
- (key: string): Promise<void>;
186
- (name: string, key: string): Promise<void>;
187
- };
188
- /** Get all storage keys. */
189
- keys(name?: string): Promise<string[]>;
190
- /** Get list of all storages. */
191
- list(): Promise<{
192
- name: string | null;
193
- keys: string[];
194
- }[]>;
195
- /** Remove storage and all its data. */
196
- remove(name?: string): Promise<void>;
197
- /** Create storage API for the specific storage. */
198
- for(name?: string): {
199
- /** Get value from storage. */
200
- get<T>(key: string): Promise<T | null>;
201
- /** Set value in storage. */
202
- set(key: string, value: unknown): Promise<void>;
203
- /** Delete key from storage. */
204
- delete(key: string): Promise<void>;
205
- /** Get all keys from storage. */
206
- keys(): Promise<string[]>;
207
- /** Remove storage and all its data. */
208
- remove(): Promise<void>;
209
- };
210
- };
211
- frames: {
212
- /** Open background frame. */
213
- create(url: string, attrs?: Attrs): Promise<string>;
214
- /** Remove background frame. */
215
- remove(id?: string): Promise<void>;
216
- /** Check if background frame with given id exists. */
217
- has(id?: string): Promise<boolean>;
218
- /** Get list of all open background frames. */
219
- list(): Promise<{
220
- id: string;
221
- url: string;
222
- }[]>;
223
- };
224
- assets: {
225
- /** Get asset URL. Asset must be loaded first via `epos.assets.load`. */
226
- url(path: string): string;
227
- /** Get asset as Blob. */
228
- get(path: string): Promise<Blob | null>;
229
- /** Get list of all available assets. */
230
- list(filter?: {
231
- loaded?: boolean;
232
- }): {
233
- path: string;
234
- loaded: boolean;
235
- }[];
236
- /** Load specified asset to memory. Load all assets if no path is provided. */
237
- load: {
238
- /** Load all assets. */
239
- (): Promise<void>;
240
- /** Load asset by path. */
241
- (path: string): Promise<void>;
242
- };
243
- /** Unload all assets from memory or unload specific asset by path. */
244
- unload: {
245
- /** Unload all assets. */
246
- (): void;
247
- /** Unload asset by path. */
248
- (path: string): void;
249
- };
250
- };
251
- projects: {
252
- has(id: string): Promise<boolean>;
253
- get<T extends ProjectQuery>(id: string, query?: T): Promise<Project<T> | null>;
254
- list<T extends ProjectQuery>(query?: T): Promise<Project<T>[]>;
255
- create<T extends string>(params: Bundle & Partial<{
256
- id: T;
257
- } & ProjectSettings>): Promise<T>;
258
- update(id: string, updates: Partial<Bundle & ProjectSettings>): Promise<void>;
259
- remove(id: string): Promise<void>;
260
- export(id: string): Promise<Record<string, Blob>>;
261
- watch(listener: () => void): void;
262
- fetch(url: string): Promise<Bundle>;
263
- };
264
- libs: {
265
- mobx: typeof mobx;
266
- mobxReactLite: typeof mobxReactLite;
267
- react: typeof react;
268
- reactDom: typeof reactDom;
269
- reactDomClient: typeof reactDomClient;
270
- reactJsxRuntime: typeof reactJsxRuntime;
271
- yjs: typeof yjs;
272
- };
273
- }
274
325
  declare global {
275
326
  var epos: Epos;
276
327
  }
package/dist/epos.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"epos.js","sourceRoot":"","sources":["../src/epos.ts"],"names":[],"mappings":"AAwPA,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA;AAExB,eAAe,KAAK,CAAA"}
1
+ {"version":3,"file":"epos.js","sourceRoot":"","sources":["../src/epos.ts"],"names":[],"mappings":"AA4SA,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA;AAExB,eAAe,KAAK,CAAA"}
@@ -1,2 +1,2 @@
1
1
  export const { enableStaticRendering, isUsingStaticRendering, observer, Observer, observerBatching, useAsObservableSource, useLocalObservable, useLocalStore, useObserver, useStaticRendering, } = epos.libs.mobxReactLite;
2
- //# sourceMappingURL=epos-vite-mobx-react-lite.js.map
2
+ //# sourceMappingURL=mobx-react-lite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobx-react-lite.js","sourceRoot":"","sources":["../../src/libs/mobx-react-lite.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EACX,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA"}
@@ -1,2 +1,2 @@
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.libs.mobx;
2
- //# sourceMappingURL=epos-vite-mobx.js.map
2
+ //# sourceMappingURL=mobx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobx.js","sourceRoot":"","sources":["../../src/libs/mobx.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EACX,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,GAAG,EACH,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,GAAG,EACH,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,MAAM,EACN,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,IAAI,EACJ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,EACL,WAAW,EACX,SAAS,EACT,MAAM,EACN,IAAI,GACL,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export default epos.libs.reactDomClient;
2
2
  export const { createRoot, hydrateRoot } = epos.libs.reactDomClient;
3
- //# sourceMappingURL=epos-vite-react-dom-client.js.map
3
+ //# sourceMappingURL=react-dom-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-dom-client.js","sourceRoot":"","sources":["../../src/libs/react-dom-client.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA;AACvC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export default epos.libs.reactDom;
2
2
  export const { createPortal, flushSync, preconnect, prefetchDNS, preinit, preinitModule, preload, preloadModule, requestFormReset, unstable_batchedUpdates, useFormState, useFormStatus, version, } = epos.libs.reactDom;
3
- //# sourceMappingURL=epos-vite-react-dom.js.map
3
+ //# sourceMappingURL=react-dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-dom.js","sourceRoot":"","sources":["../../src/libs/react-dom.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;AACjC,MAAM,CAAC,MAAM,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,aAAa,EACb,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,OAAO,GACR,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export default epos.libs.reactJsxRuntime;
2
2
  export const { Fragment, jsx, jsxs } = epos.libs.reactJsxRuntime;
3
- //# sourceMappingURL=epos-vite-react-jsx-runtime.js.map
3
+ //# sourceMappingURL=react-jsx-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-jsx-runtime.js","sourceRoot":"","sources":["../../src/libs/react-jsx-runtime.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA;AACxC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export default epos.libs.react;
2
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;
3
- //# sourceMappingURL=epos-vite-react.js.map
3
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/libs/react.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;AAC9B,MAAM,CAAC,MAAM,EACX,GAAG,EACH,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,UAAU,EACV,QAAQ,EACR,GAAG,EACH,cAAc,EACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,aAAa,EACb,UAAU,EACV,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA"}
@@ -12,18 +12,21 @@ export type Spec = {
12
12
  description: string | null;
13
13
  icon: string | null;
14
14
  action: Action | null;
15
+ options: Options;
15
16
  popup: Popup;
16
- config: Config;
17
17
  assets: Path[];
18
18
  targets: Target[];
19
- permissions: Permissions;
19
+ permissions: Permission[];
20
+ optionalPermissions: Permission[];
21
+ hostPermissions: string[];
22
+ optionalHostPermissions: string[];
20
23
  manifest: Manifest | null;
21
24
  };
22
25
  export type Popup = {
23
26
  width: number;
24
27
  height: number;
25
28
  };
26
- export type Config = {
29
+ export type Options = {
27
30
  preloadAssets: boolean;
28
31
  allowProjectsApi: boolean;
29
32
  allowMissingModels: boolean;
@@ -48,10 +51,6 @@ export type Resource = {
48
51
  type: 'js' | 'css' | 'lite-js' | 'shadow-css';
49
52
  path: Path;
50
53
  };
51
- export type Permissions = {
52
- required: Permission[];
53
- optional: Permission[];
54
- };
55
- export type Permission = 'background' | 'browsingData' | 'contextMenus' | 'cookies' | 'downloads' | 'notifications' | 'storage';
56
- export declare function parseSpecJson(json: string): Spec;
57
- export declare function parseSpecObject(spec: Obj): Spec;
54
+ export type Permission = 'background' | 'browsingData' | 'contextMenus' | 'cookies' | 'downloads' | 'notifications' | 'sidePanel' | 'storage';
55
+ export declare const parseSpecJson: (json: string) => Spec;
56
+ export declare const parseSpecObject: (spec: Obj) => Spec;
@@ -1,6 +1,8 @@
1
1
  import { ensureArray, is, safeSync, unique } from '@eposlabs/utils';
2
2
  import { matchPattern } from 'browser-extension-url-match';
3
3
  import stripJsonComments from 'strip-json-comments';
4
+ // MARK: Schema
5
+ // ============================================================================
4
6
  const schema = {
5
7
  keys: [
6
8
  '$schema',
@@ -11,10 +13,13 @@ const schema = {
11
13
  'icon',
12
14
  'action',
13
15
  'popup',
14
- 'config',
16
+ 'options',
15
17
  'assets',
16
18
  'targets',
17
19
  'permissions',
20
+ 'optionalPermissions',
21
+ 'hostPermissions',
22
+ 'optionalHostPermissions',
18
23
  'manifest',
19
24
  ],
20
25
  name: { min: 2, max: 45 },
@@ -26,7 +31,7 @@ const schema = {
26
31
  width: { min: 150, max: 800, default: 380 },
27
32
  height: { min: 150, max: 600 - 7 * 4, default: 600 - 7 * 4 },
28
33
  },
29
- config: {
34
+ options: {
30
35
  preloadAssets: true,
31
36
  allowProjectsApi: false,
32
37
  allowMissingModels: false,
@@ -41,17 +46,13 @@ const schema = {
41
46
  'cookies',
42
47
  'downloads',
43
48
  'notifications',
49
+ 'sidePanel',
44
50
  'storage',
45
- 'optional:background',
46
- 'optional:browsingData',
47
- 'optional:contextMenus',
48
- 'optional:cookies',
49
- 'optional:downloads',
50
- 'optional:notifications',
51
- 'optional:storage',
52
51
  ],
53
52
  };
54
- export function parseSpecJson(json) {
53
+ // MARK: Parsers
54
+ // ============================================================================
55
+ export const parseSpecJson = (json) => {
55
56
  if (!is.string(json))
56
57
  throw new Error(`Failed to parse JSON: input is not a string`);
57
58
  json = stripJsonComments(json);
@@ -59,8 +60,8 @@ export function parseSpecJson(json) {
59
60
  if (error)
60
61
  throw new Error(`Failed to parse JSON: ${error.message}`);
61
62
  return parseSpecObject(spec);
62
- }
63
- export function parseSpecObject(spec) {
63
+ };
64
+ export const parseSpecObject = (spec) => {
64
65
  if (!is.object(spec))
65
66
  throw new Error(`Epos spec must be an object`);
66
67
  const keys = [...schema.keys, ...schema.target.keys];
@@ -78,14 +79,17 @@ export function parseSpecObject(spec) {
78
79
  icon: icon,
79
80
  action: parseAction(spec, targets),
80
81
  popup: parsePopup(spec),
81
- config: parseConfig(spec),
82
+ options: parseOptions(spec),
82
83
  assets: parseAssets(spec, icon),
83
84
  targets: targets,
84
85
  permissions: parsePermissions(spec),
86
+ optionalPermissions: parseOptionalPermissions(spec),
87
+ hostPermissions: parseHostPermissions(spec),
88
+ optionalHostPermissions: parseOptionalHostPermissions(spec),
85
89
  manifest: parseManifest(spec),
86
90
  };
87
- }
88
- function parseName(spec) {
91
+ };
92
+ const parseName = (spec) => {
89
93
  if (!('name' in spec))
90
94
  throw new Error(`'name' field is required`);
91
95
  const name = spec.name;
@@ -97,8 +101,8 @@ function parseName(spec) {
97
101
  if (name.length > max)
98
102
  throw new Error(`'name' must be at most ${max} characters`);
99
103
  return name;
100
- }
101
- function parseSlug(spec, name) {
104
+ };
105
+ const parseSlug = (spec, name) => {
102
106
  if (!('slug' in spec))
103
107
  return slugify(name);
104
108
  const slug = spec.slug;
@@ -116,8 +120,8 @@ function parseSlug(spec, name) {
116
120
  if (!regex.test(slug))
117
121
  throw new Error(`'slug' must match regex: ${regex}`);
118
122
  return slug;
119
- }
120
- function parseVersion(spec) {
123
+ };
124
+ const parseVersion = (spec) => {
121
125
  if (!('version' in spec))
122
126
  return '0.0.1';
123
127
  const version = spec.version;
@@ -126,8 +130,8 @@ function parseVersion(spec) {
126
130
  if (!schema.version.regex.test(version))
127
131
  throw new Error(`'version' must be in format V.V.V, or V.V, or V`);
128
132
  return version;
129
- }
130
- function parseDescription(spec) {
133
+ };
134
+ const parseDescription = (spec) => {
131
135
  if (!('description' in spec))
132
136
  return null;
133
137
  const description = spec.description;
@@ -137,16 +141,16 @@ function parseDescription(spec) {
137
141
  if (description.length > max)
138
142
  throw new Error(`'description' must be at most ${max} characters`);
139
143
  return description;
140
- }
141
- function parseIcon(spec) {
144
+ };
145
+ const parseIcon = (spec) => {
142
146
  if (!('icon' in spec))
143
147
  return null;
144
148
  const icon = spec.icon;
145
149
  if (!is.string(icon))
146
150
  throw new Error(`'icon' must be a string`);
147
151
  return parsePath(icon);
148
- }
149
- function parseAction(spec, targets) {
152
+ };
153
+ const parseAction = (spec, targets) => {
150
154
  const matches = targets.flatMap(target => target.matches);
151
155
  const hasPopup = matches.some(match => match.context === 'locus' && match.value === 'popup');
152
156
  const hasSidePanel = matches.some(match => match.context === 'locus' && match.value === 'sidePanel');
@@ -162,8 +166,8 @@ function parseAction(spec, targets) {
162
166
  if (!isValidUrl(action))
163
167
  throw new Error(`Invalid 'action' URL: '${JSON.stringify(action)}'`);
164
168
  return action;
165
- }
166
- function parsePopup(spec) {
169
+ };
170
+ const parsePopup = (spec) => {
167
171
  const popup = structuredClone(spec.popup ?? {});
168
172
  if (!is.object(popup))
169
173
  throw new Error(`'popup' must be an object`);
@@ -186,31 +190,31 @@ function parsePopup(spec) {
186
190
  if (popup.height > height.max)
187
191
  throw new Error(`'popup.height' must be ≤ ${height.max}`);
188
192
  return popup;
189
- }
190
- function parseConfig(spec) {
191
- const config = spec.config ?? {};
192
- if (!is.object(config))
193
- throw new Error(`'config' must be an object`);
194
- const configKeys = Object.keys(schema.config);
195
- const badKey = Object.keys(config).find(key => !configKeys.includes(key));
193
+ };
194
+ const parseOptions = (spec) => {
195
+ const options = spec.options ?? {};
196
+ if (!is.object(options))
197
+ throw new Error(`'options' must be an object`);
198
+ const optionKeys = Object.keys(schema.options);
199
+ const badKey = Object.keys(options).find(key => !optionKeys.includes(key));
196
200
  if (badKey)
197
- throw new Error(`Unknown 'config' key: '${badKey}'`);
198
- const preloadAssets = config.preloadAssets ?? schema.config.preloadAssets;
201
+ throw new Error(`Unknown 'options' key: '${badKey}'`);
202
+ const preloadAssets = options.preloadAssets ?? schema.options.preloadAssets;
199
203
  if (!is.boolean(preloadAssets))
200
- throw new Error(`'config.preloadAssets' must be a boolean`);
201
- const allowProjectsApi = config.allowProjectsApi ?? schema.config.allowProjectsApi;
204
+ throw new Error(`'options.preloadAssets' must be a boolean`);
205
+ const allowProjectsApi = options.allowProjectsApi ?? schema.options.allowProjectsApi;
202
206
  if (!is.boolean(allowProjectsApi))
203
- throw new Error(`'config.allowProjectsApi' must be a boolean`);
204
- const allowMissingModels = config.allowMissingModels ?? schema.config.allowMissingModels;
207
+ throw new Error(`'options.allowProjectsApi' must be a boolean`);
208
+ const allowMissingModels = options.allowMissingModels ?? schema.options.allowMissingModels;
205
209
  if (!is.boolean(allowMissingModels))
206
- throw new Error(`'config.allowMissingModels' must be a boolean`);
210
+ throw new Error(`'options.allowMissingModels' must be a boolean`);
207
211
  return {
208
212
  preloadAssets,
209
213
  allowProjectsApi,
210
214
  allowMissingModels,
211
215
  };
212
- }
213
- function parseAssets(spec, icon) {
216
+ };
217
+ const parseAssets = (spec, icon) => {
214
218
  const assets = structuredClone(spec.assets ?? []);
215
219
  if (!isArrayOfStrings(assets))
216
220
  throw new Error(`'assets' must be an array of strings`);
@@ -218,8 +222,8 @@ function parseAssets(spec, icon) {
218
222
  if (icon)
219
223
  assets.push(icon);
220
224
  return unique(assets.map(path => parsePath(path)));
221
- }
222
- function parseTargets(spec) {
225
+ };
226
+ const parseTargets = (spec) => {
223
227
  const targets = structuredClone(spec.targets ?? []);
224
228
  if (!is.array(targets))
225
229
  throw new Error(`'targets' must be an array`);
@@ -231,8 +235,8 @@ function parseTargets(spec) {
231
235
  });
232
236
  }
233
237
  return targets.map(target => parseTarget(target));
234
- }
235
- function parseTarget(target) {
238
+ };
239
+ const parseTarget = (target) => {
236
240
  if (!is.object(target))
237
241
  throw new Error(`Each target must be an object`);
238
242
  const { keys } = schema.target;
@@ -243,12 +247,12 @@ function parseTarget(target) {
243
247
  matches: parseMatches(target),
244
248
  resources: parseResources(target),
245
249
  };
246
- }
247
- function parseMatches(target) {
250
+ };
251
+ const parseMatches = (target) => {
248
252
  const matches = ensureArray(target.matches ?? []);
249
253
  return matches.map(match => parseMatch(match)).flat();
250
- }
251
- function parseMatch(match) {
254
+ };
255
+ const parseMatch = (match) => {
252
256
  if (!is.string(match))
253
257
  throw new Error(`Invalid match pattern: '${JSON.stringify(match)}'`);
254
258
  if (match === '<popup>')
@@ -278,20 +282,20 @@ function parseMatch(match) {
278
282
  { context, value: parseMatchPattern(pattern) },
279
283
  { context, value: parseMatchPattern(`${pattern}?*`) },
280
284
  ];
281
- }
282
- function parseMatchPattern(pattern) {
285
+ };
286
+ const parseMatchPattern = (pattern) => {
283
287
  const matcher = matchPattern(pattern);
284
288
  if (!matcher.valid)
285
289
  throw new Error(`Invalid match pattern: '${pattern}'`);
286
290
  return pattern;
287
- }
288
- function parseResources(target) {
291
+ };
292
+ const parseResources = (target) => {
289
293
  const load = ensureArray(target.load ?? []);
290
294
  if (!isArrayOfStrings(load))
291
295
  throw new Error(`'load' must be an array of strings`);
292
296
  return load.map(loadEntry => parseResource(loadEntry));
293
- }
294
- function parseResource(loadEntry) {
297
+ };
298
+ const parseResource = (loadEntry) => {
295
299
  const isJs = loadEntry.toLowerCase().endsWith('.js');
296
300
  const isCss = loadEntry.toLowerCase().endsWith('.css');
297
301
  if (!isJs && !isCss)
@@ -309,52 +313,58 @@ function parseResource(loadEntry) {
309
313
  else {
310
314
  return { path: parsePath(loadEntry), type: isJs ? 'js' : 'css' };
311
315
  }
312
- }
313
- function parsePermissions(spec) {
316
+ };
317
+ const parsePermissions = (spec) => {
314
318
  const permissions = spec.permissions ?? [];
315
319
  if (!isArrayOfStrings(permissions))
316
320
  throw new Error(`'permissions' must be an array of strings`);
317
321
  const badPermission = permissions.find(value => !schema.permissions.includes(value));
318
322
  if (badPermission)
319
323
  throw new Error(`Unknown permission: '${badPermission}'`);
320
- const requiredPermissions = new Set();
321
- const optionalPermissions = new Set();
322
- for (const permission of permissions) {
323
- if (permission.startsWith('optional:')) {
324
- optionalPermissions.add(permission.replace('optional:', ''));
325
- }
326
- else {
327
- requiredPermissions.add(permission);
328
- }
329
- }
330
- for (const permission of requiredPermissions) {
331
- if (optionalPermissions.has(permission)) {
332
- throw new Error(`Permission cannot be both required and optional: '${permission}'`);
333
- }
334
- }
335
- return {
336
- required: [...requiredPermissions],
337
- optional: [...optionalPermissions],
338
- };
339
- }
340
- function parseManifest(spec) {
324
+ return permissions;
325
+ };
326
+ const parseOptionalPermissions = (spec) => {
327
+ if ('optional_permissions' in spec)
328
+ throw new Error(`Use 'optionalPermissions' instead of 'optional_permissions'`);
329
+ const optionalPermissions = spec.optionalPermissions ?? [];
330
+ if (!isArrayOfStrings(optionalPermissions))
331
+ throw new Error(`'optionalPermissions' must be an array of strings`);
332
+ const badPermission = optionalPermissions.find(value => !schema.permissions.includes(value));
333
+ if (badPermission)
334
+ throw new Error(`Unknown optional permission: '${badPermission}'`);
335
+ return optionalPermissions;
336
+ };
337
+ const parseHostPermissions = (spec) => {
338
+ if ('host_permissions' in spec)
339
+ throw new Error(`Use 'hostPermissions' instead of 'host_permissions'`);
340
+ const hostPermissions = spec.hostPermissions ?? [];
341
+ if (!isArrayOfStrings(hostPermissions))
342
+ throw new Error(`'hostPermissions' must be an array of strings`);
343
+ const hasUnderscoreAllUrls = hostPermissions.find(value => value === '<all_urls>');
344
+ if (hasUnderscoreAllUrls)
345
+ throw new Error(`Use '<allUrls>' instead of '<all_urls>'`);
346
+ return hostPermissions.map(value => (value === '<allUrls>' ? '<all_urls>' : value));
347
+ };
348
+ const parseOptionalHostPermissions = (spec) => {
349
+ if ('optional_host_permissions' in spec)
350
+ throw new Error(`Use 'optionalHostPermissions' instead of 'optional_host_permissions'`);
351
+ const optionalHostPermissions = spec.optionalHostPermissions ?? [];
352
+ if (!isArrayOfStrings(optionalHostPermissions))
353
+ throw new Error(`'optionalHostPermissions' must be an array of strings`);
354
+ const hasUnderscoreAllUrls = optionalHostPermissions.find(value => value === '<all_urls>');
355
+ if (hasUnderscoreAllUrls)
356
+ throw new Error(`Use '<allUrls>' instead of '<all_urls>'`);
357
+ return optionalHostPermissions.map(value => (value === '<allUrls>' ? '<all_urls>' : value));
358
+ };
359
+ const parseManifest = (spec) => {
341
360
  if (!('manifest' in spec))
342
361
  return null;
343
362
  if (!is.object(spec.manifest))
344
363
  throw new Error(`'manifest' must be an object`);
345
364
  return spec.manifest;
346
- }
347
- // HELPERS
348
- // ---------------------------------------------------------------------------
349
- function isArrayOfStrings(value) {
350
- return is.array(value) && value.every(is.string);
351
- }
352
- function isValidUrl(value) {
353
- if (!is.string(value))
354
- return false;
355
- return URL.canParse(value);
356
- }
365
+ };
357
366
  /**
367
+ * Validate and normalize path:
358
368
  * - 'path/to' -> 'path/to'
359
369
  * - 'path/to/' -> 'path/to'
360
370
  * - '/path/to' -> 'path/to'
@@ -364,7 +374,7 @@ function isValidUrl(value) {
364
374
  * - 'path/../to' -> 'path/../to'
365
375
  * - '../path/to' -> throw
366
376
  */
367
- function parsePath(path) {
377
+ const parsePath = (path) => {
368
378
  const normalizedPath = path
369
379
  .split('/')
370
380
  .filter(path => path && path !== '.')
@@ -372,8 +382,18 @@ function parsePath(path) {
372
382
  if (normalizedPath.startsWith('..'))
373
383
  throw new Error(`External paths are not allowed: '${path}'`);
374
384
  return normalizedPath;
375
- }
376
- function slugify(text) {
385
+ };
386
+ // MARK: Helpers
387
+ // ============================================================================
388
+ const isValidUrl = (value) => {
389
+ if (!is.string(value))
390
+ return false;
391
+ return URL.canParse(value);
392
+ };
393
+ const isArrayOfStrings = (value) => {
394
+ return is.array(value) && value.every(is.string);
395
+ };
396
+ const slugify = (text) => {
377
397
  return text
378
398
  .toString() // Ensure it's a string
379
399
  .toLowerCase() // Convert to lowercase
@@ -381,5 +401,5 @@ function slugify(text) {
381
401
  .replace(/[^a-z0-9\s-]/g, '') // Remove all non-alphanumeric characters (except spaces and dashes)
382
402
  .replace(/[\s-]+/g, '-') // Replace spaces and multiple dashes with a single dash
383
403
  .replace(/^-+|-+$/g, ''); // Remove leading and trailing dashes
384
- }
385
- //# sourceMappingURL=epos-spec.js.map
404
+ };
405
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
package/dist/vite.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function epos(): Plugin;
3
+ export default epos;
package/dist/vite.js ADDED
@@ -0,0 +1,20 @@
1
+ import { resolve } from 'node:path';
2
+ const libs = {
3
+ 'react': resolve(import.meta.dirname, './libs/react.js'),
4
+ 'react/jsx-runtime': resolve(import.meta.dirname, './libs/react-jsx-runtime.js'),
5
+ 'react-dom': resolve(import.meta.dirname, './libs/react-dom.js'),
6
+ 'react-dom/client': resolve(import.meta.dirname, './libs/react-dom-client.js'),
7
+ 'mobx': resolve(import.meta.dirname, './libs/mobx.js'),
8
+ 'mobx-react-lite': resolve(import.meta.dirname, './libs/mobx-react-lite.js'),
9
+ };
10
+ export function epos() {
11
+ return {
12
+ name: 'epos',
13
+ enforce: 'pre',
14
+ resolveId(source) {
15
+ return libs[source] ?? null;
16
+ },
17
+ };
18
+ }
19
+ export default epos;
20
+ //# sourceMappingURL=vite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,MAAM,IAAI,GAA2B;IACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACxD,mBAAmB,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC;IAChF,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC;IAChE,kBAAkB,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,4BAA4B,CAAC;IAC9E,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACtD,iBAAiB,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC;CAC7E,CAAA;AAED,MAAM,UAAU,IAAI;IAClB,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,KAAK;QACd,SAAS,CAAC,MAAM;YACd,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;QAC7B,CAAC;KACF,CAAA;AACH,CAAC;AAED,eAAe,IAAI,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epos",
3
- "version": "1.55.0",
3
+ "version": "1.58.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "imkost",
@@ -13,17 +13,17 @@
13
13
  },
14
14
  "exports": {
15
15
  ".": "./dist/epos.js",
16
- "./vite": "./dist/epos-vite.js",
17
- "./spec": "./dist/epos-spec.js",
18
- "./browser": "./dist/epos-browser.js"
16
+ "./vite": "./dist/vite.js",
17
+ "./spec": "./dist/spec.js",
18
+ "./browser": "./dist/browser.js"
19
19
  },
20
20
  "files": [
21
21
  "dist"
22
22
  ],
23
23
  "dependencies": {
24
- "@eposlabs/utils": "^1.19.0",
25
- "@types/chrome": "^0.1.36",
26
- "@types/react": "^19.2.9",
24
+ "@eposlabs/utils": "1.23.0",
25
+ "@types/chrome": "^0.1.37",
26
+ "@types/react": "^19.2.14",
27
27
  "@types/react-dom": "^19.2.3",
28
28
  "browser-extension-url-match": "^1.2.0",
29
29
  "mobx": "^6.15.0",
@@ -32,9 +32,9 @@
32
32
  "yjs": "^13.6.29"
33
33
  },
34
34
  "devDependencies": {
35
- "vite": "^8.0.0-beta.0"
35
+ "vite": "^8.0.0-beta.16"
36
36
  },
37
37
  "peerDependencies": {
38
- "vite": "^8.0.0-beta.0"
38
+ "vite": "^8.0.0-beta.16"
39
39
  }
40
40
  }
@@ -1,2 +0,0 @@
1
- import 'chrome';
2
- //# sourceMappingURL=epos-browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-browser.js","sourceRoot":"","sources":["../src/epos-browser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-spec.js","sourceRoot":"","sources":["../src/epos-spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-vite-mobx-react-lite.js","sourceRoot":"","sources":["../src/epos-vite-mobx-react-lite.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EACX,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-vite-mobx.js","sourceRoot":"","sources":["../src/epos-vite-mobx.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EACX,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,GAAG,EACH,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,GAAG,EACH,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,MAAM,EACN,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,IAAI,EACJ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,EACL,WAAW,EACX,SAAS,EACT,MAAM,EACN,IAAI,GACL,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-vite-react-dom-client.js","sourceRoot":"","sources":["../src/epos-vite-react-dom-client.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA;AACvC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-vite-react-dom.js","sourceRoot":"","sources":["../src/epos-vite-react-dom.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;AACjC,MAAM,CAAC,MAAM,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,aAAa,EACb,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,OAAO,GACR,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-vite-react-jsx-runtime.js","sourceRoot":"","sources":["../src/epos-vite-react-jsx-runtime.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA;AACxC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-vite-react.js","sourceRoot":"","sources":["../src/epos-vite-react.js"],"names":[],"mappings":"AAAA,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;AAC9B,MAAM,CAAC,MAAM,EACX,GAAG,EACH,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,eAAe,EACf,UAAU,EACV,QAAQ,EACR,GAAG,EACH,cAAc,EACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,aAAa,EACb,UAAU,EACV,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA"}
@@ -1,8 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- export declare class EposVite {
3
- private libs;
4
- get plugin(): Plugin;
5
- private onResolveId;
6
- }
7
- export declare function epos(): Plugin<any>;
8
- export default epos;
package/dist/epos-vite.js DELETED
@@ -1,26 +0,0 @@
1
- import { resolve } from 'node:path';
2
- export class EposVite {
3
- libs = {
4
- 'react': resolve(import.meta.dirname, './epos-vite-react.js'),
5
- 'react/jsx-runtime': resolve(import.meta.dirname, './epos-vite-react-jsx-runtime.js'),
6
- 'react-dom': resolve(import.meta.dirname, './epos-vite-react-dom.js'),
7
- 'react-dom/client': resolve(import.meta.dirname, './epos-vite-react-dom-client.js'),
8
- 'mobx': resolve(import.meta.dirname, './epos-vite-mobx.js'),
9
- 'mobx-react-lite': resolve(import.meta.dirname, './epos-vite-mobx-react-lite.js'),
10
- };
11
- get plugin() {
12
- return {
13
- name: 'epos',
14
- enforce: 'pre',
15
- resolveId: this.onResolveId,
16
- };
17
- }
18
- onResolveId = (source) => {
19
- return this.libs[source] ?? null;
20
- };
21
- }
22
- export function epos() {
23
- return new EposVite().plugin;
24
- }
25
- export default epos;
26
- //# sourceMappingURL=epos-vite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"epos-vite.js","sourceRoot":"","sources":["../src/epos-vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,MAAM,OAAO,QAAQ;IACX,IAAI,GAA2B;QACrC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAC7D,mBAAmB,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,kCAAkC,CAAC;QACrF,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC;QACrE,kBAAkB,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,iCAAiC,CAAC;QACnF,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC;QAC3D,iBAAiB,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,gCAAgC,CAAC;KAClF,CAAA;IAED,IAAI,MAAM,GAAW;QACnB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAA;IAAA,CACF;IAEO,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;IAAA,CACjC,CAAA;CACF;AAED,MAAM,UAAU,IAAI,GAAG;IACrB,OAAO,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAA;AAAA,CAC7B;AAED,eAAe,IAAI,CAAA"}
File without changes
File without changes