@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,244 @@
1
+ import { ErrorEvent } from './types.js';
2
+ import { nanoid } from 'nanoid';
3
+ export var FileType;
4
+ (function (FileType) {
5
+ /**
6
+ * File is unknown (neither file, directory nor symbolic link).
7
+ */
8
+ FileType[FileType["Unknown"] = 0] = "Unknown";
9
+ /**
10
+ * File is a normal file.
11
+ */
12
+ FileType[FileType["File"] = 1] = "File";
13
+ /**
14
+ * File is a directory.
15
+ */
16
+ FileType[FileType["Directory"] = 2] = "Directory";
17
+ /**
18
+ * File is a symbolic link.
19
+ *
20
+ * Note: even when the file is a symbolic link, you can test for
21
+ * `FileType.File` and `FileType.Directory` to know the type of
22
+ * the target the link points to.
23
+ */
24
+ FileType[FileType["SymbolicLink"] = 64] = "SymbolicLink";
25
+ })(FileType || (FileType = {}));
26
+ export var FilesystemErrorType;
27
+ (function (FilesystemErrorType) {
28
+ FilesystemErrorType["Unavailable"] = "Unavailable";
29
+ FilesystemErrorType["NoPermissions"] = "NoPermissions";
30
+ FilesystemErrorType["FileExists"] = "FileExists";
31
+ FilesystemErrorType["FileNotFound"] = "FileNotFound";
32
+ FilesystemErrorType["FileIsADirectory"] = "FileIsADirectory";
33
+ FilesystemErrorType["FileNotADirectory"] = "FileNotADirectory";
34
+ })(FilesystemErrorType || (FilesystemErrorType = {}));
35
+ export class FilesystemError extends ErrorEvent {
36
+ constructor(inner, name) {
37
+ super(inner.code, inner.message);
38
+ this.name = name;
39
+ }
40
+ }
41
+ class FilesystemSubscription {
42
+ constructor(path, okra, disposable) {
43
+ this.path = path;
44
+ this.okra = okra;
45
+ this.disposable = disposable;
46
+ }
47
+ dispose() {
48
+ this.okra.invoke('fs.unwatch', { path: this.path });
49
+ this.disposable.dispose();
50
+ }
51
+ }
52
+ export class Filesystem {
53
+ constructor(okra) {
54
+ this.okra = okra;
55
+ this.watches = new Map();
56
+ this.watchOkraConnection();
57
+ }
58
+ watchOkraConnection() {
59
+ this.okra.onDidConnect(() => {
60
+ for (const { path, options, onDidChange } of this.watches.values()) {
61
+ this.watch(path, options, onDidChange);
62
+ }
63
+ });
64
+ }
65
+ info(path) {
66
+ return this.okra.invoke('fs.info', { path });
67
+ }
68
+ write(path, contents) {
69
+ return this.okra.invoke('fs.write', { path, contents: contents });
70
+ }
71
+ find(query, options = {
72
+ useIgnoreFiles: false,
73
+ followSymlinks: false,
74
+ useGlobalIgnoreFiles: false,
75
+ useParentIgnoreFiles: false,
76
+ }) {
77
+ return this.okra.invoke('fs.find', {
78
+ query,
79
+ options: Object.assign(options, {
80
+ includes: [],
81
+ excludes: [
82
+ '**/storage',
83
+ '**/vendor',
84
+ '**/node_modules',
85
+ '**/.git',
86
+ '**/.svn',
87
+ '**/.hg',
88
+ '**/CVS',
89
+ '**/.DS_Store',
90
+ '**/Thumbs.db',
91
+ '**/*.crswap',
92
+ ],
93
+ useIgnoreFiles: false,
94
+ followSymlinks: false,
95
+ useGlobalIgnoreFiles: false,
96
+ useParentIgnoreFiles: false,
97
+ }),
98
+ });
99
+ }
100
+ search(query, options, onMatch) {
101
+ if (!query.id) {
102
+ query.id = nanoid();
103
+ }
104
+ const defaultOptions = {
105
+ maxResults: 5,
106
+ afterContext: 2,
107
+ beforeContext: 2,
108
+ includes: [],
109
+ excludes: [
110
+ '**/.git',
111
+ '**/.svn',
112
+ '**/.hg',
113
+ '**/CVS',
114
+ '**/.DS_Store',
115
+ '**/Thumbs.db',
116
+ '**/*.crswap',
117
+ '**/node_modules',
118
+ '**/vendor',
119
+ '**/bower_components',
120
+ '**/*.code-search',
121
+ ],
122
+ useIgnoreFiles: true,
123
+ followSymlinks: true,
124
+ useGlobalIgnoreFiles: true,
125
+ useParentIgnoreFiles: true,
126
+ encoding: 'utf-8',
127
+ previewOptions: {
128
+ matchLines: 5,
129
+ charsPerLine: 1000,
130
+ },
131
+ };
132
+ const sid = query.id;
133
+ const localOnMatch = async (result) => {
134
+ if (result === false) {
135
+ disposable.dispose();
136
+ }
137
+ if (onMatch) {
138
+ const ret = await Promise.resolve(onMatch(result));
139
+ if (ret === false) {
140
+ disposable.dispose();
141
+ }
142
+ }
143
+ };
144
+ const disposable = this.okra.listen(`fs.text.search.${sid}`, localOnMatch);
145
+ return this.okra
146
+ .invoke('fs.textSearch', { query, options: { ...defaultOptions, ...options } })
147
+ .finally(() => disposable.dispose());
148
+ }
149
+ mkdir(path) {
150
+ return this.okra.invoke('fs.mkdir', { path });
151
+ }
152
+ move(from, to) {
153
+ return this.okra.invoke('fs.move', { from, to });
154
+ }
155
+ remove(path, type) {
156
+ return this.okra.invoke('fs.remove', { path, type });
157
+ }
158
+ async readFile(path, lineRange) {
159
+ try {
160
+ const content = await this.okra.invoke('fs.readFile', { path, lineRange });
161
+ if (content instanceof Uint8Array) {
162
+ return content;
163
+ }
164
+ if (typeof content === 'string') {
165
+ return new TextEncoder().encode(content);
166
+ }
167
+ return content;
168
+ }
169
+ catch (e) {
170
+ this.handleError(e);
171
+ }
172
+ }
173
+ tail(path, lines = 10) {
174
+ return this.okra.invoke('fs.tail', { path, lines }).catch((e) => this.handleError(e));
175
+ }
176
+ writeFile(path, contents, options) {
177
+ return this.okra
178
+ .invoke('fs.writeFile', {
179
+ path,
180
+ contents,
181
+ options,
182
+ })
183
+ .catch((e) => this.handleError(e));
184
+ }
185
+ stat(path) {
186
+ return this.okra.invoke('fs.stat', { path }).catch((e) => this.handleError(e));
187
+ }
188
+ rename(from, to, options) {
189
+ return this.okra.invoke('fs.rename', { from, to, options }).catch((e) => this.handleError(e));
190
+ }
191
+ delete(path, options) {
192
+ return this.okra.invoke('fs.delete', { path, options }).catch((e) => this.handleError(e));
193
+ }
194
+ copy(source, destination, options) {
195
+ return this.okra.invoke('fs.copy', { source, destination, options }).catch((e) => this.handleError(e));
196
+ }
197
+ readDirectory(path, include = [], exclude = []) {
198
+ return this.okra.invoke('fs.readDirectory', { path, include, exclude }).catch((e) => this.handleError(e));
199
+ }
200
+ createDirectory(path) {
201
+ return this.okra.invoke('fs.createDirectory', { path }).catch((e) => this.handleError(e));
202
+ }
203
+ watch(path, options, onDidChange) {
204
+ const disposable = this.okra.listen(`fs.watch.${path}`, onDidChange);
205
+ const wrappedDisposable = {
206
+ dispose: () => {
207
+ disposable.dispose();
208
+ this.okra.invoke('fs.unwatch', { path });
209
+ },
210
+ };
211
+ const subscription = new FilesystemSubscription(path, this.okra, wrappedDisposable);
212
+ this.watches.set(path, { options, path, onDidChange });
213
+ this.okra.invoke('fs.watch', { path, options });
214
+ return subscription;
215
+ }
216
+ exists(path) {
217
+ return this.stat(path)
218
+ .then(() => true)
219
+ .catch(() => false);
220
+ }
221
+ async download(chunk, exclude, include) {
222
+ const id = nanoid();
223
+ const stream = !!chunk;
224
+ const chunks = [];
225
+ this.okra.listen(`fs.download.${id}`, stream
226
+ ? chunk
227
+ : (data) => {
228
+ chunks.push(data);
229
+ });
230
+ return this.okra
231
+ .invoke('fs.download', { id, exclude, include })
232
+ .then(() => new Blob(chunks, { type: 'application/octet-stream' }));
233
+ }
234
+ tree(path = '/') {
235
+ return this.okra.invoke('fs.tree', { path });
236
+ }
237
+ handleError(e) {
238
+ if (e instanceof ErrorEvent && 'name' in e.raw) {
239
+ throw new FilesystemError(e, e.raw.name);
240
+ }
241
+ throw e;
242
+ }
243
+ }
244
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"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"}
package/dist/git.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ import { Action, NotebookInstance } from './index.js';
2
+ export interface GitLog {
3
+ hash: string;
4
+ message: string;
5
+ author: string;
6
+ date: string;
7
+ }
8
+ export interface GitRef {
9
+ ref: string;
10
+ }
11
+ export interface GitEvents {
12
+ }
13
+ export interface GitActions {
14
+ 'git.checkpoint': Action<{
15
+ author: string;
16
+ message: string;
17
+ branch: string;
18
+ }, GitRef>;
19
+ 'git.log': Action<{
20
+ ref: string;
21
+ }, GitLog[]>;
22
+ 'git.sync': Action<{
23
+ url: string;
24
+ author: string;
25
+ ref: string;
26
+ token?: string;
27
+ direction?: 'pull' | 'push' | 'both';
28
+ force?: boolean;
29
+ }, GitRef>;
30
+ 'git.restore': Action<{
31
+ ref: string;
32
+ }, GitRef>;
33
+ }
34
+ export default class Git {
35
+ protected okra: NotebookInstance;
36
+ constructor(okra: NotebookInstance);
37
+ checkpoint(author: string, message: string, branch?: string): Promise<GitRef>;
38
+ sync(url: string, author: string, ref?: string, token?: string, direction?: 'pull' | 'push' | 'both', force?: boolean): Promise<GitRef>;
39
+ log(ref?: string): Promise<GitLog[]>;
40
+ restore(ref: string): Promise<GitRef>;
41
+ }
42
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;CAAG;AAE7B,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,MAAM,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,CAAC;IACtF,SAAS,EAAE,MAAM,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAChB;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EACnH,MAAM,CACP,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,CAAC;CAChD;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;IACV,SAAS,CAAC,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB;IAErC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS;IAI3D,IAAI,CACT,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,GAAG,SAAS,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,GAAE,MAAM,GAAG,MAAM,GAAG,MAAe,EAC5C,KAAK,UAAQ;IAKR,GAAG,CAAC,GAAG,GAAE,MAAe;IAIxB,OAAO,CAAC,GAAG,EAAE,MAAM;CAG3B"}
package/dist/git.js ADDED
@@ -0,0 +1,18 @@
1
+ export default class Git {
2
+ constructor(okra) {
3
+ this.okra = okra;
4
+ }
5
+ checkpoint(author, message, branch = 'main') {
6
+ return this.okra.invoke('git.checkpoint', { author, message, branch });
7
+ }
8
+ sync(url, author, ref = 'main', token, direction = 'both', force = false) {
9
+ return this.okra.invoke('git.sync', { url, author, ref, token, direction, force });
10
+ }
11
+ log(ref = 'main') {
12
+ return this.okra.invoke('git.log', { ref });
13
+ }
14
+ restore(ref) {
15
+ return this.okra.invoke('git.restore', { ref });
16
+ }
17
+ }
18
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,YAAsB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEzC,UAAU,CAAC,MAAc,EAAE,OAAe,EAAE,MAAM,GAAG,MAAM;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAEM,IAAI,CACT,GAAW,EACX,MAAc,EACd,GAAG,GAAG,MAAM,EACZ,KAAc,EACd,YAAsC,MAAM,EAC5C,KAAK,GAAG,KAAK;QAEb,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;IAEM,GAAG,CAAC,MAAc,MAAM;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEM,OAAO,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,167 @@
1
+ import { Filesystem, FilesystemActions, FilesystemEvents } from './filesystem.js';
2
+ import Terminal, { TerminalEvents, TerminalActions } from './terminal.js';
3
+ import Container, { ContainerActions, ContainerEvents, PortInfo, TelemetryFeature } from './container.js';
4
+ import Auth, { AuthActions } from './auth.js';
5
+ import Lsp, { LspActions, LspEvents } from './lsp.js';
6
+ import Composer, { ComposerActions, ComposerEvents } from './composer.js';
7
+ import Log, { LogActions, LogEvents } from './log.js';
8
+ import Laravel, { LaravelActions, LaravelEvents } from './laravel.js';
9
+ import Repl, { ReplActions, ReplEvents } from './repl.js';
10
+ import Shell, { ShellEvents, ShellActions } from './shell.js';
11
+ import { EventDispatcher } from './events/index.js';
12
+ import Git, { GitActions, GitEvents } from './git.js';
13
+ import { Disposable } from './types.js';
14
+ import { Beacon, BeaconOptions } from './beacon/index.js';
15
+ export * from './types.js';
16
+ export { Transport } from './socket/index.js';
17
+ export * from './lsp.js';
18
+ export * from './filesystem.js';
19
+ export * from './container.js';
20
+ export * from './shell.js';
21
+ export * from './terminal.js';
22
+ export * from './git.js';
23
+ export * from './utils/promise.js';
24
+ export * from './beacon/index.js';
25
+ interface Result<T extends object> {
26
+ type: 'success' | 'error' | 'running';
27
+ message: string;
28
+ data: T;
29
+ }
30
+ export type NotebookInitResponse = {
31
+ env: {
32
+ name: string;
33
+ value: string;
34
+ }[];
35
+ previewUrl: string;
36
+ ports: PortInfo[];
37
+ };
38
+ export type NotebookInitResult = Result<NotebookInitResponse>;
39
+ export interface NotebookActions {
40
+ 'notebook.init': Action<{
41
+ force?: boolean;
42
+ files: {
43
+ [path: string]: string;
44
+ };
45
+ }, NotebookInitResult>;
46
+ 'notebook.update': Action<null>;
47
+ }
48
+ export interface NotebookEvents {
49
+ 'lsp.response': object;
50
+ 'lsp.close': {
51
+ code: number;
52
+ reason: string;
53
+ };
54
+ 'init.event': {
55
+ message: string;
56
+ };
57
+ 'notebook.initialized': NotebookInitResult;
58
+ }
59
+ export interface CallOption {
60
+ responseEvent?: string;
61
+ timeout?: number;
62
+ abortSignal?: AbortSignal;
63
+ }
64
+ export interface OkraError {
65
+ code: number;
66
+ message: string;
67
+ }
68
+ export interface Action<Args = object, Response = void> {
69
+ args: Args;
70
+ response: Response;
71
+ }
72
+ export type Events = TerminalEvents & ContainerEvents & LspEvents & ComposerEvents & LogEvents & LaravelEvents & NotebookEvents & ReplEvents & ShellEvents & FilesystemEvents & GitEvents;
73
+ interface SystemActions {
74
+ ping: Action<object, 'pong'>;
75
+ }
76
+ export type Invokable = SystemActions & TerminalActions & ContainerActions & FilesystemActions & AuthActions & LspActions & LaravelActions & ComposerActions & LogActions & NotebookActions & ReplActions & ShellActions & GitActions;
77
+ export interface CreateNotebookInput {
78
+ title: string;
79
+ visibility: 'public' | 'private' | 'unlisted';
80
+ }
81
+ export declare class NotebookInitError extends Error {
82
+ readonly message: string;
83
+ constructor(message: string);
84
+ }
85
+ export declare class ApiError extends Error {
86
+ readonly response: Response;
87
+ readonly body: string;
88
+ readonly status: number;
89
+ constructor(response: Response, body: string);
90
+ }
91
+ export declare class NotebookApi {
92
+ private readonly client;
93
+ constructor(client: Client);
94
+ create(template: string, input?: Partial<CreateNotebookInput>, init?: boolean): Promise<NotebookInstance>;
95
+ get(id: string): Promise<NotebookInstance>;
96
+ fork(id: string): Promise<NotebookInstance>;
97
+ open(id: string): Promise<NotebookInstance>;
98
+ openFromData(data: NotebookData): Promise<NotebookInstance>;
99
+ private init;
100
+ }
101
+ export interface PHPSandboxClientOptions {
102
+ debug?: boolean;
103
+ startClosed?: boolean;
104
+ telemetry?: Set<TelemetryFeature>;
105
+ fetch?: typeof globalThis.fetch;
106
+ }
107
+ export declare class Client {
108
+ readonly notebook: NotebookApi;
109
+ readonly options: PHPSandboxClientOptions;
110
+ private readonly fetch;
111
+ private readonly baseUrl;
112
+ private readonly headers;
113
+ constructor(token: string, url?: string, options?: PHPSandboxClientOptions);
114
+ get<T extends unknown>(path: string): Promise<{
115
+ data: T;
116
+ }>;
117
+ post<T extends unknown>(path: string, body?: unknown): Promise<{
118
+ data: T;
119
+ }>;
120
+ private makeRequest;
121
+ }
122
+ export declare class PHPSandbox extends Client {
123
+ }
124
+ export interface NotebookData {
125
+ id: string;
126
+ okraUrl: string;
127
+ type: string;
128
+ }
129
+ export declare class NotebookInstance {
130
+ #private;
131
+ readonly data: NotebookData;
132
+ protected client: Client;
133
+ readonly file: Filesystem;
134
+ readonly terminal: Terminal;
135
+ readonly auth: Auth;
136
+ readonly lsp: Lsp;
137
+ readonly composer: Composer;
138
+ readonly log: Log;
139
+ readonly repl: Repl;
140
+ readonly container: Container;
141
+ readonly laravel: Laravel;
142
+ readonly shell: Shell;
143
+ readonly git: Git;
144
+ private readonly socket;
145
+ readonly emitter: EventDispatcher;
146
+ initialized: NotebookActions['notebook.init']['response'] | false;
147
+ private readonly disposables;
148
+ constructor(data: NotebookData, client: Client);
149
+ ready(): Promise<NotebookInitResult>;
150
+ fork(): Promise<NotebookInstance>;
151
+ stop(): Promise<void>;
152
+ restart(): Promise<void>;
153
+ invoke<T extends keyof Invokable>(action: T, data?: Invokable[T]['args'], options?: CallOption): Promise<Invokable[T]['response']>;
154
+ ping(): Promise<"pong">;
155
+ listen<T extends keyof Events>(event: T, handler: (data: Events[T]) => void): Disposable;
156
+ dispose(): void;
157
+ connected(): Promise<NotebookInstance>;
158
+ whenConnected(): Promise<NotebookInstance>;
159
+ private watchConnection;
160
+ onDidConnect(handler: () => void): Disposable;
161
+ onDidDisconnect(handler: () => void): Disposable;
162
+ update(): Promise<void>;
163
+ onDidInitialize(handler: (result: NotebookInitResult) => void): Disposable;
164
+ reconnect(): NotebookInstance;
165
+ beacon(iframe: HTMLIFrameElement, options?: BeaconOptions): Promise<Beacon>;
166
+ }
167
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}