FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

feat: iOS 26.5 types, Android API Level 36 + 37 by NathanWalker · Pull Request #11369 · NativeScript/NativeScript · GitHub

Repository navigation

feat: iOS 26.5 types, Android API Level 36 + 37 - #11369

Merged
NathanWalker merged 7 commits into
mainfrom
feat/types-updates
Aug 27, 2026
Merged

NathanWalker merged 7 commits into
mainfrom
feat/types-updates

Conversation

NathanWalker commented Aug 27, 2026 •
edited
Loading

Copy link
Copy Markdown
Contributor

Updates types for both Android API Level 36 and 27, plus iOS 26.5.

nx-cloud Bot commented Aug 27, 2026 •
edited
Loading

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit fb26670

Command Status Duration Result
nx test apps-automated -c=android ✅ Succeeded 3m 53s View ↗
nx run-many --target=test --configuration=ci --... ✅ Succeeded <1s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-08-27 20:26:44 UTC

pkg-pr-new Bot commented Aug 27, 2026 •
edited
Loading

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@nativescript/core@11369
npm i https://pkg.pr.new/@nativescript/vite@11369
npm i https://pkg.pr.new/@nativescript/webpack@11369

commit: fb26670

…tion

The generator shipped in @nativescript/android can now fold several platform
jars into one set of definitions, so a member a newer platform dropped is still
described, taken from the oldest jar that has it.

Take any number of platforms, given as an API level, an exact platform
directory, a range, or a jar, and merge them newest-first so the newest jar
describes each class. A merged set names itself after the span it covers, which
keeps it from colliding with the unmerged set for the same level.

Also replaces the positional arguments with flags, resolves the repo root from
the script's own location so it runs from anywhere, and adds --api-versions for
the @SInCE and @deprecated annotations, which needs a newer generator than the
one the current release ships.
… typings

The package carried one set of definitions per API level, each describing a
single platform. A member removed in a later release was therefore missing from
every set above the one that removed it, even though an app with minSdk 21 can
still call it on the devices that have it.

Ship two sets instead. android-21-37-merged is generated from every platform
between 21 and 37.1 with the class versions merged, so it describes the union of
what those platforms offer, and is what the package now points at by default.
android-37 is API 37 alone, for anyone who wants only the current surface.

The merged set was checked against all seventeen sets it replaces: every type
and member they declared is present, apart from the namespaces the generator has
always ignored and four members of APIs long since removed. Both sets report the
same TypeScript diagnostics as the definitions they replace.

Definitions below API 21 are gone, since that is the lowest level supported.

BREAKING CHANGE: android-17 through android-36 no longer exist. Anything
referencing a specific level should reference android-21-37-merged, or
android-37 for the current platform only.
The package referenced api/android-platform-32.d.ts while shipping
android-platform-33.d.ts, so the reference had resolved to nothing since the
package was introduced. The file it named has now been removed from
types-android along with the rest of the per-level definitions.

Ship API 37 instead, which is what the copy script produces, and reference the
file that is actually there.
Generating the merged definitions needs every platform between 21 and 37
installed, and the annotations need a platform's data/api-versions.xml, which a
trimmed-down SDK does not keep. Write down what is installed and how to restore
it, so the set can be rebuilt without guessing.
The merged definitions describe every platform from 21 to 37 at once, so a
member that no longer exists reads exactly like one that does. Nothing in the
file said which was which.

Record the levels from the platform's data/api-versions.xml: @SInCE when a type
or member arrived above the minimum supported level, and @deprecated carrying
the level it was deprecated in, removed in, or both. A member that is gone now
says so:

    /** @deprecated Removed in API 29 */
    public static CAPTURE_VIDEO_OUTPUT: "android.permission.CAPTURE_VIDEO_OUTPUT";

The merged set marks 653 members as removed, against 50 in the API 37 set, which
is the 603 the merge brings back from older platforms and could not previously
distinguish. Removals lead their tag so they read differently from the 3,221
that are merely deprecated and still work.

Diagnostics are unchanged from the unannotated definitions.
The iOS 26.5 typings split objc!DarwinFoundation.d.ts into
objc!_DarwinFoundation1 through 3, but references.d.ts still named the file that
no longer exists. types-ios only pulls a subset of the objc definitions in
through its index, so core has to name the rest itself, and the dead reference
took qos_class_t with it:

    packages/core/image-source/index.ios.ts(209,56):
    error TS2304: Cannot find name 'qos_class_t'.

Four such errors, all in image-source. Name the three files that replaced it.
NathanWalker merged commit ab3327c into main Aug 27, 2026
10 checks passed
NathanWalker deleted the feat/types-updates branch August 27, 2026 21:34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants


Back | FazBrowse Home | New Git URL