{"_id":"@apollohg/react-native-rich-text-editor","_rev":"13-b0f027e153bedebb89f09b793a23dcc4","name":"@apollohg/react-native-rich-text-editor","dist-tags":{"latest":"2.0.12"},"versions":{"2.0.0":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.0","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.0","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"2008ad3e1baf038fd5d34bebb1f05d9a8125ab90","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.0.tgz","fileCount":494,"integrity":"sha512-n82M/s+yxwL4MM4Go9xLBNiODjxCsr80aobj+OqmfygK4R3u42t0nuEa9AMPVUka5AwZFz4QWmxhqaV1ZXtrJw==","signatures":[{"sig":"MEQCIGqhWzAyk4P9PHCeP9k4Nk4jFsVgq3HnOzCooBePLyJ2AiAoEZIpC/bPqLOfhGUJQe+lgxIo0pLxEIgrz1yzxLABKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144450580},"main":"dist/index.js","_from":"file:/tmp/native-editor-release-34132775915/release-artifact/apollohg-react-native-rich-text-editor-2.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"swiftlint lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"},"_resolved":"/tmp/native-editor-release-34132775915/release-artifact/apollohg-react-native-rich-text-editor-2.0.0.tgz","_integrity":"sha512-n82M/s+yxwL4MM4Go9xLBNiODjxCsr80aobj+OqmfygK4R3u42t0nuEa9AMPVUka5AwZFz4QWmxhqaV1ZXtrJw==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"12.0.2","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.19.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","react":"19.2.3","prettier":"^3.8.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","@expo/vector-icons":"^15.0.3","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.2","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.0_1788816122865_0.7046004740171645","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.1","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.1","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"fc69efcc5db58aa0fa8f1c3f098e9e1af372cfd3","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.1.tgz","fileCount":494,"integrity":"sha512-fc5KC5lT+/8ynAfsqToElmW31IahPE0FDJsBSId6HgHp6v6aKpJ/KWHrc0rxG3hhrWB+yfikL6hPbahlssyUkA==","signatures":[{"sig":"MEUCIADDWSJm2KlrM/ep8gL9iQtmYsSnr6oPD4KR7yaUpgz+AiEApy8kDTfHSwXaphPMTfT5B1ytsBXG4qz+/7Zxw2ac3F0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144414970},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.1.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"swiftlint lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.1.tgz","_integrity":"sha512-fc5KC5lT+/8ynAfsqToElmW31IahPE0FDJsBSId6HgHp6v6aKpJ/KWHrc0rxG3hhrWB+yfikL6hPbahlssyUkA==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.1_1788835945707_0.18320649536604128","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.2","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.2","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"e4483233eb1a8923426dc2974126c3c7f15d133e","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.2.tgz","fileCount":494,"integrity":"sha512-VB/mey/CccR3QXMRYClvY0TIkb4zA6leojMW5c+l059S7rQnpH0XKJOzEaVQmTMUmJhBRIZXW+NivfmXoaagCA==","signatures":[{"sig":"MEUCIQDkBgZNJ4LEKFPuzAZjkgNdYxYF50dpPXKB/JZiVvVijAIgFtxlLT0xZtHlrTvZq+Jcrz+zu9fs1Z6S/8Qji6DzoJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144410326},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.2.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"swiftlint lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.2.tgz","_integrity":"sha512-VB/mey/CccR3QXMRYClvY0TIkb4zA6leojMW5c+l059S7rQnpH0XKJOzEaVQmTMUmJhBRIZXW+NivfmXoaagCA==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.2_1788867717428_0.9568577444424993","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.3","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.3","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"3c959be5ffa9585d24f00dd51d4a0e7a555a6559","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.3.tgz","fileCount":494,"integrity":"sha512-Yhc8tP2uXseIp1fXFGb+2+R5h8sgfReU7M1aSpePcB2ioTEeSdSP3BOlkDspoY/vyIaRT0wV2oXYK6bZdVhxPg==","signatures":[{"sig":"MEYCIQC03w/0IntxHl936xH0ok7AwQX2+64D+epNCr7ZScN1UQIhALXVUMqFbEBEoNXWOe/zQi4TlL8Gi2YsKLk5MpZN0QwA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145165524},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.3.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"swiftlint lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.3.tgz","_integrity":"sha512-Yhc8tP2uXseIp1fXFGb+2+R5h8sgfReU7M1aSpePcB2ioTEeSdSP3BOlkDspoY/vyIaRT0wV2oXYK6bZdVhxPg==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.3_1788937419169_0.4210684936747793","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.4","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.4","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"7641b32b53a5955e0429ac9c870e16f4ffc6ae50","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.4.tgz","fileCount":494,"integrity":"sha512-1SgFQpPJcO2zg0lHmv3p2WbYZjnlYvGoHio3jFHmuZ6jTzNbKSCMOwuO3hg6g5WxZ+nvemxR08XVF0fiyb+a5g==","signatures":[{"sig":"MEYCIQDvvPzln7+zN7mmdoAhaysjyb7pVMaG0Ix1xVE3hjmHYQIhAPNEFzV8RZauHiuyKfvMMae03jRROJC35tMau8oVJ6pN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145168880},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.4.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"swiftlint lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.4.tgz","_integrity":"sha512-1SgFQpPJcO2zg0lHmv3p2WbYZjnlYvGoHio3jFHmuZ6jTzNbKSCMOwuO3hg6g5WxZ+nvemxR08XVF0fiyb+a5g==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.4_1788958513320_0.680875523718049","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.5","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.5","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"5dc6300cececa033e22195ba0c5a0d7987463134","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.5.tgz","fileCount":494,"integrity":"sha512-97A9rXtrEeGHx2oaHZiMj+0IMmSWGrsmzYM2/kbJ9yXJgBwecBZuNyaPmiEgJ2x7gCEIFP/IyACS4kMMQOYShQ==","signatures":[{"sig":"MEYCIQCuWXV2Tu4W87j6+JTVlvjkG7roBlqoDSgRQ/5efPTEHQIhAIxIIlCtUHv+AsLkkBjANl+0cZz1yCSu5iI+3CivYeX4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145203837},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.5.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.5.tgz","_integrity":"sha512-97A9rXtrEeGHx2oaHZiMj+0IMmSWGrsmzYM2/kbJ9yXJgBwecBZuNyaPmiEgJ2x7gCEIFP/IyACS4kMMQOYShQ==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.5_1789107429550_0.8358671375076538","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.6","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.6","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"b832b8d1cf9570ad73db8386df3eb2a14e25e6d6","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.6.tgz","fileCount":494,"integrity":"sha512-f1YyGs8EqC9AREGP2nEQ0s7NVNMhTMJqQ+HYWhc9IiKGxzXQVB1isymvk8WJ1hjxG6bDO1qAeJ36Q3tCIsJfig==","signatures":[{"sig":"MEUCIGjzm3nRXnrnF9SqKbwEuZZji51sDx+2czM8JEP3vVgqAiEAwii5DxzVYdqtXD73qNkHE7Ml+ZdLgF+s4FGrkG4g/yY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCo4FPWBKSIyQp8HxEDOaIkYkENjvy6gT5LrxixgydxOQIhAISmUgM6B3CvUGUFIC21Sb/Wspe4SI8ywRXxeYWh2emm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145197492},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.6.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.6.tgz","_integrity":"sha512-f1YyGs8EqC9AREGP2nEQ0s7NVNMhTMJqQ+HYWhc9IiKGxzXQVB1isymvk8WJ1hjxG6bDO1qAeJ36Q3tCIsJfig==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.6_1789798808379_0.7127836449599143","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.7","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.7","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"881a3ab184db221845c0453fe03835cd0256f1c3","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.7.tgz","fileCount":494,"integrity":"sha512-KNKFgE0CFwQtnVAFnAATXuKbQ7gGUO7/UHS8rJKj/M3pNzK/mUl4njLLr29C0ycxyWpRjgg/IQbyHXAJSTW8Tg==","signatures":[{"sig":"MEYCIQDV0q2MhHF92+wkB0fMitn8lwcz3xybe2e0rmUnLVgYfQIhAIuu1vJ/NMyo9E4MyZ1F3NS5HrRWrFM0xHP8ONr+q8Z3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+6M7yCLbfpwdd5wS/zs66Wwq3BKGzZZx6RHTuBeLQgAIhAOP4NReTm6woSwP0A+07fvgTfn4iAoppdS6vXnjKytoE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145209146},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.7.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.7.tgz","_integrity":"sha512-KNKFgE0CFwQtnVAFnAATXuKbQ7gGUO7/UHS8rJKj/M3pNzK/mUl4njLLr29C0ycxyWpRjgg/IQbyHXAJSTW8Tg==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.7_1790056885481_0.6247424977579121","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.8","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.8","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"554a60c4ffe651e8d003e7c2760aaf24fe4946db","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.8.tgz","fileCount":494,"integrity":"sha512-Jdygn/YyLCHWYSaWDpvad29UNJ9XKDHVMm6v/wzpIiHETWK9pocGf/pRgwb1wOUAcQRio6ZpPW+UjCYWin+6pw==","signatures":[{"sig":"MEUCIQChpJ78bYj1tEl3Ka9O80SEwgDXdniIbtz8hSnOzE9AkgIgEE03ckEIZDSMSmvskPXJ7Kvn0t/Ai6l3u+ejR8e/FB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC/8iC7tnF5WywdLWXi/34mIRuSAhQwqXh9lq48TAUFIAiEAlnQztDa/Zh0+pnRDAnxXLS+SsdUKPJxvnVWL0JFBJok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145201995},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.8.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.8.tgz","_integrity":"sha512-Jdygn/YyLCHWYSaWDpvad29UNJ9XKDHVMm6v/wzpIiHETWK9pocGf/pRgwb1wOUAcQRio6ZpPW+UjCYWin+6pw==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.8_1790060040775_0.4195428903505434","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.9","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.9","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"0f7509e08dfe7c5009ebfd638552de20d7316148","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.9.tgz","fileCount":494,"integrity":"sha512-nLKIRwHjD6monP9qcGL3yMlhKgAMqPmz9qDKljYy+GXed4/E7EAF1J2Hdv4I9a2mRlCtpJvQvgElVbowodPHYQ==","signatures":[{"sig":"MEUCIQD0U+F19qMjMVzy7c1+0L1QeGDL89+r9pPNNHIquwGaiQIgQAl9584242POGBdIyIU7f7dwVVSbjClcUP7irpUC2es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD4xTkONqYsl/8m4I8zPrrKs8XONUTn29KpyNFpl1rn7wIgUrBTSM3+N19kwNOW3uYhYCJtg0EGpBSXrmttG5WqN74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145209678},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.9.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.9.tgz","_integrity":"sha512-nLKIRwHjD6monP9qcGL3yMlhKgAMqPmz9qDKljYy+GXed4/E7EAF1J2Hdv4I9a2mRlCtpJvQvgElVbowodPHYQ==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.9_1790165861029_0.6992163805839877","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.10","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.10","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"e555582f24b9484a55291093d3bd44f42d10bb22","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.10.tgz","fileCount":494,"integrity":"sha512-eYYG0pyx6EGY83W8ACRS2/3MlASa9nGAjLl/PHFfqBnUCu+9YyNk/2bZZGs7U4/lGx7k4i6pni6cc8zp1cRS5A==","signatures":[{"sig":"MEUCIHBICrqjpxsBaJZUdMFdyqUWvwRVDuvzGgEAyDfhHodSAiEA6e0o7iHPIt6Kpv1ENRxJkY7Ekkp9uUhPm6qBgx7Xgjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDDxuzQDqrTDeiHiocP0N98Z7setMi88upYR7HvGzOakQIhAMLfryVel33bt9JjFgpX+ItTrOcmAkl+VK2GNCbYzlP0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145208737},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.10.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.10.tgz","_integrity":"sha512-eYYG0pyx6EGY83W8ACRS2/3MlASa9nGAjLl/PHFfqBnUCu+9YyNk/2bZZGs7U4/lGx7k4i6pni6cc8zp1cRS5A==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.10_1790206843422_0.8639678046542509","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"@apollohg/react-native-rich-text-editor","version":"2.0.11","license":"Apache-2.0","_id":"@apollohg/react-native-rich-text-editor@2.0.11","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"homepage":"https://github.com/apollohg/react-native-rich-text-editor","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"f70c28572edf92089e76b0d0eddca52da69538b7","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.11.tgz","fileCount":494,"integrity":"sha512-Dqc4zIThI5cv2N7X5VNJoqqckizO+61lN3V3bIjDORY6ZXg6lCovXmQfhwuqFDVOeN1/iSQUZyVLgUiDack90g==","signatures":[{"sig":"MEUCIBQcjlZpdpuKCNsiL73ACYZjhwjSz9C1g1DYaL+R2x6YAiEApgGAGqTNCSkYWEGbVNq197f1bpudCy0x/JJA2h+RqII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHN7Lb+kA6Lquaer3RHGQAJgUMAKHqnOFVjaXKvIwLBzAiEA6+BrPJH0/whGLbWXsZz4zovosPrWqJhyPIFlzzIZ6No=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145364500},"main":"dist/index.js","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.11.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.11.tgz","_integrity":"sha512-Dqc4zIThI5cv2N7X5VNJoqqckizO+61lN3V3bIjDORY6ZXg6lCovXmQfhwuqFDVOeN1/iSQUZyVLgUiDack90g==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"_nodeVersion":"24.21.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","@expo/vector-icons":"^15.0.3","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3"},"peerDependencies":{"expo":">=52.0.0","@expo/vector-icons":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-rich-text-editor_2.0.11_1790254445306_0.4307649045280664","host":"s3://npm-registry-packages-npm-production"}},"2.0.12":{"_id":"@apollohg/react-native-rich-text-editor@2.0.12","bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"dist":{"shasum":"9c719f0e829fa531a629de81e1f0e2bae8f55aae","tarball":"https://registry.npmjs.org/@apollohg/react-native-rich-text-editor/-/react-native-rich-text-editor-2.0.12.tgz","fileCount":494,"integrity":"sha512-T1job8dtzY1L9FnKIZuirTzjek6pH7fSNBRZ9kh74LmwMvqEwOqLFeRNJ/vi0Uur7JML3szOaqXW4u53b9nbNQ==","signatures":[{"sig":"MEUCIHAWzKjnCSNEc2Yf9SgtFFc6+vBb18POpM3kC6ILcbUfAiEA5EiCn7KSEE5W4SxY14Jd5EpnFMN44c8diM5F+y9izdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHW7AvDvE0JaqTUGKcEjye+o//tUH7uZQe02Lr9Y439iAiA4lSv5sC7V/t96qNDRYEBCjTbTNZWQNNqlhk1L1Lz6fA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollohg%2freact-native-rich-text-editor@2.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146478670},"main":"dist/index.js","name":"@apollohg/react-native-rich-text-editor","_from":"file:/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.12.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","react-native":"./src/index.ts"},"./app.plugin":"./app.plugin.js","./package.json":"./package.json","./app.plugin.js":"./app.plugin.js"},"license":"Apache-2.0","private":false,"scripts":{"test":"jest --runInBand --watchman=false","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json","prepack":"npm run build","version":"npm run sync:version","lint:ios":"node scripts/swiftlint.mjs lint --strict","test:ios":"bash ./scripts/run-ios-tests.sh","test:rust":"cargo test --manifest-path rust/editor-core/Cargo.toml","typecheck":"tsc --noEmit","build:rust":"bash rust/generate-bindings.sh && bash rust/build-ios.sh && bash rust/build-android.sh","lint:kotlin":"node scripts/ktlint.mjs","lint:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:lintDebug && node ../../scripts/assert-android-lint-clean.mjs ../../android/build/reports/lint-results-debug.xml","sync:version":"node scripts/sync-version.mjs","test:android":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest","format:kotlin":"node scripts/ktlint.mjs --format","start:example":"npm --prefix example start","benchmark:rust":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite --","build:rust:ios":"bash rust/generate-bindings.sh && bash rust/build-ios.sh","prepublishOnly":"npm run prepare:publish","prepare:publish":"bash ./scripts/prepare-publish.sh","run:example:ios":"npm --prefix example run ios","test:ios:device":"bash ./scripts/run-ios-on-device.sh","prebuild:example":"npm --prefix example run prebuild","validate:package":"npm run prepare:example:native && npm run install:ios-test-pods && npm run lint:ios && npm run lint:kotlin && node scripts/tests/validate-prepared-prose-viewer-cutover.mjs && npm run validate:security -- --release --behavior && node scripts/tests/validate-security-contracts-negative.mjs && node scripts/tests/validate-publish-lifecycle.mjs && bash ./scripts/tests/validate-generated-bindings.sh && bash ./scripts/tests/validate-packed-xcframework.sh && node scripts/tests/validate-packed-package.test.mjs && bash ./scripts/validate-packed-package.sh","typecheck:example":"npm --prefix example run typecheck","validate:security":"node scripts/tests/validate-security-contracts.mjs","benchmark:rust:yrs":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-foundation","build:rust:android":"bash rust/generate-bindings.sh && bash rust/build-android.sh","test:android:api24":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.apollohg.editor.AndroidApi24SmokeTest","run:example:android":"npm --prefix example run android","test:android:device":"bash ./scripts/run-android-on-device.sh","benchmark:rust:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick","install:example:pods":"cd example/ios && pod install --no-repo-update","prebuild:example:ios":"npm --prefix example run prebuild:ios","test:ios:performance":"bash ./scripts/run-ios-tests.sh -only-testing:NativeEditorTests/NativePerformanceTests","build:android:example":"npm run prebuild:example:android && cd example/android && ./gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a","build:android:library":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:compileDebugKotlin","install:ios-test-pods":"cd ios-tests && pod install --no-repo-update","prepare:example:native":"npm run prebuild:example && npm run install:example:pods","test:android:device:ime":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDeviceImeRegressionTest","benchmark:rust:yrs:check":"node scripts/check-yrs-document-foundation-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-document-foundation.json","benchmark:rust:yrs:quick":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --quick --filter yrs-foundation","prebuild:example:android":"npm --prefix example run prebuild:android","prototype:android:layout":"bash ./scripts/run-android-layout-prototype.sh","test:android:performance":"npm run prebuild:example:android && cd example/android && ./gradlew :apollohg_react-native-rich-text-editor:testDebugUnitTest -PapollohgShowPerfTestOutput=true --tests com.apollohg.editor.NativePerformanceTest","benchmark:rust:yrs:editing":"./rust/toolchain-cargo.sh bench --manifest-path rust/editor-core/Cargo.toml --bench perf_suite -- --filter yrs-editing","validate:package:contracts":"bash ./scripts/validate-packed-package.sh --validate-packed-tarball \"$RELEASE_TARBALL\"","test:ios:device:performance":"NATIVE_EDITOR_IOS_TEST_SCHEME=NativeEditorPreparedProsePerformance bash ./scripts/run-ios-on-device.sh -only-testing:NativeEditorTests/NativePerformanceTests/testPerformance_preparedProseCorpusGates_iPhone13","validate:package:ios:negative":"VALIDATE_PACKED_PACKAGE_GROUP=ios-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:ios:positive":"bash ./scripts/validate-packed-package.sh --validate-ios-consumer . \"$RELEASE_TARBALL\"","validate:package:android:rn076":"bash ./scripts/validate-android-rn076-consumer.sh \"${RELEASE_TARBALL:-}\"","test:android:device:performance":"bash ./scripts/run-android-on-device.sh --class com.apollohg.editor.NativeDevicePerformanceTest","benchmark:rust:yrs:editing:check":"node scripts/check-yrs-editing-semantics-benchmarks.mjs --run --baseline rust/editor-core/benches/baselines/yrs-editing-semantics.json","validate:package:android:negative":"VALIDATE_PACKED_PACKAGE_GROUP=android-consumer node scripts/tests/validate-packed-package.test.mjs","validate:package:android:positive":"bash ./scripts/validate-packed-package.sh --validate-android-tarball \"$RELEASE_TARBALL\""},"version":"2.0.12","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a1bdff76-0e13-4f21-a7aa-6a5e99d222f9"}},"homepage":"https://github.com/apollohg/react-native-rich-text-editor","_resolved":"/home/runner/work/react-native-rich-text-editor/react-native-rich-text-editor/release-artifact/apollohg-react-native-rich-text-editor-2.0.12.tgz","_integrity":"sha512-T1job8dtzY1L9FnKIZuirTzjek6pH7fSNBRZ9kh74LmwMvqEwOqLFeRNJ/vi0Uur7JML3szOaqXW4u53b9nbNQ==","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"_npmVersion":"11.19.0","description":"Native rich text editor with Rust core for React Native","directories":{},"maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"_nodeVersion":"24.21.0","react-native":"src/index.ts","codegenConfig":{"ios":{"componentProvider":{"PreparedProseViewer":"PREPPreparedProseViewerComponentView"}},"name":"ReactNativeProseEditorSpec","type":"components","android":{"javaPackageName":"com.apollohg.editor.viewer"},"jsSrcsDir":"src/specs"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.9","jest":"^29.7.0","jiti":"^2.7.0","react":"19.2.3","eslint":"^10.10.0","@eslint/js":"^10.0.1","babel-jest":"^29.7.0","typescript":"^5.9.3","@types/jest":"29.5.14","@types/react":"^19.2.14","react-native":"0.86.2","@babel/runtime":"^7.29.7","babel-preset-expo":"~57.0.8","expo-modules-core":"~57.0.8","typescript-eslint":"^8.70.0","eslint-plugin-slop":"^0.1.3","eslint-plugin-react":"^7.37.5","react-test-renderer":"19.2.3","@stylistic/eslint-plugin":"^5.10.0","@react-native/jest-preset":"0.86.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-native":"^5.0.0","@testing-library/react-native":"^13.3.3","@react-native-vector-icons/material-design-icons":"^13.1.4"},"peerDependencies":{"expo":">=52.0.0","@react-native-vector-icons/material-design-icons":">=13.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-rich-text-editor_2.0.12_1790601062675_0.3092332136778093"}}},"time":{"created":"2026-09-07T21:22:02.695Z","modified":"2026-09-28T13:11:04.077Z","2.0.0":"2026-09-07T21:22:03.603Z","2.0.1":"2026-09-08T02:52:26.455Z","2.0.2":"2026-09-08T11:41:58.117Z","2.0.3":"2026-09-09T07:03:39.942Z","2.0.4":"2026-09-09T12:55:14.177Z","2.0.5":"2026-09-11T06:17:10.365Z","2.0.6":"2026-09-19T06:20:09.027Z","2.0.7":"2026-09-22T06:01:26.144Z","2.0.8":"2026-09-22T06:54:01.430Z","2.0.9":"2026-09-23T12:17:41.714Z","2.0.10":"2026-09-23T23:40:44.251Z","2.0.11":"2026-09-24T12:54:05.955Z","2.0.12":"2026-09-28T13:11:03.361Z"},"bugs":{"url":"https://github.com/apollohg/react-native-rich-text-editor/issues"},"license":"Apache-2.0","homepage":"https://github.com/apollohg/react-native-rich-text-editor","repository":{"url":"git+https://github.com/apollohg/react-native-rich-text-editor.git","type":"git"},"description":"Native rich text editor with Rust core for React Native","maintainers":[{"name":"jaydenasmith","email":"jayden.smith@apolloems.com.au"}],"readme":"# React Native Rich Text Editor [![NPM version](https://img.shields.io/npm/v/@apollohg/react-native-rich-text-editor.svg?style=flat)](https://www.npmjs.com/package/@apollohg/react-native-rich-text-editor)\n\n`@apollohg/react-native-rich-text-editor` is a native rich text editor for React Native. It combines a Rust document core with native iOS and Android editing, a React toolbar and theme API, a Fabric prose viewer, and Yjs collaboration.\n\nSee the [documentation](https://github.com/apollohg/react-native-rich-text-editor/wiki) for guides and API references. The package is under active development; review the [changelog](./CHANGELOG.md) before upgrading between major versions.\n\n<a href=\"./assets/github-demo-banner.mp4\"><img src=\"./assets/github-demo-banner.gif\" alt=\"Native iOS editor demo with rich text, nested lists, a code block, and image resizing\" width=\"100%\" /></a>\n\n## Highlights\n\n**⭐ Native editing on iOS and Android**  \n**⭐ Built-in Yjs collaboration**  \n**⭐ React Native components inside documents**  \n**⭐ External text composition**  \n**⭐ Dedicated Fabric viewer**  \n**⭐ Configurable document schemas** with HTML and ProseMirror JSON import/export  \n**⭐ Nested bullet and numbered lists**  \n**⭐ Optional native code syntax highlighting**  \n**⭐ Rich copy and paste**  \n\n## Roadmap\n\nBelow is a list of features that are planned or in progress. If you have a feature/idea suggestion, please [add it to the discussion](https://github.com/apollohg/react-native-rich-text-editor/discussions/4).\n\n- [x] External text composition\n- [x] Custom atoms via React Native components\n- [ ] Tables *(in progress)*\n- [ ] Output as Markdown/GitHub Flavored Markdown (GFM)\n- [ ] Extension framework\n- [ ] Inline node extensions\n\n## Requirements\n\nThe package uses custom native code and Expo Modules. Use a development build or a bare React Native app with Expo Modules configured; it does not run in Expo Go.\n\nRequires Expo 52+, React Native 0.76+, React 18+, and `@react-native-vector-icons/material-design-icons` 13+. `RichTextViewer` requires the New Architecture. See the [Installation Guide](https://github.com/apollohg/react-native-rich-text-editor/wiki/Installation) for platform requirements.\n\n## Installation\n\nInstall the package and its icon peer dependency:\n\n```sh\nnpm install @apollohg/react-native-rich-text-editor\nnpx expo install @react-native-vector-icons/material-design-icons\n```\n\nAdd the config plugins to an Expo app:\n\n```ts\nexport default {\n    expo: {\n        plugins: [\n            '@apollohg/react-native-rich-text-editor',\n            '@react-native-vector-icons/material-design-icons'\n        ],\n    },\n};\n```\n\nThen regenerate and rebuild the native app:\n\n```sh\nnpx expo prebuild\nnpx expo run:ios       # or: npx expo run:android\n```\n\nSee the [Installation Guide](https://github.com/apollohg/react-native-rich-text-editor/wiki/Installation) for bare React Native setup.\n\n## Editor usage\n\nEvery editor binds to a `NativeEditorDocumentHandle`. Create the handle once, initialize its content there, and destroy it when its owner unmounts.\n\n```tsx\nimport React, { useEffect, useMemo } from 'react';\nimport {\n    createNativeEditorDocumentHandle,\n    RichTextEditor,\n} from '@apollohg/react-native-rich-text-editor';\n\nexport function EditorScreen() {\n    const documentHandle = useMemo(\n        () =>\n            createNativeEditorDocumentHandle({\n                initialization: {\n                    type: 'localHtml',\n                    html: '<p>Hello world</p>',\n                },\n            }),\n        []\n    );\n\n    useEffect(() => () => documentHandle.destroy(), [documentHandle]);\n\n    return (\n        <RichTextEditor\n            documentHandle={documentHandle}\n            placeholder='Start typing…'\n            onContentChange={(html) => console.log(html)}\n        />\n    );\n}\n```\n\nSee [Getting Started](https://github.com/apollohg/react-native-rich-text-editor/wiki/Getting-Started) and the [RichTextEditor reference](https://github.com/apollohg/react-native-rich-text-editor/wiki/RichTextEditor-Reference) for the complete API.\n\n## Copy and paste\n\nCopy and cut publish an editor fragment, HTML, and plain text. Pasting between compatible editor schemas preserves selected marks, nodes, and atom attributes. External rich text imports supported HTML formatting and structure, with RTF conversion on iOS.\n\nUse `pasteMode` to control native clipboard paste:\n\n```tsx\n<RichTextEditor documentHandle={documentHandle} pasteMode=\"plainText\" />\n```\n\nThe default is `\"rich\"`. `\"plainText\"` removes source formatting and atoms, while retaining the destination's ordinary typing marks. `\"disabled\"` blocks paste without disabling copy or typing. Changes apply immediately. These settings govern clipboard actions; programmatic insertion and drag/drop retain their own behaviour. Unsupported external formatting is reduced to supported content, and clipboard images do not trigger uploads.\n\n## Custom atom nodes\n\nRender interactive cards, embeds, and other custom blocks with your own React components.\n\nSee [Custom Atom Nodes](https://github.com/apollohg/react-native-rich-text-editor/wiki/Custom-Atom-Nodes) for a complete example and API details.\n\n## Rich text viewer\n\n`RichTextViewer` displays HTML or ProseMirror JSON without creating an editor session. Place it in a container with a finite width:\n\n```tsx\nimport { RichTextViewer } from '@apollohg/react-native-rich-text-editor';\n\n<RichTextViewer contentHTML='<p>Read-only content</p>' />;\n```\n\nSee the [Viewer Guide](https://github.com/apollohg/react-native-rich-text-editor/wiki/Viewer) for styling, images, interactions, and custom atoms.\n\n## Styling and addons\n\nCustomize the editor and viewer with themes, mentions, and syntax highlighting. See [Styling](https://github.com/apollohg/react-native-rich-text-editor/wiki/Styling) and [Addons](https://github.com/apollohg/react-native-rich-text-editor/wiki/Addons).\n\n## Collaboration\n\nConnect shared documents to a Yjs server for collaborative editing and live cursors. See the [Collaboration Guide](https://github.com/apollohg/react-native-rich-text-editor/wiki/Collaboration).\n\n## Comparison with other React Native editors\n\nReviewed on 7 September 2026\n\n| Editor | Editing surface | Nested lists | Extensions / customization | Collaborative editing | Atoms / embeds | Document format |\n| --- | --- | --- | --- | --- | --- | --- |\n| **This library** | Native; Fabric via Expo Modules; Rust core | Yes; indent / outdent | Configurable schemas, custom atoms, mentions and highlighting addons | Yjs / Yrs sync and awareness integration | Custom block atoms rendered with React Native components; mentions and images | HTML, ProseMirror JSON |\n| [TenTap (`@10play/tentap-editor`)](https://10play.github.io/10tap-editor/docs/mainConcepts) | WebView; Tiptap / ProseMirror | Yes; lift / sink | Bridge extensions and custom Tiptap extensions | Pro example / custom integration | Images; custom Tiptap nodes and atoms in the WebView | HTML, ProseMirror JSON, text |\n| [Enriched HTML (`react-native-enriched-html`)](https://github.com/software-mansion/react-native-enriched-html) | Native; Fabric | No; single-level lists | Curated HTML tags, styling and mention configuration | Unsupported | Built-in mentions and images; custom atom types unsupported | HTML, text |\n| [Enriched Markdown (`react-native-enriched-markdown`)](https://github.com/software-mansion/enriched-markdown/blob/main/docs/INPUT.md) | Native; Fabric | Yes; bullet / numbered lists | Formatting API, styling and mention configuration | Unsupported | Mentions; custom atom types unsupported | Markdown |\n| [Pell (`react-native-pell-rich-editor`)](https://github.com/wxik/react-native-rich-editor) | WebView; HTML `contenteditable` | Browser indent / outdent | Custom toolbar actions; injected JS, DOM and HTML | Unsupported | Images, video and HTML insertion; typed atom API unsupported | HTML |\n| [Live Markdown (`@expensify/react-native-live-markdown`)](https://github.com/Expensify/react-native-live-markdown) | Native `TextInput` with live syntax styling | Unsupported | Custom parser worklets over supported formatting types | Unsupported | Mention text styling; custom atom API unsupported | Markdown source (ExpensiMark by default) |\n\n## Development\n\nSee the [example app](./example) to try the editor and viewer, and the [Development Workflow](https://github.com/apollohg/react-native-rich-text-editor/wiki/Development-Workflow) for local setup, native builds, and testing.\n\n## Documentation\n\n- [Documentation index](https://github.com/apollohg/react-native-rich-text-editor/wiki)\n- [Installation](https://github.com/apollohg/react-native-rich-text-editor/wiki/Installation)\n- [Getting started](https://github.com/apollohg/react-native-rich-text-editor/wiki/Getting-Started)\n- [Editor API reference](https://github.com/apollohg/react-native-rich-text-editor/wiki/RichTextEditor-Reference)\n- [Viewer API reference](https://github.com/apollohg/react-native-rich-text-editor/wiki/RichTextViewer-Reference)\n- [Custom atom nodes](https://github.com/apollohg/react-native-rich-text-editor/wiki/Custom-Atom-Nodes)\n- [Collaboration](https://github.com/apollohg/react-native-rich-text-editor/wiki/Collaboration)\n- [Toolbar setup](https://github.com/apollohg/react-native-rich-text-editor/wiki/Toolbar-Setup)\n- [Mentions](https://github.com/apollohg/react-native-rich-text-editor/wiki/Mentions)\n- [Styling](https://github.com/apollohg/react-native-rich-text-editor/wiki/Styling)\n- [Production limits and errors](https://github.com/apollohg/react-native-rich-text-editor/wiki/Production-Limits-and-Errors)\n- [Migration guide](https://github.com/apollohg/react-native-rich-text-editor/wiki/Migration-Guide)\n- [Changelog](./CHANGELOG.md)\n\n## License\n\n[Apache-2.0](./LICENSE). See [third-party notices](./THIRD_PARTY_NOTICES.md) and [Rust standard-library notices](./RUST-STANDARD-LIBRARY-NOTICES.html) for bundled dependencies.\n","readmeFilename":"README.md"}