@triniwiz/nativescript-masonkit 1.0.0-alpha.5 → 1.0.0-alpha.6

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 (345) hide show
  1. package/common.d.ts +7 -9
  2. package/common.js +277 -552
  3. package/common.js.map +1 -1
  4. package/helpers.d.ts +32 -10
  5. package/helpers.js +772 -286
  6. package/helpers.js.map +1 -1
  7. package/index.android.d.ts +6 -2
  8. package/index.android.js +21 -3
  9. package/index.android.js.map +1 -1
  10. package/index.d.ts +64 -7
  11. package/index.ios.d.ts +9 -6
  12. package/index.ios.js +39 -25
  13. package/index.ios.js.map +1 -1
  14. package/package.json +1 -1
  15. package/platforms/android/include.gradle +18 -1
  16. package/platforms/android/masonkit-release.aar +0 -0
  17. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason-Swift.h +108 -64
  18. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/mason_native.h +47 -20
  19. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Info.plist +0 -0
  20. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
  21. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  22. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +10744 -1631
  23. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.private.swiftinterface +58 -21
  24. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  25. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftinterface +58 -21
  26. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  27. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason-Swift.h +216 -128
  28. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/mason_native.h +47 -20
  29. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Info.plist +0 -0
  30. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
  31. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  32. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  33. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +10744 -1631
  34. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +58 -21
  35. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  36. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftinterface +58 -21
  37. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +10744 -1631
  38. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +58 -21
  39. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  40. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +58 -21
  41. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +43 -43
  42. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  43. package/platforms/ios/build.xcconfig +1 -2
  44. package/platforms/ios/src/MasonV8Module.h +583 -0
  45. package/platforms/ios/src/MasonV8Module.mm +1005 -0
  46. package/platforms/ios/src/{include → cpp/include}/mason_native.h +47 -20
  47. package/platforms/ios/src/cpp/include/robin_hood.h +2544 -0
  48. package/platforms/ios/src/module.modulemap +2 -2
  49. package/platforms/new_native_src/cpp/Caches.cpp +36 -0
  50. package/platforms/new_native_src/cpp/Caches.h +42 -0
  51. package/platforms/new_native_src/cpp/Common.h +34 -0
  52. package/platforms/new_native_src/cpp/ConcurrentMap.h +57 -0
  53. package/platforms/new_native_src/cpp/Helpers.cpp +101 -0
  54. package/platforms/new_native_src/cpp/Helpers.h +364 -0
  55. package/platforms/new_native_src/cpp/MasonImpl.cpp +68 -0
  56. package/platforms/new_native_src/cpp/MasonImpl.h +40 -0
  57. package/platforms/new_native_src/cpp/MasonNodeImpl.cpp +89 -0
  58. package/platforms/new_native_src/cpp/MasonNodeImpl.h +47 -0
  59. package/platforms/new_native_src/cpp/MasonStyleImpl.cpp +2181 -0
  60. package/platforms/new_native_src/cpp/MasonStyleImpl.h +420 -0
  61. package/platforms/{ios/Mason.xcframework/ios-arm64/Mason.framework/PrivateHeaders → new_native_src/cpp/include}/mason_native.h +464 -168
  62. package/platforms/new_native_src/cpp/include/robin_hood.h +2544 -0
  63. package/pods/Headers/include/APIDesign.md +72 -0
  64. package/pods/Headers/include/DEPS +10 -0
  65. package/pods/Headers/include/DIR_METADATA +11 -0
  66. package/pods/Headers/include/OWNERS +23 -0
  67. package/pods/Headers/include/cppgc/DEPS +8 -0
  68. package/pods/Headers/include/cppgc/OWNERS +2 -0
  69. package/pods/Headers/include/cppgc/README.md +133 -0
  70. package/pods/Headers/include/cppgc/allocation.h +310 -0
  71. package/pods/Headers/include/cppgc/common.h +29 -0
  72. package/pods/Headers/include/cppgc/cross-thread-persistent.h +465 -0
  73. package/pods/Headers/include/cppgc/custom-space.h +97 -0
  74. package/pods/Headers/include/cppgc/default-platform.h +67 -0
  75. package/pods/Headers/include/cppgc/ephemeron-pair.h +30 -0
  76. package/pods/Headers/include/cppgc/explicit-management.h +100 -0
  77. package/pods/Headers/include/cppgc/garbage-collected.h +106 -0
  78. package/pods/Headers/include/cppgc/heap-consistency.h +266 -0
  79. package/pods/Headers/include/cppgc/heap-state.h +82 -0
  80. package/pods/Headers/include/cppgc/heap-statistics.h +120 -0
  81. package/pods/Headers/include/cppgc/heap.h +206 -0
  82. package/pods/Headers/include/cppgc/internal/api-constants.h +55 -0
  83. package/pods/Headers/include/cppgc/internal/atomic-entry-flag.h +48 -0
  84. package/pods/Headers/include/cppgc/internal/caged-heap-local-data.h +79 -0
  85. package/pods/Headers/include/cppgc/internal/compiler-specific.h +38 -0
  86. package/pods/Headers/include/cppgc/internal/finalizer-trait.h +93 -0
  87. package/pods/Headers/include/cppgc/internal/gc-info.h +156 -0
  88. package/pods/Headers/include/cppgc/internal/logging.h +50 -0
  89. package/pods/Headers/include/cppgc/internal/name-trait.h +122 -0
  90. package/pods/Headers/include/cppgc/internal/persistent-node.h +216 -0
  91. package/pods/Headers/include/cppgc/internal/pointer-policies.h +186 -0
  92. package/pods/Headers/include/cppgc/internal/write-barrier.h +435 -0
  93. package/pods/Headers/include/cppgc/liveness-broker.h +77 -0
  94. package/pods/Headers/include/cppgc/macros.h +26 -0
  95. package/pods/Headers/include/cppgc/member.h +291 -0
  96. package/pods/Headers/include/cppgc/name-provider.h +65 -0
  97. package/pods/Headers/include/cppgc/object-size-trait.h +58 -0
  98. package/pods/Headers/include/cppgc/persistent.h +370 -0
  99. package/pods/Headers/include/cppgc/platform.h +156 -0
  100. package/pods/Headers/include/cppgc/prefinalizer.h +75 -0
  101. package/pods/Headers/include/cppgc/process-heap-statistics.h +36 -0
  102. package/pods/Headers/include/cppgc/sentinel-pointer.h +32 -0
  103. package/pods/Headers/include/cppgc/source-location.h +92 -0
  104. package/pods/Headers/include/cppgc/testing.h +106 -0
  105. package/pods/Headers/include/cppgc/trace-trait.h +116 -0
  106. package/pods/Headers/include/cppgc/type-traits.h +240 -0
  107. package/pods/Headers/include/cppgc/visitor.h +379 -0
  108. package/pods/Headers/include/js_protocol-1.2.json +936 -0
  109. package/pods/Headers/include/js_protocol-1.3.json +1112 -0
  110. package/pods/Headers/include/js_protocol.pdl +1709 -0
  111. package/pods/Headers/include/libffi/arm64/ffi.h +524 -0
  112. package/pods/Headers/include/libffi/arm64/ffitarget.h +92 -0
  113. package/pods/Headers/include/libffi/x86_64/ffi.h +524 -0
  114. package/pods/Headers/include/libffi/x86_64/ffitarget.h +147 -0
  115. package/pods/Headers/include/libffi.h +12 -0
  116. package/pods/Headers/include/libplatform/DEPS +9 -0
  117. package/pods/Headers/include/libplatform/libplatform-export.h +29 -0
  118. package/pods/Headers/include/libplatform/libplatform.h +106 -0
  119. package/pods/Headers/include/libplatform/v8-tracing.h +333 -0
  120. package/pods/Headers/include/v8-array-buffer.h +433 -0
  121. package/pods/Headers/include/v8-callbacks.h +397 -0
  122. package/pods/Headers/include/v8-container.h +129 -0
  123. package/pods/Headers/include/v8-context.h +407 -0
  124. package/pods/Headers/include/v8-cppgc.h +215 -0
  125. package/pods/Headers/include/v8-data.h +80 -0
  126. package/pods/Headers/include/v8-date.h +43 -0
  127. package/pods/Headers/include/v8-debug.h +168 -0
  128. package/pods/Headers/include/v8-embedder-heap.h +218 -0
  129. package/pods/Headers/include/v8-embedder-state-scope.h +51 -0
  130. package/pods/Headers/include/v8-exception.h +217 -0
  131. package/pods/Headers/include/v8-extension.h +62 -0
  132. package/pods/Headers/include/v8-external.h +37 -0
  133. package/pods/Headers/include/v8-fast-api-calls.h +939 -0
  134. package/pods/Headers/include/v8-forward.h +81 -0
  135. package/pods/Headers/include/v8-function-callback.h +475 -0
  136. package/pods/Headers/include/v8-function.h +125 -0
  137. package/pods/Headers/include/v8-initialization.h +315 -0
  138. package/pods/Headers/include/v8-inspector-protocol.h +13 -0
  139. package/pods/Headers/include/v8-inspector.h +376 -0
  140. package/pods/Headers/include/v8-internal.h +661 -0
  141. package/pods/Headers/include/v8-isolate.h +1709 -0
  142. package/pods/Headers/include/v8-json.h +47 -0
  143. package/pods/Headers/include/v8-local-handle.h +455 -0
  144. package/pods/Headers/include/v8-locker.h +149 -0
  145. package/pods/Headers/include/v8-maybe.h +137 -0
  146. package/pods/Headers/include/v8-memory-span.h +43 -0
  147. package/pods/Headers/include/v8-message.h +216 -0
  148. package/pods/Headers/include/v8-metrics.h +255 -0
  149. package/pods/Headers/include/v8-microtask-queue.h +152 -0
  150. package/pods/Headers/include/v8-microtask.h +28 -0
  151. package/pods/Headers/include/v8-object.h +775 -0
  152. package/pods/Headers/include/v8-persistent-handle.h +590 -0
  153. package/pods/Headers/include/v8-platform.h +1092 -0
  154. package/pods/Headers/include/v8-primitive-object.h +118 -0
  155. package/pods/Headers/include/v8-primitive.h +866 -0
  156. package/pods/Headers/include/v8-profiler.h +1198 -0
  157. package/pods/Headers/include/v8-promise.h +174 -0
  158. package/pods/Headers/include/v8-proxy.h +50 -0
  159. package/pods/Headers/include/v8-regexp.h +105 -0
  160. package/pods/Headers/include/v8-script.h +748 -0
  161. package/pods/Headers/include/v8-snapshot.h +196 -0
  162. package/pods/Headers/include/v8-statistics.h +217 -0
  163. package/pods/Headers/include/v8-template.h +1079 -0
  164. package/pods/Headers/include/v8-traced-handle.h +420 -0
  165. package/pods/Headers/include/v8-typed-array.h +282 -0
  166. package/pods/Headers/include/v8-unwinder-state.h +31 -0
  167. package/pods/Headers/include/v8-unwinder.h +132 -0
  168. package/pods/Headers/include/v8-util.h +658 -0
  169. package/pods/Headers/include/v8-value-serializer-version.h +24 -0
  170. package/pods/Headers/include/v8-value-serializer.h +279 -0
  171. package/pods/Headers/include/v8-value.h +526 -0
  172. package/pods/Headers/include/v8-version-string.h +38 -0
  173. package/pods/Headers/include/v8-version.h +20 -0
  174. package/pods/Headers/include/v8-wasm-trap-handler-posix.h +31 -0
  175. package/pods/Headers/include/v8-wasm-trap-handler-win.h +28 -0
  176. package/pods/Headers/include/v8-wasm.h +257 -0
  177. package/pods/Headers/include/v8-weak-callback-info.h +86 -0
  178. package/pods/Headers/include/v8.h +88 -0
  179. package/pods/Headers/include/v8config.h +605 -0
  180. package/pods/Headers/inspector/InspectorServer.h +20 -0
  181. package/pods/Headers/inspector/JsV8InspectorClient.h +66 -0
  182. package/pods/Headers/inspector/base/trace_event/common/trace_event_common.h +1123 -0
  183. package/pods/Headers/inspector/base64.h +9 -0
  184. package/pods/Headers/inspector/src/base/address-region.h +95 -0
  185. package/pods/Headers/inspector/src/base/atomic-utils.h +219 -0
  186. package/pods/Headers/inspector/src/base/atomicops.h +332 -0
  187. package/pods/Headers/inspector/src/base/atomicops_internals_atomicword_compat.h +89 -0
  188. package/pods/Headers/inspector/src/base/base-export.h +31 -0
  189. package/pods/Headers/inspector/src/base/bits.h +343 -0
  190. package/pods/Headers/inspector/src/base/build_config.h +234 -0
  191. package/pods/Headers/inspector/src/base/compiler-specific.h +136 -0
  192. package/pods/Headers/inspector/src/base/export-template.h +163 -0
  193. package/pods/Headers/inspector/src/base/flags.h +130 -0
  194. package/pods/Headers/inspector/src/base/immediate-crash.h +162 -0
  195. package/pods/Headers/inspector/src/base/lazy-instance.h +258 -0
  196. package/pods/Headers/inspector/src/base/logging.h +417 -0
  197. package/pods/Headers/inspector/src/base/macros.h +423 -0
  198. package/pods/Headers/inspector/src/base/memory.h +89 -0
  199. package/pods/Headers/inspector/src/base/once.h +108 -0
  200. package/pods/Headers/inspector/src/base/optional.h +882 -0
  201. package/pods/Headers/inspector/src/base/platform/mutex.h +370 -0
  202. package/pods/Headers/inspector/src/base/platform/platform.h +476 -0
  203. package/pods/Headers/inspector/src/base/platform/semaphore.h +108 -0
  204. package/pods/Headers/inspector/src/base/platform/v8-time.h +513 -0
  205. package/pods/Headers/inspector/src/base/platform/wrappers.h +73 -0
  206. package/pods/Headers/inspector/src/base/safe_conversions.h +389 -0
  207. package/pods/Headers/inspector/src/base/safe_conversions_impl.h +822 -0
  208. package/pods/Headers/inspector/src/base/template-utils.h +113 -0
  209. package/pods/Headers/inspector/src/base/v8-fallthrough.h +21 -0
  210. package/pods/Headers/inspector/src/common/checks.h +38 -0
  211. package/pods/Headers/inspector/src/common/globals.h +1842 -0
  212. package/pods/Headers/inspector/src/debug/debug-interface.h +667 -0
  213. package/pods/Headers/inspector/src/debug/interface-types.h +175 -0
  214. package/pods/Headers/inspector/src/init/v8.h +52 -0
  215. package/pods/Headers/inspector/src/inspector/custom-preview.h +24 -0
  216. package/pods/Headers/inspector/src/inspector/injected-script.h +251 -0
  217. package/pods/Headers/inspector/src/inspector/inspected-context.h +79 -0
  218. package/pods/Headers/inspector/src/inspector/protocol/CSS.h +2148 -0
  219. package/pods/Headers/inspector/src/inspector/protocol/Console.h +211 -0
  220. package/pods/Headers/inspector/src/inspector/protocol/DOM.h +1008 -0
  221. package/pods/Headers/inspector/src/inspector/protocol/Debugger.h +892 -0
  222. package/pods/Headers/inspector/src/inspector/protocol/Forward.h +75 -0
  223. package/pods/Headers/inspector/src/inspector/protocol/HeapProfiler.h +346 -0
  224. package/pods/Headers/inspector/src/inspector/protocol/Log.h +342 -0
  225. package/pods/Headers/inspector/src/inspector/protocol/Network.h +2528 -0
  226. package/pods/Headers/inspector/src/inspector/protocol/Overlay.h +281 -0
  227. package/pods/Headers/inspector/src/inspector/protocol/Page.h +1189 -0
  228. package/pods/Headers/inspector/src/inspector/protocol/Profiler.h +1001 -0
  229. package/pods/Headers/inspector/src/inspector/protocol/Protocol.h +617 -0
  230. package/pods/Headers/inspector/src/inspector/protocol/Runtime.h +1696 -0
  231. package/pods/Headers/inspector/src/inspector/protocol/Schema.h +146 -0
  232. package/pods/Headers/inspector/src/inspector/protocol/Security.h +793 -0
  233. package/pods/Headers/inspector/src/inspector/remote-object-id.h +54 -0
  234. package/pods/Headers/inspector/src/inspector/search-util.h +26 -0
  235. package/pods/Headers/inspector/src/inspector/string-16.h +180 -0
  236. package/pods/Headers/inspector/src/inspector/string-util.h +128 -0
  237. package/pods/Headers/inspector/src/inspector/v8-console-agent-impl.h +48 -0
  238. package/pods/Headers/inspector/src/inspector/v8-console-message.h +147 -0
  239. package/pods/Headers/inspector/src/inspector/v8-console.h +173 -0
  240. package/pods/Headers/inspector/src/inspector/v8-css-agent-impl.h +62 -0
  241. package/pods/Headers/inspector/src/inspector/v8-debugger-agent-impl.h +248 -0
  242. package/pods/Headers/inspector/src/inspector/v8-debugger-id.h +44 -0
  243. package/pods/Headers/inspector/src/inspector/v8-debugger-script.h +123 -0
  244. package/pods/Headers/inspector/src/inspector/v8-debugger.h +257 -0
  245. package/pods/Headers/inspector/src/inspector/v8-dom-agent-impl.h +91 -0
  246. package/pods/Headers/inspector/src/inspector/v8-heap-profiler-agent-impl.h +80 -0
  247. package/pods/Headers/inspector/src/inspector/v8-inspector-impl.h +191 -0
  248. package/pods/Headers/inspector/src/inspector/v8-inspector-session-impl.h +156 -0
  249. package/pods/Headers/inspector/src/inspector/v8-log-agent-impl.h +34 -0
  250. package/pods/Headers/inspector/src/inspector/v8-network-agent-impl.h +71 -0
  251. package/pods/Headers/inspector/src/inspector/v8-ns-debugger-agent-impl.h +24 -0
  252. package/pods/Headers/inspector/src/inspector/v8-overlay-agent-impl.h +70 -0
  253. package/pods/Headers/inspector/src/inspector/v8-page-agent-impl.h +88 -0
  254. package/pods/Headers/inspector/src/inspector/v8-profiler-agent-impl.h +104 -0
  255. package/pods/Headers/inspector/src/inspector/v8-regex.h +38 -0
  256. package/pods/Headers/inspector/src/inspector/v8-runtime-agent-impl.h +157 -0
  257. package/pods/Headers/inspector/src/inspector/v8-schema-agent-impl.h +38 -0
  258. package/pods/Headers/inspector/src/inspector/v8-stack-trace-impl.h +164 -0
  259. package/pods/Headers/inspector/src/inspector/v8-string-conversions.h +17 -0
  260. package/pods/Headers/inspector/src/inspector/v8-value-utils.h +23 -0
  261. package/pods/Headers/inspector/src/inspector/value-mirror.h +87 -0
  262. package/pods/Headers/inspector/src/libplatform/default-platform.h +92 -0
  263. package/pods/Headers/inspector/src/logging/tracing-flags.h +50 -0
  264. package/pods/Headers/inspector/src/numbers/conversions.h +183 -0
  265. package/pods/Headers/inspector/src/tracing/trace-event.h +664 -0
  266. package/pods/Headers/inspector/src/utils/allocation.h +367 -0
  267. package/pods/Headers/inspector/src/utils/vector.h +324 -0
  268. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/cbor.h +305 -0
  269. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/dispatch.h +314 -0
  270. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/error_support.h +62 -0
  271. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/export.h +6 -0
  272. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/find_by_first.h +58 -0
  273. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/frontend_channel.h +47 -0
  274. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/glue.h +80 -0
  275. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/json.h +52 -0
  276. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/json_platform.h +26 -0
  277. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/maybe.h +104 -0
  278. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/parser_handler.h +39 -0
  279. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/protocol_core.h +406 -0
  280. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/serializable.h +32 -0
  281. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/serializer_traits.h +158 -0
  282. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/span.h +99 -0
  283. package/pods/Headers/inspector/third_party/inspector_protocol/crdtp/status.h +139 -0
  284. package/pods/Headers/inspector/utils.h +32 -0
  285. package/pods/Headers/inspector/v8-inspector-platform.h +44 -0
  286. package/pods/Headers/jsi/decorator.h +762 -0
  287. package/pods/Headers/jsi/instrumentation.h +117 -0
  288. package/pods/Headers/jsi/jsi-inl.h +322 -0
  289. package/pods/Headers/jsi/jsi.h +1387 -0
  290. package/pods/Headers/jsi/jsilib.h +59 -0
  291. package/pods/Headers/jsi/threadsafe.h +79 -0
  292. package/pods/Headers/runtime/ArgConverter.h +61 -0
  293. package/pods/Headers/runtime/ArrayAdapter.h +13 -0
  294. package/pods/Headers/runtime/Caches.h +98 -0
  295. package/pods/Headers/runtime/ClassBuilder.h +61 -0
  296. package/pods/Headers/runtime/Common.h +9 -0
  297. package/pods/Headers/runtime/ConcurrentMap.h +55 -0
  298. package/pods/Headers/runtime/ConcurrentQueue.h +28 -0
  299. package/pods/Headers/runtime/Console.h +27 -0
  300. package/pods/Headers/runtime/Constants.h +15 -0
  301. package/pods/Headers/runtime/DataWrapper.h +671 -0
  302. package/pods/Headers/runtime/DictionaryAdapter.h +13 -0
  303. package/pods/Headers/runtime/ExtVector.h +21 -0
  304. package/pods/Headers/runtime/FFICall.h +105 -0
  305. package/pods/Headers/runtime/FastEnumerationAdapter.h +13 -0
  306. package/pods/Headers/runtime/FunctionReference.h +18 -0
  307. package/pods/Headers/runtime/Helpers.h +84 -0
  308. package/pods/Headers/runtime/InlineFunctions.h +16 -0
  309. package/pods/Headers/runtime/Interop.h +202 -0
  310. package/pods/Headers/runtime/KnownUnknownClassPair.h +35 -0
  311. package/pods/Headers/runtime/Metadata.h +981 -0
  312. package/pods/Headers/runtime/MetadataBuilder.h +72 -0
  313. package/pods/Headers/runtime/MetadataInlines.h +157 -0
  314. package/pods/Headers/runtime/ModuleInternal.h +59 -0
  315. package/pods/Headers/runtime/NSDataAdapter.h +13 -0
  316. package/pods/Headers/runtime/NativeScriptException.h +27 -0
  317. package/pods/Headers/runtime/ObjectManager.h +31 -0
  318. package/pods/Headers/runtime/OneByteStringResource.h +21 -0
  319. package/pods/Headers/runtime/Pointer.h +26 -0
  320. package/pods/Headers/runtime/PromiseProxy.h +15 -0
  321. package/pods/Headers/runtime/Reference.h +38 -0
  322. package/pods/Headers/runtime/Runtime.h +67 -0
  323. package/pods/Headers/runtime/RuntimeConfig.h +17 -0
  324. package/pods/Headers/runtime/SetTimeout.h +34 -0
  325. package/pods/Headers/runtime/SimpleAllocator.h +23 -0
  326. package/pods/Headers/runtime/StringHasher.h +315 -0
  327. package/pods/Headers/runtime/SymbolIterator.h +18 -0
  328. package/pods/Headers/runtime/SymbolLoader.h +27 -0
  329. package/pods/Headers/runtime/TNSDerivedClass.h +8 -0
  330. package/pods/Headers/runtime/TSHelpers.h +15 -0
  331. package/pods/Headers/runtime/Tasks.h +19 -0
  332. package/pods/Headers/runtime/UnmanagedType.h +21 -0
  333. package/pods/Headers/runtime/WeakRef.h +15 -0
  334. package/pods/Headers/runtime/Worker.h +26 -0
  335. package/pods/Headers/runtime/robin_hood.h +2184 -0
  336. package/pods/Headers/v8runtime/HostProxy.h +71 -0
  337. package/pods/Headers/v8runtime/JSIV8ValueConverter.h +70 -0
  338. package/pods/Headers/v8runtime/V8PointerValue.h +44 -0
  339. package/pods/Headers/v8runtime/V8Runtime.h +215 -0
  340. package/pods/Headers/v8runtime/V8RuntimeConfig.h +26 -0
  341. package/pods/Headers/v8runtime/V8RuntimeFactory.h +21 -0
  342. package/pods/NativeScript.podspec +68 -0
  343. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/PrivateHeaders/mason_native.h +0 -676
  344. package/platforms/ios/src/JSIModule.h +0 -217
  345. package/platforms/ios/src/JSIModule.mm +0 -2788
@@ -1,4 +1,4 @@
1
- module JSIModule {
2
- header "JSIModule.h"
1
+ module MasonV8Module {
2
+ header "MasonV8Module.h"
3
3
  export *
4
4
  }
@@ -0,0 +1,36 @@
1
+ //
2
+ // Created by Osei Fortune on 01/01/2024.
3
+ //
4
+
5
+ #include "Caches.h"
6
+
7
+ std::shared_ptr <ConcurrentMap<v8::Isolate *, std::shared_ptr < Caches>>>
8
+ Caches::perIsolateCaches_ =
9
+ std::make_shared < ConcurrentMap<v8::Isolate *, std::shared_ptr < Caches>>
10
+ >();
11
+
12
+ Caches::Caches(v8::Isolate *isolate) : isolate_(isolate) {}
13
+
14
+ Caches::~Caches() {}
15
+
16
+ std::shared_ptr <Caches> Caches::Get(v8::Isolate *isolate) {
17
+ std::shared_ptr <Caches> cache = Caches::perIsolateCaches_->Get(isolate);
18
+ if (cache == nullptr) {
19
+ cache = std::make_shared<Caches>(isolate);
20
+ Caches::perIsolateCaches_->Insert(isolate, cache);
21
+ }
22
+
23
+ return cache;
24
+ }
25
+
26
+ void Caches::Remove(v8::Isolate *isolate) {
27
+ Caches::perIsolateCaches_->Remove(isolate);
28
+ }
29
+
30
+ void Caches::SetContext(v8::Local<v8::Context> context) {
31
+ this->context_ = std::make_shared<v8::Persistent<v8::Context >>(this->isolate_, context);
32
+ }
33
+
34
+ v8::Local<v8::Context> Caches::GetContext() {
35
+ return this->context_->Get(this->isolate_);
36
+ }
@@ -0,0 +1,42 @@
1
+ //
2
+ // Created by Osei Fortune on 01/01/2024.
3
+ //
4
+
5
+ #ifndef MASON_CACHES_H
6
+ #define MASON_CACHES_H
7
+
8
+ #include "Common.h"
9
+ #include "ConcurrentMap.h"
10
+
11
+ class Caches {
12
+ public:
13
+ Caches(v8::Isolate *isolate);
14
+
15
+ ~Caches();
16
+
17
+ static std::shared_ptr<Caches> Get(v8::Isolate *isolate);
18
+
19
+ static void Remove(v8::Isolate *isolate);
20
+
21
+ void SetContext(v8::Local<v8::Context> context);
22
+
23
+ v8::Local<v8::Context> GetContext();
24
+
25
+
26
+ std::unique_ptr<v8::Persistent<v8::FunctionTemplate>> MasonTmpl = std::unique_ptr<v8::Persistent<v8::FunctionTemplate>>(
27
+ nullptr);
28
+
29
+ std::unique_ptr<v8::Persistent<v8::FunctionTemplate>> MasonNodeTmpl = std::unique_ptr<v8::Persistent<v8::FunctionTemplate>>(
30
+ nullptr);
31
+
32
+ std::unique_ptr<v8::Persistent<v8::FunctionTemplate>> MasonStyleTmpl = std::unique_ptr<v8::Persistent<v8::FunctionTemplate>>(
33
+ nullptr);
34
+ private:
35
+ static std::shared_ptr<ConcurrentMap<v8::Isolate *,
36
+ std::shared_ptr<Caches>>>
37
+ perIsolateCaches_;
38
+ v8::Isolate *isolate_;
39
+ std::shared_ptr<v8::Persistent<v8::Context>> context_;
40
+ };
41
+
42
+ #endif //MASON_CACHES_H
@@ -0,0 +1,34 @@
1
+ //
2
+ // Created by Osei Fortune on 01/01/2024.
3
+ //
4
+ #pragma once
5
+
6
+ #ifndef MASON_COMMON_H
7
+ #define MASON_COMMON_H
8
+
9
+ #include <stdint.h>
10
+ #include <string.h>
11
+
12
+ #ifdef __ANDROID__
13
+ #include <android/log.h>
14
+ #include "include/mason_native.h"
15
+ #include "include/v8.h"
16
+ #endif
17
+
18
+ #ifdef __APPLE__
19
+ #include <NativeScript/include/v8.h>
20
+
21
+ #ifdef __cplusplus
22
+ extern "C" {
23
+ #endif
24
+
25
+ #include "include/mason_native.h"
26
+
27
+ #ifdef __cplusplus
28
+ }
29
+ #endif
30
+
31
+ #endif
32
+
33
+
34
+ #endif //MASON_COMMON_H
@@ -0,0 +1,57 @@
1
+ //
2
+ // Created by Osei Fortune on 06/07/2023.
3
+ //
4
+
5
+ #ifndef MASON_CONCURRENTMAP_H
6
+ #define MASON_CONCURRENTMAP_H
7
+
8
+ #include <shared_mutex>
9
+ #include "include/robin_hood.h"
10
+ template<class TKey, class TValue>
11
+ class ConcurrentMap {
12
+ public:
13
+ void Insert(TKey &key, TValue value) {
14
+ std::lock_guard <std::mutex> writerLock(this->containerMutex_);
15
+ this->container_[key] = value;
16
+ }
17
+
18
+ TValue Get(TKey &key) {
19
+ bool found;
20
+ return this->Get(key, found);
21
+ }
22
+
23
+ TValue Get(TKey &key, bool &found) {
24
+ // std::shared_lock<std::shared_timed_mutex> readerLock(this->containerMutex_);
25
+ std::lock_guard <std::mutex> writerLock(this->containerMutex_);
26
+ auto it = this->container_.find(key);
27
+ found = it != this->container_.end();
28
+ if (found) {
29
+ return it->second;
30
+ }
31
+ return nullptr;
32
+ }
33
+
34
+ bool ContainsKey(TKey &key) {
35
+ // std::shared_lock<std::shared_timed_mutex> readerLock(this->containerMutex_);
36
+ std::lock_guard <std::mutex> writerLock(this->containerMutex_);
37
+ auto it = this->container_.find(key);
38
+ return it != this->container_.end();
39
+ }
40
+
41
+ void Remove(TKey &key) {
42
+ std::lock_guard <std::mutex> writerLock(this->containerMutex_);
43
+ this->container_.erase(key);
44
+ }
45
+
46
+ ConcurrentMap() = default;
47
+
48
+ ConcurrentMap(const ConcurrentMap &) = delete;
49
+
50
+ ConcurrentMap &operator=(const ConcurrentMap &) = delete;
51
+
52
+ private:
53
+ std::mutex containerMutex_;
54
+ robin_hood::unordered_map<TKey, TValue> container_;
55
+ };
56
+
57
+ #endif //MASON_CONCURRENTMAP_H
@@ -0,0 +1,101 @@
1
+ //
2
+ // Created by Osei Fortune on 01/01/2024.
3
+ //
4
+
5
+ #include "Helpers.h"
6
+
7
+
8
+ const char *Helpers::LOG_TAG = "JS";
9
+ int Helpers::m_maxLogcatObjectSize = 4096;
10
+
11
+
12
+
13
+ #ifdef __ANDROID__
14
+
15
+ void Helpers::sendToADBLogcat(const std::string &message, android_LogPriority logPriority) {
16
+ // limit the size of the message that we send to logcat using the predefined value in package.json
17
+ auto messageToLog = message;
18
+ if (messageToLog.length() > m_maxLogcatObjectSize) {
19
+ messageToLog = messageToLog.erase(m_maxLogcatObjectSize, std::string::npos);
20
+ messageToLog = messageToLog + "...";
21
+ }
22
+
23
+ // split strings into chunks of 4000 characters
24
+ // __android_log_write can't send more than 4000 to the stdout at a time
25
+ auto messageLength = messageToLog.length();
26
+ int maxStringLength = 4000;
27
+
28
+ if (messageLength < maxStringLength) {
29
+ __android_log_write(logPriority, Helpers::LOG_TAG, messageToLog.c_str());
30
+ } else {
31
+ for (int i = 0; i < messageLength; i += maxStringLength) {
32
+ auto messagePart = messageToLog.substr(i, maxStringLength);
33
+
34
+ __android_log_write(logPriority, Helpers::LOG_TAG, messagePart.c_str());
35
+ }
36
+ }
37
+ }
38
+
39
+ #endif
40
+
41
+
42
+ void Helpers::LogToConsole(const std::string &message) {
43
+ #ifdef __ANDROID__
44
+ sendToADBLogcat(message, android_LogPriority::ANDROID_LOG_INFO);
45
+ #endif
46
+
47
+ #ifdef __APPLE__
48
+ #endif
49
+ }
50
+
51
+ void Helpers::ThrowIllegalConstructor(v8::Isolate *isolate) {
52
+ auto msg = ConvertToV8String(isolate, "Illegal constructor");
53
+ auto err = v8::Exception::TypeError(msg);
54
+ isolate->ThrowException(err);
55
+ }
56
+
57
+ v8::Local<v8::String> Helpers::ConvertToV8String(v8::Isolate *isolate, const std::string &string) {
58
+ return v8::String::NewFromUtf8(isolate, string.c_str()).ToLocalChecked();
59
+ }
60
+
61
+ std::string Helpers::ConvertFromV8String(v8::Isolate *isolate, const v8::Local<v8::Value> &value) {
62
+ if (value.IsEmpty()) {
63
+ return {};
64
+ }
65
+
66
+ if (value->IsStringObject()) {
67
+ v8::Local<v8::String> obj = value.As<v8::StringObject>()->ValueOf();
68
+ return ConvertFromV8String(isolate, obj);
69
+ }
70
+
71
+ v8::String::Utf8Value result(isolate, value);
72
+
73
+ const char *val = *result;
74
+
75
+ if (val == nullptr) {
76
+ return {};
77
+ }
78
+
79
+ return {*result};
80
+ }
81
+
82
+
83
+ void
84
+ Helpers::SetPrivate(v8::Isolate *isolate, v8::Local<v8::Object> object, const std::string &property,
85
+ v8::Local<v8::Value> value) {
86
+ auto context = isolate->GetCurrentContext();
87
+ auto key = v8::Private::ForApi(isolate, Helpers::ConvertToV8String(isolate, property));
88
+ object->SetPrivate(context, key, value);
89
+ }
90
+
91
+ v8::Local<v8::Value> Helpers::GetPrivate(v8::Isolate *isolate, v8::Local<v8::Object> object,
92
+ const std::string &property) {
93
+ auto context = isolate->GetCurrentContext();
94
+ auto key = v8::Private::ForApi(isolate, Helpers::ConvertToV8String(isolate, property));
95
+ auto value = object->GetPrivate(context, key);
96
+ if (value.IsEmpty()) {
97
+ return v8::Undefined(isolate);
98
+ } else {
99
+ return value.ToLocalChecked();
100
+ }
101
+ }
@@ -0,0 +1,364 @@
1
+ //
2
+ // Created by Osei Fortune on 01/01/2024.
3
+ //
4
+ #pragma once
5
+ #ifndef MASON_HELPERS_H
6
+ #define MASON_HELPERS_H
7
+
8
+ #include "Common.h"
9
+
10
+
11
+ class Helpers {
12
+ public:
13
+
14
+ static const char *LOG_TAG;
15
+
16
+ static int m_maxLogcatObjectSize;
17
+
18
+ #ifdef __ANDROID__
19
+
20
+ static void sendToADBLogcat(const std::string &message, android_LogPriority logPriority);
21
+
22
+ #endif
23
+
24
+ static void LogToConsole(const std::string &message);
25
+
26
+ static void ThrowIllegalConstructor(v8::Isolate *isolate);
27
+
28
+ static v8::Local<v8::String> ConvertToV8String(v8::Isolate *isolate, const std::string &string);
29
+
30
+ static std::string ConvertFromV8String(v8::Isolate *isolate, const v8::Local<v8::Value> &value);
31
+
32
+ static void
33
+ SetPrivate(v8::Isolate *isolate, v8::Local<v8::Object> object, const std::string &property,
34
+ v8::Local<v8::Value> value);
35
+
36
+ static v8::Local<v8::Value>
37
+ GetPrivate(v8::Isolate *isolate, v8::Local<v8::Object> object, const std::string &property);
38
+ };
39
+
40
+ inline static v8::Local<v8::Value>
41
+ gridPlacementToJS(v8::Isolate *isolate, CMasonGridPlacement placement) {
42
+ switch (placement.value_type) {
43
+ case CMasonGridPlacementType::MasonGridPlacementTypeAuto: {
44
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
45
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
46
+ v8::Number::New(isolate, placement.value))
47
+ .Check();
48
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "type"),
49
+ v8::Number::New(isolate, 0))
50
+ .Check();
51
+ return object;
52
+ }
53
+ case CMasonGridPlacementType::MasonGridPlacementTypeLine: {
54
+
55
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
56
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
57
+ v8::Number::New(isolate, placement.value))
58
+ .Check();
59
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "type"),
60
+ v8::Number::New(isolate, 1))
61
+ .Check();
62
+ return object;
63
+ }
64
+ case CMasonGridPlacementType::MasonGridPlacementTypeSpan: {
65
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
66
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
67
+ v8::Number::New(isolate, placement.value))
68
+ .Check();
69
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "type"),
70
+ v8::Number::New(isolate, 2))
71
+ .Check();
72
+ return object;
73
+ }
74
+ default:
75
+ return v8::Undefined(isolate);
76
+ }
77
+ }
78
+
79
+ inline static CMasonGridPlacement jsToGridPlacement(short value, int value_type) {
80
+ switch ((CMasonGridPlacementType) value_type) {
81
+ case CMasonGridPlacementType::MasonGridPlacementTypeAuto: {
82
+ return CMasonGridPlacement{0, CMasonGridPlacementType::MasonGridPlacementTypeAuto};
83
+ }
84
+ case CMasonGridPlacementType::MasonGridPlacementTypeLine: {
85
+ return CMasonGridPlacement{value, CMasonGridPlacementType::MasonGridPlacementTypeLine};
86
+ }
87
+ case CMasonGridPlacementType::MasonGridPlacementTypeSpan: {
88
+ return CMasonGridPlacement{value, CMasonGridPlacementType::MasonGridPlacementTypeSpan};
89
+ }
90
+ default:
91
+ // assert ??
92
+ return CMasonGridPlacement{0, CMasonGridPlacementType::MasonGridPlacementTypeAuto};
93
+ }
94
+ }
95
+
96
+ inline static v8::Local<v8::Value>
97
+ lengthPercentageToJS(v8::Isolate *isolate, CMasonLengthPercentage length) {
98
+ switch (length.value_type) {
99
+ case CMasonLengthPercentageType::MasonLengthPercentagePercent: {
100
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
101
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
102
+ v8::Number::New(isolate, length.value / 100))
103
+ .Check();
104
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "unit"),
105
+ Helpers::ConvertToV8String(isolate, "%"))
106
+ .Check();
107
+ return object;
108
+ }
109
+ case CMasonLengthPercentageType::MasonLengthPercentagePoints: {
110
+
111
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
112
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
113
+ v8::Number::New(isolate, length.value))
114
+ .Check();
115
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "unit"),
116
+ Helpers::ConvertToV8String(isolate, "px"))
117
+ .Check();
118
+ return object;
119
+ }
120
+ default:
121
+ return v8::Undefined(isolate);
122
+ }
123
+ }
124
+
125
+ inline static CMasonLengthPercentage jsToLengthPercentage(float value, int value_type) {
126
+ switch ((CMasonLengthPercentageType) value_type) {
127
+ case CMasonLengthPercentageType::MasonLengthPercentagePercent: {
128
+ return CMasonLengthPercentage{value,
129
+ CMasonLengthPercentageType::MasonLengthPercentagePercent};
130
+ }
131
+ case CMasonLengthPercentageType::MasonLengthPercentagePoints: {
132
+ return CMasonLengthPercentage{value,
133
+ CMasonLengthPercentageType::MasonLengthPercentagePoints};
134
+ }
135
+ default:
136
+ // assert ??
137
+ return CMasonLengthPercentage{0,
138
+ CMasonLengthPercentageType::MasonLengthPercentagePoints};
139
+ }
140
+ }
141
+
142
+ inline static CMasonLengthPercentageType jsToLengthPercentageType(int value_type) {
143
+ switch ((CMasonLengthPercentageType) value_type) {
144
+ case CMasonLengthPercentageType::MasonLengthPercentagePercent: {
145
+ return CMasonLengthPercentageType::MasonLengthPercentagePercent;
146
+ }
147
+ case CMasonLengthPercentageType::MasonLengthPercentagePoints: {
148
+ return CMasonLengthPercentageType::MasonLengthPercentagePoints;
149
+ }
150
+ default:
151
+ // assert invalid type ???
152
+ return CMasonLengthPercentageType::MasonLengthPercentagePoints;
153
+ }
154
+ }
155
+
156
+ inline static v8::Local<v8::Value>
157
+ lengthPercentageAutoToJS(v8::Isolate *isolate, CMasonLengthPercentageAuto length) {
158
+ switch (length.value_type) {
159
+ case CMasonLengthPercentageAutoType::MasonLengthPercentageAutoAuto:
160
+ return Helpers::ConvertToV8String(isolate, "auto");
161
+ case CMasonLengthPercentageAutoType::MasonLengthPercentageAutoPercent: {
162
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
163
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
164
+ v8::Number::New(isolate, length.value / 100))
165
+ .Check();
166
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "unit"),
167
+ Helpers::ConvertToV8String(isolate, "%"))
168
+ .Check();
169
+ return object;
170
+ }
171
+ case CMasonLengthPercentageAutoType::MasonLengthPercentageAutoPoints: {
172
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
173
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
174
+ v8::Number::New(isolate, length.value))
175
+ .Check();
176
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "unit"),
177
+ Helpers::ConvertToV8String(isolate, "px"))
178
+ .Check();
179
+
180
+ return object;
181
+ }
182
+ default:
183
+ return v8::Undefined(isolate);
184
+ }
185
+ }
186
+
187
+ inline static CMasonLengthPercentageAuto jsToLengthPercentageAuto(float value, int value_type) {
188
+ switch ((CMasonLengthPercentageAutoType) value_type) {
189
+ case CMasonLengthPercentageAutoType::MasonLengthPercentageAutoAuto:
190
+ return CMasonLengthPercentageAuto{value,
191
+ CMasonLengthPercentageAutoType::MasonLengthPercentageAutoAuto};
192
+ case CMasonLengthPercentageAutoType::MasonLengthPercentageAutoPercent: {
193
+ return CMasonLengthPercentageAuto{value,
194
+ CMasonLengthPercentageAutoType::MasonLengthPercentageAutoPercent};
195
+ }
196
+ case CMasonLengthPercentageAutoType::MasonLengthPercentageAutoPoints: {
197
+ return CMasonLengthPercentageAuto{value,
198
+ CMasonLengthPercentageAutoType::MasonLengthPercentageAutoPoints};
199
+ }
200
+ default:
201
+ // assert invalid type ???
202
+ return CMasonLengthPercentageAuto{0,
203
+ CMasonLengthPercentageAutoType::MasonLengthPercentageAutoPoints};
204
+ }
205
+ }
206
+
207
+ inline static CMasonLengthPercentageAutoType jsToLengthPercentageAutoType(int value_type) {
208
+ return (CMasonLengthPercentageAutoType) value_type;
209
+ }
210
+
211
+ inline static v8::Local<v8::Value> dimensionToJS(v8::Isolate *isolate, CMasonDimension dimension) {
212
+ switch ((CMasonDimensionType) dimension.value_type) {
213
+ case CMasonDimensionType::MasonDimensionAuto:
214
+ return Helpers::ConvertToV8String(isolate, "auto");
215
+ case CMasonDimensionType::MasonDimensionPercent: {
216
+
217
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
218
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
219
+ v8::Number::New(isolate, dimension.value / 100))
220
+ .Check();
221
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "unit"),
222
+ Helpers::ConvertToV8String(isolate, "%"))
223
+ .Check();
224
+ return object;
225
+ }
226
+ case CMasonDimensionType::MasonDimensionPoints: {
227
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
228
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "value"),
229
+ v8::Number::New(isolate, dimension.value))
230
+ .Check();
231
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate, "unit"),
232
+ Helpers::ConvertToV8String(isolate, "px"))
233
+ .Check();
234
+ return object;
235
+ }
236
+ default:
237
+ return v8::Undefined(isolate);
238
+ }
239
+ }
240
+
241
+ inline static CMasonDimension jsToDimension(float value, int value_type) {
242
+ switch ((CMasonDimensionType) value_type) {
243
+ case CMasonDimensionType::MasonDimensionAuto:
244
+ return CMasonDimension{value, CMasonDimensionType::MasonDimensionAuto};
245
+ case CMasonDimensionType::MasonDimensionPercent: {
246
+ return CMasonDimension{value, CMasonDimensionType::MasonDimensionPercent};
247
+ }
248
+ case CMasonDimensionType::MasonDimensionPoints: {
249
+ return CMasonDimension{value, CMasonDimensionType::MasonDimensionPoints};
250
+ }
251
+ default:
252
+ // assert invalid type ???
253
+ return CMasonDimension{0, CMasonDimensionType::MasonDimensionPoints};
254
+ }
255
+ }
256
+
257
+ inline static CMasonDimensionType jsToDimensionType(int value_type) {
258
+ return (CMasonDimensionType) value_type;
259
+ }
260
+
261
+ /*
262
+ inline static v8::Local<v8::Value> sizeToJS(v8::Isolate *isolate, CMasonDimensionSize size)
263
+ {
264
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
265
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"width"),
266
+ dimensionToJS(isolate, size.width))
267
+ .Check();
268
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"height"),
269
+ dimensionToJS(isolate, size.width))
270
+ .Check();
271
+ return object;
272
+ }
273
+
274
+ inline static v8::Local<v8::Object>
275
+ sizeToJS(v8::Isolate *isolate, CMasonLengthPercentageSize size)
276
+ {
277
+
278
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
279
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"width"),
280
+ lengthPercentageToJS(isolate, size.width))
281
+ .Check();
282
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"height"),
283
+ lengthPercentageToJS(isolate, size.width))
284
+ .Check();
285
+ return object;
286
+ }
287
+
288
+ inline static v8::Local<v8::Object>
289
+ sizeToJS(v8::Isolate *isolate, CMasonLengthPercentageAutoSize size)
290
+ {
291
+
292
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
293
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"width"),
294
+ lengthPercentageAutoToJS(isolate, size.width))
295
+ .Check();
296
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"height"),
297
+ lengthPercentageAutoToJS(isolate, size.width))
298
+ .Check();
299
+ return object;
300
+ }
301
+
302
+ inline static v8::Local<v8::Object> rectToJS(v8::Isolate *isolate, CMasonDimensionRect rect)
303
+ {
304
+
305
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
306
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"left"),
307
+ dimensionToJS(isolate, rect.left))
308
+ .Check();
309
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"right"),
310
+ dimensionToJS(isolate, rect.right))
311
+ .Check();
312
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"top"),
313
+ dimensionToJS(isolate, rect.top))
314
+ .Check();
315
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"bottom"),
316
+ dimensionToJS(isolate, rect.bottom))
317
+ .Check();
318
+ return object;
319
+ }
320
+
321
+ inline static v8::Local<v8::Object>
322
+ rectToJS(v8::Isolate *isolate, CMasonLengthPercentageRect rect)
323
+ {
324
+
325
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
326
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"left"),
327
+ lengthPercentageToJS(isolate, rect.left))
328
+ .Check();
329
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"right"),
330
+ lengthPercentageToJS(isolate, rect.right))
331
+ .Check();
332
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"top"),
333
+ lengthPercentageToJS(isolate, rect.top))
334
+ .Check();
335
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"bottom"),
336
+ lengthPercentageToJS(isolate, rect.bottom))
337
+ .Check();
338
+ return object;
339
+ }
340
+
341
+ inline static v8::Local<v8::Object>
342
+ rectToJS(v8::Isolate *isolate, CMasonLengthPercentageAutoRect rect)
343
+ {
344
+ v8::Local<v8::Object> object = v8::Object::New((isolate));
345
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"left"),
346
+ lengthPercentageAutoToJS(isolate, rect.left))
347
+ .Check();
348
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"right"),
349
+ lengthPercentageAutoToJS(isolate, rect.right))
350
+ .Check();
351
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"top"),
352
+ lengthPercentageAutoToJS(isolate, rect.top))
353
+ .Check();
354
+ object->Set(isolate->GetCurrentContext(), Helpers::ConvertToV8String(isolate,"bottom"),
355
+ lengthPercentageAutoToJS(isolate, rect.bottom))
356
+ .Check();
357
+ return object;
358
+ }
359
+
360
+ */
361
+
362
+
363
+
364
+ #endif //MASON_HELPERS_H