cddl 0.2.2 → 0.4.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 (45) hide show
  1. package/.nvmrc +1 -0
  2. package/README.md +5 -5
  3. package/bin/cddl.js +3 -1
  4. package/build/ast.d.ts +14 -14
  5. package/build/ast.d.ts.map +1 -1
  6. package/build/ast.js +2 -5
  7. package/build/cli/commands/repl.d.ts +3 -3
  8. package/build/cli/commands/repl.d.ts.map +1 -1
  9. package/build/cli/commands/repl.js +13 -20
  10. package/build/cli/commands/validate.d.ts +4 -4
  11. package/build/cli/commands/validate.d.ts.map +1 -1
  12. package/build/cli/commands/validate.js +14 -19
  13. package/build/cli/constants.d.ts +1 -1
  14. package/build/cli/constants.js +1 -4
  15. package/build/cli/index.d.ts +7 -3
  16. package/build/cli/index.d.ts.map +1 -1
  17. package/build/cli/index.js +12 -12
  18. package/build/constants.d.ts +4 -0
  19. package/build/constants.d.ts.map +1 -1
  20. package/build/constants.js +8 -6
  21. package/build/index.d.ts +6 -4
  22. package/build/index.d.ts.map +1 -1
  23. package/build/index.js +16 -17
  24. package/build/lexer.d.ts +7 -1
  25. package/build/lexer.d.ts.map +1 -1
  26. package/build/lexer.js +81 -50
  27. package/build/parser.d.ts +6 -4
  28. package/build/parser.d.ts.map +1 -1
  29. package/build/parser.js +148 -79
  30. package/build/tokens.d.ts +2 -2
  31. package/build/tokens.d.ts.map +1 -1
  32. package/build/tokens.js +2 -5
  33. package/build/transform/ts.d.ts +3 -0
  34. package/build/transform/ts.d.ts.map +1 -0
  35. package/build/transform/ts.js +113 -0
  36. package/build/types.d.ts +5 -0
  37. package/build/types.d.ts.map +1 -0
  38. package/build/types.js +1 -0
  39. package/build/utils.d.ts +1 -1
  40. package/build/utils.d.ts.map +1 -1
  41. package/build/utils.js +11 -18
  42. package/examples/webdriver/local.cddl +846 -0
  43. package/examples/webdriver/remote.cddl +830 -0
  44. package/package.json +30 -26
  45. package/vitest.config.ts +16 -0
@@ -0,0 +1,846 @@
1
+ Message = (
2
+ CommandResponse //
3
+ ErrorResponse //
4
+ Event
5
+ )
6
+
7
+ CommandResponse = {
8
+ id: js-uint,
9
+ result: ResultData,
10
+ Extensible
11
+ }
12
+
13
+ ErrorResponse = {
14
+ id: js-uint / null,
15
+ error: ErrorCode,
16
+ message: text,
17
+ ?stacktrace: text,
18
+ Extensible
19
+ }
20
+
21
+ ResultData = (
22
+ BrowsingContextResult //
23
+ EmptyResult //
24
+ NetworkResult //
25
+ ScriptResult //
26
+ SessionResult
27
+ )
28
+
29
+ EmptyResult = {
30
+ Extensible
31
+ }
32
+
33
+ Event = {
34
+ EventData,
35
+ Extensible
36
+ }
37
+
38
+ EventData = (
39
+ BrowsingContextEvent //
40
+ LogEvent //
41
+ NetworkEvent //
42
+ ScriptEvent
43
+ )
44
+
45
+ Extensible = (*text => any)
46
+
47
+ js-int = -9007199254740991..9007199254740991
48
+ js-uint = 0..9007199254740991
49
+
50
+ ErrorCode = ("invalid argument" /
51
+ "invalid session id" /
52
+ "no such alert" /
53
+ "no such frame" /
54
+ "no such handle" /
55
+ "no such node" /
56
+ "no such script" /
57
+ "session not created" /
58
+ "unable to close browser" /
59
+ "unknown command" /
60
+ "unknown error" /
61
+ "unsupported operation")
62
+
63
+ SessionResult = (session.StatusResult)
64
+
65
+ session.CapabilitiesRequest = {
66
+ ?alwaysMatch: session.CapabilityRequest,
67
+ ?firstMatch: [*session.CapabilityRequest]
68
+ }
69
+
70
+ session.CapabilityRequest = {
71
+ ?acceptInsecureCerts: bool,
72
+ ?browserName: text,
73
+ ?browserVersion: text,
74
+ ?platformName: text,
75
+ ?proxy: {
76
+ ?proxyType: "pac" / "direct" / "autodetect" / "system" / "manual",
77
+ ?proxyAutoconfigUrl: text,
78
+ ?ftpProxy: text,
79
+ ?httpProxy: text,
80
+ ?noProxy: [*text],
81
+ ?sslProxy: text,
82
+ ?socksProxy: text,
83
+ ?socksVersion: 0..255,
84
+ },
85
+ Extensible
86
+ };
87
+
88
+ session.StatusResult = {
89
+ ready: bool,
90
+ message: text,
91
+ }
92
+
93
+ session.NewResult = {
94
+ sessionId: text,
95
+ capabilities: {
96
+ acceptInsecureCerts: bool,
97
+ browserName: text,
98
+ browserVersion: text,
99
+ platformName: text,
100
+ proxy: {
101
+ ?proxyType: "pac" / "direct" / "autodetect" / "system" / "manual",
102
+ ?proxyAutoconfigUrl: text,
103
+ ?ftpProxy: text,
104
+ ?httpProxy: text,
105
+ ?noProxy: [*text],
106
+ ?sslProxy: text,
107
+ ?socksProxy: text,
108
+ ?socksVersion: 0..255,
109
+ },
110
+ Extensible,
111
+ setWindowRect: bool
112
+ }
113
+ }
114
+
115
+
116
+ BrowsingContextResult = (
117
+ browsingContext.CaptureScreenshotResult //
118
+ browsingContext.CreateResult //
119
+ browsingContext.GetTreeResult //
120
+ browsingContext.NavigateResult //
121
+ browsingContext.PrintResult
122
+ )
123
+
124
+ BrowsingContextEvent = (
125
+ browsingContext.ContextCreated //
126
+ browsingContext.ContextDestroyed //
127
+ browsingContext.NavigationStarted //
128
+ browsingContext.FragmentNavigated //
129
+ browsingContext.DomContentLoaded //
130
+ browsingContext.Load //
131
+ browsingContext.DownloadWillBegin //
132
+ browsingContext.NavigationAborted //
133
+ browsingContext.NavigationFailed //
134
+ browsingContext.UserPromptClosed //
135
+ browsingContext.UserPromptOpened
136
+ )
137
+
138
+ browsingContext.BrowsingContext = text;
139
+
140
+ browsingContext.InfoList = [*browsingContext.Info]
141
+
142
+ browsingContext.Info = {
143
+ context: browsingContext.BrowsingContext,
144
+ url: text,
145
+ children: browsingContext.InfoList / null
146
+ ?parent: browsingContext.BrowsingContext / null,
147
+ }
148
+
149
+ browsingContext.Navigation = text;
150
+
151
+ browsingContext.NavigationInfo = {
152
+ context: browsingContext.BrowsingContext,
153
+ navigation: browsingContext.Navigation / null,
154
+ timestamp: js-uint,
155
+ url: text,
156
+ }
157
+
158
+ browsingContext.CaptureScreenshotResult = {
159
+ data: text
160
+ }
161
+
162
+ browsingContext.CreateResult = {
163
+ context: browsingContext.BrowsingContext
164
+ }
165
+
166
+ browsingContext.GetTreeResult = {
167
+ contexts: browsingContext.Info
168
+ }
169
+
170
+ browsingContext.NavigateResult = {
171
+ navigation: browsingContext.Navigation / null,
172
+ url: text,
173
+ }
174
+
175
+ browsingContext.PrintResult = {
176
+ data: text
177
+ }
178
+
179
+ browsingContext.ContextCreated = {
180
+ method: "browsingContext.contextCreated",
181
+ params: browsingContext.Info
182
+ }
183
+
184
+ browsingContext.ContextDestroyed = {
185
+ method: "browsingContext.contextDestroyed",
186
+ params: browsingContext.Info
187
+ }
188
+
189
+ browsingContext.NavigationStarted = {
190
+ method: "browsingContext.navigationStarted",
191
+ params: browsingContext.NavigationInfo
192
+ }
193
+
194
+ browsingContext.FragmentNavigated = {
195
+ method: "browsingContext.fragmentNavigated",
196
+ params: browsingContext.NavigationInfo
197
+ }
198
+
199
+ browsingContext.DomContentLoaded = {
200
+ method: "browsingContext.domContentLoaded",
201
+ params: browsingContext.NavigationInfo
202
+ }
203
+
204
+ browsingContext.Load = {
205
+ method: "browsingContext.load",
206
+ params: browsingContext.NavigationInfo
207
+ }
208
+
209
+ browsingContext.DownloadWillBegin = {
210
+ method: "browsingContext.downloadWillBegin",
211
+ params: browsingContext.NavigationInfo
212
+ }
213
+
214
+ browsingContext.NavigationAborted = {
215
+ method: "browsingContext.navigationAborted",
216
+ params: browsingContext.NavigationInfo
217
+ }
218
+
219
+ browsingContext.NavigationFailed = {
220
+ method: "browsingContext.navigationFailed",
221
+ params: browsingContext.NavigationInfo
222
+ }
223
+
224
+ browsingContext.UserPromptClosed = {
225
+ method: "browsingContext.userPromptClosed",
226
+ params: browsingContext.UserPromptClosedParameters
227
+ }
228
+
229
+ browsingContext.UserPromptClosedParameters = {
230
+ context: browsingContext.BrowsingContext,
231
+ accepted: bool,
232
+ ? userText: text
233
+ }
234
+
235
+ browsingContext.UserPromptOpened = {
236
+ method: "browsingContext.userPromptOpened",
237
+ params: browsingContext.UserPromptOpenedParameters
238
+ }
239
+
240
+ browsingContext.UserPromptOpenedParameters = {
241
+ context: browsingContext.BrowsingContext,
242
+ type: "alert" / "confirm" / "prompt" / "beforeunload",
243
+ message: text
244
+ }
245
+
246
+
247
+ NetworkResult = (
248
+ )
249
+
250
+ NetworkEvent = (
251
+ network.BeforeRequestSent //
252
+ network.FetchError //
253
+ network.ResponseStarted //
254
+ network.ResponseCompleted
255
+ )
256
+
257
+
258
+ network.BaseParameters = {
259
+ context: BrowsingContext / null,
260
+ navigation: Navigation / null,
261
+ redirectCount: js-uint,
262
+ request: network.RequestData,
263
+ timestamp: js-uint,
264
+ }
265
+
266
+ network.Cookie = {
267
+ name: text,
268
+ ? value: text,
269
+ ? binaryValue: [ uint ]
270
+ domain: text,
271
+ path: text,
272
+ ? expires: js-uint,
273
+ size: js-uint,
274
+ httpOnly: bool,
275
+ secure: bool,
276
+ sameSite: "strict" / "lax" / "none",
277
+ };
278
+
279
+ network.FetchTimingInfo = {
280
+ timeOrigin: float,
281
+ requestTime: float,
282
+ redirectStart: float,
283
+ redirectEnd: float,
284
+ fetchStart: float,
285
+ dnsStart: float,
286
+ dnsEnd: float,
287
+ connectStart: float,
288
+ connectEnd: float,
289
+ tlsStart: float,
290
+
291
+ requestStart: float,
292
+ responseStart: float,
293
+
294
+ responseEnd: float,
295
+ };
296
+
297
+ network.Header = {
298
+ name: text,
299
+ ? value: text,
300
+ ? binaryValue: [ uint ]
301
+ };
302
+
303
+ network.Initiator = {
304
+ type: "parser" / "script" / "preflight" / "other",
305
+ ?columnNumber: js-uint,
306
+ ?lineNumber: js-uint,
307
+ ?stackTrace: script.StackTrace,
308
+ ?request: network.Request
309
+ };
310
+
311
+ network.Request = text;
312
+
313
+ network.RequestData = {
314
+ request: network.Request,
315
+ url: text,
316
+ method: text,
317
+ headers: [*network.Header],
318
+ cookies: [*network.Cookie],
319
+ headersSize: js-uint,
320
+ bodySize: js-uint / null,
321
+ timings: network.FetchTimingInfo,
322
+ };
323
+
324
+ network.ResponseContent = {
325
+ size: js-uint
326
+ };
327
+
328
+ network.ResponseData = {
329
+ url: text,
330
+ protocol: text,
331
+ status: js-uint,
332
+ statusText: text,
333
+ fromCache: bool,
334
+ headers: [*network.Header],
335
+ mimeType: text,
336
+ bytesReceived: js-uint,
337
+ headersSize: js-uint / null,
338
+ bodySize: js-uint / null,
339
+ content: network.ResponseContent
340
+ };
341
+
342
+ network.BeforeRequestSent = {
343
+ method: "network.beforeRequestSent",
344
+ params: network.BeforeRequestSentParameters
345
+ }
346
+
347
+ network.BeforeRequestSentParameters = {
348
+ network.BaseParameters,
349
+ initiator: network.Initiator,
350
+ }
351
+
352
+ network.FetchError = {
353
+ method: "network.fetchError",
354
+ params: network.FetchErrorParameters
355
+ }
356
+
357
+ network.FetchErrorParameters = {
358
+ network.BaseParameters,
359
+ errorText: text,
360
+ }
361
+
362
+ network.ResponseCompleted = {
363
+ method: "network.responseCompleted",
364
+ params: network.ResponseCompletedParameters
365
+ }
366
+
367
+ network.ResponseCompletedParameters = {
368
+ network.BaseParameters,
369
+ response: network.ResponseData,
370
+ }
371
+
372
+ network.ResponseStarted = {
373
+ method: "network.responseStarted",
374
+ params: network.ResponseStartedParameters
375
+ }
376
+
377
+ network.ResponseStartedParameters = {
378
+ network.BaseParameters,
379
+ response: network.ResponseData,
380
+ }
381
+
382
+ ScriptResult = (
383
+ script.AddPreloadScriptResult //
384
+ script.EvaluateResult //
385
+ script.GetRealmsResult
386
+ )
387
+
388
+ ScriptEvent = (
389
+ script.RealmCreated //
390
+ script.RealmDestroyed
391
+ )
392
+
393
+ script.Channel = text;
394
+
395
+ script.EvaluateResult = (
396
+ script.EvaluateResultSuccess //
397
+ script.EvaluateResultException
398
+ )
399
+
400
+ script.EvaluateResultSuccess = {
401
+ type: "success",
402
+ result: script.RemoteValue,
403
+ realm: script.Realm
404
+ }
405
+
406
+ script.EvaluateResultException = {
407
+ type: "exception",
408
+ exceptionDetails: script.ExceptionDetails
409
+ realm: script.Realm
410
+ }
411
+
412
+ script.ExceptionDetails = {
413
+ columnNumber: js-uint,
414
+ exception: script.RemoteValue,
415
+ lineNumber: js-uint,
416
+ stackTrace: script.StackTrace,
417
+ text: text,
418
+ };
419
+
420
+ script.Handle = text;
421
+
422
+ script.LocalValue = (
423
+ script.PrimitiveProtocolValue //
424
+ script.ArrayLocalValue //
425
+ script.DateLocalValue //
426
+ script.MapLocalValue //
427
+ script.ObjectLocalValue //
428
+ script.RegExpLocalValue //
429
+ script.SetLocalValue
430
+ )
431
+
432
+ script.ListLocalValue = [*script.LocalValue];
433
+
434
+ script.ArrayLocalValue = {
435
+ type: "array",
436
+ value: script.ListLocalValue,
437
+ }
438
+
439
+ script.DateLocalValue = {
440
+ type: "date",
441
+ value: text
442
+ }
443
+
444
+ ; script.MappingLocalValue = [*[(script.LocalValue / text), script.LocalValue]];
445
+
446
+ script.MapLocalValue = {
447
+ type: "map",
448
+ value: script.MappingLocalValue,
449
+ }
450
+
451
+ script.ObjectLocalValue = {
452
+ type: "object",
453
+ value: script.MappingLocalValue,
454
+ }
455
+
456
+ script.RegExpValue = {
457
+ pattern: text,
458
+ ?flags: text,
459
+ }
460
+
461
+ script.RegExpLocalValue = {
462
+ type: "regexp",
463
+ value: script.RegExpValue,
464
+ }
465
+
466
+ script.SetLocalValue = {
467
+ type: "set",
468
+ value: script.ListLocalValue,
469
+ }
470
+
471
+ script.PreloadScript = text;
472
+
473
+ script.Realm = text;
474
+
475
+ script.PrimitiveProtocolValue = (
476
+ script.UndefinedValue //
477
+ script.NullValue //
478
+ script.StringValue //
479
+ script.NumberValue //
480
+ script.BooleanValue //
481
+ script.BigIntValue
482
+ )
483
+
484
+ script.UndefinedValue = {
485
+ type: "undefined",
486
+ }
487
+
488
+ script.NullValue = {
489
+ type: "null",
490
+ }
491
+
492
+ script.StringValue = {
493
+ type: "string",
494
+ value: text,
495
+ }
496
+
497
+ script.SpecialNumber = "NaN" / "-0" / "Infinity" / "-Infinity";
498
+
499
+ script.NumberValue = {
500
+ type: "number",
501
+ value: number / script.SpecialNumber,
502
+ }
503
+
504
+ script.BooleanValue = {
505
+ type: "boolean",
506
+ value: bool,
507
+ }
508
+
509
+ script.BigIntValue = {
510
+ type: "bigint",
511
+ value: text,
512
+ }
513
+
514
+ script.RealmInfo = (
515
+ script.WindowRealmInfo //
516
+ script.DedicatedWorkerRealmInfo //
517
+ script.SharedWorkerRealmInfo //
518
+ script.ServiceWorkerRealmInfo //
519
+ script.WorkerRealmInfo //
520
+ script.PaintWorkletRealmInfo //
521
+ script.AudioWorkletRealmInfo //
522
+ script.WorkletRealmInfo
523
+ )
524
+
525
+ script.BaseRealmInfo = {
526
+ realm: script.Realm,
527
+ origin: text
528
+ }
529
+
530
+ script.WindowRealmInfo = {
531
+ script.BaseRealmInfo,
532
+ type: "window",
533
+ context: browsingContext.BrowsingContext,
534
+ ?sandbox: text
535
+ }
536
+
537
+ script.DedicatedWorkerRealmInfo = {
538
+ script.BaseRealmInfo,
539
+ type: "dedicated-worker"
540
+ }
541
+
542
+ script.SharedWorkerRealmInfo = {
543
+ script.BaseRealmInfo,
544
+ type: "shared-worker"
545
+ }
546
+
547
+ script.ServiceWorkerRealmInfo = {
548
+ script.BaseRealmInfo,
549
+ type: "service-worker"
550
+ }
551
+
552
+ script.WorkerRealmInfo = {
553
+ script.BaseRealmInfo,
554
+ type: "worker"
555
+ }
556
+
557
+ script.PaintWorkletRealmInfo = {
558
+ script.BaseRealmInfo,
559
+ type: "paint-worklet"
560
+ }
561
+
562
+ script.AudioWorkletRealmInfo = {
563
+ script.BaseRealmInfo,
564
+ type: "audio-worklet"
565
+ }
566
+
567
+ script.WorkletRealmInfo = {
568
+ script.BaseRealmInfo,
569
+ type: "worklet"
570
+ }
571
+
572
+ script.RealmType = "window" / "dedicated-worker" / "shared-worker" / "service-worker" /
573
+ "worker" / "paint-worklet" / "audio-worklet" / "worklet"
574
+
575
+ script.RemoteValue = (
576
+ script.PrimitiveProtocolValue //
577
+ script.SymbolRemoteValue //
578
+ script.ArrayRemoteValue //
579
+ script.ObjectRemoteValue //
580
+ script.FunctionRemoteValue //
581
+ script.RegExpRemoteValue //
582
+ script.DateRemoteValue //
583
+ script.MapRemoteValue //
584
+ script.SetRemoteValue //
585
+ script.WeakMapRemoteValue //
586
+ script.WeakSetRemoteValue //
587
+ script.IteratorRemoteValue //
588
+ script.GeneratorRemoteValue //
589
+ script.ErrorRemoteValue //
590
+ script.ProxyRemoteValue //
591
+ script.PromiseRemoteValue //
592
+ script.TypedArrayRemoteValue //
593
+ script.ArrayBufferRemoteValue //
594
+ script.NodeListRemoteValue //
595
+ script.HTMLCollectionRemoteValue //
596
+ script.NodeRemoteValue //
597
+ script.WindowProxyRemoteValue
598
+ )
599
+
600
+ script.InternalId = js-uint;
601
+
602
+ script.ListRemoteValue = [*script.RemoteValue];
603
+
604
+ ; script.MappingRemoteValue = [*[(script.RemoteValue / text), script.RemoteValue]];
605
+
606
+ script.SymbolRemoteValue = {
607
+ type: "symbol",
608
+ ?handle: script.Handle,
609
+ ?internalId: script.InternalId,
610
+ }
611
+
612
+ script.ArrayRemoteValue = {
613
+ type: "array",
614
+ ?handle: script.Handle,
615
+ ?internalId: script.InternalId,
616
+ ?value: script.ListRemoteValue,
617
+ }
618
+
619
+ script.ObjectRemoteValue = {
620
+ type: "object",
621
+ ?handle: script.Handle,
622
+ ?internalId: script.InternalId,
623
+ ?value: script.MappingRemoteValue,
624
+ }
625
+
626
+ script.FunctionRemoteValue = {
627
+ type: "function",
628
+ ?handle: script.Handle,
629
+ ?internalId: script.InternalId,
630
+ }
631
+
632
+ script.RegExpRemoteValue = {
633
+ script.RegExpLocalValue,
634
+ ?handle: script.Handle,
635
+ ?internalId: script.InternalId,
636
+ }
637
+
638
+ script.DateRemoteValue = {
639
+ script.DateLocalValue,
640
+ ?handle: script.Handle,
641
+ ?internalId: script.InternalId,
642
+ }
643
+
644
+ script.MapRemoteValue = {
645
+ type: "map",
646
+ ?handle: script.Handle,
647
+ ?internalId: script.InternalId,
648
+ ?value: script.MappingRemoteValue,
649
+ }
650
+
651
+ script.SetRemoteValue = {
652
+ type: "set",
653
+ ?handle: script.Handle,
654
+ ?internalId: script.InternalId,
655
+ ?value: script.ListRemoteValue
656
+ }
657
+
658
+ script.WeakMapRemoteValue = {
659
+ type: "weakmap",
660
+ ?handle: script.Handle,
661
+ ?internalId: script.InternalId,
662
+ }
663
+
664
+ script.WeakSetRemoteValue = {
665
+ type: "weakset",
666
+ ?handle: script.Handle,
667
+ ?internalId: script.InternalId,
668
+ }
669
+
670
+ script.IteratorRemoteValue = {
671
+ type: "iterator",
672
+ ?handle: script.Handle,
673
+ ?internalId: script.InternalId,
674
+ }
675
+
676
+ script.GeneratorRemoteValue = {
677
+ type: "generator",
678
+ ?handle: script.Handle,
679
+ ?internalId: script.InternalId,
680
+ }
681
+
682
+ script.ErrorRemoteValue = {
683
+ type: "error",
684
+ ?handle: script.Handle,
685
+ ?internalId: script.InternalId,
686
+ }
687
+
688
+ script.ProxyRemoteValue = {
689
+ type: "proxy",
690
+ ?handle: script.Handle,
691
+ ?internalId: script.InternalId,
692
+ }
693
+
694
+ script.PromiseRemoteValue = {
695
+ type: "promise",
696
+ ?handle: script.Handle,
697
+ ?internalId: script.InternalId,
698
+ }
699
+
700
+ script.TypedArrayRemoteValue = {
701
+ type: "typedarray",
702
+ ?handle: script.Handle,
703
+ ?internalId: script.InternalId,
704
+ }
705
+
706
+ script.ArrayBufferRemoteValue = {
707
+ type: "arraybuffer",
708
+ ?handle: script.Handle,
709
+ ?internalId: script.InternalId,
710
+ }
711
+
712
+ script.NodeListRemoteValue = {
713
+ type: "nodelist",
714
+ ?handle: script.Handle,
715
+ ?internalId: script.InternalId,
716
+ ?value: script.ListRemoteValue,
717
+ }
718
+
719
+ script.HTMLCollectionRemoteValue = {
720
+ type: "htmlcollection",
721
+ ?handle: script.Handle,
722
+ ?internalId: script.InternalId,
723
+ ?value: script.ListRemoteValue,
724
+ }
725
+
726
+ script.NodeRemoteValue = {
727
+ type: "node",
728
+ ?sharedId: script.SharedId,
729
+ ?handle: script.Handle,
730
+ ?internalId: script.InternalId,
731
+ ?value: script.NodeProperties,
732
+ }
733
+
734
+ script.NodeProperties = {
735
+ nodeType: js-uint,
736
+ childNodeCount: js-uint,
737
+ ?attributes: {*text => text},
738
+ ?children: [*script.NodeRemoteValue],
739
+ ?localName: text,
740
+ ?mode: "open" / "closed",
741
+ ?namespaceURI: text,
742
+ ?nodeValue: text,
743
+ ?shadowRoot: script.NodeRemoteValue / null,
744
+ }
745
+
746
+ script.WindowProxyRemoteValue = {
747
+ type: "window",
748
+ ?handle: script.Handle,
749
+ ?internalId: script.InternalId,
750
+ }
751
+
752
+ script.ResultOwnership = "root" / "none"
753
+
754
+ script.SharedId = text;
755
+
756
+ script.StackFrame = {
757
+ columnNumber: js-uint,
758
+ functionName: text,
759
+ lineNumber: js-uint,
760
+ url: text,
761
+ }
762
+
763
+ script.StackTrace = {
764
+ callFrames: [*script.StackFrame],
765
+ }
766
+
767
+ script.Source = (
768
+ realm: script.Realm,
769
+ ?context: browsingContext.BrowsingContext
770
+ );
771
+
772
+ script.AddPreloadScriptResult = {
773
+ script: script.PreloadScript
774
+ }
775
+
776
+ script.GetRealmsResult = {
777
+ realms: [*script.RealmInfo]
778
+ }
779
+
780
+ script.Message = {
781
+ method: "script.message",
782
+ params: script.MessageParameters
783
+ }
784
+
785
+ script.MessageParameters = {
786
+ channel: script.Channel,
787
+ data: script.RemoteValue,
788
+ source: script.Source,
789
+ }
790
+
791
+ script.RealmCreated = {
792
+ method: "script.realmCreated",
793
+ params: script.RealmInfo
794
+ }
795
+
796
+ script.RealmDestroyed = {
797
+ method: "script.realmDestoyed",
798
+ params: script.RealmDestroyedParameters
799
+ }
800
+
801
+ script.RealmDestroyedParameters = {
802
+ realm: script.Realm
803
+ }
804
+
805
+
806
+ LogEvent = (
807
+ log.EntryAdded
808
+ )
809
+
810
+ log.Level = "debug" / "info" / "warn" / "error"
811
+
812
+ log.Entry = (
813
+ log.GenericLogEntry //
814
+ log.ConsoleLogEntry //
815
+ log.JavascriptLogEntry
816
+ )
817
+
818
+ log.BaseLogEntry = {
819
+ level: log.Level,
820
+ source: script.Source,
821
+ text: text / null,
822
+ timestamp: js-uint,
823
+ ?stackTrace: script.StackTrace,
824
+ }
825
+
826
+ log.GenericLogEntry = {
827
+ log.BaseLogEntry,
828
+ type: text,
829
+ }
830
+
831
+ log.ConsoleLogEntry = {
832
+ log.BaseLogEntry,
833
+ type: "console",
834
+ method: text,
835
+ args: [*script.RemoteValue],
836
+ }
837
+
838
+ log.JavascriptLogEntry = {
839
+ log.BaseLogEntry,
840
+ type: "javascript",
841
+ }
842
+
843
+ log.EntryAdded = {
844
+ method: "log.entryAdded",
845
+ params: log.Entry,
846
+ }