@octane-xplat/nativescript-mason-core 0.0.1 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +198 -2
  3. package/artifact-inventory.json +774 -0
  4. package/box-shadow.d.ts +10 -0
  5. package/box-shadow.js +48 -0
  6. package/common.d.ts +485 -0
  7. package/common.js +2659 -0
  8. package/css-colors.d.ts +17 -0
  9. package/css-colors.js +54 -0
  10. package/css-environment.d.ts +49 -0
  11. package/css-environment.js +309 -0
  12. package/css-filter.d.ts +17 -0
  13. package/css-filter.js +140 -0
  14. package/css-keyframes.d.ts +41 -0
  15. package/css-keyframes.js +437 -0
  16. package/css-math.d.ts +34 -0
  17. package/css-math.js +300 -0
  18. package/css-shorthands.d.ts +65 -0
  19. package/css-shorthands.js +673 -0
  20. package/css-transform.d.ts +6 -0
  21. package/css-transform.js +100 -0
  22. package/diagnostics.d.ts +51 -0
  23. package/diagnostics.js +52 -0
  24. package/display-density.d.ts +9 -0
  25. package/display-density.js +20 -0
  26. package/fonts.d.ts +20 -0
  27. package/fonts.js +88 -0
  28. package/foreign-layout.d.ts +6 -0
  29. package/foreign-layout.js +151 -0
  30. package/gradient-stops.d.ts +25 -0
  31. package/gradient-stops.js +112 -0
  32. package/index.android.d.ts +11 -0
  33. package/index.android.js +9 -0
  34. package/index.d.ts +12 -0
  35. package/index.ios.d.ts +11 -0
  36. package/index.ios.js +9 -0
  37. package/ios-host-README.md +124 -0
  38. package/layout-types.d.ts +192 -0
  39. package/mask.d.ts +54 -0
  40. package/mask.js +26 -0
  41. package/native-environment.android.d.ts +3 -0
  42. package/native-environment.android.js +69 -0
  43. package/native-environment.d.ts +3 -0
  44. package/native-environment.ios.d.ts +3 -0
  45. package/native-environment.ios.js +65 -0
  46. package/native-types-README.md +51 -0
  47. package/package.json +47 -6
  48. package/panel-helpers.d.ts +3 -0
  49. package/panel-helpers.js +8 -0
  50. package/platforms/android/MasonCore.aar +0 -0
  51. package/platforms/android/include.gradle +6 -0
  52. package/platforms/android/manifest.json +73 -0
  53. package/platforms/ios/FontManager.LICENSE +201 -0
  54. package/platforms/ios/MasonCore.xcframework/Info.plist +43 -0
  55. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Headers/Mason.h +25 -0
  56. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Headers/MasonCore-Swift.h +1739 -0
  57. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Headers/mason_native.h +601 -0
  58. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Info.plist +0 -0
  59. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/MasonCore +0 -0
  60. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Modules/MasonCore.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  61. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios.abi.json +100095 -0
  62. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios.private.swiftinterface +3174 -0
  63. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  64. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios.swiftinterface +3174 -0
  65. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/Modules/module.modulemap +9 -0
  66. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/SDWebImage_SDWebImage.bundle/Info.plist +0 -0
  67. package/platforms/ios/MasonCore.xcframework/ios-arm64/MasonCore.framework/SDWebImage_SDWebImage.bundle/PrivacyInfo.xcprivacy +23 -0
  68. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Headers/Mason.h +25 -0
  69. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Headers/MasonCore-Swift.h +1739 -0
  70. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Headers/mason_native.h +601 -0
  71. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Info.plist +0 -0
  72. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/MasonCore +0 -0
  73. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Modules/MasonCore.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  74. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios-simulator.abi.json +100095 -0
  75. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +3174 -0
  76. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  77. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Modules/MasonCore.swiftmodule/arm64-apple-ios-simulator.swiftinterface +3174 -0
  78. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/Modules/module.modulemap +9 -0
  79. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/SDWebImage_SDWebImage.bundle/Info.plist +0 -0
  80. package/platforms/ios/MasonCore.xcframework/ios-arm64-simulator/MasonCore.framework/SDWebImage_SDWebImage.bundle/PrivacyInfo.xcprivacy +23 -0
  81. package/platforms/ios/Package.resolved +24 -0
  82. package/platforms/ios/SDWebImage.LICENSE +20 -0
  83. package/platforms/ios/build.xcconfig +4 -0
  84. package/platforms/ios/device-manifest.json +213 -0
  85. package/platforms/ios/include/FontManager/NSCFontDescriptors.h +36 -0
  86. package/platforms/ios/include/FontManager/NSCFontFace.h +98 -0
  87. package/platforms/ios/include/FontManager/NSCFontFaceSet.h +73 -0
  88. package/platforms/ios/include/FontManager/NSCFontManagerUmbrella.h +7 -0
  89. package/platforms/ios/include/FontManager/NSCFontParser.h +22 -0
  90. package/platforms/ios/include/FontManager/NSCFontRegex.h +4 -0
  91. package/platforms/ios/include/FontManager/NSCFontResolver.h +43 -0
  92. package/platforms/ios/include/FontManager/NSCFontStyle.h +27 -0
  93. package/platforms/ios/include/FontManager/NSCFontTypes.h +41 -0
  94. package/platforms/ios/include/SDWebImage/NSButton+WebCache.h +340 -0
  95. package/platforms/ios/include/SDWebImage/NSData+ImageContentType.h +63 -0
  96. package/platforms/ios/include/SDWebImage/NSImage+Compatibility.h +67 -0
  97. package/platforms/ios/include/SDWebImage/SDAnimatedImage.h +136 -0
  98. package/platforms/ios/include/SDWebImage/SDAnimatedImagePlayer.h +113 -0
  99. package/platforms/ios/include/SDWebImage/SDAnimatedImageRep.h +33 -0
  100. package/platforms/ios/include/SDWebImage/SDAnimatedImageView+WebCache.h +168 -0
  101. package/platforms/ios/include/SDWebImage/SDAnimatedImageView.h +125 -0
  102. package/platforms/ios/include/SDWebImage/SDCallbackQueue.h +59 -0
  103. package/platforms/ios/include/SDWebImage/SDDiskCache.h +146 -0
  104. package/platforms/ios/include/SDWebImage/SDGraphicsImageRenderer.h +84 -0
  105. package/platforms/ios/include/SDWebImage/SDImageAPNGCoder.h +19 -0
  106. package/platforms/ios/include/SDWebImage/SDImageAWebPCoder.h +23 -0
  107. package/platforms/ios/include/SDWebImage/SDImageCache.h +482 -0
  108. package/platforms/ios/include/SDWebImage/SDImageCacheConfig.h +153 -0
  109. package/platforms/ios/include/SDWebImage/SDImageCacheDefine.h +179 -0
  110. package/platforms/ios/include/SDWebImage/SDImageCachesManager.h +81 -0
  111. package/platforms/ios/include/SDWebImage/SDImageCoder.h +347 -0
  112. package/platforms/ios/include/SDWebImage/SDImageCoderHelper.h +251 -0
  113. package/platforms/ios/include/SDWebImage/SDImageCodersManager.h +58 -0
  114. package/platforms/ios/include/SDWebImage/SDImageFrame.h +44 -0
  115. package/platforms/ios/include/SDWebImage/SDImageGIFCoder.h +22 -0
  116. package/platforms/ios/include/SDWebImage/SDImageGraphics.h +28 -0
  117. package/platforms/ios/include/SDWebImage/SDImageHEICCoder.h +25 -0
  118. package/platforms/ios/include/SDWebImage/SDImageIOAnimatedCoder.h +65 -0
  119. package/platforms/ios/include/SDWebImage/SDImageIOCoder.h +30 -0
  120. package/platforms/ios/include/SDWebImage/SDImageLoader.h +146 -0
  121. package/platforms/ios/include/SDWebImage/SDImageLoadersManager.h +40 -0
  122. package/platforms/ios/include/SDWebImage/SDImageTransformer.h +283 -0
  123. package/platforms/ios/include/SDWebImage/SDMemoryCache.h +78 -0
  124. package/platforms/ios/include/SDWebImage/SDWebImage.h +91 -0
  125. package/platforms/ios/include/SDWebImage/SDWebImageCacheKeyFilter.h +35 -0
  126. package/platforms/ios/include/SDWebImage/SDWebImageCacheSerializer.h +39 -0
  127. package/platforms/ios/include/SDWebImage/SDWebImageCompat.h +102 -0
  128. package/platforms/ios/include/SDWebImage/SDWebImageDefine.h +420 -0
  129. package/platforms/ios/include/SDWebImage/SDWebImageDownloader.h +320 -0
  130. package/platforms/ios/include/SDWebImage/SDWebImageDownloaderConfig.h +113 -0
  131. package/platforms/ios/include/SDWebImage/SDWebImageDownloaderDecryptor.h +52 -0
  132. package/platforms/ios/include/SDWebImage/SDWebImageDownloaderOperation.h +191 -0
  133. package/platforms/ios/include/SDWebImage/SDWebImageDownloaderRequestModifier.h +72 -0
  134. package/platforms/ios/include/SDWebImage/SDWebImageDownloaderResponseModifier.h +72 -0
  135. package/platforms/ios/include/SDWebImage/SDWebImageError.h +33 -0
  136. package/platforms/ios/include/SDWebImage/SDWebImageIndicator.h +119 -0
  137. package/platforms/ios/include/SDWebImage/SDWebImageManager.h +290 -0
  138. package/platforms/ios/include/SDWebImage/SDWebImageOperation.h +27 -0
  139. package/platforms/ios/include/SDWebImage/SDWebImageOptionsProcessor.h +78 -0
  140. package/platforms/ios/include/SDWebImage/SDWebImagePrefetcher.h +168 -0
  141. package/platforms/ios/include/SDWebImage/SDWebImageTransition.h +131 -0
  142. package/platforms/ios/include/SDWebImage/UIButton+WebCache.h +402 -0
  143. package/platforms/ios/include/SDWebImage/UIImage+ExtendedCacheData.h +24 -0
  144. package/platforms/ios/include/SDWebImage/UIImage+ForceDecode.h +52 -0
  145. package/platforms/ios/include/SDWebImage/UIImage+GIF.h +26 -0
  146. package/platforms/ios/include/SDWebImage/UIImage+MemoryCacheCost.h +27 -0
  147. package/platforms/ios/include/SDWebImage/UIImage+Metadata.h +104 -0
  148. package/platforms/ios/include/SDWebImage/UIImage+MultiFormat.h +81 -0
  149. package/platforms/ios/include/SDWebImage/UIImage+Transform.h +164 -0
  150. package/platforms/ios/include/SDWebImage/UIImageView+HighlightedWebCache.h +142 -0
  151. package/platforms/ios/include/SDWebImage/UIImageView+WebCache.h +209 -0
  152. package/platforms/ios/include/SDWebImage/UIView+WebCache.h +131 -0
  153. package/platforms/ios/include/SDWebImage/UIView+WebCacheOperation.h +52 -0
  154. package/platforms/ios/include/SDWebImage/UIView+WebCacheState.h +63 -0
  155. package/platforms/ios/include/module.modulemap +2 -0
  156. package/platforms/ios/manifest.json +132 -0
  157. package/platforms/ios/simulator-manifest.json +213 -0
  158. package/plugin-README.md +234 -0
  159. package/properties.d.ts +154 -0
  160. package/properties.js +2456 -0
  161. package/pseudo.d.ts +9 -0
  162. package/pseudo.js +57 -0
  163. package/scroll/index.android.d.ts +15 -0
  164. package/scroll/index.android.js +72 -0
  165. package/scroll/index.d.ts +5 -0
  166. package/scroll/index.ios.d.ts +18 -0
  167. package/scroll/index.ios.js +106 -0
  168. package/style.d.ts +768 -0
  169. package/style.js +7167 -0
  170. package/symbols.d.ts +25 -0
  171. package/symbols.js +41 -0
  172. package/tree/index.android.d.ts +11 -0
  173. package/tree/index.android.js +42 -0
  174. package/tree/index.d.ts +15 -0
  175. package/tree/index.ios.d.ts +26 -0
  176. package/tree/index.ios.js +53 -0
  177. package/typings/android-declarations.d.ts +4 -0
  178. package/typings/android.d.ts +9730 -0
  179. package/typings/manifest.json +45 -0
  180. package/typings/native.d.ts +5 -0
  181. package/typings/objc!FontManager.d.ts +389 -0
  182. package/typings/objc!MasonCore.d.ts +2472 -0
  183. package/typings/objc!SDWebImage.d.ts +3378 -0
  184. package/units.d.ts +29 -0
  185. package/units.js +44 -0
  186. package/utils/index.android.d.ts +211 -0
  187. package/utils/index.android.js +595 -0
  188. package/utils/index.ios.d.ts +222 -0
  189. package/utils/index.ios.js +790 -0
  190. package/view/index.android.d.ts +13 -0
  191. package/view/index.android.js +74 -0
  192. package/view/index.d.ts +2 -0
  193. package/view/index.ios.d.ts +24 -0
  194. package/view/index.ios.js +157 -0
@@ -0,0 +1,234 @@
1
+ # Mason core NativeScript plugin proof
2
+
3
+ This experimental plugin combines the container-only JavaScript runtime with the
4
+ independently built native hosts. It excludes MasonKit's HTML parser, rich-text
5
+ renderer and optional widgets. The portable helper proof and existing full MasonKit package remain separate.
6
+ The normal core build produces this plugin.
7
+
8
+ Build the hosts, then assemble the plugin:
9
+
10
+ ```sh
11
+ pnpm exec nx run nativescript-mason-core:verify.host.ios.artifact
12
+ pnpm exec nx run nativescript-mason-core:verify.host.ios.device.artifact
13
+ pnpm exec nx run nativescript-mason-core:build.host.ios.xcframework
14
+ pnpm exec nx run nativescript-mason-core:build.host.android
15
+ pnpm exec nx run nativescript-mason-core:build
16
+ ```
17
+
18
+ Native builds require the development environment's native-build resource
19
+ reservation. Assembly reads the exported artifacts and verifies their hashes;
20
+ it does not rebuild them. The result is
21
+ `dist/packages/nativescript-mason-core`.
22
+
23
+ Verify its packed files and prepare the isolated NativeScript app:
24
+
25
+ ```sh
26
+ pnpm exec nx run nativescript-mason-core:prepare.consumer
27
+ cd tmp/mason-core-nativescript-consumer
28
+ pnpm install
29
+ ```
30
+
31
+ The fixture has its own pnpm workspace and explicit build-script allowlist.
32
+ Do not pass `--ignore-workspace`: that also ignores this fixture's dependency
33
+ policy. After regenerating the tarball, use `pnpm install --force` to refresh
34
+ the installed file dependency. Run the native build targets from the repository
35
+ root under a native-build reservation:
36
+
37
+ ```sh
38
+ pnpm exec nx run nativescript-mason-core:build.consumer.ios
39
+ pnpm exec nx run nativescript-mason-core:build.consumer.android
40
+ ```
41
+
42
+ The app creates Mason containers hosting ordinary NativeScript labels and
43
+ writes geometry/ownership assertions to its documents folder as
44
+ `mason-core-result.json`. Build success alone does not establish that they pass.
45
+ The package includes independent native bridge declarations, generated from
46
+ the core artifacts. Assembly rejects types whose recorded native hashes differ
47
+ from the hosts being packaged. See [native type generation](native-types-README.md).
48
+
49
+ Run the application assertions from the repository root:
50
+
51
+ ```sh
52
+ pnpm exec nx run nativescript-mason-core:test.consumer.ios
53
+ pnpm exec nx run nativescript-mason-core:test.consumer.android.device
54
+ ```
55
+
56
+ The iOS runner uses the dedicated simulator recorded by the native host test
57
+ setup. The Android runner uses the sole authorized arm64 phone, or
58
+ `MASON_CORE_ANDROID_SERIAL` when several are connected. Reserve the corresponding
59
+ device before running. Each runner stops its own probe afterward; the Android
60
+ runner verifies ownership before replacing an installed app.
61
+
62
+ The prototype includes an arm64 iOS device/simulator XCFramework and an Android
63
+ arm64-v8a AAR. Release-size savings remain unqualified.
64
+ The isolated apps pass bridge, native geometry and ownership assertions on an
65
+ arm64 iOS simulator and an API 36 Android phone. They install only core and
66
+ NativeScript core as runtime dependencies. The iOS app declares the scene
67
+ lifecycle required by the current SDK; NativeScript provides its default scene
68
+ delegate. Plain-app assertions and renderer assertions are qualified separately.
69
+ The compiled scenario also passes OS input on the simulator and Android emulator
70
+ as described below. Do not switch production consumers or publish
71
+ this artifact.
72
+
73
+ iOS retains embedded FontManager and SDWebImage code, dependency module headers,
74
+ licenses and the SDWebImage resource/privacy bundle embedded in each matching
75
+ framework slice. Android declares the same
76
+ direct Maven dependencies as the native host build; their transitive AndroidX
77
+ cost remains. No app-size savings have been measured.
78
+
79
+ Use core and full MasonKit in separate apps. Native Objective-C/JNI class names
80
+ are deliberately preserved, so coinstallation is unsupported. The package's
81
+ `artifact-inventory.json` records every shipped file's SHA-256 hash. Platform
82
+ manifests preserve native build provenance.
83
+
84
+ ## Qualify the Xplat renderer separately
85
+
86
+ The renderer scenario reads the selected Xplat checkout's catalog pins and
87
+ canonical Octane, NativeScript core and renderer patches. It changes only the
88
+ renderer patch's two Mason package imports to point at core. It records patch
89
+ hashes and the Xplat commit, verifies shared runtime resolution, and rejects
90
+ full MasonKit anywhere in the installed production graph.
91
+
92
+ ```sh
93
+ MASON_CORE_XPLAT_REPOSITORY=/path/to/octane-xplat \
94
+ pnpm exec nx run nativescript-mason-core:prepare.consumer.renderer
95
+ cd tmp/mason-core-nativescript-consumer
96
+ pnpm install --force
97
+ ```
98
+
99
+ Return to the repository root and use the same build and consumer test targets
100
+ shown above. The scenario checks driver geometry updates, reparenting and
101
+ disposal, followed by a real Octane component mount/update/unmount. Its checks
102
+ are a separate qualification from the plain application's bridge assertions;
103
+ a successful build does not establish a renderer runtime pass.
104
+
105
+ The renderer scenario passes on an arm64 iOS 27 simulator and API 35 arm64
106
+ Android emulator with Octane 0.14.0, renderer 0.2.5 and NativeScript core 9.1.3.
107
+ It includes native geometry after prop updates, reparenting/disposal and an
108
+ Octane component mount/update/unmount without recreating its foreign label.
109
+ The same-dependency plain controls pass on both targets. These results do not
110
+ qualify compiled TSRX components, hook subscriptions, OS input or a physical
111
+ Android renderer run. The earlier plain-app phone result remains separate.
112
+
113
+ The `prepare.consumer.renderer.control` target uses the same dependency pins
114
+ and patches with the plain NativeScript entry instead. It isolates SDK changes
115
+ from renderer operations. Reinstall and rebuild after changing scenarios. The
116
+ builder regenerates only its owned platform directory when native dependency
117
+ inputs change, avoiding stale Xcode references to previous pnpm peer paths.
118
+
119
+ When no phone is connected, reserve the dedicated `android:mason-core-extraction`
120
+ AVD and one resident-device slot, then run:
121
+
122
+ ```sh
123
+ pnpm exec nx run nativescript-mason-core:test.consumer.android.emulator
124
+ ```
125
+
126
+ The emulator runner boots and shuts down only that owned AVD. Emulator results
127
+ remain distinct from physical-device results. These checks do not exercise OS
128
+ touch input or establish release-size savings.
129
+
130
+ ## Compile TSRX and verify hooks
131
+
132
+ The compiled scenario uses the same renderer dependency boundary, with an
133
+ authored component under `src/*.tsrx`. Prepare it with the selected Xplat
134
+ checkout, then install, build and run using the commands above:
135
+
136
+ ```sh
137
+ MASON_CORE_XPLAT_REPOSITORY=/path/to/octane-xplat \
138
+ pnpm exec nx run nativescript-mason-core:prepare.consumer.compiled
139
+ ```
140
+
141
+ The native build invokes the pinned Octane 0.14.0 compiler before webpack.
142
+ Its optional `@tsrx/oxc` 0.20.0 parser belongs to this fixture's development
143
+ dependencies; core gains no dependency. The emitted hooks import the native
144
+ renderer runtime, and `compiled-component-manifest.json` records source and
145
+ emission hashes. The component runs in the same Page/Frame hosting pattern
146
+ as Xplat's mobile application.
147
+
148
+ This scenario passes on arm64 iOS 27 Simulator and the API 35 Android emulator.
149
+ It checks class-authored geometry, a synthesized NativeScript button handler,
150
+ hook-driven text/size updates without replacing the label, scroll content and
151
+ programmatic seek, effect cleanup, ref clearing and host release. The button
152
+ notification is explicitly synthetic; these results do not establish OS touch
153
+ input or physical-device renderer qualification.
154
+
155
+ ## Verify OS taps and touch scrolling
156
+
157
+ Build the compiled scenario above, then run these targets under the matching
158
+ owned-device reservation:
159
+
160
+ ```sh
161
+ pnpm exec nx run nativescript-mason-core:test.consumer.ios.input
162
+ pnpm exec nx run nativescript-mason-core:test.consumer.android.input.emulator
163
+ ```
164
+
165
+ The iOS target requires `idb` and `idb_companion` on `PATH`. It creates a private
166
+ companion socket for the owned simulator and sends HID coordinate input. The
167
+ Android target uses `adb shell input` after confirming that the owned app has
168
+ focus. For a connected authorized phone, use
169
+ `test.consumer.android.input.device` instead. No screenshots are required.
170
+
171
+ The app reports native button and scroll coordinates in
172
+ `mason-core-input-ready.json`; the runner records each delivered phase in
173
+ `input-actions.json`. In this mode the app waits for a real tap and swipe. It
174
+ requires the count and label width to update, then checks that an on-screen
175
+ row moves by the reported scroll offset before verifying effect/ref cleanup.
176
+ The ordinary consumer targets retain synthetic notification and programmatic
177
+ seek coverage. Input results must be reported separately from those checks
178
+ and separately for simulators, emulators and physical devices.
179
+
180
+ OS-input checks pass on arm64 iOS 27 Simulator and the API 35 Android emulator.
181
+ Native row movement matches the reported scroll offset (137.3 points on iOS,
182
+ 94.9 logical pixels on Android). The actual-Vite consumer also passes on the
183
+ API 36 physical Android phone
184
+ with registry core `1.0.0-beta.0` and current Xplat patches: a real inspector
185
+ WebSocket responds, an OS tap changes the hook-driven label width from about
186
+ 90 to 130, and an OS swipe moves its native row by the reported 99.38 logical
187
+ pixels before cleanup. Run the prepared fixture with:
188
+
189
+ ```sh
190
+ MASON_CORE_ANDROID_SERIAL=DEVICE_SERIAL pnpm exec nx run \
191
+ nativescript-mason-core:test.consumer.android.input.device --inspector
192
+ ```
193
+
194
+ Replace `DEVICE_SERIAL` with the authorized physical phone's adb serial.
195
+ The published beta also passes the actual-Vite fixture on arm64 iOS 27
196
+ Simulator: native HID tap changes width from 90 to 130 points, swipe produces
197
+ matching native row movement and scroll offset (169.29 points), and cleanup
198
+ runs once. With the dedicated simulator shut down and its resource reservation
199
+ held, run:
200
+
201
+ ```sh
202
+ pnpm exec nx run nativescript-mason-core:build.consumer.ios
203
+ pnpm exec nx run nativescript-mason-core:test.consumer.ios.input
204
+ ```
205
+
206
+ iOS physical runtime and input remain unqualified. The signed development app
207
+ and a native UI-test runner build successfully. A temporary device test
208
+ passes its tap/count checks, but fails its final post-drag assertion; it has
209
+ not produced a passing consumer result. This does not resolve the separate
210
+ intermittent Android emulator cold-start failures.
211
+
212
+ ## Build an unsigned iOS device app
213
+
214
+ The same installed compiled consumer can build a device application without
215
+ selecting certificates or changing provisioning:
216
+
217
+ ```sh
218
+ pnpm exec nx run nativescript-mason-core:build.consumer.ios.device
219
+ ```
220
+
221
+ This target prepares through NativeScript, then invokes Xcode with signing
222
+ disabled. It checks that the app selects the device framework, embeds the
223
+ device privacy bundle and generates the core bridge classes without optional
224
+ HTML/text/widget declarations. This is build/metadata evidence only; no iOS
225
+ physical-device runtime or distribution signing is qualified.
226
+
227
+
228
+ ## Safe-area environment resolver
229
+
230
+ Core `1.0.0-beta.1` automatically binds loaded Mason roots to their owning
231
+ native window when a subtree first uses `env()`. See the package README for
232
+ window ownership, explicit source overrides, fallback semantics and headless
233
+ coverage. Actual native inset dispatch/layout remains unqualified; Xplat keeps
234
+ a qualification warning for this beta.
@@ -0,0 +1,154 @@
1
+ import { CssProperty, CssAnimationProperty, InheritedCssProperty, Style, ShorthandProperty, Property } from '@nativescript/core';
2
+ import { Display, Overflow, Length, Gap, LengthAuto, Position, BoxSizing, GridAutoFlow, AlignContent, VerticalAlign, Float, Clear } from '.';
3
+ import type { ViewBase } from './common';
4
+ import type { LonghandValue } from './css-shorthands';
5
+ type ShorthandLonghand = CssProperty<Style, any> | CssAnimationProperty<Style, any>;
6
+ export interface MasonShorthand {
7
+ cssName: string;
8
+ longhands: ShorthandLonghand[];
9
+ split(value: string): LonghandValue[];
10
+ }
11
+ export declare function shorthandConverter({ cssName, longhands, split }: MasonShorthand): (value: unknown) => [ShorthandLonghand, unknown][];
12
+ export declare const textProperty: Property<ViewBase, string>;
13
+ export declare const displayProperty: CssProperty<Style, Display>;
14
+ export declare const filterProperty: CssProperty<Style, string>;
15
+ export declare const borderColorProperty: CssProperty<Style, string>;
16
+ export declare const backgroundProperty: CssProperty<Style, string>;
17
+ export declare const backgroundImageProperty: CssProperty<Style, string>;
18
+ export declare const backgroundRepeatProperty: CssProperty<Style, string>;
19
+ export declare const backgroundPositionProperty: CssProperty<Style, string>;
20
+ export declare const backgroundSizeProperty: CssProperty<Style, string>;
21
+ export declare const backgroundClipProperty: CssProperty<Style, string>;
22
+ export declare const overflowXProperty: CssProperty<Style, Overflow>;
23
+ export declare const overflowYProperty: CssProperty<Style, Overflow>;
24
+ export declare const overflowProperty: ShorthandProperty<Style, any>;
25
+ export declare const paddingProperty: CssProperty<Style, string>;
26
+ export declare const whiteSpaceProperty: CssProperty<Style, string>;
27
+ /**
28
+ * CSS `touch-action` as the pan flags native scroll views read: 1 = pan-x,
29
+ * 2 = pan-y, 4 = pinch-zoom. A Mason scroll view only starts a drag along an
30
+ * axis every element from the touched one up to it allows, as browsers do.
31
+ */
32
+ export declare function parseTouchAction(value: string): number;
33
+ export declare const touchActionProperty: CssProperty<Style, string>;
34
+ export declare const objectFitProperty: CssProperty<Style, string>;
35
+ export declare const textJustifyProperty: CssProperty<Style, string>;
36
+ export declare const backgroundPositionXProperty: CssProperty<Style, string>;
37
+ export declare const backgroundPositionYProperty: CssProperty<Style, string>;
38
+ export declare const backgroundOriginProperty: CssProperty<Style, string>;
39
+ export declare const backgroundAttachmentProperty: CssProperty<Style, string>;
40
+ export declare const backgroundBlendModeProperty: CssProperty<Style, string>;
41
+ export declare const textDecorationLineProperty: CssProperty<Style, string>;
42
+ export declare const textDecorationStyleProperty: CssProperty<Style, string>;
43
+ export declare const textDecorationColorProperty: CssProperty<Style, string>;
44
+ export declare const textDecorationThicknessProperty: CssProperty<Style, string>;
45
+ export declare const fontFamilyProperty: CssProperty<Style, string>;
46
+ export declare const marginProperty: CssProperty<Style, string>;
47
+ export declare const scrollBarWidthProperty: CssProperty<Style, number>;
48
+ /** The declaration behind `value` if it came from this view's own CSS, else `value`. */
49
+ export declare function masonRawDeclaration(style: Style, propertyName: string, value: unknown): unknown;
50
+ export declare const rowGapProperty: CssProperty<Style, Length>;
51
+ export declare const columnGapProperty: CssProperty<Style, Length>;
52
+ export declare const gridGapProperty: ShorthandProperty<Style, any>;
53
+ export declare const gapProperty: ShorthandProperty<Style, any>;
54
+ export declare const gridRowGapProperty: ShorthandProperty<Style, Gap>;
55
+ export declare const gridColumnGapProperty: ShorthandProperty<Style, Length>;
56
+ export declare const maxWidthProperty: CssProperty<Style, LengthAuto>;
57
+ export declare const maxHeightProperty: CssProperty<Style, LengthAuto>;
58
+ export declare function installMasonSizeUnits(style: Style): void;
59
+ export declare const insetProperty: ShorthandProperty<Style, LengthAuto>;
60
+ export declare const leftProperty: CssProperty<Style, LengthAuto>;
61
+ export declare const rightProperty: CssProperty<Style, LengthAuto>;
62
+ export declare const topProperty: CssProperty<Style, LengthAuto>;
63
+ export declare const bottomProperty: CssProperty<Style, LengthAuto>;
64
+ export declare const positionProperty: CssProperty<Style, Position>;
65
+ export declare const boxSizingProperty: CssProperty<Style, BoxSizing>;
66
+ export declare const borderRadiusProperty: CssProperty<Style, string>;
67
+ export declare const AlignItemsIsValid: (value: any) => value is string;
68
+ export declare const AlignItemsParse: (value: any) => unknown;
69
+ export declare const AlignSelfIsValid: (value: any) => value is string;
70
+ export declare const AlignSelfParse: (value: any) => unknown;
71
+ export declare const AlignContentIsValid: (value: any) => value is string;
72
+ export declare const AlignContentParse: (value: any) => unknown;
73
+ export declare const alignContentProperty: CssProperty<Style, AlignContent>;
74
+ export declare const justifyItemsProperty: CssProperty<Style, import("./layout-types").AlignItems>;
75
+ export declare const justifySelfProperty: CssProperty<Style, import("./layout-types").AlignSelf>;
76
+ export declare const placeShorthands: MasonShorthand[];
77
+ export declare const JustifyContentIsValid: (value: any) => value is string;
78
+ export declare const JustifyContentParse: (value: any) => unknown;
79
+ export declare const flexBasisProperty: CssProperty<Style, LengthAuto>;
80
+ export declare const aspectRatioProperty: CssProperty<Style, number>;
81
+ export declare const gridAutoRowsProperty: CssProperty<Style, string>;
82
+ export declare const gridAutoColumnsProperty: CssProperty<Style, string>;
83
+ export declare const gridAutoFlowProperty: CssProperty<Style, GridAutoFlow>;
84
+ export declare const gridAreaProperty: CssProperty<Style, string>;
85
+ export declare const gridColumnStartProperty: CssProperty<Style, string>;
86
+ export declare const gridColumnEndProperty: CssProperty<Style, string>;
87
+ export declare const gridColumnProperty: CssProperty<Style, string>;
88
+ export declare const gridRowStartProperty: CssProperty<Style, string>;
89
+ export declare const gridRowEndProperty: CssProperty<Style, string>;
90
+ export declare const gridRowProperty: CssProperty<Style, string>;
91
+ export declare const gridTemplateAreasProperty: CssProperty<Style, string>;
92
+ export declare const gridTemplateRowsProperty: CssProperty<Style, string>;
93
+ export declare const gridTemplateColumnsProperty: CssProperty<Style, string>;
94
+ export declare const textWrapProperty: CssProperty<Style, "nowrap" | "wrap" | "balance">;
95
+ export declare const textOverFlowProperty: CssProperty<Style, string>;
96
+ export declare const verticalAlignProperty: CssProperty<Style, VerticalAlign>;
97
+ export declare const floatProperty: CssProperty<Style, Float>;
98
+ export declare const clearProperty: CssProperty<Style, Clear>;
99
+ export declare const cornerShapeProperty: CssProperty<Style, string>;
100
+ export declare const boxShadowProperty: CssProperty<Style, string>;
101
+ export declare const transformProperty: CssProperty<Style, string>;
102
+ export declare const cornerShapeTopLeftProperty: CssProperty<Style, string>;
103
+ export declare const cornerShapeTopRightProperty: CssProperty<Style, string>;
104
+ export declare const cornerShapeBottomRightProperty: CssProperty<Style, string>;
105
+ export declare const cornerShapeBottomLeftProperty: CssProperty<Style, string>;
106
+ /** Splits `a / b / ...` into `count` longhands, filling omitted ones as CSS Grid does. */
107
+ export declare function gridParts(value: string, count: number): string[];
108
+ export declare const objectPositionProperty: CssProperty<Style, string>;
109
+ export declare const borderTopStyleProperty: CssProperty<Style, string>;
110
+ export declare const borderRightStyleProperty: CssProperty<Style, string>;
111
+ export declare const borderBottomStyleProperty: CssProperty<Style, string>;
112
+ export declare const borderLeftStyleProperty: CssProperty<Style, string>;
113
+ export declare const borderImageProperty: CssProperty<Style, string>;
114
+ export declare const fontStretchProperty: CssProperty<Style, string>;
115
+ export declare const fontFeatureSettingsProperty: CssProperty<Style, string>;
116
+ export declare const wordSpacingProperty: CssProperty<Style, string>;
117
+ export declare const hyphensProperty: CssProperty<Style, string>;
118
+ export declare const textIndentProperty: CssProperty<Style, string>;
119
+ export declare const lineClampProperty: CssProperty<Style, string>;
120
+ export declare const webkitLineClampProperty: CssProperty<Style, string>;
121
+ export declare const transformOriginProperty: CssProperty<Style, string>;
122
+ export declare const backdropFilterProperty: CssProperty<Style, string>;
123
+ export declare const maskImageProperty: CssProperty<Style, string>;
124
+ export declare const maskSizeProperty: CssAnimationProperty<Style, string>;
125
+ export declare const maskPositionProperty: CssAnimationProperty<Style, string>;
126
+ export declare const maskRepeatProperty: CssProperty<Style, string>;
127
+ export declare const maskOriginProperty: CssProperty<Style, string>;
128
+ export declare const maskClipProperty: CssProperty<Style, string>;
129
+ export declare const maskModeProperty: CssProperty<Style, string>;
130
+ export declare const maskCompositeProperty: CssProperty<Style, string>;
131
+ export declare const clipPathProperty: CssProperty<Style, string>;
132
+ export declare const maskBorderSourceProperty: CssProperty<Style, string>;
133
+ export declare const maskBorderSliceProperty: CssProperty<Style, string>;
134
+ export declare const maskBorderWidthProperty: CssProperty<Style, string>;
135
+ export declare const maskBorderOutsetProperty: CssProperty<Style, string>;
136
+ export declare const maskBorderRepeatProperty: CssProperty<Style, string>;
137
+ export declare const maskBorderModeProperty: CssProperty<Style, string>;
138
+ export declare const maskProperty: ShorthandProperty<Style, any>;
139
+ export declare const maskBorderProperty: ShorthandProperty<Style, any>;
140
+ export declare const writingModeProperty: CssProperty<Style, string>;
141
+ export declare const unicodeBidiProperty: CssProperty<Style, string>;
142
+ export declare const caretColorProperty: CssProperty<Style, string>;
143
+ export declare const listStyleTypeProperty: InheritedCssProperty<Style, string>;
144
+ export declare const listStylePositionProperty: InheritedCssProperty<Style, string>;
145
+ export declare const listStyleShorthand: MasonShorthand;
146
+ export declare const listStyleProperty: ShorthandProperty<Style, any>;
147
+ export declare const borderStyleProperty: ShorthandProperty<Style, any>;
148
+ export declare const borderProperty: ShorthandProperty<Style, any>;
149
+ export declare const borderTopProperty: ShorthandProperty<Style, any>;
150
+ export declare const borderRightProperty: ShorthandProperty<Style, any>;
151
+ export declare const borderBottomProperty: ShorthandProperty<Style, any>;
152
+ export declare const borderLeftProperty: ShorthandProperty<Style, any>;
153
+ export declare const masonShorthands: MasonShorthand[];
154
+ export {};