@phpsandbox/sdk 0.0.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.
Files changed (90) hide show
  1. package/README.md +718 -0
  2. package/dist/auth.d.ts +14 -0
  3. package/dist/auth.d.ts.map +1 -0
  4. package/dist/auth.js +12 -0
  5. package/dist/auth.js.map +1 -0
  6. package/dist/beacon/index.d.ts +169 -0
  7. package/dist/beacon/index.d.ts.map +1 -0
  8. package/dist/beacon/index.js +537 -0
  9. package/dist/beacon/index.js.map +1 -0
  10. package/dist/beacon/navigator.d.ts +141 -0
  11. package/dist/beacon/navigator.d.ts.map +1 -0
  12. package/dist/beacon/navigator.js +246 -0
  13. package/dist/beacon/navigator.js.map +1 -0
  14. package/dist/beacon/types.d.ts +230 -0
  15. package/dist/beacon/types.d.ts.map +1 -0
  16. package/dist/beacon/types.js +2 -0
  17. package/dist/beacon/types.js.map +1 -0
  18. package/dist/browser/phpsandbox-sdk.esm.js +4755 -0
  19. package/dist/browser/phpsandbox-sdk.esm.js.map +7 -0
  20. package/dist/browser/phpsandbox-sdk.esm.min.js +27 -0
  21. package/dist/browser/phpsandbox-sdk.esm.min.js.map +7 -0
  22. package/dist/browser/phpsandbox-sdk.iife.js +4766 -0
  23. package/dist/browser/phpsandbox-sdk.iife.js.map +7 -0
  24. package/dist/browser/phpsandbox-sdk.iife.min.js +27 -0
  25. package/dist/browser/phpsandbox-sdk.iife.min.js.map +7 -0
  26. package/dist/composer.d.ts +45 -0
  27. package/dist/composer.d.ts.map +1 -0
  28. package/dist/composer.js +30 -0
  29. package/dist/composer.js.map +1 -0
  30. package/dist/container.d.ts +66 -0
  31. package/dist/container.d.ts.map +1 -0
  32. package/dist/container.js +56 -0
  33. package/dist/container.js.map +1 -0
  34. package/dist/events/index.d.ts +23 -0
  35. package/dist/events/index.d.ts.map +1 -0
  36. package/dist/events/index.js +46 -0
  37. package/dist/events/index.js.map +1 -0
  38. package/dist/filesystem.d.ts +483 -0
  39. package/dist/filesystem.d.ts.map +1 -0
  40. package/dist/filesystem.js +244 -0
  41. package/dist/filesystem.js.map +1 -0
  42. package/dist/git.d.ts +42 -0
  43. package/dist/git.d.ts.map +1 -0
  44. package/dist/git.js +18 -0
  45. package/dist/git.js.map +1 -0
  46. package/dist/index.d.ts +167 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +265 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/laravel.d.ts +23 -0
  51. package/dist/laravel.d.ts.map +1 -0
  52. package/dist/laravel.js +12 -0
  53. package/dist/laravel.js.map +1 -0
  54. package/dist/log.d.ts +13 -0
  55. package/dist/log.d.ts.map +1 -0
  56. package/dist/log.js +12 -0
  57. package/dist/log.js.map +1 -0
  58. package/dist/lsp.d.ts +57 -0
  59. package/dist/lsp.d.ts.map +1 -0
  60. package/dist/lsp.js +69 -0
  61. package/dist/lsp.js.map +1 -0
  62. package/dist/repl.d.ts +41 -0
  63. package/dist/repl.d.ts.map +1 -0
  64. package/dist/repl.js +27 -0
  65. package/dist/repl.js.map +1 -0
  66. package/dist/shell.d.ts +29 -0
  67. package/dist/shell.d.ts.map +1 -0
  68. package/dist/shell.js +29 -0
  69. package/dist/shell.js.map +1 -0
  70. package/dist/socket/index.d.ts +229 -0
  71. package/dist/socket/index.d.ts.map +1 -0
  72. package/dist/socket/index.js +825 -0
  73. package/dist/socket/index.js.map +1 -0
  74. package/dist/terminal.d.ts +97 -0
  75. package/dist/terminal.d.ts.map +1 -0
  76. package/dist/terminal.js +87 -0
  77. package/dist/terminal.js.map +1 -0
  78. package/dist/types.d.ts +16 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +16 -0
  81. package/dist/types.js.map +1 -0
  82. package/dist/utils/disposable.d.ts +7 -0
  83. package/dist/utils/disposable.d.ts.map +1 -0
  84. package/dist/utils/disposable.js +20 -0
  85. package/dist/utils/disposable.js.map +1 -0
  86. package/dist/utils/promise.d.ts +13 -0
  87. package/dist/utils/promise.d.ts.map +1 -0
  88. package/dist/utils/promise.js +21 -0
  89. package/dist/utils/promise.js.map +1 -0
  90. package/package.json +67 -0
@@ -0,0 +1,45 @@
1
+ import { Action, NotebookInstance } from './index.js';
2
+ export interface ComposerEvents {
3
+ 'composer.log': string;
4
+ }
5
+ export interface Result {
6
+ exitCode: number;
7
+ output: string;
8
+ }
9
+ export interface ComposerPackage {
10
+ name: string;
11
+ _installedVersion: string;
12
+ installationMode: 'require' | 'require-dev';
13
+ _installed: boolean;
14
+ }
15
+ export interface ComposerActions {
16
+ 'composer.invoke': Action<{
17
+ command: ComposerCommand;
18
+ args: Argument;
19
+ options: Options;
20
+ }, Result>;
21
+ 'composer.dump-autoload': Action<undefined, {
22
+ message: string;
23
+ success: boolean;
24
+ }>;
25
+ 'composer.packages': Action<undefined, ComposerPackage[]>;
26
+ }
27
+ export type ComposerCommand = 'install' | 'update' | 'require' | 'remove' | 'search' | 'show';
28
+ export type Argument<Name extends string = string, Type extends string | string[] = string | string[]> = Record<Name, Type>;
29
+ export type Options<Name extends string = string, Type extends string | string[] | boolean = string | string[] | boolean> = Record<Name, Type>;
30
+ export default class Composer {
31
+ protected okra: NotebookInstance;
32
+ constructor(okra: NotebookInstance);
33
+ invoke(command: ComposerCommand, args?: Argument, options?: Options): Promise<Result>;
34
+ dumpAutoload(): Promise<{
35
+ message: string;
36
+ success: boolean;
37
+ }>;
38
+ install(options?: Options): Promise<Result>;
39
+ update(args: Argument<'packages'>, options?: Options): Promise<Result>;
40
+ require(packages: Argument<'packages'>, options?: Options): Promise<Result>;
41
+ remove(args: Argument<'packages'>, options?: Options): Promise<Result>;
42
+ stream(fn: (data: string) => void): import("./types.js").Disposable;
43
+ packages(): Promise<ComposerPackage[]>;
44
+ }
45
+ //# sourceMappingURL=composer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,SAAS,GAAG,aAAa,CAAC;IAC5C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAC;QAAE,OAAO,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,MAAM,CAAC,CAAC;IAClG,wBAAwB,EAAE,MAAM,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnF,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;CAC3D;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9F,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAE5H,MAAM,MAAM,OAAO,CACjB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,IACpE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEvB,MAAM,CAAC,OAAO,OAAO,QAAQ;IACf,SAAS,CAAC,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB;IAErC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,GAAE,QAAa,EAAE,OAAO,GAAE,OAAY;IAI3E,YAAY;iBApBoC,MAAM;iBAAW,OAAO;;IAwBxE,OAAO,CAAC,OAAO,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1E,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/E,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1E,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAIjC,QAAQ;CAGhB"}
@@ -0,0 +1,30 @@
1
+ export default class Composer {
2
+ constructor(okra) {
3
+ this.okra = okra;
4
+ }
5
+ invoke(command, args = {}, options = {}) {
6
+ return this.okra.invoke('composer.invoke', { command, args, options });
7
+ }
8
+ dumpAutoload() {
9
+ return this.okra.invoke('composer.dump-autoload');
10
+ }
11
+ install(options = {}) {
12
+ return this.invoke('install', {}, options);
13
+ }
14
+ update(args, options = {}) {
15
+ return this.invoke('update', args, options);
16
+ }
17
+ require(packages, options = {}) {
18
+ return this.invoke('require', packages, options);
19
+ }
20
+ remove(args, options = {}) {
21
+ return this.invoke('remove', args, options);
22
+ }
23
+ stream(fn) {
24
+ return this.okra.listen('composer.log', fn);
25
+ }
26
+ packages() {
27
+ return this.okra.invoke('composer.packages');
28
+ }
29
+ }
30
+ //# sourceMappingURL=composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"AAiCA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,YAAsB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEzC,MAAM,CAAC,OAAwB,EAAE,OAAiB,EAAE,EAAE,UAAmB,EAAE;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACpD,CAAC;IAEM,OAAO,CAAC,UAAmB,EAAE;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,IAA0B,EAAE,UAAmB,EAAE;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEM,OAAO,CAAC,QAA8B,EAAE,UAAmB,EAAE;QAClE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,IAA0B,EAAE,UAAmB,EAAE;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,EAA0B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,66 @@
1
+ import { Action, Disposable, NotebookInstance } from './index.js';
2
+ interface Stat {
3
+ usage: number;
4
+ limit: number;
5
+ }
6
+ export interface ContainerStats {
7
+ cpu: Stat;
8
+ memory: Stat;
9
+ disk: Stat;
10
+ }
11
+ export declare enum NotebookState {
12
+ RUNNING = "running",
13
+ STOPPED = "stopped",
14
+ STARTING = "starting",
15
+ STOPPING = "stopping",
16
+ KILLED = "killed",
17
+ ERROR = "error",
18
+ PROVISIONING = "provisioning"
19
+ }
20
+ export interface ContainerEvents {
21
+ 'container.stats': ContainerStats;
22
+ 'container.ports': PortInfo[];
23
+ }
24
+ export interface PortInfo {
25
+ subdomain: string;
26
+ url: string;
27
+ default: boolean;
28
+ port: number;
29
+ }
30
+ export type TelemetryFeature = 'stats' | 'logs' | 'ports';
31
+ export interface ContainerActions {
32
+ 'container.start': Action<{}, void>;
33
+ 'container.stop': Action<{}, void>;
34
+ 'container.state': Action<{}, {
35
+ state: NotebookState;
36
+ }>;
37
+ 'container.opened-ports': Action<{}, PortInfo[]>;
38
+ 'container.set-php': Action<{
39
+ version: string;
40
+ }, {
41
+ version: string;
42
+ }>;
43
+ 'container.stream-telemetry': Action<{
44
+ features: TelemetryFeature[];
45
+ }, void>;
46
+ 'container.stop-telemetry': Action<{}, void>;
47
+ }
48
+ export default class Container {
49
+ protected okra: NotebookInstance;
50
+ constructor(okra: NotebookInstance);
51
+ start(): Promise<void>;
52
+ stop(): Promise<void>;
53
+ state(): Promise<{
54
+ state: NotebookState;
55
+ }>;
56
+ openedPorts(): Promise<PortInfo[]>;
57
+ setPhp(version: string): Promise<{
58
+ version: string;
59
+ }>;
60
+ enableTelemetry(features: Set<TelemetryFeature>): Promise<void>;
61
+ stopTelemetry(): Promise<void>;
62
+ listen<T extends keyof ContainerEvents>(event: T, handler: (data: ContainerEvents[T]) => void): Disposable;
63
+ onPort(handler: (port: PortInfo, type: 'open' | 'close') => void): Disposable;
64
+ }
65
+ export {};
66
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElE,UAAU,IAAI;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,cAAc,CAAC;IAClC,iBAAiB,EAAE,QAAQ,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC,EAAE,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IACxD,wBAAwB,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,4BAA4B,EAAE,MAAM,CAAC;QAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;KAAE,EAAE,IAAI,CAAC,CAAC;IAC7E,0BAA0B,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;CAC9C;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IAChB,SAAS,CAAC,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB;IAErC,KAAK;IAIL,IAAI;IAIJ,KAAK;eAlB2B,aAAa;;IAsB7C,WAAW;IAIX,MAAM,CAAC,OAAO,EAAE,MAAM;iBAxB+B,MAAM;;IA4B3D,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC;IAI/C,aAAa;IAIb,MAAM,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI;IAI7F,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,GAAG,UAAU;CAiBrF"}
@@ -0,0 +1,56 @@
1
+ export var NotebookState;
2
+ (function (NotebookState) {
3
+ NotebookState["RUNNING"] = "running";
4
+ NotebookState["STOPPED"] = "stopped";
5
+ NotebookState["STARTING"] = "starting";
6
+ NotebookState["STOPPING"] = "stopping";
7
+ NotebookState["KILLED"] = "killed";
8
+ NotebookState["ERROR"] = "error";
9
+ NotebookState["PROVISIONING"] = "provisioning";
10
+ })(NotebookState || (NotebookState = {}));
11
+ export default class Container {
12
+ constructor(okra) {
13
+ this.okra = okra;
14
+ }
15
+ start() {
16
+ return this.okra.invoke('container.start');
17
+ }
18
+ stop() {
19
+ return this.okra.invoke('container.stop');
20
+ }
21
+ state() {
22
+ return this.okra.invoke('container.state');
23
+ }
24
+ openedPorts() {
25
+ return this.okra.invoke('container.opened-ports');
26
+ }
27
+ setPhp(version) {
28
+ return this.okra.invoke('container.set-php', { version });
29
+ }
30
+ enableTelemetry(features) {
31
+ return this.okra.invoke('container.stream-telemetry', { features: Array.from(features) });
32
+ }
33
+ stopTelemetry() {
34
+ return this.okra.invoke('container.stop-telemetry');
35
+ }
36
+ listen(event, handler) {
37
+ return this.okra.listen(event, handler);
38
+ }
39
+ onPort(handler) {
40
+ let ports = [];
41
+ return this.listen('container.ports', (newPorts) => {
42
+ for (const port of newPorts) {
43
+ if (!ports.some((p) => p.port === port.port)) {
44
+ handler(port, 'open');
45
+ }
46
+ }
47
+ for (const port of ports) {
48
+ if (!newPorts.some((p) => p.port === port.port)) {
49
+ handler(port, 'close');
50
+ }
51
+ }
52
+ ports = newPorts;
53
+ });
54
+ }
55
+ }
56
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,8CAA6B,CAAA;AAC/B,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB;AA0BD,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,YAAsB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEzC,KAAK;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEM,eAAe,CAAC,QAA+B;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAkC,KAAQ,EAAE,OAA2C;QAClG,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,OAAyD;QACrE,IAAI,KAAK,GAAe,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE;YACjD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ export interface EventDispatcher {
2
+ listen: (event: any, callback: (data: any) => void, context?: any) => Disposable;
3
+ once: (event: any, callback: (data: any) => void, context?: any) => void;
4
+ emit: (event: any, ...args: any) => void;
5
+ removeListener: (event?: any, callbackSignature?: any) => void;
6
+ }
7
+ import { Emitter, EventHandlerMap, EventType, Handler } from 'mitt';
8
+ import { Disposable } from '../types.js';
9
+ export declare function mittWithOnce<Events extends Record<EventType, unknown>>(all?: EventHandlerMap<Events>): {
10
+ once<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;
11
+ } & Emitter<Events>;
12
+ export default class EventManager implements EventDispatcher {
13
+ static instance: EventDispatcher;
14
+ listen(event: any, callback: (data: any) => void): Disposable;
15
+ emit(event: string, data: any): void;
16
+ once(event: any, callback: (data: any) => void): void;
17
+ static make(): EventDispatcher;
18
+ static refresh(): EventDispatcher;
19
+ removeListener(event?: any, callbackSignature?: any): void;
20
+ static createInstance(): EventDispatcher;
21
+ inspect(): any;
22
+ }
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,UAAU,CAAC;IACjF,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACzE,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAChE;AAED,OAAa,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAOzE;IACxB,IAAI,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;CAChF,GAAG,OAAO,CAAC,MAAM,CAAC,CACpB;AAID,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,eAAe;IAC1D,OAAc,QAAQ,EAAE,eAAe,CAAC;IAEjC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,UAAU;IAU7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAIpC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;WAI9C,IAAI,IAAI,eAAe;WAIvB,OAAO,IAAI,eAAe;IAOjC,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,GAAG,GAAG,IAAI;WAInD,cAAc,IAAI,eAAe;IAOxC,OAAO,IAAI,GAAG;CAGtB"}
@@ -0,0 +1,46 @@
1
+ import mitt from 'mitt';
2
+ export function mittWithOnce(all) {
3
+ // @ts-expect-error
4
+ const inst = mitt(all);
5
+ inst.once = (type, fn) => {
6
+ inst.on(type, fn);
7
+ inst.on(type, inst.off.bind(inst, type, fn));
8
+ };
9
+ return inst;
10
+ }
11
+ let EE = mittWithOnce();
12
+ export default class EventManager {
13
+ listen(event, callback) {
14
+ const dispose = () => {
15
+ this.removeListener(event, callback);
16
+ };
17
+ EE.on(event, callback);
18
+ return { dispose };
19
+ }
20
+ emit(event, data) {
21
+ EE.emit(event, data);
22
+ }
23
+ once(event, callback) {
24
+ EE.once(event, callback);
25
+ }
26
+ static make() {
27
+ return EventManager.instance || (EventManager.instance = new EventManager());
28
+ }
29
+ static refresh() {
30
+ EE.all.clear();
31
+ EE = mittWithOnce();
32
+ return (EventManager.instance = new EventManager());
33
+ }
34
+ removeListener(event, callbackSignature) {
35
+ EE.off(event, callbackSignature);
36
+ }
37
+ static createInstance() {
38
+ EE = mittWithOnce();
39
+ EventManager.instance = new EventManager();
40
+ return EventManager.instance;
41
+ }
42
+ inspect() {
43
+ return EE.all;
44
+ }
45
+ }
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAOA,OAAO,IAAsD,MAAM,MAAM,CAAC;AAG1E,MAAM,UAAU,YAAY,CAA4C,GAA6B;IACnG,mBAAmB;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAkB,EAAE,EAAiC,EAAE,EAAE;QACpE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,OAAO,IAEY,CAAC;AACtB,CAAC;AAED,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,YAAY;IAGxB,MAAM,CAAC,KAAU,EAAE,QAA6B;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEvB,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAEM,IAAI,CAAC,KAAa,EAAE,IAAS;QAClC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAEM,IAAI,CAAC,KAAU,EAAE,QAA6B;QACnD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,IAAI;QAChB,OAAO,YAAY,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC,CAAC;IAC/E,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,EAAE,GAAG,YAAY,EAAE,CAAC;QAEpB,OAAO,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,cAAc,CAAC,KAAW,EAAE,iBAAuB;QACxD,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,cAAc;QAC1B,EAAE,GAAG,YAAY,EAAE,CAAC;QACpB,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAE3C,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAC,GAAG,CAAC;IAChB,CAAC;CACF"}