google-closure-compiler 20260531.0.0 → 20260607.0.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.
@@ -6005,7 +6005,7 @@ google.maps.MapElement.prototype.innerMap;
6005
6005
  * Only unique values will be sent. Changes to this value after instantiation
6006
6006
  * may be ignored.
6007
6007
  * @default <code>null</code>
6008
- * @type {!Iterable<string>|null}
6008
+ * @type {!Iterable<string>|null|undefined}
6009
6009
  */
6010
6010
  google.maps.MapElement.prototype.internalUsageAttributionIds;
6011
6011
 
@@ -12773,33 +12773,6 @@ google.maps.airQuality.AirQualityMeterElementOptions.prototype
12773
12773
  */
12774
12774
  google.maps.drawing = {};
12775
12775
 
12776
- /**
12777
- * Options for the rendering of the drawing control.
12778
- * @record
12779
- */
12780
- google.maps.drawing.DrawingControlOptions = function() {};
12781
-
12782
- /**
12783
- * The drawing modes to display in the drawing control, in the order in which
12784
- * they are to be displayed. The hand icon (which corresponds to the
12785
- * <code>null</code> drawing mode) is always available and is not to be
12786
- * specified in this array.
12787
- * @default <code>[{@link google.maps.drawing.OverlayType.MARKER}, {@link
12788
- * google.maps.drawing.OverlayType.POLYLINE}, {@link
12789
- * google.maps.drawing.OverlayType.RECTANGLE}, {@link
12790
- * google.maps.drawing.OverlayType.CIRCLE}, {@link
12791
- * google.maps.drawing.OverlayType.POLYGON}]</code>
12792
- * @type {!Array<!google.maps.drawing.OverlayType>|null|undefined}
12793
- */
12794
- google.maps.drawing.DrawingControlOptions.prototype.drawingModes;
12795
-
12796
- /**
12797
- * Position id. Used to specify the position of the control on the map.
12798
- * @default {@link google.maps.ControlPosition.TOP_LEFT}
12799
- * @type {!google.maps.ControlPosition|null|undefined}
12800
- */
12801
- google.maps.drawing.DrawingControlOptions.prototype.position;
12802
-
12803
12776
  /**
12804
12777
  * Allows users to draw markers, polygons, polylines, rectangles, and circles on
12805
12778
  * the map. The <code>DrawingManager</code>&#39;s drawing mode defines the type
@@ -12809,158 +12782,14 @@ google.maps.drawing.DrawingControlOptions.prototype.position;
12809
12782
  * Access by calling `const {DrawingManager} = await
12810
12783
  * google.maps.importLibrary("drawing");`. See
12811
12784
  * https://developers.google.com/maps/documentation/javascript/libraries.
12812
- * @param {?google.maps.drawing.DrawingManagerOptions=} options
12813
12785
  * @extends {google.maps.MVCObject}
12814
12786
  * @constructor
12815
- * @deprecated Drawing library functionality in the Maps JavaScript API is
12816
- * deprecated. This API was deprecated in August 2025 and will be made
12817
- * unavailable in a later version of the Maps JavaScript API, releasing in
12818
- * May 2026. For more info, see <a
12819
- * href="https://developers.google.com/maps/deprecations">https://developers.google.com/maps/deprecations</a>
12820
- */
12821
- google.maps.drawing.DrawingManager = function(options) {};
12822
-
12823
- /**
12824
- * Returns the <code>DrawingManager</code>&#39;s drawing mode.
12825
- * @return {?google.maps.drawing.OverlayType}
12826
- */
12827
- google.maps.drawing.DrawingManager.prototype.getDrawingMode = function() {};
12828
-
12829
- /**
12830
- * Returns the <code>Map</code> to which the <code>DrawingManager</code> is
12831
- * attached, which is the <code>Map</code> on which the overlays created will be
12832
- * placed.
12833
- * @return {?google.maps.Map}
12834
- */
12835
- google.maps.drawing.DrawingManager.prototype.getMap = function() {};
12836
-
12837
- /**
12838
- * Changes the <code>DrawingManager</code>&#39;s drawing mode, which defines the
12839
- * type of overlay to be added on the map. Accepted values are
12840
- * <code>'marker'</code>, <code>'polygon'</code>, <code>'polyline'</code>,
12841
- * <code>'rectangle'</code>, <code>'circle'</code>, or <code>null</code>. A
12842
- * drawing mode of <code>null</code> means that the user can interact with the
12843
- * map as normal, and clicks do not draw anything.
12844
- * @param {?google.maps.drawing.OverlayType} drawingMode
12845
- * @return {undefined}
12846
- */
12847
- google.maps.drawing.DrawingManager.prototype.setDrawingMode = function(
12848
- drawingMode) {};
12849
-
12850
- /**
12851
- * Attaches the <code>DrawingManager</code> object to the specified
12852
- * <code>Map</code>.
12853
- * @param {?google.maps.Map} map
12854
- * @return {undefined}
12855
- */
12856
- google.maps.drawing.DrawingManager.prototype.setMap = function(map) {};
12857
-
12858
- /**
12859
- * Sets the <code>DrawingManager</code>&#39;s options.
12860
- * @param {?google.maps.drawing.DrawingManagerOptions} options
12861
- * @return {undefined}
12862
- */
12863
- google.maps.drawing.DrawingManager.prototype.setOptions = function(options) {};
12864
-
12865
- /**
12866
- * Options for the drawing manager.
12867
- * @record
12868
- */
12869
- google.maps.drawing.DrawingManagerOptions = function() {};
12870
-
12871
- /**
12872
- * Options to apply to any new circles created with this
12873
- * <code>DrawingManager</code>. The <code>center</code> and <code>radius</code>
12874
- * properties are ignored, and the <code>map</code> property of a new circle is
12875
- * always set to the <code>DrawingManager</code>&#39;s map.
12876
- * @type {!google.maps.CircleOptions|null|undefined}
12877
- */
12878
- google.maps.drawing.DrawingManagerOptions.prototype.circleOptions;
12879
-
12880
- /**
12881
- * The enabled/disabled state of the drawing control.
12882
- * @default <code>true</code>
12883
- * @type {boolean|null|undefined}
12884
- */
12885
- google.maps.drawing.DrawingManagerOptions.prototype.drawingControl;
12886
-
12887
- /**
12888
- * The display options for the drawing control.
12889
- * @type {!google.maps.drawing.DrawingControlOptions|null|undefined}
12890
- */
12891
- google.maps.drawing.DrawingManagerOptions.prototype.drawingControlOptions;
12892
-
12893
- /**
12894
- * The <code>DrawingManager</code>&#39;s drawing mode, which defines the type of
12895
- * overlay to be added on the map. Accepted values are <code>'marker'</code>,
12896
- * <code>'polygon'</code>, <code>'polyline'</code>, <code>'rectangle'</code>,
12897
- * <code>'circle'</code>, or <code>null</code>. A drawing mode of
12898
- * <code>null</code> means that the user can interact with the map as normal,
12899
- * and clicks do not draw anything.
12900
- * @type {!google.maps.drawing.OverlayType|null|undefined}
12901
- */
12902
- google.maps.drawing.DrawingManagerOptions.prototype.drawingMode;
12903
-
12904
- /**
12905
- * The <code>Map</code> to which the <code>DrawingManager</code> is attached,
12906
- * which is the <code>Map</code> on which the overlays created will be placed.
12907
- * @type {!google.maps.Map|null|undefined}
12908
- */
12909
- google.maps.drawing.DrawingManagerOptions.prototype.map;
12910
-
12911
- /**
12912
- * Options to apply to any new markers created with this
12913
- * <code>DrawingManager</code>. The <code>position</code> property is ignored,
12914
- * and the <code>map</code> property of a new marker is always set to the
12915
- * <code>DrawingManager</code>&#39;s map.
12916
- * @type {!google.maps.MarkerOptions|null|undefined}
12917
- */
12918
- google.maps.drawing.DrawingManagerOptions.prototype.markerOptions;
12919
-
12920
- /**
12921
- * Options to apply to any new polygons created with this
12922
- * <code>DrawingManager</code>. The <code>paths</code> property is ignored, and
12923
- * the <code>map</code> property of a new polygon is always set to the
12924
- * <code>DrawingManager</code>&#39;s map.
12925
- * @type {!google.maps.PolygonOptions|null|undefined}
12926
- */
12927
- google.maps.drawing.DrawingManagerOptions.prototype.polygonOptions;
12928
-
12929
- /**
12930
- * Options to apply to any new polylines created with this
12931
- * <code>DrawingManager</code>. The <code>path</code> property is ignored, and
12932
- * the <code>map</code> property of a new polyline is always set to the
12933
- * <code>DrawingManager</code>&#39;s map.
12934
- * @type {!google.maps.PolylineOptions|null|undefined}
12935
- */
12936
- google.maps.drawing.DrawingManagerOptions.prototype.polylineOptions;
12937
-
12938
- /**
12939
- * Options to apply to any new rectangles created with this
12940
- * <code>DrawingManager</code>. The <code>bounds</code> property is ignored, and
12941
- * the <code>map</code> property of a new rectangle is always set to the
12942
- * <code>DrawingManager</code>&#39;s map.
12943
- * @type {!google.maps.RectangleOptions|null|undefined}
12944
- */
12945
- google.maps.drawing.DrawingManagerOptions.prototype.rectangleOptions;
12946
-
12947
- /**
12948
- * The properties of an overlaycomplete event on a <code>DrawingManager</code>.
12949
- * @record
12950
- */
12951
- google.maps.drawing.OverlayCompleteEvent = function() {};
12952
-
12953
- /**
12954
- * The completed overlay.
12955
- * @type {!google.maps.Marker|!google.maps.Polygon|!google.maps.Polyline|!google.maps.Rectangle|!google.maps.Circle}
12956
- */
12957
- google.maps.drawing.OverlayCompleteEvent.prototype.overlay;
12958
-
12959
- /**
12960
- * The completed overlay&#39;s type.
12961
- * @type {!google.maps.drawing.OverlayType}
12787
+ * @deprecated The DrawingManager functionality in the Maps JavaScript API is no
12788
+ * longer available in the Maps JavaScript API as of version 3.65. For more
12789
+ * info, see <a
12790
+ * href="https://developers.google.com/maps/deprecations">https://developers.google.com/maps/deprecations</a>.
12962
12791
  */
12963
- google.maps.drawing.OverlayCompleteEvent.prototype.type;
12792
+ google.maps.drawing.DrawingManager = function() {};
12964
12793
 
12965
12794
  /**
12966
12795
  * The types of overlay that may be created by the <code>DrawingManager</code>.
@@ -19483,6 +19312,12 @@ google.maps.places.AutocompleteRequest.prototype.input;
19483
19312
  */
19484
19313
  google.maps.places.AutocompleteRequest.prototype.inputOffset;
19485
19314
 
19315
+ /**
19316
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
19317
+ * @type {!Iterable<string>|null|undefined}
19318
+ */
19319
+ google.maps.places.AutocompleteRequest.prototype.internalUsageAttributionIds;
19320
+
19486
19321
  /**
19487
19322
  * The language in which to return results. Will default to the browser&#39;s
19488
19323
  * language preference. The results may be in mixed languages if the language
@@ -19859,6 +19694,13 @@ google.maps.places.BasicPlaceAutocompleteElement.prototype.includedPrimaryTypes;
19859
19694
  */
19860
19695
  google.maps.places.BasicPlaceAutocompleteElement.prototype.includedRegionCodes;
19861
19696
 
19697
+ /**
19698
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
19699
+ * @type {!Iterable<string>|null|undefined}
19700
+ */
19701
+ google.maps.places.BasicPlaceAutocompleteElement.prototype
19702
+ .internalUsageAttributionIds;
19703
+
19862
19704
  /**
19863
19705
  * A soft boundary or hint to use when searching for places.
19864
19706
  * @type {!google.maps.places.LocationBias|null}
@@ -19999,6 +19841,12 @@ google.maps.places.BasicPlaceAutocompleteElementOptions.prototype
19999
19841
  google.maps.places.BasicPlaceAutocompleteElementOptions.prototype
20000
19842
  .includedRegionCodes;
20001
19843
 
19844
+ /**
19845
+ * @type {!Iterable<string>|null|undefined}
19846
+ */
19847
+ google.maps.places.BasicPlaceAutocompleteElementOptions.prototype
19848
+ .internalUsageAttributionIds;
19849
+
20002
19850
  /**
20003
19851
  * @type {!google.maps.places.LocationBias|null|undefined}
20004
19852
  */
@@ -20441,10 +20289,16 @@ google.maps.places.FetchFieldsRequest = function() {};
20441
20289
 
20442
20290
  /**
20443
20291
  * List of fields to be fetched.
20444
- * @type {!Array<string>}
20292
+ * @type {!Iterable<string>}
20445
20293
  */
20446
20294
  google.maps.places.FetchFieldsRequest.prototype.fields;
20447
20295
 
20296
+ /**
20297
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
20298
+ * @type {!Iterable<string>|null|undefined}
20299
+ */
20300
+ google.maps.places.FetchFieldsRequest.prototype.internalUsageAttributionIds;
20301
+
20448
20302
  /**
20449
20303
  * A find place from text search request to be sent to {@link
20450
20304
  * google.maps.places.PlacesService.findPlaceFromPhoneNumber}.
@@ -22043,6 +21897,13 @@ google.maps.places.PlaceAutocompleteElement.prototype.includedPrimaryTypes;
22043
21897
  */
22044
21898
  google.maps.places.PlaceAutocompleteElement.prototype.includedRegionCodes;
22045
21899
 
21900
+ /**
21901
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
21902
+ * @type {!Iterable<string>|null|undefined}
21903
+ */
21904
+ google.maps.places.PlaceAutocompleteElement.prototype
21905
+ .internalUsageAttributionIds;
21906
+
22046
21907
  /**
22047
21908
  * A soft boundary or hint to use when searching for places.
22048
21909
  * @type {!google.maps.places.LocationBias|null}
@@ -22191,6 +22052,12 @@ google.maps.places.PlaceAutocompleteElementOptions.prototype
22191
22052
  google.maps.places.PlaceAutocompleteElementOptions.prototype
22192
22053
  .includedRegionCodes;
22193
22054
 
22055
+ /**
22056
+ * @type {!Iterable<string>|null|undefined}
22057
+ */
22058
+ google.maps.places.PlaceAutocompleteElementOptions.prototype
22059
+ .internalUsageAttributionIds;
22060
+
22194
22061
  /**
22195
22062
  * @type {!google.maps.places.LocationBias|null|undefined}
22196
22063
  */
@@ -22458,6 +22325,13 @@ google.maps.places.PlaceContextualListLayout = {
22458
22325
  */
22459
22326
  google.maps.places.PlaceDetailsCompactElement = function(options) {};
22460
22327
 
22328
+ /**
22329
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22330
+ * @type {!Iterable<string>|null|undefined}
22331
+ */
22332
+ google.maps.places.PlaceDetailsCompactElement.prototype
22333
+ .internalUsageAttributionIds;
22334
+
22461
22335
  /**
22462
22336
  * The orientation variant (vertical or horizontal) of the element.
22463
22337
  * @default <code>PlaceDetailsOrientation.VERTICAL</code>
@@ -22486,6 +22360,13 @@ google.maps.places.PlaceDetailsCompactElement.prototype.truncationPreferred;
22486
22360
  */
22487
22361
  google.maps.places.PlaceDetailsCompactElementOptions = function() {};
22488
22362
 
22363
+ /**
22364
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22365
+ * @type {!Iterable<string>|null|undefined}
22366
+ */
22367
+ google.maps.places.PlaceDetailsCompactElementOptions.prototype
22368
+ .internalUsageAttributionIds;
22369
+
22489
22370
  /**
22490
22371
  * See {@link google.maps.places.PlaceDetailsCompactElement.orientation}.
22491
22372
  * @type {!google.maps.places.PlaceDetailsOrientation|null|undefined}
@@ -22530,6 +22411,12 @@ google.maps.places.PlaceDetailsCompactElementOptions.prototype
22530
22411
  */
22531
22412
  google.maps.places.PlaceDetailsElement = function(options) {};
22532
22413
 
22414
+ /**
22415
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22416
+ * @type {!Iterable<string>|null|undefined}
22417
+ */
22418
+ google.maps.places.PlaceDetailsElement.prototype.internalUsageAttributionIds;
22419
+
22533
22420
  /**
22534
22421
  * Read only. Place object containing the ID, location, and viewport of the
22535
22422
  * currently rendered place.
@@ -22543,6 +22430,13 @@ google.maps.places.PlaceDetailsElement.prototype.place;
22543
22430
  */
22544
22431
  google.maps.places.PlaceDetailsElementOptions = function() {};
22545
22432
 
22433
+ /**
22434
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22435
+ * @type {!Iterable<string>|null|undefined}
22436
+ */
22437
+ google.maps.places.PlaceDetailsElementOptions.prototype
22438
+ .internalUsageAttributionIds;
22439
+
22546
22440
  /**
22547
22441
  * Configures a {@link google.maps.places.PlaceDetailsCompactElement} or {@link
22548
22442
  * google.maps.places.PlaceDetailsElement} to load data based on a location.
@@ -23846,6 +23740,12 @@ google.maps.places.PlaceSearchElement = function(options) {};
23846
23740
  */
23847
23741
  google.maps.places.PlaceSearchElement.prototype.attributionPosition;
23848
23742
 
23743
+ /**
23744
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
23745
+ * @type {!Iterable<string>|null|undefined}
23746
+ */
23747
+ google.maps.places.PlaceSearchElement.prototype.internalUsageAttributionIds;
23748
+
23849
23749
  /**
23850
23750
  * The orientation variant (vertical or horizontal) of the element.
23851
23751
  * @default <code>PlaceSearchOrientation.VERTICAL</code>
@@ -23889,6 +23789,13 @@ google.maps.places.PlaceSearchElementOptions = function() {};
23889
23789
  */
23890
23790
  google.maps.places.PlaceSearchElementOptions.prototype.attributionPosition;
23891
23791
 
23792
+ /**
23793
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
23794
+ * @type {!Iterable<string>|null|undefined}
23795
+ */
23796
+ google.maps.places.PlaceSearchElementOptions.prototype
23797
+ .internalUsageAttributionIds;
23798
+
23892
23799
  /**
23893
23800
  * See {@link google.maps.places.PlaceSearchElement.orientation}.
23894
23801
  * @type {!google.maps.places.PlaceSearchOrientation|null|undefined}
@@ -25197,6 +25104,12 @@ google.maps.places.SearchByTextRequest.prototype
25197
25104
  */
25198
25105
  google.maps.places.SearchByTextRequest.prototype.includedType;
25199
25106
 
25107
+ /**
25108
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
25109
+ * @type {!Iterable<string>|null|undefined}
25110
+ */
25111
+ google.maps.places.SearchByTextRequest.prototype.internalUsageAttributionIds;
25112
+
25200
25113
  /**
25201
25114
  * Used to restrict the search to places that are currently open.
25202
25115
  * @default <code>false</code>
@@ -25405,6 +25318,12 @@ google.maps.places.SearchNearbyRequest.prototype.includedPrimaryTypes;
25405
25318
  */
25406
25319
  google.maps.places.SearchNearbyRequest.prototype.includedTypes;
25407
25320
 
25321
+ /**
25322
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
25323
+ * @type {!Iterable<string>|null|undefined}
25324
+ */
25325
+ google.maps.places.SearchNearbyRequest.prototype.internalUsageAttributionIds;
25326
+
25408
25327
  /**
25409
25328
  * Place details will be displayed with the preferred language if available.
25410
25329
  * Will default to the browser&#39;s language preference. Current list of
@@ -27137,10 +27056,22 @@ google.maps.routes.Route3DElement.prototype.departureTime;
27137
27056
 
27138
27057
  /**
27139
27058
  * The destination of the route.
27140
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27059
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27141
27060
  */
27142
27061
  google.maps.routes.Route3DElement.prototype.destination;
27143
27062
 
27063
+ /**
27064
+ * Fallback info for the computed routes.
27065
+ * @type {!google.maps.routes.FallbackInfo|null}
27066
+ */
27067
+ google.maps.routes.Route3DElement.prototype.fallbackInfo;
27068
+
27069
+ /**
27070
+ * Geocoding results for the origin and destination.
27071
+ * @type {!google.maps.routes.GeocodingResults|null}
27072
+ */
27073
+ google.maps.routes.Route3DElement.prototype.geocodingResults;
27074
+
27144
27075
  /**
27145
27076
  * Identifiers used to attribute calls to specific packages or OSS libraries.
27146
27077
  * @type {!Iterable<string>|null|undefined}
@@ -27149,10 +27080,17 @@ google.maps.routes.Route3DElement.prototype.internalUsageAttributionIds;
27149
27080
 
27150
27081
  /**
27151
27082
  * The origin of the route.
27152
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27083
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27153
27084
  */
27154
27085
  google.maps.routes.Route3DElement.prototype.origin;
27155
27086
 
27087
+ /**
27088
+ * The primary route along with optional alternate routes, computed from the
27089
+ * Routes API.
27090
+ * @type {!Array<!google.maps.routes.Route>|null}
27091
+ */
27092
+ google.maps.routes.Route3DElement.prototype.routes;
27093
+
27156
27094
  /**
27157
27095
  * If provided, the route will be computed with traffic information along the
27158
27096
  * route that&#39;s based on the {@link google.maps.routes.RoutingPreference}
@@ -27188,7 +27126,7 @@ google.maps.routes.Route3DElementOptions.prototype.departureTime;
27188
27126
 
27189
27127
  /**
27190
27128
  * See {@link google.maps.routes.Route3DElement.destination}.
27191
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27129
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27192
27130
  */
27193
27131
  google.maps.routes.Route3DElementOptions.prototype.destination;
27194
27132
 
@@ -27200,7 +27138,7 @@ google.maps.routes.Route3DElementOptions.prototype.internalUsageAttributionIds;
27200
27138
 
27201
27139
  /**
27202
27140
  * See {@link google.maps.routes.Route3DElement.origin}.
27203
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27141
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27204
27142
  */
27205
27143
  google.maps.routes.Route3DElementOptions.prototype.origin;
27206
27144
 
@@ -6005,7 +6005,7 @@ google.maps.MapElement.prototype.innerMap;
6005
6005
  * Only unique values will be sent. Changes to this value after instantiation
6006
6006
  * may be ignored.
6007
6007
  * @default <code>null</code>
6008
- * @type {!Iterable<string>|null}
6008
+ * @type {!Iterable<string>|null|undefined}
6009
6009
  */
6010
6010
  google.maps.MapElement.prototype.internalUsageAttributionIds;
6011
6011
 
@@ -12773,33 +12773,6 @@ google.maps.airQuality.AirQualityMeterElementOptions.prototype
12773
12773
  */
12774
12774
  google.maps.drawing = {};
12775
12775
 
12776
- /**
12777
- * Options for the rendering of the drawing control.
12778
- * @record
12779
- */
12780
- google.maps.drawing.DrawingControlOptions = function() {};
12781
-
12782
- /**
12783
- * The drawing modes to display in the drawing control, in the order in which
12784
- * they are to be displayed. The hand icon (which corresponds to the
12785
- * <code>null</code> drawing mode) is always available and is not to be
12786
- * specified in this array.
12787
- * @default <code>[{@link google.maps.drawing.OverlayType.MARKER}, {@link
12788
- * google.maps.drawing.OverlayType.POLYLINE}, {@link
12789
- * google.maps.drawing.OverlayType.RECTANGLE}, {@link
12790
- * google.maps.drawing.OverlayType.CIRCLE}, {@link
12791
- * google.maps.drawing.OverlayType.POLYGON}]</code>
12792
- * @type {!Array<!google.maps.drawing.OverlayType>|null|undefined}
12793
- */
12794
- google.maps.drawing.DrawingControlOptions.prototype.drawingModes;
12795
-
12796
- /**
12797
- * Position id. Used to specify the position of the control on the map.
12798
- * @default {@link google.maps.ControlPosition.TOP_LEFT}
12799
- * @type {!google.maps.ControlPosition|null|undefined}
12800
- */
12801
- google.maps.drawing.DrawingControlOptions.prototype.position;
12802
-
12803
12776
  /**
12804
12777
  * Allows users to draw markers, polygons, polylines, rectangles, and circles on
12805
12778
  * the map. The <code>DrawingManager</code>&#39;s drawing mode defines the type
@@ -12809,158 +12782,14 @@ google.maps.drawing.DrawingControlOptions.prototype.position;
12809
12782
  * Access by calling `const {DrawingManager} = await
12810
12783
  * google.maps.importLibrary("drawing");`. See
12811
12784
  * https://developers.google.com/maps/documentation/javascript/libraries.
12812
- * @param {?google.maps.drawing.DrawingManagerOptions=} options
12813
12785
  * @extends {google.maps.MVCObject}
12814
12786
  * @constructor
12815
- * @deprecated Drawing library functionality in the Maps JavaScript API is
12816
- * deprecated. This API was deprecated in August 2025 and will be made
12817
- * unavailable in a later version of the Maps JavaScript API, releasing in
12818
- * May 2026. For more info, see <a
12819
- * href="https://developers.google.com/maps/deprecations">https://developers.google.com/maps/deprecations</a>
12820
- */
12821
- google.maps.drawing.DrawingManager = function(options) {};
12822
-
12823
- /**
12824
- * Returns the <code>DrawingManager</code>&#39;s drawing mode.
12825
- * @return {?google.maps.drawing.OverlayType}
12826
- */
12827
- google.maps.drawing.DrawingManager.prototype.getDrawingMode = function() {};
12828
-
12829
- /**
12830
- * Returns the <code>Map</code> to which the <code>DrawingManager</code> is
12831
- * attached, which is the <code>Map</code> on which the overlays created will be
12832
- * placed.
12833
- * @return {?google.maps.Map}
12834
- */
12835
- google.maps.drawing.DrawingManager.prototype.getMap = function() {};
12836
-
12837
- /**
12838
- * Changes the <code>DrawingManager</code>&#39;s drawing mode, which defines the
12839
- * type of overlay to be added on the map. Accepted values are
12840
- * <code>'marker'</code>, <code>'polygon'</code>, <code>'polyline'</code>,
12841
- * <code>'rectangle'</code>, <code>'circle'</code>, or <code>null</code>. A
12842
- * drawing mode of <code>null</code> means that the user can interact with the
12843
- * map as normal, and clicks do not draw anything.
12844
- * @param {?google.maps.drawing.OverlayType} drawingMode
12845
- * @return {undefined}
12846
- */
12847
- google.maps.drawing.DrawingManager.prototype.setDrawingMode = function(
12848
- drawingMode) {};
12849
-
12850
- /**
12851
- * Attaches the <code>DrawingManager</code> object to the specified
12852
- * <code>Map</code>.
12853
- * @param {?google.maps.Map} map
12854
- * @return {undefined}
12855
- */
12856
- google.maps.drawing.DrawingManager.prototype.setMap = function(map) {};
12857
-
12858
- /**
12859
- * Sets the <code>DrawingManager</code>&#39;s options.
12860
- * @param {?google.maps.drawing.DrawingManagerOptions} options
12861
- * @return {undefined}
12862
- */
12863
- google.maps.drawing.DrawingManager.prototype.setOptions = function(options) {};
12864
-
12865
- /**
12866
- * Options for the drawing manager.
12867
- * @record
12868
- */
12869
- google.maps.drawing.DrawingManagerOptions = function() {};
12870
-
12871
- /**
12872
- * Options to apply to any new circles created with this
12873
- * <code>DrawingManager</code>. The <code>center</code> and <code>radius</code>
12874
- * properties are ignored, and the <code>map</code> property of a new circle is
12875
- * always set to the <code>DrawingManager</code>&#39;s map.
12876
- * @type {!google.maps.CircleOptions|null|undefined}
12877
- */
12878
- google.maps.drawing.DrawingManagerOptions.prototype.circleOptions;
12879
-
12880
- /**
12881
- * The enabled/disabled state of the drawing control.
12882
- * @default <code>true</code>
12883
- * @type {boolean|null|undefined}
12884
- */
12885
- google.maps.drawing.DrawingManagerOptions.prototype.drawingControl;
12886
-
12887
- /**
12888
- * The display options for the drawing control.
12889
- * @type {!google.maps.drawing.DrawingControlOptions|null|undefined}
12890
- */
12891
- google.maps.drawing.DrawingManagerOptions.prototype.drawingControlOptions;
12892
-
12893
- /**
12894
- * The <code>DrawingManager</code>&#39;s drawing mode, which defines the type of
12895
- * overlay to be added on the map. Accepted values are <code>'marker'</code>,
12896
- * <code>'polygon'</code>, <code>'polyline'</code>, <code>'rectangle'</code>,
12897
- * <code>'circle'</code>, or <code>null</code>. A drawing mode of
12898
- * <code>null</code> means that the user can interact with the map as normal,
12899
- * and clicks do not draw anything.
12900
- * @type {!google.maps.drawing.OverlayType|null|undefined}
12901
- */
12902
- google.maps.drawing.DrawingManagerOptions.prototype.drawingMode;
12903
-
12904
- /**
12905
- * The <code>Map</code> to which the <code>DrawingManager</code> is attached,
12906
- * which is the <code>Map</code> on which the overlays created will be placed.
12907
- * @type {!google.maps.Map|null|undefined}
12908
- */
12909
- google.maps.drawing.DrawingManagerOptions.prototype.map;
12910
-
12911
- /**
12912
- * Options to apply to any new markers created with this
12913
- * <code>DrawingManager</code>. The <code>position</code> property is ignored,
12914
- * and the <code>map</code> property of a new marker is always set to the
12915
- * <code>DrawingManager</code>&#39;s map.
12916
- * @type {!google.maps.MarkerOptions|null|undefined}
12917
- */
12918
- google.maps.drawing.DrawingManagerOptions.prototype.markerOptions;
12919
-
12920
- /**
12921
- * Options to apply to any new polygons created with this
12922
- * <code>DrawingManager</code>. The <code>paths</code> property is ignored, and
12923
- * the <code>map</code> property of a new polygon is always set to the
12924
- * <code>DrawingManager</code>&#39;s map.
12925
- * @type {!google.maps.PolygonOptions|null|undefined}
12926
- */
12927
- google.maps.drawing.DrawingManagerOptions.prototype.polygonOptions;
12928
-
12929
- /**
12930
- * Options to apply to any new polylines created with this
12931
- * <code>DrawingManager</code>. The <code>path</code> property is ignored, and
12932
- * the <code>map</code> property of a new polyline is always set to the
12933
- * <code>DrawingManager</code>&#39;s map.
12934
- * @type {!google.maps.PolylineOptions|null|undefined}
12935
- */
12936
- google.maps.drawing.DrawingManagerOptions.prototype.polylineOptions;
12937
-
12938
- /**
12939
- * Options to apply to any new rectangles created with this
12940
- * <code>DrawingManager</code>. The <code>bounds</code> property is ignored, and
12941
- * the <code>map</code> property of a new rectangle is always set to the
12942
- * <code>DrawingManager</code>&#39;s map.
12943
- * @type {!google.maps.RectangleOptions|null|undefined}
12944
- */
12945
- google.maps.drawing.DrawingManagerOptions.prototype.rectangleOptions;
12946
-
12947
- /**
12948
- * The properties of an overlaycomplete event on a <code>DrawingManager</code>.
12949
- * @record
12950
- */
12951
- google.maps.drawing.OverlayCompleteEvent = function() {};
12952
-
12953
- /**
12954
- * The completed overlay.
12955
- * @type {!google.maps.Marker|!google.maps.Polygon|!google.maps.Polyline|!google.maps.Rectangle|!google.maps.Circle}
12956
- */
12957
- google.maps.drawing.OverlayCompleteEvent.prototype.overlay;
12958
-
12959
- /**
12960
- * The completed overlay&#39;s type.
12961
- * @type {!google.maps.drawing.OverlayType}
12787
+ * @deprecated The DrawingManager functionality in the Maps JavaScript API is no
12788
+ * longer available in the Maps JavaScript API as of version 3.65. For more
12789
+ * info, see <a
12790
+ * href="https://developers.google.com/maps/deprecations">https://developers.google.com/maps/deprecations</a>.
12962
12791
  */
12963
- google.maps.drawing.OverlayCompleteEvent.prototype.type;
12792
+ google.maps.drawing.DrawingManager = function() {};
12964
12793
 
12965
12794
  /**
12966
12795
  * The types of overlay that may be created by the <code>DrawingManager</code>.
@@ -19483,6 +19312,12 @@ google.maps.places.AutocompleteRequest.prototype.input;
19483
19312
  */
19484
19313
  google.maps.places.AutocompleteRequest.prototype.inputOffset;
19485
19314
 
19315
+ /**
19316
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
19317
+ * @type {!Iterable<string>|null|undefined}
19318
+ */
19319
+ google.maps.places.AutocompleteRequest.prototype.internalUsageAttributionIds;
19320
+
19486
19321
  /**
19487
19322
  * The language in which to return results. Will default to the browser&#39;s
19488
19323
  * language preference. The results may be in mixed languages if the language
@@ -19859,6 +19694,13 @@ google.maps.places.BasicPlaceAutocompleteElement.prototype.includedPrimaryTypes;
19859
19694
  */
19860
19695
  google.maps.places.BasicPlaceAutocompleteElement.prototype.includedRegionCodes;
19861
19696
 
19697
+ /**
19698
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
19699
+ * @type {!Iterable<string>|null|undefined}
19700
+ */
19701
+ google.maps.places.BasicPlaceAutocompleteElement.prototype
19702
+ .internalUsageAttributionIds;
19703
+
19862
19704
  /**
19863
19705
  * A soft boundary or hint to use when searching for places.
19864
19706
  * @type {!google.maps.places.LocationBias|null}
@@ -19999,6 +19841,12 @@ google.maps.places.BasicPlaceAutocompleteElementOptions.prototype
19999
19841
  google.maps.places.BasicPlaceAutocompleteElementOptions.prototype
20000
19842
  .includedRegionCodes;
20001
19843
 
19844
+ /**
19845
+ * @type {!Iterable<string>|null|undefined}
19846
+ */
19847
+ google.maps.places.BasicPlaceAutocompleteElementOptions.prototype
19848
+ .internalUsageAttributionIds;
19849
+
20002
19850
  /**
20003
19851
  * @type {!google.maps.places.LocationBias|null|undefined}
20004
19852
  */
@@ -20441,10 +20289,16 @@ google.maps.places.FetchFieldsRequest = function() {};
20441
20289
 
20442
20290
  /**
20443
20291
  * List of fields to be fetched.
20444
- * @type {!Array<string>}
20292
+ * @type {!Iterable<string>}
20445
20293
  */
20446
20294
  google.maps.places.FetchFieldsRequest.prototype.fields;
20447
20295
 
20296
+ /**
20297
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
20298
+ * @type {!Iterable<string>|null|undefined}
20299
+ */
20300
+ google.maps.places.FetchFieldsRequest.prototype.internalUsageAttributionIds;
20301
+
20448
20302
  /**
20449
20303
  * A find place from text search request to be sent to {@link
20450
20304
  * google.maps.places.PlacesService.findPlaceFromPhoneNumber}.
@@ -22043,6 +21897,13 @@ google.maps.places.PlaceAutocompleteElement.prototype.includedPrimaryTypes;
22043
21897
  */
22044
21898
  google.maps.places.PlaceAutocompleteElement.prototype.includedRegionCodes;
22045
21899
 
21900
+ /**
21901
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
21902
+ * @type {!Iterable<string>|null|undefined}
21903
+ */
21904
+ google.maps.places.PlaceAutocompleteElement.prototype
21905
+ .internalUsageAttributionIds;
21906
+
22046
21907
  /**
22047
21908
  * A soft boundary or hint to use when searching for places.
22048
21909
  * @type {!google.maps.places.LocationBias|null}
@@ -22191,6 +22052,12 @@ google.maps.places.PlaceAutocompleteElementOptions.prototype
22191
22052
  google.maps.places.PlaceAutocompleteElementOptions.prototype
22192
22053
  .includedRegionCodes;
22193
22054
 
22055
+ /**
22056
+ * @type {!Iterable<string>|null|undefined}
22057
+ */
22058
+ google.maps.places.PlaceAutocompleteElementOptions.prototype
22059
+ .internalUsageAttributionIds;
22060
+
22194
22061
  /**
22195
22062
  * @type {!google.maps.places.LocationBias|null|undefined}
22196
22063
  */
@@ -22458,6 +22325,13 @@ google.maps.places.PlaceContextualListLayout = {
22458
22325
  */
22459
22326
  google.maps.places.PlaceDetailsCompactElement = function(options) {};
22460
22327
 
22328
+ /**
22329
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22330
+ * @type {!Iterable<string>|null|undefined}
22331
+ */
22332
+ google.maps.places.PlaceDetailsCompactElement.prototype
22333
+ .internalUsageAttributionIds;
22334
+
22461
22335
  /**
22462
22336
  * The orientation variant (vertical or horizontal) of the element.
22463
22337
  * @default <code>PlaceDetailsOrientation.VERTICAL</code>
@@ -22486,6 +22360,13 @@ google.maps.places.PlaceDetailsCompactElement.prototype.truncationPreferred;
22486
22360
  */
22487
22361
  google.maps.places.PlaceDetailsCompactElementOptions = function() {};
22488
22362
 
22363
+ /**
22364
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22365
+ * @type {!Iterable<string>|null|undefined}
22366
+ */
22367
+ google.maps.places.PlaceDetailsCompactElementOptions.prototype
22368
+ .internalUsageAttributionIds;
22369
+
22489
22370
  /**
22490
22371
  * See {@link google.maps.places.PlaceDetailsCompactElement.orientation}.
22491
22372
  * @type {!google.maps.places.PlaceDetailsOrientation|null|undefined}
@@ -22530,6 +22411,12 @@ google.maps.places.PlaceDetailsCompactElementOptions.prototype
22530
22411
  */
22531
22412
  google.maps.places.PlaceDetailsElement = function(options) {};
22532
22413
 
22414
+ /**
22415
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22416
+ * @type {!Iterable<string>|null|undefined}
22417
+ */
22418
+ google.maps.places.PlaceDetailsElement.prototype.internalUsageAttributionIds;
22419
+
22533
22420
  /**
22534
22421
  * Read only. Place object containing the ID, location, and viewport of the
22535
22422
  * currently rendered place.
@@ -22543,6 +22430,13 @@ google.maps.places.PlaceDetailsElement.prototype.place;
22543
22430
  */
22544
22431
  google.maps.places.PlaceDetailsElementOptions = function() {};
22545
22432
 
22433
+ /**
22434
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
22435
+ * @type {!Iterable<string>|null|undefined}
22436
+ */
22437
+ google.maps.places.PlaceDetailsElementOptions.prototype
22438
+ .internalUsageAttributionIds;
22439
+
22546
22440
  /**
22547
22441
  * Configures a {@link google.maps.places.PlaceDetailsCompactElement} or {@link
22548
22442
  * google.maps.places.PlaceDetailsElement} to load data based on a location.
@@ -23846,6 +23740,12 @@ google.maps.places.PlaceSearchElement = function(options) {};
23846
23740
  */
23847
23741
  google.maps.places.PlaceSearchElement.prototype.attributionPosition;
23848
23742
 
23743
+ /**
23744
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
23745
+ * @type {!Iterable<string>|null|undefined}
23746
+ */
23747
+ google.maps.places.PlaceSearchElement.prototype.internalUsageAttributionIds;
23748
+
23849
23749
  /**
23850
23750
  * The orientation variant (vertical or horizontal) of the element.
23851
23751
  * @default <code>PlaceSearchOrientation.VERTICAL</code>
@@ -23889,6 +23789,13 @@ google.maps.places.PlaceSearchElementOptions = function() {};
23889
23789
  */
23890
23790
  google.maps.places.PlaceSearchElementOptions.prototype.attributionPosition;
23891
23791
 
23792
+ /**
23793
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
23794
+ * @type {!Iterable<string>|null|undefined}
23795
+ */
23796
+ google.maps.places.PlaceSearchElementOptions.prototype
23797
+ .internalUsageAttributionIds;
23798
+
23892
23799
  /**
23893
23800
  * See {@link google.maps.places.PlaceSearchElement.orientation}.
23894
23801
  * @type {!google.maps.places.PlaceSearchOrientation|null|undefined}
@@ -25197,6 +25104,12 @@ google.maps.places.SearchByTextRequest.prototype
25197
25104
  */
25198
25105
  google.maps.places.SearchByTextRequest.prototype.includedType;
25199
25106
 
25107
+ /**
25108
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
25109
+ * @type {!Iterable<string>|null|undefined}
25110
+ */
25111
+ google.maps.places.SearchByTextRequest.prototype.internalUsageAttributionIds;
25112
+
25200
25113
  /**
25201
25114
  * Used to restrict the search to places that are currently open.
25202
25115
  * @default <code>false</code>
@@ -25405,6 +25318,12 @@ google.maps.places.SearchNearbyRequest.prototype.includedPrimaryTypes;
25405
25318
  */
25406
25319
  google.maps.places.SearchNearbyRequest.prototype.includedTypes;
25407
25320
 
25321
+ /**
25322
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
25323
+ * @type {!Iterable<string>|null|undefined}
25324
+ */
25325
+ google.maps.places.SearchNearbyRequest.prototype.internalUsageAttributionIds;
25326
+
25408
25327
  /**
25409
25328
  * Place details will be displayed with the preferred language if available.
25410
25329
  * Will default to the browser&#39;s language preference. Current list of
@@ -27137,10 +27056,22 @@ google.maps.routes.Route3DElement.prototype.departureTime;
27137
27056
 
27138
27057
  /**
27139
27058
  * The destination of the route.
27140
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27059
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27141
27060
  */
27142
27061
  google.maps.routes.Route3DElement.prototype.destination;
27143
27062
 
27063
+ /**
27064
+ * Fallback info for the computed routes.
27065
+ * @type {!google.maps.routes.FallbackInfo|null}
27066
+ */
27067
+ google.maps.routes.Route3DElement.prototype.fallbackInfo;
27068
+
27069
+ /**
27070
+ * Geocoding results for the origin and destination.
27071
+ * @type {!google.maps.routes.GeocodingResults|null}
27072
+ */
27073
+ google.maps.routes.Route3DElement.prototype.geocodingResults;
27074
+
27144
27075
  /**
27145
27076
  * Identifiers used to attribute calls to specific packages or OSS libraries.
27146
27077
  * @type {!Iterable<string>|null|undefined}
@@ -27149,10 +27080,17 @@ google.maps.routes.Route3DElement.prototype.internalUsageAttributionIds;
27149
27080
 
27150
27081
  /**
27151
27082
  * The origin of the route.
27152
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27083
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27153
27084
  */
27154
27085
  google.maps.routes.Route3DElement.prototype.origin;
27155
27086
 
27087
+ /**
27088
+ * The primary route along with optional alternate routes, computed from the
27089
+ * Routes API.
27090
+ * @type {!Array<!google.maps.routes.Route>|null}
27091
+ */
27092
+ google.maps.routes.Route3DElement.prototype.routes;
27093
+
27156
27094
  /**
27157
27095
  * If provided, the route will be computed with traffic information along the
27158
27096
  * route that&#39;s based on the {@link google.maps.routes.RoutingPreference}
@@ -27188,7 +27126,7 @@ google.maps.routes.Route3DElementOptions.prototype.departureTime;
27188
27126
 
27189
27127
  /**
27190
27128
  * See {@link google.maps.routes.Route3DElement.destination}.
27191
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27129
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27192
27130
  */
27193
27131
  google.maps.routes.Route3DElementOptions.prototype.destination;
27194
27132
 
@@ -27200,7 +27138,7 @@ google.maps.routes.Route3DElementOptions.prototype.internalUsageAttributionIds;
27200
27138
 
27201
27139
  /**
27202
27140
  * See {@link google.maps.routes.Route3DElement.origin}.
27203
- * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null}
27141
+ * @type {string|google.maps.LatLng|google.maps.LatLngLiteral|google.maps.LatLngAltitude|google.maps.LatLngAltitudeLiteral|google.maps.places.Place|null|undefined}
27204
27142
  */
27205
27143
  google.maps.routes.Route3DElementOptions.prototype.origin;
27206
27144
 
@@ -0,0 +1,75 @@
1
+ /*
2
+ * Copyright 2026 The Closure Compiler Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @fileoverview The spec of the AsyncContext API.
19
+ * @externs
20
+ * @see https://github.com/tc39/proposal-async-context/
21
+ */
22
+
23
+ /** @const */
24
+ var AsyncContext = {};
25
+
26
+ /**
27
+ * @record
28
+ * @template T
29
+ */
30
+ AsyncContext.VariableOpts = function() {
31
+ /** @type {string|undefined} */
32
+ this.name;
33
+ /** @type {T|undefined} */
34
+ this.defaultValue;
35
+ };
36
+
37
+ /**
38
+ * @constructor @struct
39
+ * @param {AsyncContext.VariableOpts=} opts
40
+ * @template T
41
+ */
42
+ AsyncContext.Variable = function(opts) {};
43
+
44
+ /** @const {string} */
45
+ AsyncContext.Variable.prototype.name;
46
+
47
+ /** @return {T} */
48
+ AsyncContext.Variable.prototype.get = function() {};
49
+
50
+ /**
51
+ * @param {T} value
52
+ * @param {function(...?): R} fn
53
+ * @param {...*} var_args
54
+ * @return {R}
55
+ * @template R
56
+ */
57
+ AsyncContext.Variable.prototype.run = function(value, fn, var_args) {};
58
+
59
+ /** @constructor @struct */
60
+ AsyncContext.Snapshot = function() {};
61
+
62
+ /**
63
+ * @param {function(...?): R} fn
64
+ * @param {...*} var_args
65
+ * @return {R}
66
+ * @template R
67
+ */
68
+ AsyncContext.Snapshot.prototype.run = function(fn, var_args) {};
69
+
70
+ /**
71
+ * @param {F} fn
72
+ * @return {F}
73
+ * @template F
74
+ */
75
+ AsyncContext.Snapshot.wrap = function(fn) {};
@@ -197,6 +197,30 @@ Document.prototype.replaceChildren = function(nodes) {};
197
197
  */
198
198
  DocumentFragment.prototype.replaceChildren = function(nodes) {};
199
199
 
200
+ /**
201
+ * @param {!Node} node
202
+ * @param {?Node} child
203
+ * @return {undefined}
204
+ * @see https://developer.mozilla.org/docs/Web/API/Element/moveBefore
205
+ */
206
+ Element.prototype.moveBefore = function(node, child) {};
207
+
208
+ /**
209
+ * @param {!Node} node
210
+ * @param {?Node} child
211
+ * @return {undefined}
212
+ * @see https://developer.mozilla.org/docs/Web/API/Document/moveBefore
213
+ */
214
+ Document.prototype.moveBefore = function(node, child) {};
215
+
216
+ /**
217
+ * @param {!Node} node
218
+ * @param {?Node} child
219
+ * @return {undefined}
220
+ * @see https://developer.mozilla.org/docs/Web/API/DocumentFragment/moveBefore
221
+ */
222
+ DocumentFragment.prototype.moveBefore = function(node, child) {};
223
+
200
224
  /**
201
225
  * @param {...(!Node|string)} nodes
202
226
  * @return {undefined}
@@ -0,0 +1,65 @@
1
+ /*
2
+ * Copyright 2015 The Closure Compiler Authors.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @fileoverview Conversion utilities taking arrays of either File or JSON file records
19
+ * and converting them to the other format.
20
+ *
21
+ * The JSON records are used to stream into and out of Closure Compiler and the File objects
22
+ * are the native format when working with Gulp
23
+ *
24
+ * @author Chad Killingsworth (chadkillingsworth@gmail.com)
25
+ */
26
+
27
+ import path from 'node:path';
28
+ import File from 'vinyl';
29
+
30
+ /**
31
+ * @param {!Array<!File>} files
32
+ * @return {!Array<!{
33
+ * src: string,
34
+ * path: string|undefined,
35
+ * sourceMap: string|undefined,
36
+ * }>}
37
+ */
38
+ export const filesToJson = (files) =>
39
+ files.map((file) => ({
40
+ src: file.contents.toString('utf8'),
41
+ path: file.relative || path.relative(process.cwd(), file.path),
42
+ ...(file.sourceMap !== undefined ? {sourceMap: JSON.stringify(file.sourceMap)} : undefined),
43
+ }));
44
+
45
+
46
+ /**
47
+ * @param {!Array<!{
48
+ * path: string,
49
+ * src: string,
50
+ * source_map: (string|undefined),
51
+ * sourceMap: (string|undefined),
52
+ * }>} fileRecords
53
+ * @return {!Array<!File>}
54
+ */
55
+ export const jsonToFiles = (fileRecords) =>
56
+ fileRecords.map((fileRecord) => {
57
+ const file = new File({
58
+ path: fileRecord.path,
59
+ contents: Buffer.from(fileRecord.src, 'utf8'),
60
+ });
61
+ if (fileRecord.source_map ?? fileRecord.sourceMap) {
62
+ file.sourceMap = JSON.parse(fileRecord.source_map ?? fileRecord.sourceMap);
63
+ }
64
+ return file;
65
+ });
package/lib/gulp/index.js CHANGED
@@ -31,25 +31,46 @@ import chalk from 'chalk';
31
31
  import File from 'vinyl';
32
32
  import applySourceMap from 'vinyl-sourcemaps-apply';
33
33
 
34
- import filesToJson from './concat-to-json.js';
35
- import jsonToVinyl from './json-to-vinyl.js';
34
+ import {filesToJson, jsonToFiles} from './file-json-utils.js';
36
35
  import Compiler from '../node/index.js';
37
36
  import {getNativeImagePath, getFirstSupportedPlatform} from '../utils.js';
38
37
 
39
38
  const PLUGIN_NAME = 'gulp-google-closure-compiler';
40
39
 
40
+ /**
41
+ * @typedef {{
42
+ * log: function(...?): undefined,
43
+ * warn: function(...?): void,
44
+ * error: function(...?): void,
45
+ * }|function(...?): void}
46
+ */
47
+ let Logger;
48
+
49
+ /** @type {!Logger|undefined} */
50
+ let logger;
51
+
52
+ /** @return {!Promise<!Logger>} */
41
53
  const getLogger = async () => {
54
+ if (logger) {
55
+ return logger;
56
+ }
57
+
42
58
  try {
43
59
  const { default: fancyLog } = await import('fancy-log');
44
- return fancyLog;
60
+ logger = fancyLog;
45
61
  } catch {}
46
62
 
47
- try {
48
- const { default: gulpUtil } = await import('gulp-util');
49
- return gulpUtil.log;
50
- } catch {}
63
+ if (!logger) {
64
+ try {
65
+ const {default: gulpUtil} = await import('gulp-util');
66
+ logger = gulpUtil.log;
67
+ } catch {}
68
+ }
51
69
 
52
- return console;
70
+ if (!logger) {
71
+ logger = console;
72
+ }
73
+ return logger;
53
74
  };
54
75
 
55
76
  /**
@@ -85,6 +106,10 @@ class CompilationStream extends stream.Transform {
85
106
  this.platform = getFirstSupportedPlatform(platforms);
86
107
  }
87
108
 
109
+ /**
110
+ * Used to trigger compiler execution when no input files are streamed
111
+ * @return {!CompilationStream}
112
+ */
88
113
  src() {
89
114
  this._streamInputRequired = false;
90
115
  process.nextTick(() => {
@@ -97,6 +122,12 @@ class CompilationStream extends stream.Transform {
97
122
  return this;
98
123
  }
99
124
 
125
+ /**
126
+ * @override
127
+ * @param {!File} file
128
+ * @param {string} enc
129
+ * @param {function(Error=): undefined} cb
130
+ */
100
131
  _transform(file, enc, cb) {
101
132
  // ignore empty files
102
133
  if (!file || file.isNull()) {
@@ -113,6 +144,10 @@ class CompilationStream extends stream.Transform {
113
144
  cb();
114
145
  }
115
146
 
147
+ /**
148
+ * @override
149
+ * @param {function(Error=): undefined} cb
150
+ */
116
151
  async _flush(cb) {
117
152
  let jsonFiles;
118
153
  if (this.fileList_.length > 0) {
@@ -234,7 +269,7 @@ class CompilationStream extends stream.Transform {
234
269
 
235
270
  // If present, standard output will be a string of JSON encoded files.
236
271
  // Convert these back to vinyl
237
- const outputFiles = jsonToVinyl(compiledJs);
272
+ const outputFiles = jsonToFiles(compiledJs);
238
273
 
239
274
  for (let i = 0; i < outputFiles.length; i++) {
240
275
  if (outputFiles[i].sourceMap) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "google-closure-compiler",
3
- "version": "20260531.0.0",
3
+ "version": "20260607.0.0",
4
4
  "description": "Check, compile, optimize and compress Javascript with Closure-Compiler",
5
5
  "type": "module",
6
6
  "repository": {
@@ -41,16 +41,16 @@
41
41
  "homepage": "https://developers.google.com/closure/compiler/",
42
42
  "dependencies": {
43
43
  "chalk": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 <5.6.1 || ^5.6.2 >5.6.1",
44
- "google-closure-compiler-java": "^20260531.0.0",
44
+ "google-closure-compiler-java": "^20260607.0.0",
45
45
  "minimist": "^1.0.0",
46
46
  "vinyl": "^3.0.1",
47
47
  "vinyl-sourcemaps-apply": "^0.2.0"
48
48
  },
49
49
  "optionalDependencies": {
50
- "google-closure-compiler-linux": "^20260531.0.0",
51
- "google-closure-compiler-linux-arm64": "^20260531.0.0",
52
- "google-closure-compiler-macos": "^20260531.0.0",
53
- "google-closure-compiler-windows": "^20260531.0.0"
50
+ "google-closure-compiler-linux": "^20260607.0.0",
51
+ "google-closure-compiler-linux-arm64": "^20260607.0.0",
52
+ "google-closure-compiler-macos": "^20260607.0.0",
53
+ "google-closure-compiler-windows": "^20260607.0.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "gulp": "^5.0.1",
@@ -1,68 +0,0 @@
1
- /*
2
- * Copyright 2015 The Closure Compiler Authors.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- /**
18
- * @fileoverview Convert an array of vinyl files to
19
- * a single JSON encoded string to pass to closure-compiler
20
- *
21
- * @author Chad Killingsworth (chadkillingsworth@gmail.com)
22
- */
23
-
24
- import path from 'node:path';
25
-
26
- /**
27
- * @param {string} src
28
- * @param {string=} path
29
- * @param {string=} sourceMap
30
- * @return {{
31
- * src: string,
32
- * path: string|undefined,
33
- * sourceMap: string|undefined,
34
- * }}
35
- */
36
- const json_file = (src, path, sourceMap) => {
37
- return {
38
- src: src,
39
- ...(path !== undefined ? {path} : undefined),
40
- ...(sourceMap !== undefined ? {sourceMap} : undefined),
41
- };
42
- };
43
-
44
- /**
45
- * @param {!Array<!{
46
- * src: string,
47
- * path: string|undefined,
48
- * sourceMap: string|undefined,
49
- * }>} files
50
- * @return {string}
51
- */
52
- export default (files) => {
53
- /**
54
- * @type {!Array<!{
55
- * src: string,
56
- * path: string|undefined,
57
- * sourceMap: string|undefined,
58
- * }>}
59
- */
60
- const jsonFiles = [];
61
- for (let i = 0; i < files.length; i++) {
62
- jsonFiles.push(
63
- json_file(files[i].contents.toString(), files[i].relative || path.relative(process.cwd(), files[i].path),
64
- files[i].sourceMap ? JSON.stringify(files[i].sourceMap) : undefined));
65
- }
66
-
67
- return jsonFiles;
68
- };
@@ -1,47 +0,0 @@
1
- /*
2
- * Copyright 2015 The Closure Compiler Authors.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- /**
18
- * @fileoverview Convert a string of JSON encoded files
19
- * back to an array of vinyl files
20
- *
21
- * @author Chad Killingsworth (chadkillingsworth@gmail.com)
22
- */
23
- import File from 'vinyl';
24
-
25
- /**
26
- * @param {!Array<!{
27
- * path: string,
28
- * src: string,
29
- * sourceMap: (string|undefined)
30
- * }>} fileList array of file objects
31
- * @return {!Array<!File>}
32
- */
33
- export default (fileList) => {
34
- let outputFiles = [];
35
- for (let i = 0; i < fileList.length; i++) {
36
- const file = new File({
37
- path: fileList[i].path,
38
- contents: Buffer.from(fileList[i].src)
39
- });
40
- if (fileList[i].source_map || fileList[i].sourceMap) {
41
- file.sourceMap = JSON.parse(fileList[i].source_map || fileList[i].sourceMap);
42
- }
43
- outputFiles.push(file);
44
- }
45
-
46
- return outputFiles;
47
- };