@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
package/dist/auth.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { Action, NotebookInstance } from './index.js';
2
+ export interface AuthActions {
3
+ 'auth.login': Action<{
4
+ newConnectionData: string;
5
+ }, boolean>;
6
+ 'auth.logout': Action<null>;
7
+ }
8
+ export default class Auth {
9
+ protected okra: NotebookInstance;
10
+ constructor(okra: NotebookInstance);
11
+ logout(): Promise<void>;
12
+ login(newConnectionData: string): Promise<boolean>;
13
+ }
14
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,OAAO,IAAI;IACX,SAAS,CAAC,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB;IAErC,MAAM;IAIN,KAAK,CAAC,iBAAiB,EAAE,MAAM;CAGvC"}
package/dist/auth.js ADDED
@@ -0,0 +1,12 @@
1
+ export default class Auth {
2
+ constructor(okra) {
3
+ this.okra = okra;
4
+ }
5
+ logout() {
6
+ return this.okra.invoke('auth.logout');
7
+ }
8
+ login(newConnectionData) {
9
+ return this.okra.invoke('auth.login', { newConnectionData });
10
+ }
11
+ }
12
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,YAAsB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEzC,MAAM;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,iBAAyB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -0,0 +1,169 @@
1
+ import { Disposable } from '../types.js';
2
+ import { BeaconActions, BeaconEvents, BeaconOptions, DebugInfo, ConsoleEvent, BeaconErrorEvent, DebugRequest, DebugResult, FetchRequest, FetchResult } from './types.js';
3
+ import { Navigator } from './navigator.js';
4
+ export * from './types.js';
5
+ export { Navigator } from './navigator.js';
6
+ /**
7
+ * BeaconError for beacon-specific errors
8
+ */
9
+ export declare class BeaconError extends Error {
10
+ code?: string;
11
+ constructor(message: string, code?: string);
12
+ }
13
+ /**
14
+ * BeaconTimeoutError for timeout-specific errors
15
+ */
16
+ export declare class BeaconTimeoutError extends BeaconError {
17
+ constructor(operation: string, timeoutMs: number);
18
+ }
19
+ /**
20
+ * BeaconConnectionError for connection-specific errors
21
+ */
22
+ export declare class BeaconConnectionError extends BeaconError {
23
+ constructor(message: string);
24
+ }
25
+ /**
26
+ * Beacon SDK for communicating with beacon instances in iframes
27
+ */
28
+ export declare class Beacon implements BeaconActions {
29
+ readonly iframe: HTMLIFrameElement;
30
+ private options;
31
+ private messageHandlers;
32
+ private eventEmitter;
33
+ private isBeaconReady;
34
+ private readyPromise;
35
+ private isStarted;
36
+ private disposables;
37
+ private messageChannel;
38
+ private port;
39
+ private channelEstablished;
40
+ readonly navigator: Navigator;
41
+ constructor(iframe: HTMLIFrameElement, options?: BeaconOptions);
42
+ /**
43
+ * Setup communication channel using MessagePort
44
+ */
45
+ private setupMessageChannel;
46
+ /**
47
+ * Establish MessagePort communication channel
48
+ */
49
+ private establishChannel;
50
+ /**
51
+ * Handle incoming beacon messages
52
+ */
53
+ private handleBeaconMessage;
54
+ /**
55
+ * Wait for beacon to be ready - simplified approach
56
+ */
57
+ private waitForBeaconReady;
58
+ /**
59
+ * Send a message to the beacon via MessagePort
60
+ */
61
+ private sendMessage;
62
+ /**
63
+ * Send a message and wait for a specific response with retry logic
64
+ */
65
+ private sendAndWaitFor;
66
+ /**
67
+ * Generate a unique ID for messages
68
+ */
69
+ private generateId;
70
+ /**
71
+ * Event emitter methods (both private and public for navigator access)
72
+ */
73
+ emit(event: string, payload: any): void;
74
+ /**
75
+ * Start the beacon initialization process
76
+ */
77
+ start(): Promise<void>;
78
+ /**
79
+ * Wait for the beacon to be ready
80
+ */
81
+ ready(): Promise<void>;
82
+ /**
83
+ * Check if beacon is ready
84
+ */
85
+ get isReady(): boolean;
86
+ /**
87
+ * Listen for beacon events
88
+ */
89
+ on<K extends keyof BeaconEvents>(event: K, handler: (payload: BeaconEvents[K]) => void): Disposable;
90
+ /**
91
+ * Listen for beacon events (one-time)
92
+ */
93
+ once<K extends keyof BeaconEvents>(event: K, handler: (payload: BeaconEvents[K]) => void): void;
94
+ /**
95
+ * Ping the beacon to check if it's responsive
96
+ */
97
+ ping(): Promise<boolean>;
98
+ /**
99
+ * Get debug information from the beacon
100
+ */
101
+ getDebugInfo(): Promise<DebugInfo>;
102
+ /**
103
+ * Get console events from the beacon
104
+ */
105
+ getConsoleEvents(): Promise<ConsoleEvent[]>;
106
+ /**
107
+ * Get error events from the beacon
108
+ */
109
+ getErrorEvents(): Promise<BeaconErrorEvent[]>;
110
+ /**
111
+ * Clear console events in the beacon
112
+ */
113
+ clearConsole(): Promise<void>;
114
+ /**
115
+ * Clear error events in the beacon
116
+ */
117
+ clearErrors(): Promise<void>;
118
+ /**
119
+ * Execute code in the beacon context
120
+ */
121
+ executeCode(code: string): Promise<{
122
+ success: boolean;
123
+ result?: any;
124
+ error?: string;
125
+ }>;
126
+ /**
127
+ * Inspect an element in the beacon context
128
+ */
129
+ inspectElement(selector: string): Promise<{
130
+ success: boolean;
131
+ element?: any;
132
+ error?: string;
133
+ }>;
134
+ /**
135
+ * Fetch a URL in the beacon context
136
+ */
137
+ fetch<T extends unknown>(request: FetchRequest): Promise<FetchResult<T>>;
138
+ /**
139
+ * Debug a page (navigate and capture debug information). It loads
140
+ * the page fresh in the IFRAME so that we can capture the latest state.
141
+ */
142
+ debug(request: DebugRequest, waitSeconds?: number): Promise<DebugResult>;
143
+ private wait;
144
+ /**
145
+ * Navigate the iframe to a new URL
146
+ */
147
+ navigate(url: string): void;
148
+ /**
149
+ * Get current iframe URL
150
+ */
151
+ get url(): string;
152
+ /**
153
+ * Get the iframe element
154
+ */
155
+ get element(): HTMLIFrameElement;
156
+ /**
157
+ * Dispose of all resources
158
+ */
159
+ dispose(): void;
160
+ }
161
+ /**
162
+ * Factory function to create a beacon instance for an iframe
163
+ */
164
+ export declare function createBeacon(iframe: HTMLIFrameElement, options?: BeaconOptions): Beacon;
165
+ /**
166
+ * Check if the current environment supports the Beacon SDK
167
+ */
168
+ export declare function isBeaconSupported(): boolean;
169
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/beacon/index.ts"],"names":[],"mappings":"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"}