{"id":48975253,"url":"https://github.com/MaksymStoianov/apps-script-utils","last_synced_at":"2026-05-04T11:01:40.037Z","repository":{"id":306432436,"uuid":"1022965453","full_name":"MaksymStoianov/apps-script-utils","owner":"MaksymStoianov","description":"Utilities for Google Apps Script™ projects.","archived":false,"fork":false,"pushed_at":"2026-04-14T12:10:36.000Z","size":3547,"stargazers_count":24,"open_issues_count":0,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-14T14:16:15.289Z","etag":null,"topics":["apps-script","appsscript","developer-tools","google-apps-script","google-apps-script-library","google-docs","google-drive","google-forms","google-sheets","google-slides","google-workspace","googleappsscript","gsuite","javascript","library","maksymstoianov","typescript"],"latest_commit_sha":null,"homepage":"https://maksymstoianov.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaksymStoianov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["MaksymStoianov"],"buy_me_a_coffee":"MaksymStoianov"}},"created_at":"2025-07-20T08:27:22.000Z","updated_at":"2026-04-14T12:10:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"d41a3da1-a4c6-40b0-8531-8efd7267481e","html_url":"https://github.com/MaksymStoianov/apps-script-utils","commit_stats":null,"previous_names":["maksymstoianov/appsscript-utils","maksymstoianov/apps-script-utils"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/MaksymStoianov/apps-script-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaksymStoianov%2Fapps-script-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaksymStoianov%2Fapps-script-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaksymStoianov%2Fapps-script-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaksymStoianov%2Fapps-script-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaksymStoianov","download_url":"https://codeload.github.com/MaksymStoianov/apps-script-utils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaksymStoianov%2Fapps-script-utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32604587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apps-script","appsscript","developer-tools","google-apps-script","google-apps-script-library","google-docs","google-drive","google-forms","google-sheets","google-slides","google-workspace","googleappsscript","gsuite","javascript","library","maksymstoianov","typescript"],"created_at":"2026-04-18T09:00:23.594Z","updated_at":"2026-05-04T11:01:39.975Z","avatar_url":"https://github.com/MaksymStoianov.png","language":"TypeScript","funding_links":["https://github.com/sponsors/MaksymStoianov","https://buymeacoffee.com/MaksymStoianov"],"categories":["Libraries \u0026 Modules"],"sub_categories":["Utility"],"readme":"\u003ca name=\"top\"\u003e\u003c/a\u003e\n\n![Project banner for Google Apps Script Utils](docs/assets/images/banner-1280x640.jpg)\n\n\u003cp align=\"right\"\u003e\n    \u003csmall\u003e\n        \u003ci\u003eArtist: \u003ca href=\"https://darynamikhailenko.com/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=apps-script-utils\u0026utm_content=banner-artist-credit\" title=\"Portfolio of Daryna Mikhailenko, the artist\"\u003eDaryna Mikhailenko\u003c/a\u003e\u003c/i\u003e\n    \u003c/small\u003e\n\u003c/p\u003e\n\n# Utilities for Google Apps Script™\n\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://github.com/google/clasp\"\u003e\u003cimg src=\"https://img.shields.io/badge/Built%20with-clasp-4285f4.svg\" alt=\"Built with clasp\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/MaksymStoianov/apps-script-utils?label=License\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"SECURITY.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/Security-Policy-brightgreen.svg\" alt=\"Security Policy\"\u003e\u003c/a\u003e\n  \u003ca href=\"ROADMAP.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/Roadmap-View-blue.svg\" alt=\"Roadmap\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/MaksymStoianov/apps-script-utils/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/MaksymStoianov/apps-script-utils?label=Release\" alt=\"Latest release\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://github.com/MaksymStoianov/apps-script-utils/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/MaksymStoianov/apps-script-utils?style=social\" alt=\"GitHub Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/MaksymStoianov/apps-script-utils/forks\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/MaksymStoianov/apps-script-utils?style=social\" alt=\"GitHub Fork\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sponsors/MaksymStoianov\"\u003e\u003cimg src=\"https://img.shields.io/github/sponsors/MaksymStoianov?style=social\u0026logo=github\" alt=\"GitHub Sponsors\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- TOC --\u003e\n\n- [Utilities for Google Apps Script™ projects](#utilities-for-google-apps-script-projects)\n  - [Overview](#overview)\n  - [Key Features](#key-features)\n  - [Requirements](#requirements)\n  - [Installation](#installation)\n  - [Usage Examples](#usage-examples)\n  - [Development](#development)\n    - [Scripts](#scripts)\n    - [Testing](#testing)\n  - [Project Structure](#project-structure)\n  - [Functions by Category](#functions-by-category)\n    - [1. Google Apps Script Module](#1-google-apps-script-module)\n      - [1.1. Google Base Methods](#11-google-base-methods)\n      - [1.2. Google Admin SDK Directory Methods](#12-google-admin-sdk-directory-methods)\n      - [1.3. Google Drive Methods](#13-google-drive-methods)\n      - [1.4. Google Docs Methods](#14-google-docs-methods)\n      - [1.5. Google Forms Methods](#15-google-forms-methods)\n      - [1.6. Google Sheets Methods](#16-google-sheets-methods)\n      - [1.7. Google Slides Methods](#17-google-slides-methods)\n      - [1.8. Network Methods](#18-network-methods)\n      - [1.9. Google UI Methods](#19-google-ui-methods)\n    - [2. `Base` Utilities](#2-base-utilities)\n    - [3. Exceptions Module](#3-exceptions-module)\n    - [4. `path` Module](#4-path-module)\n    - [5. `abstracts` and `interfaces`](#5-abstracts-and-interfaces)\n  - [Contributing](#contributing)\n  - [Support](#support)\n  - [Roadmap](#roadmap)\n  - [Changelog](#changelog)\n  - [License](#license)\n  \u003c!-- TOC --\u003e\n\n## Overview\n\nA set of utilities for **Google Apps Script**, as well as common functions for working with data, strings, validation\nand\nmore. This project aims to simplify development in the Apps Script environment and provide frequently used functions in\none place.\n\n## Key Features\n\n- 🚀 **Optimized for GAS**: Tailored specifically for Google Apps Script environments and limitations.\n- 🛠️ **Rich Utility Set**: Comprehensive collection of spreadsheet, UI, and admin SDK helpers.\n- 📝 **TypeScript Support**: Full type definitions for better IDE support and safer code.\n- 🧪 **Tested**: Unit tests using Vitest to ensure reliability.\n- 🔗 **Linked Documentation**: Direct links to official Google documentation for all GAS types.\n- 🛡️ **Robust Error Handling**: Custom exception classes for better debugging.\n\n## Requirements\n\n- [Node.js](https://nodejs.org/) (v20 or higher recommended)\n- [npm](https://www.npmjs.com/)\n\n## Installation\n\nInstall the package via npm:\n\n```bash\nnpm install apps-script-utils\n```\n\n## Usage Examples\n\n### 📊 Working with Sheets\n\nAppend multiple rows of data efficiently:\n\n```typescript\nimport { appendRows } from \"apps-script-utils\";\n\nconst sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(\"Data\");\nconst data = [\n  [\"John Doe\", \"john@example.com\", 28],\n  [\"Jane Smith\", \"jane@example.com\", 32]\n];\n\nappendRows(sheet, data);\n```\n\n### 🔐 Admin SDK Utilities\n\nCheck if the current user has administrative privileges:\n\n```typescript\nimport { isAdmin } from \"apps-script-utils\";\n\nif (isAdmin()) {\n  Logger.log(\"Access granted to admin panel.\");\n} else {\n  Logger.log(\"Access denied.\");\n}\n```\n\n### 📍 A1 Notation Parsing\n\nParse complex A1 notations into structured objects:\n\n```typescript\nimport { parseA1Notation } from \"apps-script-utils\";\n\nconst rangeInfo = parseA1Notation(\"'Sheet1'!A1:B10\");\n\nconsole.log(rangeInfo.sheetName); // \"Sheet1\"\nconsole.log(rangeInfo.startRowIndex); // 0\nconsole.log(rangeInfo.endColumnIndex); // 2\n```\n\n## Development\n\n### Scripts\n\nThe following scripts are available in `package.json`:\n\n- `npm run build`: Cleans the `dist` directory and compiles the TypeScript source.\n- `npm run dev`: Starts Vitest in watch mode.\n- `npm test`: Runs all tests once.\n- `npm run lint`: Runs ESLint with auto-fix enabled.\n- `npm run format`: Formats the codebase using Prettier.\n- `npm run maint`: Runs the maintenance script (`scripts/maintenance.sh`).\n- `npm run prepare`: Sets up Husky for git hooks.\n\n### Testing\n\nThe project uses [Vitest](https://vitest.dev/) for testing. You can run tests using:\n\n```bash\nnpm test\n```\n\nFor development with watch mode:\n\n```bash\nnpm run dev\n```\n\n## Project Structure\n\n```text\n.\n├── config/           # Configuration files\n├── dist/             # Compiled output (after build)\n├── docs/             # Documentation and assets\n├── scripts/          # Maintenance and helper scripts\n├── src/              # Source code\n│   ├── appsscript/   # Google Apps Script specific utilities\n│   ├── exception/    # Custom exception classes\n│   ├── html/         # HTML utilities\n│   ├── json/         # JSON utilities\n│   ├── lang/         # Language-level utilities (array, string, etc.)\n│   ├── net/          # Network and path utilities\n│   ├── time/         # Time-related utilities\n│   └── index.ts      # Main entry point\n├── test/             # Unit tests\n└── vitest.config.ts  # Vitest configuration\n```\n\n## Functions by Category\n\n### 1. Google Apps Script Module\n\nFunctions specifically designed for Google Apps Script environments, including utilities for working with spreadsheets.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n#### 1.1. Google Base Methods\n\nFunctions that enable various operations on a collection of base utility methods.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/base/getByteSize.ts\"\u003e\u003ccode\u003egetByteSize\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eCalculates the size of a string in bytes (UTF-8).\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.2. Google Admin SDK Directory Methods\n\nFunctions that enable various operations on\nthe [Admin SDK Directory Service](https://developers.google.cn/apps-script/advanced/admin-sdk-directory).\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/admin/isAdmin.ts\"\u003e\u003ccode\u003eisAdmin\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if the current user is an administrator of the Google Workspace domain.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.3. Google Drive Methods\n\nFunctions that enable various operations on Google Drive.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.4. Google Docs Methods\n\nFunctions that enable various operations on Google Docs.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.5. Google Forms Methods\n\nFunctions that enable various operations on Google Forms.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.6. Google Sheets Methods\n\nFunctions that enable various operations on Google Sheets.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/appendColumn.ts\"\u003e\u003ccode\u003eappendColumn\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eAppends a single column of data to the right of the current data area.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/appendColumns.ts\"\u003e\u003ccode\u003eappendColumns\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eAppends multiple columns of data to the right of the current data area.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/appendRow.ts\"\u003e\u003ccode\u003eappendRow\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eAppends a single row of data to the bottom of the current data area.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/appendRows.ts\"\u003e\u003ccode\u003eappendRows\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eAppends multiple rows of data to the bottom of the current data area.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/convertRichTextToHtml.ts\"\u003e\u003ccode\u003econvertRichTextToHtml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/rich-text-value\"\u003e\u003ccode\u003eRichTextValue\u003c/code\u003e\u003c/a\u003e to its HTML representation.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/doGridRangesIntersect.ts\"\u003e\u003ccode\u003edoGridRangesIntersect\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if two \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e objects overlap on the same sheet.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/extractRangeFromA1Notation.ts\"\u003e\u003ccode\u003eextractRangeFromA1Notation\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString | null\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eExtracts the range part (e.g., \u003ccode\u003eA1:B2\u003c/code\u003e) from a full A1 notation string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/extractSheetNameFromA1Notation.ts\"\u003e\u003ccode\u003eextractSheetNameFromA1Notation\u003c/code\u003e\u003c/a\u003e \u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString | null\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eExtracts the sheet name part from an A1 notation string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/getColumnIndexByLetter.ts\"\u003e\u003ccode\u003egetColumnIndexByLetter\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber | null\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a column letter (e.g., \u003ccode\u003eA\u003c/code\u003e) to a 0-based column index.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/getColumnLetterByIndex.ts\"\u003e\u003ccode\u003egetColumnLetterByIndex\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a 0-based column index to its letter representation (e.g., \u003ccode\u003e0\u003c/code\u003e -\u003e \u003ccode\u003eA\u003c/code\u003e).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/getColumnLetterByPosition.ts\"\u003e\u003ccode\u003egetColumnLetterByPosition\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a 1-based column position to its letter representation.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/getColumnPositionByLetter.ts\"\u003e\u003ccode\u003egetColumnPositionByLetter\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber | null\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a column letter to a 1-based column position.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/getSheetById.ts\"\u003e\u003ccode\u003egetSheetById\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e | null\u003c/td\u003e\n            \u003ctd\u003eRetrieves a \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e object by its unique ID.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/getSheetByIndex.ts\"\u003e\u003ccode\u003egetSheetByIndex\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e | null\u003c/td\u003e\n            \u003ctd\u003eRetrieves a \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e object by its zero-based index.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/highlightHtml.ts\"\u003e\u003ccode\u003ehighlightHtml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eApplies syntax highlighting to an HTML string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isCellGridRange.ts\"\u003e\u003ccode\u003eisCellGridRange\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e represents exactly one cell.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isGridRangeContainedIn.ts\"\u003e\u003ccode\u003eisGridRangeContainedIn\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDetermines if one \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e is fully enclosed within another.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isGridRangeSameDimensions.ts\"\u003e\u003ccode\u003eisGridRangeSameDimensions\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if two \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e objects have identical height and width.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isRange.ts\"\u003e\u003ccode\u003eisRange\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/range\"\u003e\u003ccode\u003eRange\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isRichTextValue.ts\"\u003e\u003ccode\u003eisRichTextValue\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/rich-text-value\"\u003e\u003ccode\u003eRichTextValue\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isSheet.ts\"\u003e\u003ccode\u003eisSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isSpreadsheet.ts\"\u003e\u003ccode\u003eisSpreadsheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet\"\u003e\u003ccode\u003eSpreadsheet\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isTextStyle.ts\"\u003e\u003ccode\u003eisTextStyle\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/text-style\"\u003e\u003ccode\u003eTextStyle\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isValidSheetId.ts\"\u003e\u003ccode\u003eisValidSheetId\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates the format of a sheet ID.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isValidSheetName.ts\"\u003e\u003ccode\u003eisValidSheetName\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string is a valid Google Sheets name.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/isValidSpreadsheetId.ts\"\u003e\u003ccode\u003eisValidSpreadsheetId\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates the format of a Google Spreadsheet ID.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/nonRange.ts\"\u003e\u003ccode\u003enonRange\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/range\"\u003e\u003ccode\u003eRange\u003c/code\u003e\u003c/a\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/nonSheet.ts\"\u003e\u003ccode\u003enonSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/parseA1Notation.ts\"\u003e\u003ccode\u003eparseA1Notation\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eParses an A1 notation string into a structured \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/parseA1Notations.ts\"\u003e\u003ccode\u003eparseA1Notations\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange[]\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eParses a list of comma-separated A1 notations into an array of \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e objects.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/prependRow.ts\"\u003e\u003ccode\u003eprependRow\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eInserts a single row of data at the top of the data area.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/prependRows.ts\"\u003e\u003ccode\u003eprependRows\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eInserts multiple rows of data at the top of the data area.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/requireRange.ts\"\u003e\u003ccode\u003erequireRange\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/range\"\u003e\u003ccode\u003eRange\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a value is a \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/range\"\u003e\u003ccode\u003eRange\u003c/code\u003e\u003c/a\u003e, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/requireSheet.ts\"\u003e\u003ccode\u003erequireSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a value is a \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/requireSpreadsheet.ts\"\u003e\u003ccode\u003erequireSpreadsheet\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet\"\u003e\u003ccode\u003eSpreadsheet\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a value is a \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet\"\u003e\u003ccode\u003eSpreadsheet\u003c/code\u003e\u003c/a\u003e, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/sortSheets.ts\"\u003e\u003ccode\u003esortSheets\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003evoid\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eAlphabetically sorts all sheets within a spreadsheet.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/toA1Notation.ts\"\u003e\u003ccode\u003etoA1Notation\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e object back to A1 notation.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/sheet/updateSheetNameInA1Notation.ts\"\u003e\u003ccode\u003eupdateSheetNameInA1Notation\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eUpdates or sets the sheet name within an A1 notation string while preserving the range.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.7. Google Slides Methods\n\nFunctions that enable various operations on Google Slides.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/convertMarkdownToRichText.ts\"\u003e\u003ccode\u003econvertMarkdownToRichText\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eRichTextRun[]\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts Markdown-formatted text to an array of \u003ccode\u003eRichTextRun\u003c/code\u003e objects.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/findReplaceAllTextInSlide.ts\"\u003e\u003ccode\u003efindReplaceAllTextInSlide\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eFinds and replaces all occurrences of text within a slide.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/getSlideByIndex.ts\"\u003e\u003ccode\u003egetSlideByIndex\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/slides/slide\"\u003e\u003ccode\u003eSlide\u003c/code\u003e\u003c/a\u003e | \u003ccode\u003enull\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eRetrieves a \u003ca href=\"https://developers.google.com/apps-script/reference/slides/slide\"\u003e\u003ccode\u003eSlide\u003c/code\u003e\u003c/a\u003e object by its zero-based index.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/getSlideIndex.ts\"\u003e\u003ccode\u003egetSlideIndex\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber | null\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eRetrieves the zero-based index of a \u003ca href=\"https://developers.google.com/apps-script/reference/slides/slide\"\u003e\u003ccode\u003eSlide\u003c/code\u003e\u003c/a\u003e within its presentation.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/isPresentation.ts\"\u003e\u003ccode\u003eisPresentation\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/slides/presentation\"\u003e\u003ccode\u003ePresentation\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/isSlide.ts\"\u003e\u003ccode\u003eisSlide\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/slides/slide\"\u003e\u003ccode\u003eSlide\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/isValidPresentationId.ts\"\u003e\u003ccode\u003eisValidPresentationId\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string is a valid Google Slides presentation ID.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/isValidSlideId.ts\"\u003e\u003ccode\u003eisValidSlideId\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string is a valid Google Slides slide ID.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/slide/requireSlide.ts\"\u003e\u003ccode\u003erequireSlide\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/slides/slide\"\u003e\u003ccode\u003eSlide\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a value is a \u003ca href=\"https://developers.google.com/apps-script/reference/slides/slide\"\u003e\u003ccode\u003eSlide\u003c/code\u003e\u003c/a\u003e, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.8. Network Methods\n\nFunctions that enable various network-related operations.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/net/requireValidToken.ts\"\u003e\u003ccode\u003erequireValidToken\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures that a valid token is provided and matches the allowed keys.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n#### 1.9. Google UI Methods\n\nFunctions that enable various operations on the user interface, including sidebars, dialogs, and web apps.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/ui/checkMultipleAccount.ts\"\u003e\u003ccode\u003echeckMultipleAccount\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDetects if the user is logged into multiple Google accounts simultaneously.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/ui/isHtmlOutput.ts\"\u003e\u003ccode\u003eisHtmlOutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/html/html-output\"\u003e\u003ccode\u003eHtmlOutput\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/ui/isTextOutput.ts\"\u003e\u003ccode\u003eisTextOutput\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/content/text-output\"\u003e\u003ccode\u003eTextOutput\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/ui/isUi.ts\"\u003e\u003ccode\u003eisUi\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a Google Apps Script \u003ca href=\"https://developers.google.com/apps-script/reference/base/ui\"\u003e\u003ccode\u003eUi\u003c/code\u003e\u003c/a\u003e object.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/requireRepository.ts\"\u003e\u003ccode\u003erequireRepository\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eT\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures that a repository is defined.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/appsscript/requireService.ts\"\u003e\u003ccode\u003erequireService\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eT\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures that a service is defined.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n### 2. `Base` Utilities\n\nThis package contains core utility functions that are not tied to a specific Apps Script service.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/array/chunk.ts\"\u003e\u003ccode\u003echunk\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eArray\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDivides an array into multiple smaller arrays of a specified size.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/html/decodeHtml.ts\"\u003e\u003ccode\u003edecodeHtml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDecodes HTML entities (e.g., \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e -\u003e \u003ccode\u003e\u0026amp;\u003c/code\u003e) back to plain text.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/html/encodeHtml.ts\"\u003e\u003ccode\u003eencodeHtml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEncodes a string for safe rendering in HTML.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/html/escapeHtml.ts\"\u003e\u003ccode\u003eescapeHtml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEscapes special characters (\u003ccode\u003e\u0026lt;\u003c/code\u003e, \u003ccode\u003e\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026amp;\u003c/code\u003e, etc.) for HTML.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/escapeRegExp.ts\"\u003e\u003ccode\u003eescapeRegExp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEscapes special characters for safe use within regular expressions.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/html/escapeXml.ts\"\u003e\u003ccode\u003eescapeXml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEscapes special characters for safe use in XML documents.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/object/hashCode.ts\"\u003e\u003ccode\u003ehashCode\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eGenerates a numeric hash code for a given string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/array/is2DArray.ts\"\u003e\u003ccode\u003eis2DArray\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a two-dimensional array.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isArray.ts\"\u003e\u003ccode\u003eisArray\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is an \u003ccode\u003eArray\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isBoolean.ts\"\u003e\u003ccode\u003eisBoolean\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a boolean.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/array/isConsistent2DArray.ts\"\u003e\u003ccode\u003eisConsistent2DArray\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a 2D array has uniform inner array lengths.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/number/isCountable.ts\"\u003e\u003ccode\u003eisCountable\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is a non-negative safe integer.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/isEmail.ts\"\u003e\u003ccode\u003eisEmail\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string follows a proper email format.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isEmpty.ts\"\u003e\u003ccode\u003eisEmpty\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is considered empty (null, undefined, empty string/array/object).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isException.ts\"\u003e\u003ccode\u003eisException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is an instance of \u003ccode\u003eException\u003c/code\u003e or a derived class.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isFunction.ts\"\u003e\u003ccode\u003eisFunction\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a function.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isFunctionLike.ts\"\u003e\u003ccode\u003eisFunctionLike\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is \"function-like\" (e.g., callable).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/number/isInteger.ts\"\u003e\u003ccode\u003eisInteger\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is a number and an integer.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isLength.ts\"\u003e\u003ccode\u003eisLength\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a valid array-like length.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isNil.ts\"\u003e\u003ccode\u003eisNil\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is \u003ccode\u003enull\u003c/code\u003e or \u003ccode\u003eundefined\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isNull.ts\"\u003e\u003ccode\u003eisNull\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is \u003ccode\u003enull\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isNumber.ts\"\u003e\u003ccode\u003eisNumber\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a number.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isNumberLike.ts\"\u003e\u003ccode\u003eisNumberLike\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value can be reliably converted to a number.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isObject.ts\"\u003e\u003ccode\u003eisObject\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a plain object (excluding null and arrays).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isObjectLike.ts\"\u003e\u003ccode\u003eisObjectLike\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is an object (including arrays and functions).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isRegExp.ts\"\u003e\u003ccode\u003eisRegExp\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a regular expression.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isScalar.ts\"\u003e\u003ccode\u003eisScalar\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is a primitive scalar type (string, number, boolean, symbol, bigint).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isString.ts\"\u003e\u003ccode\u003eisString\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isSymbol.ts\"\u003e\u003ccode\u003eisSymbol\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a value is a symbol.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/nonEmptyString.ts\"\u003e\u003ccode\u003enonEmptyString\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates that the given value is a non-empty string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/isUndefined.ts\"\u003e\u003ccode\u003eisUndefined\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is \u003ccode\u003eundefined\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/url/isUrl.ts\"\u003e\u003ccode\u003eisUrl\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string is a properly formatted URL.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/isValidLocale.ts\"\u003e\u003ccode\u003eisValidLocale\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string is a valid BCP 47 locale code.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/isValidSlug.ts\"\u003e\u003ccode\u003eisValidSlug\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string is a URL-friendly slug.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/isValidVersion.ts\"\u003e\u003ccode\u003eisValidVersion\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string follows Semantic Versioning rules.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/isVersionCompatible.ts\"\u003e\u003ccode\u003eisVersionCompatible\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDetermines if two version strings are compatible based on SemVer.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonArray.ts\"\u003e\u003ccode\u003enonArray\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT an \u003ccode\u003eArray\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonBoolean.ts\"\u003e\u003ccode\u003enonBoolean\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a boolean.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonEmpty.ts\"\u003e\u003ccode\u003enonEmpty\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT empty.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonFunction.ts\"\u003e\u003ccode\u003enonFunction\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a \u003ccode\u003eFunction\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonNil.ts\"\u003e\u003ccode\u003enonNil\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT \u003ccode\u003enull\u003c/code\u003e or \u003ccode\u003eundefined\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonNull.ts\"\u003e\u003ccode\u003enonNull\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT \u003ccode\u003enull\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/number/nonNegative.ts\"\u003e\u003ccode\u003enonNegative\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is a non-negative number.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonNumber.ts\"\u003e\u003ccode\u003enonNumber\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a number.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonScalar.ts\"\u003e\u003ccode\u003enonScalar\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a scalar type.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonString.ts\"\u003e\u003ccode\u003enonString\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonSymbol.ts\"\u003e\u003ccode\u003enonSymbol\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT a \u003ccode\u003eSymbol\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/nonUndefined.ts\"\u003e\u003ccode\u003enonUndefined\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eChecks if a value is NOT \u003ccode\u003eundefined\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/time/now.ts\"\u003e\u003ccode\u003enow\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eReturns the current timestamp in milliseconds.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/object/ObjectTag.ts\"\u003e\u003ccode\u003eObjectTag\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eEnum\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnum representing \u003ccode\u003eObject#toString\u003c/code\u003e result references in uppercase.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/json/parseJson.ts\"\u003e\u003ccode\u003eparseJson\u003c/code\u003e\u003c/a\u003e ⚠️\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eObject\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eSafely parses a JSON string, handling potential errors.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/requireNonEmptyString.ts\"\u003e\u003ccode\u003erequireNonEmptyString\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a string is not empty, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/requireNonNull.ts\"\u003e\u003ccode\u003erequireNonNull\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eany\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a value is not \u003ccode\u003enull\u003c/code\u003e, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/base/requireString.ts\"\u003e\u003ccode\u003erequireString\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a value is a string, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/requireValidEmail.ts\"\u003e\u003ccode\u003erequireValidEmail\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnsures a string is a valid email, otherwise throws an exception.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/json/stringifyJson.ts\"\u003e\u003ccode\u003estringifyJson\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eSafely converts an object to a JSON string.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/toCamelCase.ts\"\u003e\u003ccode\u003etoCamelCase\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a string to \u003ccode\u003ecamelCase\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/number/toInteger.ts\"\u003e\u003ccode\u003etoInteger\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber | null\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a value to an integer, returning \u003ccode\u003enull\u003c/code\u003e on failure.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/toKebabCase.ts\"\u003e\u003ccode\u003etoKebabCase\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a string to \u003ccode\u003ekebab-case\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/toLowerCase.ts\"\u003e\u003ccode\u003etoLowerCase\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a string to lowercase.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/toProperCase.ts\"\u003e\u003ccode\u003etoProperCase\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a string to Proper Case (capitalizing the first letter of each word).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/toSnakeCase.ts\"\u003e\u003ccode\u003etoSnakeCase\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a string to \u003ccode\u003esnake_case\u003c/code\u003e.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/object/objectToString.ts\"\u003e\u003ccode\u003etoString\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts any value to its string representation.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/toUpperCase.ts\"\u003e\u003ccode\u003etoUpperCase\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eConverts a string to uppercase.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/array/transpose.ts\"\u003e\u003ccode\u003etranspose\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eArray\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eFlips a 2D array over its diagonal (swaps rows and columns).\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/string/versionCompare.ts\"\u003e\u003ccode\u003eversionCompare\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eNumber\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eCompares two version strings, returning -1, 0, or 1.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n### 3. Exceptions Module\n\nThis package is for all exception classes.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eException\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/appsscript/admin/AdminDirectoryException.ts\"\u003e\u003ccode\u003eAdminDirectoryException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eRepresents an exception thrown when the Admin SDK Directory Service is not available or enabled.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/appsscript/sheet/InvalidGridRangeException.ts\"\u003e\u003ccode\u003eInvalidGridRangeException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eRepresents an exception thrown when an invalid \u003ca href=\"src/appsscript/sheet/types/GridRange.ts\"\u003e\u003ccode\u003eGridRange\u003c/code\u003e\u003c/a\u003e object is provided.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/appsscript/sheet/InvalidRangeException.ts\"\u003e\u003ccode\u003eInvalidRangeException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eRepresents an exception thrown when an invalid \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/range\"\u003e\u003ccode\u003eRange\u003c/code\u003e\u003c/a\u003e object is provided.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/appsscript/sheet/InvalidSheetException.ts\"\u003e\u003ccode\u003eInvalidSheetException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eRepresents an exception thrown when an invalid \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/sheet\"\u003e\u003ccode\u003eSheet\u003c/code\u003e\u003c/a\u003e object is provided.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/appsscript/sheet/InvalidSpreadsheetException.ts\"\u003e\u003ccode\u003eInvalidSpreadsheetException\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003eRepresents an exception thrown when an invalid \u003ca href=\"https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet\"\u003e\u003ccode\u003eSpreadsheet\u003c/code\u003e\u003c/a\u003e object is provided.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/appsscript/slide/InvalidPresentationException.ts\"\u003e\u003ccode\u003eInvalidPresentationException\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003eRepresents an exception thrown when an invalid \u003ca href=\"https://developers.google.com/apps-script/reference/slides/presentation\"\u003e\u003ccode\u003ePresentation\u003c/code\u003e\u003c/a\u003e object is provided.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/appsscript/slide/SlideNotFoundException.ts\"\u003e\u003ccode\u003eSlideNotFoundException\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003eRepresents an exception thrown when a \u003ca href=\"https://developers.google.com/apps-script/reference/slides/slide\"\u003e\u003ccode\u003eSlide\u003c/code\u003e\u003c/a\u003e object is not found.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eException\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/Exception.ts\"\u003e\u003ccode\u003eException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eBase class for all custom exceptions.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/RuntimeException.ts\"\u003e\u003ccode\u003eRuntimeException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eException thrown during application execution.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/net/AuthenticationException.ts\"\u003e\u003ccode\u003eAuthenticationException\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003eException thrown during authentication failures.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/EmptyStringException.ts\"\u003e\u003ccode\u003eEmptyStringException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eException thrown when a non-empty string is required but an empty one is provided.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/IllegalArgumentException.ts\"\u003e\u003ccode\u003eIllegalArgumentException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eException thrown when an invalid or inappropriate argument is passed to a method.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/InvalidEmailFormatException.ts\"\u003e\u003ccode\u003eInvalidEmailFormatException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eException thrown when an email address does not follow the expected format.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/InvalidStringException.ts\"\u003e\u003ccode\u003eInvalidStringException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eException thrown when a string is expected but another type is received.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/NullPointerException.ts\"\u003e\u003ccode\u003eNullPointerException\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eException thrown when \u003ccode\u003enull\u003c/code\u003e is encountered where an object is required.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/RepositoryIsNotDefinedException.ts\"\u003e\u003ccode\u003eRepositoryIsNotDefinedException\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003eException thrown when a repository is not defined.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/exception/ServiceIsNotDefinedException.ts\"\u003e\u003ccode\u003eServiceIsNotDefinedException\u003c/code\u003e\u003c/a\u003e 🆕\u003c/td\u003e\n            \u003ctd\u003eException thrown when a service is not defined.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n### 4. `path` Module\n\nFunctions for working with file paths and URLs.\n\n\u003cdetails open\u003e\u003csummary\u003eFunctions\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eFunction\u003c/th\u003e\n            \u003cth\u003eReturn type\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/path/isAbsolute.ts\"\u003e\u003ccode\u003eisAbsolute\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDetermines if a given path is an absolute path.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/path/isRelative.ts\"\u003e\u003ccode\u003eisRelative\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDetermines if a given path is a relative path.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/path/isValidDomain.ts\"\u003e\u003ccode\u003eisValidDomain\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eBoolean\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eValidates if a string is a properly formatted domain name.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/path/join.ts\"\u003e\u003ccode\u003ejoin\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eJoins all given path segments together using the platform-specific separator.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/path/normalize.ts\"\u003e\u003ccode\u003enormalize\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eString\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eNormalizes a path by resolving \u003ccode\u003e.\u003c/code\u003e and \u003ccode\u003e..\u003c/code\u003e segments.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/path/parse.ts\"\u003e\u003ccode\u003eparse\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"src/net/path/types/ParsedPath.ts\"\u003e\u003ccode\u003eParsedPath\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eBreaks down a path into an object containing its constituent parts (root, dir, base, ext, name).\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n### 5. `abstracts` and `interfaces`\n\n\u003cdetails open\u003e\u003csummary\u003eAbstracts\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eAbstract\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/Class.ts\"\u003e\u003ccode\u003eClass\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eBase abstract class for providing common class functionality.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n\u003cdetails open\u003e\u003csummary\u003eInterfaces\u003c/summary\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eInterface\u003c/th\u003e\n            \u003cth\u003eBrief description\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"src/lang/Iterator.ts\"\u003e\u003ccode\u003eIterator\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eInterface for iterators.\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c/details\u003e\n\n## Contributing\n\nContributions are welcome! If you'd like to contribute, please:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bugfix.\n3. Write tests for your changes.\n4. Run `npm run lint` and `npm run format`.\n5. Do not modify `CHANGELOG.md` manually; it's updated automatically.\n6. Submit a pull request.\n\nPlease make sure to follow the existing code style and naming conventions.\n\n## Support\n\nIf you encounter any issues or have questions, please:\n\n- Open an [issue](https://github.com/MaksymStoianov/apps-script-utils/issues) on GitHub.\n- Check the [Changelog](CHANGELOG.md) for recent updates.\n- Support the project by giving it a ⭐ on GitHub!\n\n## Roadmap\n\nFor the project development plan and future features, please see the [ROADMAP](ROADMAP.md) file.\n\n## Changelog\n\nFor a detailed list of changes and updates, please refer to the [CHANGELOG](CHANGELOG.md) file.\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n---\n\n⭐ **Like this project?** [Star our awesome repo »](https://github.com/MaksymStoianov/apps-script-utils)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaksymStoianov%2Fapps-script-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMaksymStoianov%2Fapps-script-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaksymStoianov%2Fapps-script-utils/lists"}