From 2faddb68bfd864bdabc786936334e4593571195e Mon Sep 17 00:00:00 2001 From: David Osborne Date: Wed, 3 Sep 2025 00:48:21 +1000 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#73596=20fix(cu?= =?UTF-8?q?lori):=20Allow=20passing=20mode=20as=20null=20when=20calling=20?= =?UTF-8?q?mapper=20by=20@krendil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/culori/src/map.d.ts | 1 + types/culori/test/mapper.test.ts | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/types/culori/src/map.d.ts b/types/culori/src/map.d.ts index 8940d44cbafc87..3f959818c50166 100644 --- a/types/culori/src/map.d.ts +++ b/types/culori/src/map.d.ts @@ -29,6 +29,7 @@ declare function mapper(fn: MapFn<"rgb">, mode?: undefined, preserve_mode?: fals declare function mapper(fn: MapFn<"rgb">, mode: undefined, preserve_mode: true): ColorToSameColorMapper; declare function mapper(fn: MapFn, mode: M, preserve_mode?: false): ColorToPredefinedColorMapper; declare function mapper(fn: MapFn, mode: M, preserve_mode: true): ColorToSameColorMapper; +declare function mapper(fn: MapFn, mode: null, preserve_mode?: false): ColorToSameColorMapper; declare function mapAlphaMultiply(v: number, ch: Channel, c: Color): number; diff --git a/types/culori/test/mapper.test.ts b/types/culori/test/mapper.test.ts index f8a10fa5f26f8b..de20e31e487739 100644 --- a/types/culori/test/mapper.test.ts +++ b/types/culori/test/mapper.test.ts @@ -46,3 +46,11 @@ mapper( undefined, true, ); + +const halver = mapper(v => v / 2, null); + +// $ExpectType Rgb +halver({ mode: "rgb", r: 0.5, b: 0.2, g: 0.1 }); + +// $ExpectType Hsl +halver({ h: 240, s: 1, l: 0.5, mode: "hsl", alpha: 0.5 }); From 96a65bf3afb4efe0961235e6e2e712dde2bfbf61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Rivi=C3=A8re?= <158267963+gSriviere@users.noreply.github.com> Date: Tue, 2 Sep 2025 17:22:21 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#73599=20=20[go?= =?UTF-8?q?ogle-apps-script]=20Calendar=20API:=20Adding=20tests=20and=20mi?= =?UTF-8?q?ssing=20transparency=20API.=20CardService:=20Adding=20missing?= =?UTF-8?q?=20SelectionInput=20enum=20value=20by=20@gSriviere?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../google-apps-script.calendar.d.ts | 12 +- .../google-apps-script.card-service.d.ts | 2 + .../test/google-apps-script-tests.ts | 148 ++++++++++++++++-- 3 files changed, 148 insertions(+), 14 deletions(-) diff --git a/types/google-apps-script/google-apps-script.calendar.d.ts b/types/google-apps-script/google-apps-script.calendar.d.ts index 1981d82c764d1d..bd052b93f386f5 100644 --- a/types/google-apps-script/google-apps-script.calendar.d.ts +++ b/types/google-apps-script/google-apps-script.calendar.d.ts @@ -80,6 +80,7 @@ declare namespace GoogleAppsScript { interface CalendarApp { Color: typeof Color; EventColor: typeof EventColor; + EventTransparency: typeof EventTransparency; EventType: typeof EventType; GuestStatus: typeof GuestStatus; Month: typeof Base.Month; @@ -195,6 +196,7 @@ declare namespace GoogleAppsScript { getStartTime(): Base.Date; getTag(key: string): string; getTitle(): string; + getTransparency(): EventTransparency; getVisibility(): Visibility; guestsCanInviteOthers(): boolean; guestsCanModify(): boolean; @@ -208,7 +210,7 @@ declare namespace GoogleAppsScript { setAllDayDate(date: Base.Date): CalendarEvent; setAllDayDates(startDate: Base.Date, endDate: Base.Date): CalendarEvent; setAnyoneCanAddSelf(anyoneCanAddSelf: boolean): CalendarEvent; - setColor(color: string): CalendarEvent; + setColor(color: string | EventColor): CalendarEvent; setDescription(description: string): CalendarEvent; setGuestsCanInviteOthers(guestsCanInviteOthers: boolean): CalendarEvent; setGuestsCanModify(guestsCanModify: boolean): CalendarEvent; @@ -218,6 +220,7 @@ declare namespace GoogleAppsScript { setTag(key: string, value: string): CalendarEvent; setTime(startTime: Base.Date, endTime: Base.Date): CalendarEvent; setTitle(title: string): CalendarEvent; + setTransparency(transparency: EventTransparency): CalendarEvent; setVisibility(visibility: Visibility): CalendarEvent; } /** @@ -335,6 +338,13 @@ declare namespace GoogleAppsScript { getName(): string; /** @deprecated DO NOT USE */ getStatus(): string; } + /** + * An enum representing the transparency of an event. + */ + enum EventTransparency { + OPAQUE, + TRANSPARENT, + } /** * Represents the recurrence settings for an event series. */ diff --git a/types/google-apps-script/google-apps-script.card-service.d.ts b/types/google-apps-script/google-apps-script.card-service.d.ts index 560e91cc6a8042..f0e71dddc13d9e 100644 --- a/types/google-apps-script/google-apps-script.card-service.d.ts +++ b/types/google-apps-script/google-apps-script.card-service.d.ts @@ -650,6 +650,8 @@ declare namespace GoogleAppsScript { CHECK_BOX, RADIO_BUTTON, DROPDOWN, + SWITCH, + MULTI_SELECT, } /** * Autocomplete suggestions to supplement a TextInput widget. diff --git a/types/google-apps-script/test/google-apps-script-tests.ts b/types/google-apps-script/test/google-apps-script-tests.ts index 5fd543fc572ef1..cbd867a64ed378 100644 --- a/types/google-apps-script/test/google-apps-script-tests.ts +++ b/types/google-apps-script/test/google-apps-script-tests.ts @@ -39,19 +39,128 @@ const postTest = (payload: object): string => { return UrlFetchApp.fetch(url, params).getContentText(); }; -// Test CalendarApp.EventType -const testCalendarAppEventType = (): void => { - const event = CalendarApp.getEventById("testevent"); - const type = event.getEventType(); - const birthdayType = CalendarApp.EventType.BIRTHDAY; - birthdayType !== type; - - type !== CalendarApp.EventType.FOCUS_TIME; - - type == GoogleAppsScript.Calendar.EventType.OUT_OF_OFFICE; - // @ts-expect-error - type == GoogleAppsScript.Calendar.EventType.STANDARD; -}; +// CalendarApp +// https://developers.google.com/apps-script/reference/calendar/calendar-app + +// CalendarApp.Color +// https://developers.google.com/apps-script/reference/calendar/color + +function testCalendarAppColor() { + CalendarApp.Color.BLUE; + CalendarApp.Color.BROWN; + CalendarApp.Color.CHARCOAL; + CalendarApp.Color.CHESTNUT; + CalendarApp.Color.GRAY; + CalendarApp.Color.GREEN; + CalendarApp.Color.INDIGO; + CalendarApp.Color.LIME; + CalendarApp.Color.MUSTARD; + CalendarApp.Color.OLIVE; + CalendarApp.Color.ORANGE; + CalendarApp.Color.PINK; + CalendarApp.Color.PLUM; + CalendarApp.Color.PURPLE; + CalendarApp.Color.RED; + CalendarApp.Color.RED_ORANGE; + CalendarApp.Color.SEA_BLUE; + CalendarApp.Color.SLATE; + CalendarApp.Color.TEAL; + CalendarApp.Color.TURQOISE; + CalendarApp.Color.YELLOW; +} + +// CalendarApp.EventTransparency +// https://developers.google.com/apps-script/reference/calendar/event-transparency + +function testCalendarAppEventTransparency() { + CalendarApp.EventTransparency.OPAQUE; + CalendarApp.EventTransparency.TRANSPARENT; +} + +// CalendarApp.EventType +// https://developers.google.com/apps-script/reference/calendar/event-type + +function testCalendarAppEventType() { + CalendarApp.EventType.DEFAULT; + CalendarApp.EventType.BIRTHDAY; + CalendarApp.EventType.FOCUS_TIME; + CalendarApp.EventType.FROM_GMAIL; + CalendarApp.EventType.OUT_OF_OFFICE; + CalendarApp.EventType.WORKING_LOCATION; +} + +// CalendarEvent +// https://developers.google.com/apps-script/reference/calendar/calendar-event + +function testCalendarEvent() { + const event = CalendarApp.getEventById('abc123456'); + + event.addEmailReminder(15); // $ExpectType CalendarEvent + event.addGuest('user@example.com'); // $ExpectType CalendarEvent + event.addPopupReminder(10); // $ExpectType CalendarEvent + event.addSmsReminder(5); // $ExpectType CalendarEvent + event.anyoneCanAddSelf(); // $ExpectType boolean + event.deleteEvent(); // $ExpectType void + event.deleteTag('sometag'); // $ExpectType CalendarEvent + event.getAllDayEndDate(); // $ExpectType Date + event.getAllDayStartDate(); // $ExpectType Date + event.getAllTagKeys(); // $ExpectType string[] + event.getColor(); // $ExpectType string + event.getCreators(); // $ExpectType string[] + event.getDateCreated(); // $ExpectType Date + event.getDescription(); // $ExpectType string + event.getEmailReminders(); // $ExpectType number[] + event.getEndTime(); // $ExpectType Date + event.getEventSeries(); // $ExpectType CalendarEventSeries + event.getEventType(); // $ExpectType EventType + event.getGuestByEmail('user@example.com'); // $ExpectType EventGuest + event.getGuestList(); // $ExpectType EventGuest[] + event.getGuestList(true); // $ExpectType EventGuest[] + event.getId(); // $ExpectType string + event.getLastUpdated(); // $ExpectType Date + event.getLocation(); // $ExpectType string + event.getMyStatus(); // $ExpectType GuestStatus + event.getOriginalCalendarId(); // $ExpectType string + event.getPopupReminders(); // $ExpectType number[] + event.getSmsReminders(); // $ExpectType number[] + event.getStartTime(); // $ExpectType Date + event.getTag('somekey'); // $ExpectType string + event.getTitle(); // $ExpectType string + event.getTransparency(); // $ExpectType EventTransparency + event.getVisibility(); // $ExpectType Visibility + event.guestsCanInviteOthers(); // $ExpectType boolean + event.guestsCanModify(); // $ExpectType boolean + event.guestsCanSeeGuests(); // $ExpectType boolean + event.isAllDayEvent(); // $ExpectType boolean + event.isOwnedByMe(); // $ExpectType boolean + event.isRecurringEvent(); // $ExpectType boolean + event.removeAllReminders(); // $ExpectType CalendarEvent + event.removeGuest('user@example.com'); // $ExpectType CalendarEvent + event.resetRemindersToDefault(); // $ExpectType CalendarEvent + event.setAllDayDate(new Date('Feb 17, 2023')); // $ExpectType CalendarEvent + // $ExpectType CalendarEvent + event.setAllDayDates( + new Date('Feb 18, 2023'), + new Date('Feb 25, 2023')); + event.setAnyoneCanAddSelf(true); // $ExpectType CalendarEvent + event.setColor('3'); // $ExpectType CalendarEvent + event.setColor(CalendarApp.EventColor.GREEN); // $ExpectType CalendarEvent + event.setDescription('some description'); // $ExpectType CalendarEvent + event.setGuestsCanInviteOthers(true); // $ExpectType CalendarEvent + event.setGuestsCanModify(true); // $ExpectType CalendarEvent + event.setGuestsCanSeeGuests(true); // $ExpectType CalendarEvent + event.setLocation('some location'); // $ExpectType CalendarEvent + event.setMyStatus(CalendarApp.GuestStatus.MAYBE); // $ExpectType CalendarEvent + event.setTag('somekey', 'somevalue'); // $ExpectType CalendarEvent + // $ExpectType CalendarEvent + event.setTime( + new Date('Feb 20, 2023 11:00:00'), + new Date('Feb 20, 2023 12:00:00')); + event.setTitle('some location'); // $ExpectType CalendarEvent + event.setTransparency(CalendarApp.EventTransparency.TRANSPARENT); // $ExpectType CalendarEvent + event.setVisibility(CalendarApp.Visibility.PRIVATE); // $ExpectType CalendarEvent +} + // ScriptApp // https://developers.google.com/apps-script/reference/script/script-app @@ -524,6 +633,19 @@ CardService.newOpenLink().setOnClose(CardService.OnClose.NOTHING); // $ExpectTyp CardService.newOpenLink().setOnClose(CardService.OnClose.RELOAD); // $ExpectType OpenLink CardService.newOpenLink().setOnClose(CardService.OnClose.RELOAD_ADD_ON); // $ExpectType OpenLink +// Class CardService.SelectionInput +// https://developers.google.com/apps-script/reference/card-service/selection-input +CardService.newSelectionInput(); // $ExpectType SelectionInput + +// Enum SelectionInputType +// https://developers.google.com/apps-script/reference/card-service/selection-input-type +CardService.SelectionInputType.CHECK_BOX; +CardService.SelectionInputType.RADIO_BUTTON; +CardService.SelectionInputType.DROPDOWN; +CardService.SelectionInputType.SWITCH; +CardService.SelectionInputType.MULTI_SELECT; + + DriveApp.createShortcut("").getTargetId(); DriveApp.createFile("", "").moveTo(DriveApp.getFolderById("")); From a479560cbff800f1c89edd0fb3a41e99849caef5 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Tue, 2 Sep 2025 15:22:54 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=A4=96=20dprint=20fmt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/google-apps-script-tests.ts | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/types/google-apps-script/test/google-apps-script-tests.ts b/types/google-apps-script/test/google-apps-script-tests.ts index cbd867a64ed378..81f17236f5287c 100644 --- a/types/google-apps-script/test/google-apps-script-tests.ts +++ b/types/google-apps-script/test/google-apps-script-tests.ts @@ -93,15 +93,15 @@ function testCalendarAppEventType() { // https://developers.google.com/apps-script/reference/calendar/calendar-event function testCalendarEvent() { - const event = CalendarApp.getEventById('abc123456'); + const event = CalendarApp.getEventById("abc123456"); event.addEmailReminder(15); // $ExpectType CalendarEvent - event.addGuest('user@example.com'); // $ExpectType CalendarEvent + event.addGuest("user@example.com"); // $ExpectType CalendarEvent event.addPopupReminder(10); // $ExpectType CalendarEvent event.addSmsReminder(5); // $ExpectType CalendarEvent event.anyoneCanAddSelf(); // $ExpectType boolean event.deleteEvent(); // $ExpectType void - event.deleteTag('sometag'); // $ExpectType CalendarEvent + event.deleteTag("sometag"); // $ExpectType CalendarEvent event.getAllDayEndDate(); // $ExpectType Date event.getAllDayStartDate(); // $ExpectType Date event.getAllTagKeys(); // $ExpectType string[] @@ -113,7 +113,7 @@ function testCalendarEvent() { event.getEndTime(); // $ExpectType Date event.getEventSeries(); // $ExpectType CalendarEventSeries event.getEventType(); // $ExpectType EventType - event.getGuestByEmail('user@example.com'); // $ExpectType EventGuest + event.getGuestByEmail("user@example.com"); // $ExpectType EventGuest event.getGuestList(); // $ExpectType EventGuest[] event.getGuestList(true); // $ExpectType EventGuest[] event.getId(); // $ExpectType string @@ -124,7 +124,7 @@ function testCalendarEvent() { event.getPopupReminders(); // $ExpectType number[] event.getSmsReminders(); // $ExpectType number[] event.getStartTime(); // $ExpectType Date - event.getTag('somekey'); // $ExpectType string + event.getTag("somekey"); // $ExpectType string event.getTitle(); // $ExpectType string event.getTransparency(); // $ExpectType EventTransparency event.getVisibility(); // $ExpectType Visibility @@ -135,33 +135,34 @@ function testCalendarEvent() { event.isOwnedByMe(); // $ExpectType boolean event.isRecurringEvent(); // $ExpectType boolean event.removeAllReminders(); // $ExpectType CalendarEvent - event.removeGuest('user@example.com'); // $ExpectType CalendarEvent + event.removeGuest("user@example.com"); // $ExpectType CalendarEvent event.resetRemindersToDefault(); // $ExpectType CalendarEvent - event.setAllDayDate(new Date('Feb 17, 2023')); // $ExpectType CalendarEvent + event.setAllDayDate(new Date("Feb 17, 2023")); // $ExpectType CalendarEvent // $ExpectType CalendarEvent event.setAllDayDates( - new Date('Feb 18, 2023'), - new Date('Feb 25, 2023')); - event.setAnyoneCanAddSelf(true); // $ExpectType CalendarEvent - event.setColor('3'); // $ExpectType CalendarEvent + new Date("Feb 18, 2023"), + new Date("Feb 25, 2023"), + ); + event.setAnyoneCanAddSelf(true); // $ExpectType CalendarEvent + event.setColor("3"); // $ExpectType CalendarEvent event.setColor(CalendarApp.EventColor.GREEN); // $ExpectType CalendarEvent - event.setDescription('some description'); // $ExpectType CalendarEvent + event.setDescription("some description"); // $ExpectType CalendarEvent event.setGuestsCanInviteOthers(true); // $ExpectType CalendarEvent event.setGuestsCanModify(true); // $ExpectType CalendarEvent event.setGuestsCanSeeGuests(true); // $ExpectType CalendarEvent - event.setLocation('some location'); // $ExpectType CalendarEvent + event.setLocation("some location"); // $ExpectType CalendarEvent event.setMyStatus(CalendarApp.GuestStatus.MAYBE); // $ExpectType CalendarEvent - event.setTag('somekey', 'somevalue'); // $ExpectType CalendarEvent + event.setTag("somekey", "somevalue"); // $ExpectType CalendarEvent // $ExpectType CalendarEvent event.setTime( - new Date('Feb 20, 2023 11:00:00'), - new Date('Feb 20, 2023 12:00:00')); - event.setTitle('some location'); // $ExpectType CalendarEvent + new Date("Feb 20, 2023 11:00:00"), + new Date("Feb 20, 2023 12:00:00"), + ); + event.setTitle("some location"); // $ExpectType CalendarEvent event.setTransparency(CalendarApp.EventTransparency.TRANSPARENT); // $ExpectType CalendarEvent event.setVisibility(CalendarApp.Visibility.PRIVATE); // $ExpectType CalendarEvent } - // ScriptApp // https://developers.google.com/apps-script/reference/script/script-app @@ -645,7 +646,6 @@ CardService.SelectionInputType.DROPDOWN; CardService.SelectionInputType.SWITCH; CardService.SelectionInputType.MULTI_SELECT; - DriveApp.createShortcut("").getTargetId(); DriveApp.createFile("", "").moveTo(DriveApp.getFolderById(""));