Skip to content

Commit d859db0

Browse files
authored
Update IDL, prepare to release v0.3.0 (#85)
1 parent c786d74 commit d859db0

28 files changed

+200
-104
lines changed

.github/workflows/publish.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ name: Publish
55
on:
66
pull_request:
77
branches: [ main ]
8+
types: [opened, synchronize, reopened, labeled, unlabeled]
89
push:
910
tags: [ 'v[0-9]+.[0-9]+.[0-9]+*' ]
1011

1112
jobs:
1213
publish:
1314
if: ${{ github.repository_owner == 'dart-lang' }}
1415
uses: dart-lang/ecosystem/.github/workflows/publish.yaml@main
16+
with:
17+
sdk: beta

CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
## 0.2.3-wip
1+
## 0.3.0
22

3+
- Updated source IDL to `v3.39.1`.
34
- Fixed a bug where `typedef`s were not declared with the IDL type's
45
nullability.
56
- Types that were aliased to `double` are now aliased to `num`. This is to make

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Lightweight DOM and JS bindings built around JS static interop.
44

55
<!-- START updated by /tool/update_bindings.dart. Do not modify by hand -->
6-
Based on [`@webref/idl 3.38.2`](https://www.npmjs.com/package/@webref/idl/v/3.38.2)
6+
Based on [`@webref/idl 3.39.1`](https://www.npmjs.com/package/@webref/idl/v/3.39.1)
77
<!-- END updated by /tool/update_bindings.dart. Do not modify by hand -->
88

99
NOTE: This package is highly experimental.

lib/src/dom/audio_session.dart

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'dart:js_interop';
6+
7+
import 'dom.dart';
8+
import 'html.dart';
9+
10+
typedef AudioSessionState = String;
11+
typedef AudioSessionType = String;
12+
13+
@JS('AudioSession')
14+
@staticInterop
15+
class AudioSession implements EventTarget {}
16+
17+
extension AudioSessionExtension on AudioSession {
18+
external set type(AudioSessionType value);
19+
external AudioSessionType get type;
20+
external AudioSessionState get state;
21+
external set onstatechange(EventHandler value);
22+
external EventHandler get onstatechange;
23+
}

lib/src/dom/clipboard_apis.dart

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class ClipboardItem implements JSObject {
4444
JSAny? items, [
4545
ClipboardItemOptions options,
4646
]);
47+
48+
external static bool supports(String type);
4749
}
4850

4951
extension ClipboardItemExtension on ClipboardItem {

lib/src/dom/css_font_loading.dart

-5
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class FontFaceDescriptors implements JSObject {
2020
String weight,
2121
String stretch,
2222
String unicodeRange,
23-
String variant,
2423
String featureSettings,
2524
String variationSettings,
2625
String display,
@@ -39,8 +38,6 @@ extension FontFaceDescriptorsExtension on FontFaceDescriptors {
3938
external String get stretch;
4039
external set unicodeRange(String value);
4140
external String get unicodeRange;
42-
external set variant(String value);
43-
external String get variant;
4441
external set featureSettings(String value);
4542
external String get featureSettings;
4643
external set variationSettings(String value);
@@ -77,8 +74,6 @@ extension FontFaceExtension on FontFace {
7774
external String get stretch;
7875
external set unicodeRange(String value);
7976
external String get unicodeRange;
80-
external set variant(String value);
81-
external String get variant;
8277
external set featureSettings(String value);
8378
external String get featureSettings;
8479
external set variationSettings(String value);
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'dart:js_interop';
6+
7+
import 'css_view_transitions.dart';
8+
import 'dom.dart';
9+
10+
@JS('PageRevealEvent')
11+
@staticInterop
12+
class PageRevealEvent implements Event {}
13+
14+
extension PageRevealEventExtension on PageRevealEvent {
15+
external ViewTransition? get viewTransition;
16+
}

lib/src/dom/edit_context.dart

+11-8
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import 'dom.dart';
88
import 'geometry.dart';
99
import 'html.dart';
1010

11+
typedef UnderlineStyle = String;
12+
typedef UnderlineThickness = String;
13+
1114
@JS()
1215
@staticInterop
1316
@anonymous
@@ -131,8 +134,8 @@ class TextFormatInit implements JSObject {
131134
external factory TextFormatInit({
132135
int rangeStart,
133136
int rangeEnd,
134-
String underlineStyle,
135-
String underlineThickness,
137+
UnderlineStyle underlineStyle,
138+
UnderlineThickness underlineThickness,
136139
});
137140
}
138141

@@ -141,10 +144,10 @@ extension TextFormatInitExtension on TextFormatInit {
141144
external int get rangeStart;
142145
external set rangeEnd(int value);
143146
external int get rangeEnd;
144-
external set underlineStyle(String value);
145-
external String get underlineStyle;
146-
external set underlineThickness(String value);
147-
external String get underlineThickness;
147+
external set underlineStyle(UnderlineStyle value);
148+
external UnderlineStyle get underlineStyle;
149+
external set underlineThickness(UnderlineThickness value);
150+
external UnderlineThickness get underlineThickness;
148151
}
149152

150153
@JS('TextFormat')
@@ -156,8 +159,8 @@ class TextFormat implements JSObject {
156159
extension TextFormatExtension on TextFormat {
157160
external int get rangeStart;
158161
external int get rangeEnd;
159-
external String get underlineStyle;
160-
external String get underlineThickness;
162+
external UnderlineStyle get underlineStyle;
163+
external UnderlineThickness get underlineThickness;
161164
}
162165

163166
@JS()

lib/src/dom/fenced_frame.dart

+9-5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'html.dart';
88

99
typedef FencedFrameConfigSize = JSAny?;
1010
typedef FencedFrameConfigURL = String;
11+
typedef UrnOrConfig = JSAny?;
1112
typedef ReportEventType = JSAny?;
1213
typedef OpaqueProperty = String;
1314
typedef FenceReportingDestination = String;
@@ -46,10 +47,11 @@ extension FencedFrameConfigExtension on FencedFrameConfig {
4647
@anonymous
4748
class FenceEvent implements JSObject {
4849
external factory FenceEvent({
49-
required String eventType,
50-
required String eventData,
51-
required JSArray destination,
50+
String eventType,
51+
String eventData,
52+
JSArray destination,
5253
bool once,
54+
String destinationURL,
5355
});
5456
}
5557

@@ -62,14 +64,16 @@ extension FenceEventExtension on FenceEvent {
6264
external JSArray get destination;
6365
external set once(bool value);
6466
external bool get once;
67+
external set destinationURL(String value);
68+
external String get destinationURL;
6569
}
6670

6771
@JS('Fence')
6872
@staticInterop
6973
class Fence implements JSObject {}
7074

7175
extension FenceExtension on Fence {
72-
external JSVoid reportEvent(ReportEventType event);
73-
external JSVoid setReportEventDataForAutomaticBeacons(FenceEvent event);
76+
external JSVoid reportEvent([ReportEventType event]);
77+
external JSVoid setReportEventDataForAutomaticBeacons([FenceEvent event]);
7478
external JSArray getNestedConfigs();
7579
}

lib/src/dom/fetch.dart

+3
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ class RequestInit implements JSObject {
110110
RequestPriority priority,
111111
JSAny? window,
112112
RequestTargetAddressSpace targetAddressSpace,
113+
bool sharedStorageWritable,
113114
PrivateToken privateToken,
114115
});
115116
}
@@ -149,6 +150,8 @@ extension RequestInitExtension on RequestInit {
149150
external JSAny? get window;
150151
external set targetAddressSpace(RequestTargetAddressSpace value);
151152
external RequestTargetAddressSpace get targetAddressSpace;
153+
external set sharedStorageWritable(bool value);
154+
external bool get sharedStorageWritable;
152155
external set privateToken(PrivateToken value);
153156
external PrivateToken get privateToken;
154157
}

lib/src/dom/html.dart

+15-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import 'dart:js_interop';
66

77
import 'attribution_reporting_api.dart';
8+
import 'audio_session.dart';
89
import 'autoplay_detection.dart';
910
import 'badging.dart';
1011
import 'clipboard_apis.dart';
@@ -698,7 +699,11 @@ extension HTMLSourceElementExtension on HTMLSourceElement {
698699

699700
@JS('HTMLImageElement')
700701
@staticInterop
701-
class HTMLImageElement implements HTMLElement, HTMLAttributionSrcElementUtils {
702+
class HTMLImageElement
703+
implements
704+
HTMLElement,
705+
HTMLAttributionSrcElementUtils,
706+
HTMLSharedStorageWritableElementUtils {
702707
external factory HTMLImageElement();
703708
}
704709

@@ -754,7 +759,8 @@ extension HTMLImageElementExtension on HTMLImageElement {
754759

755760
@JS('HTMLIFrameElement')
756761
@staticInterop
757-
class HTMLIFrameElement implements HTMLElement {
762+
class HTMLIFrameElement
763+
implements HTMLElement, HTMLSharedStorageWritableElementUtils {
758764
external factory HTMLIFrameElement();
759765
}
760766

@@ -1917,6 +1923,8 @@ class HTMLDetailsElement implements HTMLElement {
19171923
}
19181924

19191925
extension HTMLDetailsElementExtension on HTMLDetailsElement {
1926+
external set name(String value);
1927+
external String get name;
19201928
external set open(bool value);
19211929
external bool get open;
19221930
}
@@ -3903,6 +3911,10 @@ extension NavigatorExtension on Navigator {
39033911
String keySystem,
39043912
JSArray supportedConfigurations,
39053913
);
3914+
external JSPromise deprecatedReplaceInURN(
3915+
UrnOrConfig urnOrConfig,
3916+
JSAny? replacements,
3917+
);
39063918
external JSArray getGamepads();
39073919
external JSPromise getInstalledRelatedApps();
39083920
external JSVoid getUserMedia(
@@ -3918,6 +3930,7 @@ extension NavigatorExtension on Navigator {
39183930
external JSPromise share([ShareData data]);
39193931
external bool canShare([ShareData data]);
39203932
external JSPromise requestMIDIAccess([MIDIOptions options]);
3933+
external AudioSession get audioSession;
39213934
external Clipboard get clipboard;
39223935
external ContactsManager get contacts;
39233936
external CredentialsContainer get credentials;

lib/src/dom/intersection_observer.dart

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ extension IntersectionObserverExtension on IntersectionObserver {
2626
external JSArray takeRecords();
2727
external JSAny? get root;
2828
external String get rootMargin;
29+
external String get scrollMargin;
2930
external JSArray get thresholds;
3031
}
3132

@@ -86,6 +87,7 @@ class IntersectionObserverInit implements JSObject {
8687
external factory IntersectionObserverInit({
8788
JSAny? root,
8889
String rootMargin,
90+
String scrollMargin,
8991
JSAny? threshold,
9092
});
9193
}
@@ -95,6 +97,8 @@ extension IntersectionObserverInitExtension on IntersectionObserverInit {
9597
external JSAny? get root;
9698
external set rootMargin(String value);
9799
external String get rootMargin;
100+
external set scrollMargin(String value);
101+
external String get scrollMargin;
98102
external set threshold(JSAny? value);
99103
external JSAny? get threshold;
100104
}

lib/src/dom/shared_storage.dart

+10
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,13 @@ extension WorkletSharedStorageExtension on WorkletSharedStorage {
146146
external JSPromise length();
147147
external JSPromise remainingBudget();
148148
}
149+
150+
@JS('HTMLSharedStorageWritableElementUtils')
151+
@staticInterop
152+
class HTMLSharedStorageWritableElementUtils implements JSObject {}
153+
154+
extension HTMLSharedStorageWritableElementUtilsExtension
155+
on HTMLSharedStorageWritableElementUtils {
156+
external set sharedStorageWritable(bool value);
157+
external bool get sharedStorageWritable;
158+
}

lib/src/dom/storage_buckets.dart

+3-9
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import 'hr_time.dart';
88
import 'indexeddb.dart';
99
import 'service_workers.dart';
1010

11-
typedef StorageBucketDurability = String;
12-
1311
@JS('NavigatorStorageBuckets')
1412
@staticInterop
1513
class NavigatorStorageBuckets implements JSObject {}
@@ -36,18 +34,15 @@ extension StorageBucketManagerExtension on StorageBucketManager {
3634
@anonymous
3735
class StorageBucketOptions implements JSObject {
3836
external factory StorageBucketOptions({
39-
bool? persisted,
40-
StorageBucketDurability? durability,
37+
bool persisted,
4138
int? quota,
4239
DOMHighResTimeStamp? expires,
4340
});
4441
}
4542

4643
extension StorageBucketOptionsExtension on StorageBucketOptions {
47-
external set persisted(bool? value);
48-
external bool? get persisted;
49-
external set durability(StorageBucketDurability? value);
50-
external StorageBucketDurability? get durability;
44+
external set persisted(bool value);
45+
external bool get persisted;
5146
external set quota(int? value);
5247
external int? get quota;
5348
external set expires(DOMHighResTimeStamp? value);
@@ -62,7 +57,6 @@ extension StorageBucketExtension on StorageBucket {
6257
external JSPromise persist();
6358
external JSPromise persisted();
6459
external JSPromise estimate();
65-
external JSPromise durability();
6660
external JSPromise setExpires(DOMHighResTimeStamp expires);
6761
external JSPromise expires();
6862
external JSPromise getDirectory();

lib/src/dom/streams.dart

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ typedef UnderlyingSinkAbortCallback = JSFunction;
1919
typedef TransformerStartCallback = JSFunction;
2020
typedef TransformerFlushCallback = JSFunction;
2121
typedef TransformerTransformCallback = JSFunction;
22+
typedef TransformerCancelCallback = JSFunction;
2223
typedef QueuingStrategySize = JSFunction;
2324
typedef ReadableStreamReaderMode = String;
2425
typedef ReadableStreamType = String;
@@ -317,6 +318,7 @@ class Transformer implements JSObject {
317318
TransformerStartCallback start,
318319
TransformerTransformCallback transform,
319320
TransformerFlushCallback flush,
321+
TransformerCancelCallback cancel,
320322
JSAny? readableType,
321323
JSAny? writableType,
322324
});
@@ -329,6 +331,8 @@ extension TransformerExtension on Transformer {
329331
external TransformerTransformCallback get transform;
330332
external set flush(TransformerFlushCallback value);
331333
external TransformerFlushCallback get flush;
334+
external set cancel(TransformerCancelCallback value);
335+
external TransformerCancelCallback get cancel;
332336
external set readableType(JSAny? value);
333337
external JSAny? get readableType;
334338
external set writableType(JSAny? value);

0 commit comments

Comments
 (0)