@apollohg/react-native-rich-text-editor 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +160 -0
- package/README.md +259 -0
- package/RUST-STANDARD-LIBRARY-NOTICES.html +8266 -0
- package/ReactNativeProseEditor.podspec +59 -0
- package/THIRD_PARTY_NOTICES.md +31155 -0
- package/android/build.gradle +188 -0
- package/android/consumer-rules.pro +18 -0
- package/android/expo/build.gradle +17 -0
- package/android/src/debug/java/com/apollohg/editor/viewer/PreparedProseDrawInstrumentation.kt +7 -0
- package/android/src/main/assets/editor-icons/MaterialIcons.json +2236 -0
- package/android/src/main/assets/editor-icons/MaterialIcons.ttf +0 -0
- package/android/src/main/java/com/apollohg/editor/AndroidApiCompat.kt +19 -0
- package/android/src/main/java/com/apollohg/editor/AndroidCollaborationTransport.kt +860 -0
- package/android/src/main/java/com/apollohg/editor/CaretGeometry.kt +91 -0
- package/android/src/main/java/com/apollohg/editor/CodeHighlighting.kt +141 -0
- package/android/src/main/java/com/apollohg/editor/DecodedBitmapBudget.kt +250 -0
- package/android/src/main/java/com/apollohg/editor/EditorAddons.kt +133 -0
- package/android/src/main/java/com/apollohg/editor/EditorBlockSpacing.kt +51 -0
- package/android/src/main/java/com/apollohg/editor/EditorBoxDrawable.kt +16 -0
- package/android/src/main/java/com/apollohg/editor/EditorBoxDrawing.kt +234 -0
- package/android/src/main/java/com/apollohg/editor/EditorCheckboxSpan.kt +87 -0
- package/android/src/main/java/com/apollohg/editor/EditorCodeHighlighting.kt +120 -0
- package/android/src/main/java/com/apollohg/editor/EditorDecorationLayer.java +18 -0
- package/android/src/main/java/com/apollohg/editor/EditorDocumentLayout.kt +626 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditText.kt +1042 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextAnnotations.kt +191 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextCaret.kt +100 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextClipboard.kt +101 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextComposition.kt +220 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextConfiguration.kt +316 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextCorrection.kt +303 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDeferredUpdates.kt +327 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDeletion.kt +258 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDiagnostics.kt +83 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDragDrop.kt +67 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextExternalComposition.kt +357 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextHardwareInput.kt +277 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextImages.kt +280 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextInputLifecycle.kt +183 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextInputPreparation.kt +79 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextInputTraits.kt +384 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextLayout.kt +100 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextNativeMutation.kt +243 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextPlaceholder.kt +154 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextRenderPatch.kt +347 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextRendering.kt +313 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextRustCommands.kt +281 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextSelection.kt +352 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextState.kt +113 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextTaskMarkers.kt +92 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextTextCommit.kt +327 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextToolbar.kt +84 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextUpdates.kt +245 -0
- package/android/src/main/java/com/apollohg/editor/EditorGlyphHeightCursorDrawable.kt +42 -0
- package/android/src/main/java/com/apollohg/editor/EditorHeightBehavior.kt +13 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputConnection.kt +923 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputCoordinates.kt +191 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputCorrection.kt +107 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputCursorGeometry.kt +128 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputSnapshots.kt +134 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputSurroundingDeletion.kt +321 -0
- package/android/src/main/java/com/apollohg/editor/EditorKeyboardToolbarView.kt +851 -0
- package/android/src/main/java/com/apollohg/editor/EditorMentionStyle.kt +192 -0
- package/android/src/main/java/com/apollohg/editor/EditorReconciliationWatcher.kt +46 -0
- package/android/src/main/java/com/apollohg/editor/EditorStyleSheet.kt +303 -0
- package/android/src/main/java/com/apollohg/editor/EditorStyleSheetSpans.kt +253 -0
- package/android/src/main/java/com/apollohg/editor/EditorSurfaceInputConnection.kt +67 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextDecorationDrawing.kt +143 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextSurface.kt +712 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextSurfaceDragDrop.kt +94 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextSurfaceInteraction.kt +708 -0
- package/android/src/main/java/com/apollohg/editor/EditorTheme.kt +650 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Adapter.kt +912 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2AdapterMutations.kt +402 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2AdapterRendering.kt +123 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2AdapterSelection.kt +203 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Backend.kt +120 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Driver.kt +87 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Registry.kt +97 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2RenderValidation.kt +409 -0
- package/android/src/main/java/com/apollohg/editor/ExpoAutoGrowStyleSizePublisher.kt +34 -0
- package/android/src/main/java/com/apollohg/editor/ImageResizeOverlayView.kt +266 -0
- package/android/src/main/java/com/apollohg/editor/ImeTextCoordinateMapper.kt +102 -0
- package/android/src/main/java/com/apollohg/editor/KeyboardToolbarImeAnimationController.kt +101 -0
- package/android/src/main/java/com/apollohg/editor/MentionSuggestionChipView.kt +234 -0
- package/android/src/main/java/com/apollohg/editor/NativeCollaborationTransportRegistry.kt +493 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoView.kt +813 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewAtoms.kt +68 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewBinding.kt +126 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewDiagnostics.kt +208 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewErrors.kt +146 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewEvents.kt +150 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewExternalComposition.kt +39 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewFocus.kt +176 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewLifecycle.kt +302 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewMentions.kt +259 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewNativeActions.kt +179 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewOutsideTap.kt +214 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewPendingUpdates.kt +376 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewProperties.kt +234 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewPropertyRetries.kt +197 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewToolbar.kt +285 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewTypes.kt +28 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewUpdates.kt +271 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorModule.kt +687 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorOutsideTapDispatcher.kt +380 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorV2Numbers.kt +45 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorViewRegistry.kt +372 -0
- package/android/src/main/java/com/apollohg/editor/NativeImagePipeline.kt +22 -0
- package/android/src/main/java/com/apollohg/editor/NativeToolbar.kt +193 -0
- package/android/src/main/java/com/apollohg/editor/NativeToolbarIcons.kt +177 -0
- package/android/src/main/java/com/apollohg/editor/NativeToolbarItem.kt +274 -0
- package/android/src/main/java/com/apollohg/editor/OkHttpCollaborationSocket.kt +102 -0
- package/android/src/main/java/com/apollohg/editor/OrderedListMarkerFormatter.kt +130 -0
- package/android/src/main/java/com/apollohg/editor/PointerTransparentView.java +18 -0
- package/android/src/main/java/com/apollohg/editor/PositionBridge.kt +128 -0
- package/android/src/main/java/com/apollohg/editor/ProseViewerView.kt +854 -0
- package/android/src/main/java/com/apollohg/editor/RemoteSelectionOverlayView.kt +314 -0
- package/android/src/main/java/com/apollohg/editor/RenderBlockSpans.kt +314 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridge.kt +224 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeBlockStyles.kt +407 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeElements.kt +544 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeInlineAndAtoms.kt +631 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeParagraphs.kt +215 -0
- package/android/src/main/java/com/apollohg/editor/RenderImageDecoder.kt +748 -0
- package/android/src/main/java/com/apollohg/editor/RenderImageLoader.kt +900 -0
- package/android/src/main/java/com/apollohg/editor/RenderLayoutConstants.kt +117 -0
- package/android/src/main/java/com/apollohg/editor/RenderMediaSpans.kt +337 -0
- package/android/src/main/java/com/apollohg/editor/RenderParagraphSpans.kt +182 -0
- package/android/src/main/java/com/apollohg/editor/RichTextEditorView.kt +951 -0
- package/android/src/main/java/com/apollohg/editor/SharedNativeImagePipeline.kt +78 -0
- package/android/src/main/java/com/apollohg/editor/UniffiEditorV2Backend.kt +261 -0
- package/android/src/main/java/com/apollohg/editor/viewer/AndroidProseLayoutEngine.kt +1656 -0
- package/android/src/main/java/com/apollohg/editor/viewer/FabricAttachmentSidecars.kt +80 -0
- package/android/src/main/java/com/apollohg/editor/viewer/FabricLeaseHandleBridge.kt +59 -0
- package/android/src/main/java/com/apollohg/editor/viewer/FallbackSelectionGeometry.kt +450 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseDrawingView.kt +678 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseInstrumentation.kt +608 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayout.kt +186 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayoutCache.kt +393 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayoutRegistry.kt +828 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseTheme.kt +316 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseViewerManager.kt +900 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseViewerPackage.kt +16 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedViewerAtoms.kt +89 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerCodeHighlighting.kt +91 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerDocument.kt +453 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerFontEnvironment.kt +282 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerImagePipeline.kt +460 -0
- package/android/src/main/jni/CMakeLists.txt +85 -0
- package/android/src/main/jni/PreparedProseViewerMeasurementsManager.cpp +334 -0
- package/android/src/main/jni/ReactNativeProseEditorSpec.h +17 -0
- package/android/src/main/jni/reactnativeproseeditor.h +6 -0
- package/android/src/main/res/values/attrs.xml +6 -0
- package/android/src/release/java/com/apollohg/editor/viewer/PreparedProseDrawInstrumentation.kt +9 -0
- package/app.plugin.js +62 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseMeasurementsManager.h +62 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerComponentDescriptor.h +30 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerShadowNode.cpp +192 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerShadowNode.h +46 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerState.h +145 -0
- package/dist/AtomHost.d.ts +17 -0
- package/dist/AtomHost.js +135 -0
- package/dist/DefaultAtomChip.d.ts +2 -0
- package/dist/DefaultAtomChip.js +22 -0
- package/dist/EditorAddon.d.ts +32 -0
- package/dist/EditorAddon.js +29 -0
- package/dist/EditorAddonNormalization.d.ts +6 -0
- package/dist/EditorAddonNormalization.js +48 -0
- package/dist/EditorMentionThemeNormalization.d.ts +8 -0
- package/dist/EditorMentionThemeNormalization.js +22 -0
- package/dist/EditorMentionThemeValidation.d.ts +12 -0
- package/dist/EditorMentionThemeValidation.js +95 -0
- package/dist/EditorStyleSheet.d.ts +4 -0
- package/dist/EditorStyleSheet.js +10 -0
- package/dist/EditorStyleSheetNormalization.d.ts +3 -0
- package/dist/EditorStyleSheetNormalization.js +226 -0
- package/dist/EditorStyleSheetTypes.d.ts +151 -0
- package/dist/EditorStyleSheetTypes.js +2 -0
- package/dist/EditorTheme.d.ts +117 -0
- package/dist/EditorTheme.js +41 -0
- package/dist/EditorToolbar.d.ts +4 -0
- package/dist/EditorToolbar.js +17 -0
- package/dist/EditorToolbarComponent.d.ts +13 -0
- package/dist/EditorToolbarComponent.js +24 -0
- package/dist/EditorToolbarItems.d.ts +9 -0
- package/dist/EditorToolbarItems.js +58 -0
- package/dist/EditorToolbarRegistry.d.ts +59 -0
- package/dist/EditorToolbarRegistry.js +175 -0
- package/dist/EditorToolbarTypes.d.ts +273 -0
- package/dist/EditorToolbarTypes.js +2 -0
- package/dist/EditorToolbarVisuals.d.ts +154 -0
- package/dist/EditorToolbarVisuals.js +228 -0
- package/dist/EditorUpdateRevision.d.ts +8 -0
- package/dist/EditorUpdateRevision.js +22 -0
- package/dist/ExternalTextComposition.d.ts +45 -0
- package/dist/ExternalTextComposition.js +537 -0
- package/dist/ImageLoadingPolicy.d.ts +54 -0
- package/dist/ImageLoadingPolicy.js +60 -0
- package/dist/NativeEditorBoundaryError.d.ts +111 -0
- package/dist/NativeEditorBoundaryError.js +268 -0
- package/dist/NativeEditorBridge.d.ts +9 -0
- package/dist/NativeEditorBridge.js +37 -0
- package/dist/NativeEditorCollaborationTransport.d.ts +154 -0
- package/dist/NativeEditorCollaborationTransport.js +275 -0
- package/dist/NativeEditorCreateConfig.d.ts +16 -0
- package/dist/NativeEditorCreateConfig.js +249 -0
- package/dist/NativeEditorCreateJson.d.ts +76 -0
- package/dist/NativeEditorCreateJson.js +474 -0
- package/dist/NativeEditorCreateValidation.d.ts +32 -0
- package/dist/NativeEditorCreateValidation.js +150 -0
- package/dist/NativeEditorDocumentBridge.d.ts +72 -0
- package/dist/NativeEditorDocumentBridge.js +305 -0
- package/dist/NativeEditorDocumentHandle.d.ts +70 -0
- package/dist/NativeEditorDocumentHandle.js +89 -0
- package/dist/NativeEditorLocalAwareness.d.ts +34 -0
- package/dist/NativeEditorLocalAwareness.js +153 -0
- package/dist/NativeEditorNativeModule.d.ts +48 -0
- package/dist/NativeEditorNativeModule.js +34 -0
- package/dist/NativeEditorRenderNormalization.d.ts +22 -0
- package/dist/NativeEditorRenderNormalization.js +274 -0
- package/dist/NativeEditorResultNormalization.d.ts +108 -0
- package/dist/NativeEditorResultNormalization.js +400 -0
- package/dist/NativeEditorTypes.d.ts +318 -0
- package/dist/NativeEditorTypes.js +15 -0
- package/dist/NativeEditorV2Decimal.d.ts +5 -0
- package/dist/NativeEditorV2Decimal.js +18 -0
- package/dist/NativeProseViewer.d.ts +122 -0
- package/dist/NativeProseViewer.js +130 -0
- package/dist/NativeRichTextEditor.d.ts +3 -0
- package/dist/NativeRichTextEditor.js +6 -0
- package/dist/ResourceLimits.d.ts +100 -0
- package/dist/ResourceLimits.js +80 -0
- package/dist/RichTextEditor.d.ts +4 -0
- package/dist/RichTextEditor.js +25 -0
- package/dist/RichTextEditorNativeTypes.d.ts +122 -0
- package/dist/RichTextEditorNativeTypes.js +2 -0
- package/dist/RichTextEditorNativeView.d.ts +12 -0
- package/dist/RichTextEditorNativeView.js +15 -0
- package/dist/RichTextEditorSerialization.d.ts +53 -0
- package/dist/RichTextEditorSerialization.js +283 -0
- package/dist/RichTextEditorTypes.d.ts +281 -0
- package/dist/RichTextEditorTypes.js +2 -0
- package/dist/ViewerConfiguration.d.ts +22 -0
- package/dist/ViewerConfiguration.js +6 -0
- package/dist/YjsCollaboration.d.ts +146 -0
- package/dist/YjsCollaboration.js +496 -0
- package/dist/addons.d.ts +193 -0
- package/dist/addons.js +122 -0
- package/dist/atomConstants.d.ts +3 -0
- package/dist/atomConstants.js +6 -0
- package/dist/atomInstances.d.ts +35 -0
- package/dist/atomInstances.js +79 -0
- package/dist/atomPolicy.d.ts +4 -0
- package/dist/atomPolicy.js +47 -0
- package/dist/atomUpdates.d.ts +2 -0
- package/dist/atomUpdates.js +38 -0
- package/dist/atoms.d.ts +92 -0
- package/dist/atoms.js +222 -0
- package/dist/attributeValidation.d.ts +4 -0
- package/dist/attributeValidation.js +97 -0
- package/dist/contentExpression.d.ts +6 -0
- package/dist/contentExpression.js +335 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +78 -0
- package/dist/listMarkers.d.ts +15 -0
- package/dist/listMarkers.js +21 -0
- package/dist/schemaDefinition.d.ts +143 -0
- package/dist/schemaDefinition.js +206 -0
- package/dist/schemaDocument.d.ts +17 -0
- package/dist/schemaDocument.js +69 -0
- package/dist/schemaDocumentConstruction.d.ts +5 -0
- package/dist/schemaDocumentConstruction.js +125 -0
- package/dist/schemaNormalization.d.ts +29 -0
- package/dist/schemaNormalization.js +313 -0
- package/dist/schemaPresets.d.ts +68 -0
- package/dist/schemaPresets.js +198 -0
- package/dist/schemaResolution.d.ts +9 -0
- package/dist/schemaResolution.js +211 -0
- package/dist/schemas.d.ts +5 -0
- package/dist/schemas.js +28 -0
- package/dist/specs/PreparedProseViewerNativeComponent.d.ts +37 -0
- package/dist/specs/PreparedProseViewerNativeComponent.js +6 -0
- package/dist/useEditorToolbarInteractions.d.ts +12 -0
- package/dist/useEditorToolbarInteractions.js +218 -0
- package/dist/useEditorToolbarItems.d.ts +8 -0
- package/dist/useEditorToolbarItems.js +280 -0
- package/dist/useEditorToolbarPresentation.d.ts +4 -0
- package/dist/useEditorToolbarPresentation.js +203 -0
- package/dist/useEditorToolbarState.d.ts +63 -0
- package/dist/useEditorToolbarState.js +108 -0
- package/dist/useFocusPreservingFrames.d.ts +17 -0
- package/dist/useFocusPreservingFrames.js +108 -0
- package/dist/useNativeEditor.d.ts +66 -0
- package/dist/useNativeEditor.js +370 -0
- package/dist/useRichTextEditorCommands.d.ts +21 -0
- package/dist/useRichTextEditorCommands.js +299 -0
- package/dist/useRichTextEditorEvents.d.ts +18 -0
- package/dist/useRichTextEditorEvents.js +216 -0
- package/dist/useRichTextEditorMentions.d.ts +11 -0
- package/dist/useRichTextEditorMentions.js +316 -0
- package/dist/useRichTextEditorPresentation.d.ts +5 -0
- package/dist/useRichTextEditorPresentation.js +178 -0
- package/dist/useRichTextEditorState.d.ts +180 -0
- package/dist/useRichTextEditorState.js +405 -0
- package/dist/useRichTextEditorUpdates.d.ts +10 -0
- package/dist/useRichTextEditorUpdates.js +308 -0
- package/dist/useViewerAtoms.d.ts +38 -0
- package/dist/useViewerAtoms.js +288 -0
- package/expo-module.config.json +13 -0
- package/ios/EditorAddons.swift +354 -0
- package/ios/EditorCodeHighlighting.swift +184 -0
- package/ios/EditorCore.xcframework/Info.plist +44 -0
- package/ios/EditorCore.xcframework/ios-arm64/libeditor_core.a +0 -0
- package/ios/EditorCore.xcframework/ios-arm64_x86_64-simulator/libeditor_core.a +0 -0
- package/ios/EditorInteractionOverlays.swift +697 -0
- package/ios/EditorLayoutManager.swift +971 -0
- package/ios/EditorNodeTypes.swift +37 -0
- package/ios/EditorStyleSheet.swift +461 -0
- package/ios/EditorTextView+AttributedPatch.swift +305 -0
- package/ios/EditorTextView+Binding.swift +61 -0
- package/ios/EditorTextView+Caret.swift +333 -0
- package/ios/EditorTextView+Commands.swift +203 -0
- package/ios/EditorTextView+Delegate.swift +65 -0
- package/ios/EditorTextView+Diagnostics.swift +225 -0
- package/ios/EditorTextView+DragDrop.swift +290 -0
- package/ios/EditorTextView+ExternalComposition.swift +364 -0
- package/ios/EditorTextView+Images.swift +354 -0
- package/ios/EditorTextView+InputTraits.swift +200 -0
- package/ios/EditorTextView+KeyboardInput.swift +318 -0
- package/ios/EditorTextView+Layout.swift +245 -0
- package/ios/EditorTextView+MarkedText.swift +267 -0
- package/ios/EditorTextView+NativeInputLifecycle.swift +372 -0
- package/ios/EditorTextView+NativeMutation.swift +471 -0
- package/ios/EditorTextView+Reconciliation.swift +97 -0
- package/ios/EditorTextView+RenderPatch.swift +573 -0
- package/ios/EditorTextView+Rendering.swift +539 -0
- package/ios/EditorTextView+Selection.swift +542 -0
- package/ios/EditorTextView.swift +953 -0
- package/ios/EditorTheme.swift +626 -0
- package/ios/EditorV2Adapter+Commands.swift +204 -0
- package/ios/EditorV2Adapter+Envelope.swift +238 -0
- package/ios/EditorV2Adapter+Mutation.swift +392 -0
- package/ios/EditorV2Adapter+Registry.swift +185 -0
- package/ios/EditorV2Adapter+RenderState.swift +360 -0
- package/ios/EditorV2Adapter+RenderValidation.swift +420 -0
- package/ios/EditorV2Adapter+Selection.swift +329 -0
- package/ios/EditorV2Adapter+TextCommands.swift +430 -0
- package/ios/EditorV2Adapter.swift +376 -0
- package/ios/EditorV2Shadow.swift +353 -0
- package/ios/Generated_editor_core.swift +2378 -0
- package/ios/NativeCodeHighlighting.swift +159 -0
- package/ios/NativeCollaborationSocket.swift +144 -0
- package/ios/NativeCollaborationTransport+Protocol.swift +258 -0
- package/ios/NativeCollaborationTransport+Socket.swift +379 -0
- package/ios/NativeCollaborationTransport+Validation.swift +103 -0
- package/ios/NativeCollaborationTransport.swift +322 -0
- package/ios/NativeCollaborationTransportRegistry.swift +521 -0
- package/ios/NativeEditorExpoView+AccessoryRetry.swift +219 -0
- package/ios/NativeEditorExpoView+Binding.swift +268 -0
- package/ios/NativeEditorExpoView+Diagnostics.swift +66 -0
- package/ios/NativeEditorExpoView+Events.swift +131 -0
- package/ios/NativeEditorExpoView+Focus.swift +169 -0
- package/ios/NativeEditorExpoView+MentionRetry.swift +288 -0
- package/ios/NativeEditorExpoView+Mentions.swift +288 -0
- package/ios/NativeEditorExpoView+Properties.swift +300 -0
- package/ios/NativeEditorExpoView+Toolbar.swift +86 -0
- package/ios/NativeEditorExpoView+Updates.swift +312 -0
- package/ios/NativeEditorExpoView.swift +349 -0
- package/ios/NativeEditorModule.swift +856 -0
- package/ios/NativeEditorViewRegistry.swift +226 -0
- package/ios/NativeToolbar+ButtonStyle.swift +214 -0
- package/ios/NativeToolbar+Buttons.swift +228 -0
- package/ios/NativeToolbar+Diagnostics.swift +114 -0
- package/ios/NativeToolbar+Menu.swift +101 -0
- package/ios/NativeToolbar+Models.swift +519 -0
- package/ios/NativeToolbar+Placeholder.swift +39 -0
- package/ios/NativeToolbar.swift +612 -0
- package/ios/OrderedListMarkerFormatter.swift +103 -0
- package/ios/PositionBridge.swift +596 -0
- package/ios/ProseViewerView.swift +462 -0
- package/ios/RenderBridge+Atoms.swift +288 -0
- package/ios/RenderBridge+Attachments.swift +246 -0
- package/ios/RenderBridge+BlockBoundaries.swift +313 -0
- package/ios/RenderBridge+Style.swift +343 -0
- package/ios/RenderBridge.swift +704 -0
- package/ios/RichTextEditorView.swift +930 -0
- package/ios/SharedNativeImagePipeline+Cache.swift +189 -0
- package/ios/SharedNativeImagePipeline+Transport.swift +328 -0
- package/ios/SharedNativeImagePipeline.swift +533 -0
- package/ios/Viewer/CoreTextProseLayoutEngine+AttributedText.swift +436 -0
- package/ios/Viewer/CoreTextProseLayoutEngine+Models.swift +322 -0
- package/ios/Viewer/CoreTextProseLayoutEngine.swift +635 -0
- package/ios/Viewer/Fabric/PREPPreparedProseViewerComponentView.h +4 -0
- package/ios/Viewer/Fabric/PREPPreparedProseViewerComponentView.mm +767 -0
- package/ios/Viewer/Fabric/PreparedProseMeasurementsManager.mm +118 -0
- package/ios/Viewer/NativeSVGImageDecoder.h +9 -0
- package/ios/Viewer/NativeSVGImageDecoder.mm +106 -0
- package/ios/Viewer/NativeSVGPreflight.h +11 -0
- package/ios/Viewer/NativeSVGPreflight.mm +219 -0
- package/ios/Viewer/PreparedProseDrawingView.swift +639 -0
- package/ios/Viewer/PreparedProseInstrumentation.swift +387 -0
- package/ios/Viewer/PreparedProseLayout.swift +326 -0
- package/ios/Viewer/PreparedProseLayoutCache.swift +766 -0
- package/ios/Viewer/PreparedProseLayoutRegistry+Artifacts.swift +377 -0
- package/ios/Viewer/PreparedProseLayoutRegistry+Fabric.swift +582 -0
- package/ios/Viewer/PreparedProseLayoutRegistry+FabricOwnership.swift +128 -0
- package/ios/Viewer/PreparedProseLayoutRegistry.swift +381 -0
- package/ios/Viewer/ViewerDocument.swift +575 -0
- package/ios/Viewer/ViewerFontEnvironment.swift +283 -0
- package/ios/Viewer/ViewerImagePipeline.swift +478 -0
- package/ios/editor_coreFFI/editor_coreFFI.h +1023 -0
- package/ios/editor_coreFFI/module.modulemap +7 -0
- package/package.json +151 -0
- package/react-native.config.js +17 -0
- package/rust/android/arm64-v8a/libeditor_core.so +0 -0
- package/rust/android/armeabi-v7a/libeditor_core.so +0 -0
- package/rust/android/x86/libeditor_core.so +0 -0
- package/rust/android/x86_64/libeditor_core.so +0 -0
- package/rust/bindings/kotlin/uniffi/editor_core/editor_core.kt +3146 -0
- package/src/AtomHost.tsx +180 -0
- package/src/DefaultAtomChip.tsx +27 -0
- package/src/EditorAddon.ts +65 -0
- package/src/EditorAddonNormalization.ts +49 -0
- package/src/EditorMentionThemeNormalization.ts +25 -0
- package/src/EditorMentionThemeValidation.ts +133 -0
- package/src/EditorStyleSheet.ts +9 -0
- package/src/EditorStyleSheetNormalization.ts +219 -0
- package/src/EditorStyleSheetTypes.ts +189 -0
- package/src/EditorTheme.ts +196 -0
- package/src/EditorToolbar.tsx +31 -0
- package/src/EditorToolbarComponent.tsx +23 -0
- package/src/EditorToolbarItems.tsx +64 -0
- package/src/EditorToolbarRegistry.tsx +254 -0
- package/src/EditorToolbarTypes.tsx +322 -0
- package/src/EditorToolbarVisuals.tsx +270 -0
- package/src/EditorUpdateRevision.ts +26 -0
- package/src/ExternalTextComposition.ts +658 -0
- package/src/ImageLoadingPolicy.ts +125 -0
- package/src/NativeEditorBoundaryError.ts +345 -0
- package/src/NativeEditorBridge.ts +93 -0
- package/src/NativeEditorCollaborationTransport.ts +493 -0
- package/src/NativeEditorCreateConfig.ts +326 -0
- package/src/NativeEditorCreateJson.ts +579 -0
- package/src/NativeEditorCreateValidation.ts +178 -0
- package/src/NativeEditorDocumentBridge.ts +485 -0
- package/src/NativeEditorDocumentHandle.ts +168 -0
- package/src/NativeEditorLocalAwareness.ts +168 -0
- package/src/NativeEditorNativeModule.ts +97 -0
- package/src/NativeEditorRenderNormalization.ts +320 -0
- package/src/NativeEditorResultNormalization.ts +469 -0
- package/src/NativeEditorTypes.ts +366 -0
- package/src/NativeEditorV2Decimal.ts +13 -0
- package/src/NativeProseViewer.tsx +356 -0
- package/src/NativeRichTextEditor.tsx +33 -0
- package/src/ResourceLimits.ts +187 -0
- package/src/RichTextEditor.tsx +27 -0
- package/src/RichTextEditorNativeTypes.tsx +144 -0
- package/src/RichTextEditorNativeView.tsx +21 -0
- package/src/RichTextEditorSerialization.tsx +381 -0
- package/src/RichTextEditorTypes.tsx +327 -0
- package/src/ViewerConfiguration.ts +23 -0
- package/src/YjsCollaboration.ts +692 -0
- package/src/addons.ts +311 -0
- package/src/atomConstants.ts +3 -0
- package/src/atomInstances.ts +123 -0
- package/src/atomPolicy.ts +47 -0
- package/src/atomUpdates.ts +52 -0
- package/src/atoms.ts +379 -0
- package/src/attributeValidation.ts +116 -0
- package/src/contentExpression.ts +338 -0
- package/src/index.ts +295 -0
- package/src/listMarkers.ts +18 -0
- package/src/schemaDefinition.ts +395 -0
- package/src/schemaDocument.ts +92 -0
- package/src/schemaDocumentConstruction.ts +148 -0
- package/src/schemaNormalization.ts +367 -0
- package/src/schemaPresets.ts +250 -0
- package/src/schemaResolution.ts +242 -0
- package/src/schemas.ts +43 -0
- package/src/specs/PreparedProseViewerNativeComponent.ts +40 -0
- package/src/useEditorToolbarInteractions.tsx +329 -0
- package/src/useEditorToolbarItems.tsx +390 -0
- package/src/useEditorToolbarPresentation.tsx +483 -0
- package/src/useEditorToolbarState.tsx +172 -0
- package/src/useFocusPreservingFrames.ts +171 -0
- package/src/useNativeEditor.ts +534 -0
- package/src/useRichTextEditorCommands.tsx +478 -0
- package/src/useRichTextEditorEvents.tsx +342 -0
- package/src/useRichTextEditorMentions.tsx +441 -0
- package/src/useRichTextEditorPresentation.tsx +563 -0
- package/src/useRichTextEditorState.tsx +620 -0
- package/src/useRichTextEditorUpdates.tsx +403 -0
- package/src/useViewerAtoms.tsx +427 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/** The boundary failure codes this package knows about at build time. */
|
|
2
|
+
export declare const NATIVE_EDITOR_BOUNDARY_ERROR_CODES: readonly ["INVALID_RESOURCE_LIMIT", "CONFIG_INVALID", "INPUT_LIMIT_EXCEEDED", "CONFIG_PARSE_FAILED", "DOCUMENT_PARSE_FAILED", "DOCUMENT_INVALID", "DOCUMENT_LIMIT_EXCEEDED", "POSITION_LIMIT_EXCEEDED", "SCHEMA_INVALID", "REQUIRED_ATTRIBUTE_MISSING", "UNKNOWN_MARK", "MAX_LENGTH_EXCEEDED", "MUTATION_REJECTED", "COLLABORATION_DECODE_FAILED", "COLLABORATION_APPLY_FAILED", "SESSION_NOT_FOUND", "IMAGE_POLICY_INVALID", "IMAGE_REQUEST_TIMEOUT"];
|
|
3
|
+
export type KnownNativeEditorBoundaryErrorCode = (typeof NATIVE_EDITOR_BOUNDARY_ERROR_CODES)[number];
|
|
4
|
+
/** Known codes remain suggested while future native codes can cross the boundary losslessly. */
|
|
5
|
+
export type NativeEditorBoundaryErrorCode = KnownNativeEditorBoundaryErrorCode | (string & {});
|
|
6
|
+
/** The subsystems a typed error can come from. Each maps to its own error class. */
|
|
7
|
+
export declare const NATIVE_EDITOR_ERROR_DOMAINS: readonly ["boundary", "document", "operation", "lifecycle", "snapshot", "transport"];
|
|
8
|
+
/**
|
|
9
|
+
* Which subsystem raised a failure:
|
|
10
|
+
*
|
|
11
|
+
* - `boundary` — the value never reached the engine (bad config, oversized input).
|
|
12
|
+
* - `document` — the document or schema was rejected.
|
|
13
|
+
* - `operation` — a mutation could not be applied (stale revision, invalid position).
|
|
14
|
+
* - `lifecycle` — the session was destroyed or is being destroyed.
|
|
15
|
+
* - `snapshot` — a room snapshot could not be exported or restored.
|
|
16
|
+
* - `transport` — collaboration transport failure.
|
|
17
|
+
*/
|
|
18
|
+
export type NativeEditorErrorDomain = (typeof NATIVE_EDITOR_ERROR_DOMAINS)[number];
|
|
19
|
+
/** Codes carried by `operation`-domain failures. */
|
|
20
|
+
export declare const NATIVE_EDITOR_OPERATION_ERROR_CODES: readonly ["ENGINE_NOT_READY", "REVISION_MISMATCH", "POSITION_INVALID", "TRANSACTION_INVALID", "OPERATION_INVALID", "OPERATION_LIMIT_EXCEEDED", "OPERATION_RESOURCE_EXHAUSTED", "DOCUMENT_INVALID", "DOCUMENT_LIMIT_EXCEEDED", "ENGINE_INVARIANT_FAILED"];
|
|
21
|
+
/**
|
|
22
|
+
* A failure record from the native boundary, normalized for JavaScript. It is
|
|
23
|
+
* carried on every {@link NativeEditorErrorBase}; the numeric fields stay
|
|
24
|
+
* decimal strings because they span the full Rust `u64` range.
|
|
25
|
+
*/
|
|
26
|
+
export interface NativeEditorError {
|
|
27
|
+
domain: NativeEditorErrorDomain;
|
|
28
|
+
code: NativeEditorBoundaryErrorCode;
|
|
29
|
+
message: string;
|
|
30
|
+
/** Identity of the request that failed. */
|
|
31
|
+
requestId: string | null;
|
|
32
|
+
/** Index of the failing operation within a multi-operation transaction. */
|
|
33
|
+
operationIndex: string | null;
|
|
34
|
+
/** The bound that was exceeded, for limit failures. */
|
|
35
|
+
limit: string | null;
|
|
36
|
+
/** The value that exceeded it. */
|
|
37
|
+
actual: string | null;
|
|
38
|
+
/** Code-specific context, e.g. `expectedRevision`/`actualRevision` for `REVISION_MISMATCH`. */
|
|
39
|
+
details: Record<string, unknown> | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A value rejected before it reached the engine — an out-of-range resource
|
|
43
|
+
* limit, an invalid image policy, an oversized input. Thrown synchronously by
|
|
44
|
+
* the validating helpers in this package.
|
|
45
|
+
*/
|
|
46
|
+
export declare class NativeEditorBoundaryError extends Error {
|
|
47
|
+
readonly code: NativeEditorBoundaryErrorCode;
|
|
48
|
+
readonly limit?: number | undefined;
|
|
49
|
+
readonly actual?: number | undefined;
|
|
50
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
51
|
+
constructor(code: NativeEditorBoundaryErrorCode, message: string, limit?: number | undefined, actual?: number | undefined, details?: Record<string, unknown> | undefined);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Turn a raw native error envelope into a {@link NativeEditorBoundaryError},
|
|
55
|
+
* or null when the value is not one.
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseNativeBoundaryError(value: unknown): NativeEditorBoundaryError | null;
|
|
58
|
+
/** Normalize a raw FFI v2 error record without changing the legacy error parser contract. */
|
|
59
|
+
export declare function normalizeNativeEditorV2Error(value: unknown): NativeEditorError | null;
|
|
60
|
+
/** Codes that mark a failure as permanently non-retryable for this handle. */
|
|
61
|
+
export declare const NATIVE_EDITOR_NON_RETRYABLE_CODES: readonly ["ENGINE_INVARIANT_FAILED", "ENGINE_DESTROYING", "ENGINE_DESTROYED"];
|
|
62
|
+
export declare function isNativeEditorV2NonRetryableCode(code: string): boolean;
|
|
63
|
+
/** Base class for every typed error raised from a normalized FFI v2 error record. */
|
|
64
|
+
export declare class NativeEditorErrorBase extends Error {
|
|
65
|
+
readonly error: NativeEditorError;
|
|
66
|
+
readonly domain: NativeEditorErrorDomain;
|
|
67
|
+
readonly code: NativeEditorBoundaryErrorCode;
|
|
68
|
+
readonly requestId: string | null;
|
|
69
|
+
readonly operationIndex: string | null;
|
|
70
|
+
readonly limit: string | null;
|
|
71
|
+
readonly actual: string | null;
|
|
72
|
+
readonly details: Record<string, unknown> | null;
|
|
73
|
+
constructor(error: NativeEditorError, name: string);
|
|
74
|
+
}
|
|
75
|
+
/** A value the engine refused to admit. */
|
|
76
|
+
export declare class NativeEditorEngineBoundaryError extends NativeEditorErrorBase {
|
|
77
|
+
constructor(error: NativeEditorError);
|
|
78
|
+
}
|
|
79
|
+
/** The document or schema was rejected. */
|
|
80
|
+
export declare class NativeEditorDocumentError extends NativeEditorErrorBase {
|
|
81
|
+
constructor(error: NativeEditorError);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* A mutation could not be applied. `REVISION_MISMATCH` is the routine one:
|
|
85
|
+
* the document moved on, so re-read it and retry against the fresh revision.
|
|
86
|
+
*/
|
|
87
|
+
export declare class NativeEditorOperationError extends NativeEditorErrorBase {
|
|
88
|
+
constructor(error: NativeEditorError);
|
|
89
|
+
}
|
|
90
|
+
/** The session is not in a state that permits this call. */
|
|
91
|
+
export declare class NativeEditorLifecycleError extends NativeEditorErrorBase {
|
|
92
|
+
constructor(error: NativeEditorError);
|
|
93
|
+
}
|
|
94
|
+
/** A room snapshot could not be exported or restored. */
|
|
95
|
+
export declare class NativeEditorSnapshotError extends NativeEditorErrorBase {
|
|
96
|
+
constructor(error: NativeEditorError);
|
|
97
|
+
}
|
|
98
|
+
/** The collaboration transport failed. */
|
|
99
|
+
export declare class NativeEditorTransportError extends NativeEditorErrorBase {
|
|
100
|
+
constructor(error: NativeEditorError);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Distinct class for failures that can never succeed on retry for this
|
|
104
|
+
* handle: ENGINE_INVARIANT_FAILED and the lifecycle-destroyed states
|
|
105
|
+
* (ENGINE_DESTROYING / ENGINE_DESTROYED).
|
|
106
|
+
*/
|
|
107
|
+
export declare class NativeEditorNonRetryableError extends NativeEditorErrorBase {
|
|
108
|
+
constructor(error: NativeEditorError);
|
|
109
|
+
}
|
|
110
|
+
/** Map a normalized FFI v2 error record to its typed imperative exception. */
|
|
111
|
+
export declare function nativeEditorV2ErrorToException(error: NativeEditorError): NativeEditorErrorBase;
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NativeEditorNonRetryableError = exports.NativeEditorTransportError = exports.NativeEditorSnapshotError = exports.NativeEditorLifecycleError = exports.NativeEditorOperationError = exports.NativeEditorDocumentError = exports.NativeEditorEngineBoundaryError = exports.NativeEditorErrorBase = exports.NATIVE_EDITOR_NON_RETRYABLE_CODES = exports.NativeEditorBoundaryError = exports.NATIVE_EDITOR_OPERATION_ERROR_CODES = exports.NATIVE_EDITOR_ERROR_DOMAINS = exports.NATIVE_EDITOR_BOUNDARY_ERROR_CODES = void 0;
|
|
4
|
+
exports.parseNativeBoundaryError = parseNativeBoundaryError;
|
|
5
|
+
exports.normalizeNativeEditorV2Error = normalizeNativeEditorV2Error;
|
|
6
|
+
exports.isNativeEditorV2NonRetryableCode = isNativeEditorV2NonRetryableCode;
|
|
7
|
+
exports.nativeEditorV2ErrorToException = nativeEditorV2ErrorToException;
|
|
8
|
+
const NativeEditorV2Decimal_1 = require("./NativeEditorV2Decimal");
|
|
9
|
+
/** The boundary failure codes this package knows about at build time. */
|
|
10
|
+
exports.NATIVE_EDITOR_BOUNDARY_ERROR_CODES = [
|
|
11
|
+
'INVALID_RESOURCE_LIMIT',
|
|
12
|
+
'CONFIG_INVALID',
|
|
13
|
+
'INPUT_LIMIT_EXCEEDED',
|
|
14
|
+
'CONFIG_PARSE_FAILED',
|
|
15
|
+
'DOCUMENT_PARSE_FAILED',
|
|
16
|
+
'DOCUMENT_INVALID',
|
|
17
|
+
'DOCUMENT_LIMIT_EXCEEDED',
|
|
18
|
+
'POSITION_LIMIT_EXCEEDED',
|
|
19
|
+
'SCHEMA_INVALID',
|
|
20
|
+
'REQUIRED_ATTRIBUTE_MISSING',
|
|
21
|
+
'UNKNOWN_MARK',
|
|
22
|
+
'MAX_LENGTH_EXCEEDED',
|
|
23
|
+
'MUTATION_REJECTED',
|
|
24
|
+
'COLLABORATION_DECODE_FAILED',
|
|
25
|
+
'COLLABORATION_APPLY_FAILED',
|
|
26
|
+
'SESSION_NOT_FOUND',
|
|
27
|
+
'IMAGE_POLICY_INVALID',
|
|
28
|
+
'IMAGE_REQUEST_TIMEOUT',
|
|
29
|
+
];
|
|
30
|
+
/** The subsystems a typed error can come from. Each maps to its own error class. */
|
|
31
|
+
exports.NATIVE_EDITOR_ERROR_DOMAINS = [
|
|
32
|
+
'boundary',
|
|
33
|
+
'document',
|
|
34
|
+
'operation',
|
|
35
|
+
'lifecycle',
|
|
36
|
+
'snapshot',
|
|
37
|
+
'transport',
|
|
38
|
+
];
|
|
39
|
+
/** Codes carried by `operation`-domain failures. */
|
|
40
|
+
exports.NATIVE_EDITOR_OPERATION_ERROR_CODES = [
|
|
41
|
+
'ENGINE_NOT_READY',
|
|
42
|
+
'REVISION_MISMATCH',
|
|
43
|
+
'POSITION_INVALID',
|
|
44
|
+
'TRANSACTION_INVALID',
|
|
45
|
+
'OPERATION_INVALID',
|
|
46
|
+
'OPERATION_LIMIT_EXCEEDED',
|
|
47
|
+
'OPERATION_RESOURCE_EXHAUSTED',
|
|
48
|
+
'DOCUMENT_INVALID',
|
|
49
|
+
'DOCUMENT_LIMIT_EXCEEDED',
|
|
50
|
+
'ENGINE_INVARIANT_FAILED',
|
|
51
|
+
];
|
|
52
|
+
/**
|
|
53
|
+
* A value rejected before it reached the engine — an out-of-range resource
|
|
54
|
+
* limit, an invalid image policy, an oversized input. Thrown synchronously by
|
|
55
|
+
* the validating helpers in this package.
|
|
56
|
+
*/
|
|
57
|
+
class NativeEditorBoundaryError extends Error {
|
|
58
|
+
constructor(code, message, limit, actual, details) {
|
|
59
|
+
super(message);
|
|
60
|
+
this.code = code;
|
|
61
|
+
this.limit = limit;
|
|
62
|
+
this.actual = actual;
|
|
63
|
+
this.details = details;
|
|
64
|
+
this.name = 'NativeEditorBoundaryError';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.NativeEditorBoundaryError = NativeEditorBoundaryError;
|
|
68
|
+
/**
|
|
69
|
+
* Turn a raw native error envelope into a {@link NativeEditorBoundaryError},
|
|
70
|
+
* or null when the value is not one.
|
|
71
|
+
*/
|
|
72
|
+
function parseNativeBoundaryError(value) {
|
|
73
|
+
const envelope = value;
|
|
74
|
+
const nativeError = envelope?.error;
|
|
75
|
+
const code = nativeError?.code;
|
|
76
|
+
if (typeof code !== 'string' || typeof nativeError?.message !== 'string') {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
return new NativeEditorBoundaryError(code, nativeError.message, typeof nativeError.limit === 'number' ? nativeError.limit : undefined, typeof nativeError.actual === 'number' ? nativeError.actual : undefined, nativeError.details != null && typeof nativeError.details === 'object'
|
|
80
|
+
? nativeError.details
|
|
81
|
+
: undefined);
|
|
82
|
+
}
|
|
83
|
+
function nullableCanonicalDecimal(value) {
|
|
84
|
+
if (value == null)
|
|
85
|
+
return null;
|
|
86
|
+
return (0, NativeEditorV2Decimal_1.normalizeNativeEditorV2U64)(value) ?? undefined;
|
|
87
|
+
}
|
|
88
|
+
function parseDetails(nativeError) {
|
|
89
|
+
if (nativeError.details != null) {
|
|
90
|
+
if (typeof nativeError.details !== 'object' || Array.isArray(nativeError.details)) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
return nativeError.details;
|
|
94
|
+
}
|
|
95
|
+
if (nativeError.detailsJson == null)
|
|
96
|
+
return null;
|
|
97
|
+
if (typeof nativeError.detailsJson !== 'string')
|
|
98
|
+
return undefined;
|
|
99
|
+
try {
|
|
100
|
+
const details = JSON.parse(nativeError.detailsJson);
|
|
101
|
+
return details != null && typeof details === 'object' && !Array.isArray(details)
|
|
102
|
+
? details
|
|
103
|
+
: undefined;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function isCanonicalDecimalDetail(value) {
|
|
110
|
+
return (0, NativeEditorV2Decimal_1.normalizeNativeEditorV2U64)(value) != null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Error details are otherwise forward-compatible, but known v2 structures
|
|
114
|
+
* carry u64 values and must not let JSON.parse silently admit rounded numbers.
|
|
115
|
+
*/
|
|
116
|
+
function hasValidKnownDetails(code, details) {
|
|
117
|
+
switch (code) {
|
|
118
|
+
case 'REVISION_MISMATCH':
|
|
119
|
+
return (details != null &&
|
|
120
|
+
isCanonicalDecimalDetail(details.expectedRevision) &&
|
|
121
|
+
isCanonicalDecimalDetail(details.actualRevision));
|
|
122
|
+
case 'TRANSPORT_STALE_GENERATION':
|
|
123
|
+
return (details != null &&
|
|
124
|
+
isCanonicalDecimalDetail(details.presentedGeneration) &&
|
|
125
|
+
(details.liveGeneration === null ||
|
|
126
|
+
isCanonicalDecimalDetail(details.liveGeneration)));
|
|
127
|
+
default:
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/** Normalize a raw FFI v2 error record without changing the legacy error parser contract. */
|
|
132
|
+
function normalizeNativeEditorV2Error(value) {
|
|
133
|
+
const envelope = value;
|
|
134
|
+
const nativeError = envelope?.error;
|
|
135
|
+
if (nativeError == null || typeof nativeError !== 'object')
|
|
136
|
+
return null;
|
|
137
|
+
const { domain, code, message } = nativeError;
|
|
138
|
+
if (typeof domain !== 'string' ||
|
|
139
|
+
!exports.NATIVE_EDITOR_ERROR_DOMAINS.includes(domain) ||
|
|
140
|
+
typeof code !== 'string' ||
|
|
141
|
+
typeof message !== 'string') {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
const requestId = nullableCanonicalDecimal(nativeError.requestId);
|
|
145
|
+
const operationIndex = nullableCanonicalDecimal(nativeError.operationIndex);
|
|
146
|
+
const limit = nullableCanonicalDecimal(nativeError.limit);
|
|
147
|
+
const actual = nullableCanonicalDecimal(nativeError.actual);
|
|
148
|
+
const details = parseDetails(nativeError);
|
|
149
|
+
if (requestId === undefined ||
|
|
150
|
+
operationIndex === undefined ||
|
|
151
|
+
limit === undefined ||
|
|
152
|
+
actual === undefined ||
|
|
153
|
+
details === undefined ||
|
|
154
|
+
!hasValidKnownDetails(code, details)) {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
domain: domain,
|
|
159
|
+
code,
|
|
160
|
+
message,
|
|
161
|
+
requestId,
|
|
162
|
+
operationIndex,
|
|
163
|
+
limit,
|
|
164
|
+
actual,
|
|
165
|
+
details,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// FFI v2 typed imperative error classes (additive; the legacy parsing path
|
|
169
|
+
// above is unchanged). Recoverable engine errors throw the structured
|
|
170
|
+
// per-domain class; ENGINE_INVARIANT_FAILED and lifecycle-destroyed states
|
|
171
|
+
// throw the distinct non-retryable class.
|
|
172
|
+
/** Codes that mark a failure as permanently non-retryable for this handle. */
|
|
173
|
+
exports.NATIVE_EDITOR_NON_RETRYABLE_CODES = [
|
|
174
|
+
'ENGINE_INVARIANT_FAILED',
|
|
175
|
+
'ENGINE_DESTROYING',
|
|
176
|
+
'ENGINE_DESTROYED',
|
|
177
|
+
];
|
|
178
|
+
function isNativeEditorV2NonRetryableCode(code) {
|
|
179
|
+
return exports.NATIVE_EDITOR_NON_RETRYABLE_CODES.includes(code);
|
|
180
|
+
}
|
|
181
|
+
/** Base class for every typed error raised from a normalized FFI v2 error record. */
|
|
182
|
+
class NativeEditorErrorBase extends Error {
|
|
183
|
+
constructor(error, name) {
|
|
184
|
+
super(error.message);
|
|
185
|
+
this.error = error;
|
|
186
|
+
this.name = name;
|
|
187
|
+
this.domain = error.domain;
|
|
188
|
+
this.code = error.code;
|
|
189
|
+
this.requestId = error.requestId;
|
|
190
|
+
this.operationIndex = error.operationIndex;
|
|
191
|
+
this.limit = error.limit;
|
|
192
|
+
this.actual = error.actual;
|
|
193
|
+
this.details = error.details;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.NativeEditorErrorBase = NativeEditorErrorBase;
|
|
197
|
+
/** A value the engine refused to admit. */
|
|
198
|
+
class NativeEditorEngineBoundaryError extends NativeEditorErrorBase {
|
|
199
|
+
constructor(error) {
|
|
200
|
+
super(error, 'NativeEditorEngineBoundaryError');
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.NativeEditorEngineBoundaryError = NativeEditorEngineBoundaryError;
|
|
204
|
+
/** The document or schema was rejected. */
|
|
205
|
+
class NativeEditorDocumentError extends NativeEditorErrorBase {
|
|
206
|
+
constructor(error) {
|
|
207
|
+
super(error, 'NativeEditorDocumentError');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
exports.NativeEditorDocumentError = NativeEditorDocumentError;
|
|
211
|
+
/**
|
|
212
|
+
* A mutation could not be applied. `REVISION_MISMATCH` is the routine one:
|
|
213
|
+
* the document moved on, so re-read it and retry against the fresh revision.
|
|
214
|
+
*/
|
|
215
|
+
class NativeEditorOperationError extends NativeEditorErrorBase {
|
|
216
|
+
constructor(error) {
|
|
217
|
+
super(error, 'NativeEditorOperationError');
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.NativeEditorOperationError = NativeEditorOperationError;
|
|
221
|
+
/** The session is not in a state that permits this call. */
|
|
222
|
+
class NativeEditorLifecycleError extends NativeEditorErrorBase {
|
|
223
|
+
constructor(error) {
|
|
224
|
+
super(error, 'NativeEditorLifecycleError');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.NativeEditorLifecycleError = NativeEditorLifecycleError;
|
|
228
|
+
/** A room snapshot could not be exported or restored. */
|
|
229
|
+
class NativeEditorSnapshotError extends NativeEditorErrorBase {
|
|
230
|
+
constructor(error) {
|
|
231
|
+
super(error, 'NativeEditorSnapshotError');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.NativeEditorSnapshotError = NativeEditorSnapshotError;
|
|
235
|
+
/** The collaboration transport failed. */
|
|
236
|
+
class NativeEditorTransportError extends NativeEditorErrorBase {
|
|
237
|
+
constructor(error) {
|
|
238
|
+
super(error, 'NativeEditorTransportError');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.NativeEditorTransportError = NativeEditorTransportError;
|
|
242
|
+
/**
|
|
243
|
+
* Distinct class for failures that can never succeed on retry for this
|
|
244
|
+
* handle: ENGINE_INVARIANT_FAILED and the lifecycle-destroyed states
|
|
245
|
+
* (ENGINE_DESTROYING / ENGINE_DESTROYED).
|
|
246
|
+
*/
|
|
247
|
+
class NativeEditorNonRetryableError extends NativeEditorErrorBase {
|
|
248
|
+
constructor(error) {
|
|
249
|
+
super(error, 'NativeEditorNonRetryableError');
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
exports.NativeEditorNonRetryableError = NativeEditorNonRetryableError;
|
|
253
|
+
const NATIVE_EDITOR_V2_DOMAIN_ERROR_CLASSES = {
|
|
254
|
+
boundary: NativeEditorEngineBoundaryError,
|
|
255
|
+
document: NativeEditorDocumentError,
|
|
256
|
+
operation: NativeEditorOperationError,
|
|
257
|
+
lifecycle: NativeEditorLifecycleError,
|
|
258
|
+
snapshot: NativeEditorSnapshotError,
|
|
259
|
+
transport: NativeEditorTransportError,
|
|
260
|
+
};
|
|
261
|
+
/** Map a normalized FFI v2 error record to its typed imperative exception. */
|
|
262
|
+
function nativeEditorV2ErrorToException(error) {
|
|
263
|
+
if (isNativeEditorV2NonRetryableCode(error.code)) {
|
|
264
|
+
return new NativeEditorNonRetryableError(error);
|
|
265
|
+
}
|
|
266
|
+
const ErrorClass = NATIVE_EDITOR_V2_DOMAIN_ERROR_CLASSES[error.domain];
|
|
267
|
+
return new ErrorClass(error);
|
|
268
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { type Selection, type NativeEditorLocalAwarenessSelection, type NativeEditorLocalAwarenessIntent, type ListContext, type RenderMarkWithAttrs, type RenderMark, type RenderElement, type RenderBlocksPatch, type ActiveState, type HistoryState, type ReadonlyActiveState, type NativeEditorAtomicRenderSnapshot, type EditorUpdate, type ContentSnapshot, type DocumentJSON, type CollaborationPeer, type CommandBlockedReason, type CommandBlockedInfo, type NativeEditorHistoryMode, type NativeEditorSnapshotMetadata, type NativeEditorRoomSnapshot, type NativeEditorInitialization, type NativeEditorCreateConfig, type NativeEditorInputRequest, type NativeEditorCommandRequest, type NativeEditorLocalApiRequest, type NativeEditorOffsetKind, type NativeEditorPositionAffinity, type NativeEditorPositionEnvelope, type NativeEditorSelectionEnvelope, type NativeEditorSelectionRequest, type NativeEditorReplaceDocumentRequest, } from './NativeEditorTypes';
|
|
2
|
+
export { _resetNativeModuleCache, type NativeEditorModule, type NativeEditorResult, } from './NativeEditorNativeModule';
|
|
3
|
+
export { normalizeNativeEditorV2Result, parseNativeEditorV2JsonValue, normalizeNativeEditorV2Bytes, normalizeNativeEditorV2Unit, normalizeNativeEditorV2DecimalId, requireNativeEditorV2U32, type NativeEditorDocumentState, type NativeEditorTransportState, type NativeEditorRenderState, type NativeEditorDocumentOrigin, type NativeEditorState, normalizeNativeEditorV2StateValue, type NativeEditorMutationOutcome, normalizeNativeEditorV2MutationOutcomeValue, type NativeEditorCommitInfo, normalizeNativeEditorV2CommitValue, normalizeNativeEditorV2ChangedValue, normalizeNativeEditorV2HtmlValue, normalizeNativeEditorV2PeersValue, unwrapNativeEditorV2Result, } from './NativeEditorResultNormalization';
|
|
4
|
+
export { validEditorMentionTheme } from './EditorMentionThemeValidation';
|
|
5
|
+
export { normalizeNativeEditorV2RenderUpdateValue, normalizeNativeEditorV2DocumentJsonValue, normalizeNativeEditorV2ContentSnapshotValue, type NativeEditorSnapshotExport, normalizeNativeEditorV2SnapshotExportValue, normalizeNativeEditorV2CreateValue, } from './NativeEditorRenderNormalization';
|
|
6
|
+
export { type NativeEditorPeerInfo, type NativeCollaborationProtocolFrame, type NativeCollaborationProtocolAdapterAction, type NativeCollaborationProtocolAdapterResult, type NativeCollaborationProtocolAdapterContext, type NativeCollaborationProtocolAdapter, type NativeCollaborationTransportConfig, type NativeCollaborationTransportDiagnostics, type NativeCollaborationTransportStateEvent, type NativeCollaborationTransportErrorEvent, type NativeCollaborationProtocolAdapterEvent, type NativeCollaborationTransportEvent, normalizeNativeCollaborationTransportEvent, } from './NativeEditorCollaborationTransport';
|
|
7
|
+
export { createNativeEditorLocalAwarenessSelection } from './NativeEditorLocalAwareness';
|
|
8
|
+
export { NativeEditorDocumentBridge } from './NativeEditorDocumentBridge';
|
|
9
|
+
export { type NativeEditorDocumentHandle, _getNativeEditorDocumentHandleDescriptor, _assertNativeEditorDocumentHandle, createNativeEditorDocumentHandle, } from './NativeEditorDocumentHandle';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNativeEditorDocumentHandle = exports._assertNativeEditorDocumentHandle = exports._getNativeEditorDocumentHandleDescriptor = exports.NativeEditorDocumentBridge = exports.createNativeEditorLocalAwarenessSelection = exports.normalizeNativeCollaborationTransportEvent = exports.normalizeNativeEditorV2CreateValue = exports.normalizeNativeEditorV2SnapshotExportValue = exports.normalizeNativeEditorV2ContentSnapshotValue = exports.normalizeNativeEditorV2DocumentJsonValue = exports.normalizeNativeEditorV2RenderUpdateValue = exports.validEditorMentionTheme = exports.unwrapNativeEditorV2Result = exports.normalizeNativeEditorV2PeersValue = exports.normalizeNativeEditorV2HtmlValue = exports.normalizeNativeEditorV2ChangedValue = exports.normalizeNativeEditorV2CommitValue = exports.normalizeNativeEditorV2MutationOutcomeValue = exports.normalizeNativeEditorV2StateValue = exports.requireNativeEditorV2U32 = exports.normalizeNativeEditorV2DecimalId = exports.normalizeNativeEditorV2Unit = exports.normalizeNativeEditorV2Bytes = exports.parseNativeEditorV2JsonValue = exports.normalizeNativeEditorV2Result = exports._resetNativeModuleCache = void 0;
|
|
4
|
+
var NativeEditorNativeModule_1 = require("./NativeEditorNativeModule");
|
|
5
|
+
Object.defineProperty(exports, "_resetNativeModuleCache", { enumerable: true, get: function () { return NativeEditorNativeModule_1._resetNativeModuleCache; } });
|
|
6
|
+
var NativeEditorResultNormalization_1 = require("./NativeEditorResultNormalization");
|
|
7
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2Result", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2Result; } });
|
|
8
|
+
Object.defineProperty(exports, "parseNativeEditorV2JsonValue", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.parseNativeEditorV2JsonValue; } });
|
|
9
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2Bytes", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2Bytes; } });
|
|
10
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2Unit", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2Unit; } });
|
|
11
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2DecimalId", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2DecimalId; } });
|
|
12
|
+
Object.defineProperty(exports, "requireNativeEditorV2U32", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.requireNativeEditorV2U32; } });
|
|
13
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2StateValue", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2StateValue; } });
|
|
14
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2MutationOutcomeValue", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2MutationOutcomeValue; } });
|
|
15
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2CommitValue", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2CommitValue; } });
|
|
16
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2ChangedValue", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2ChangedValue; } });
|
|
17
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2HtmlValue", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2HtmlValue; } });
|
|
18
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2PeersValue", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.normalizeNativeEditorV2PeersValue; } });
|
|
19
|
+
Object.defineProperty(exports, "unwrapNativeEditorV2Result", { enumerable: true, get: function () { return NativeEditorResultNormalization_1.unwrapNativeEditorV2Result; } });
|
|
20
|
+
var EditorMentionThemeValidation_1 = require("./EditorMentionThemeValidation");
|
|
21
|
+
Object.defineProperty(exports, "validEditorMentionTheme", { enumerable: true, get: function () { return EditorMentionThemeValidation_1.validEditorMentionTheme; } });
|
|
22
|
+
var NativeEditorRenderNormalization_1 = require("./NativeEditorRenderNormalization");
|
|
23
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2RenderUpdateValue", { enumerable: true, get: function () { return NativeEditorRenderNormalization_1.normalizeNativeEditorV2RenderUpdateValue; } });
|
|
24
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2DocumentJsonValue", { enumerable: true, get: function () { return NativeEditorRenderNormalization_1.normalizeNativeEditorV2DocumentJsonValue; } });
|
|
25
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2ContentSnapshotValue", { enumerable: true, get: function () { return NativeEditorRenderNormalization_1.normalizeNativeEditorV2ContentSnapshotValue; } });
|
|
26
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2SnapshotExportValue", { enumerable: true, get: function () { return NativeEditorRenderNormalization_1.normalizeNativeEditorV2SnapshotExportValue; } });
|
|
27
|
+
Object.defineProperty(exports, "normalizeNativeEditorV2CreateValue", { enumerable: true, get: function () { return NativeEditorRenderNormalization_1.normalizeNativeEditorV2CreateValue; } });
|
|
28
|
+
var NativeEditorCollaborationTransport_1 = require("./NativeEditorCollaborationTransport");
|
|
29
|
+
Object.defineProperty(exports, "normalizeNativeCollaborationTransportEvent", { enumerable: true, get: function () { return NativeEditorCollaborationTransport_1.normalizeNativeCollaborationTransportEvent; } });
|
|
30
|
+
var NativeEditorLocalAwareness_1 = require("./NativeEditorLocalAwareness");
|
|
31
|
+
Object.defineProperty(exports, "createNativeEditorLocalAwarenessSelection", { enumerable: true, get: function () { return NativeEditorLocalAwareness_1.createNativeEditorLocalAwarenessSelection; } });
|
|
32
|
+
var NativeEditorDocumentBridge_1 = require("./NativeEditorDocumentBridge");
|
|
33
|
+
Object.defineProperty(exports, "NativeEditorDocumentBridge", { enumerable: true, get: function () { return NativeEditorDocumentBridge_1.NativeEditorDocumentBridge; } });
|
|
34
|
+
var NativeEditorDocumentHandle_1 = require("./NativeEditorDocumentHandle");
|
|
35
|
+
Object.defineProperty(exports, "_getNativeEditorDocumentHandleDescriptor", { enumerable: true, get: function () { return NativeEditorDocumentHandle_1._getNativeEditorDocumentHandleDescriptor; } });
|
|
36
|
+
Object.defineProperty(exports, "_assertNativeEditorDocumentHandle", { enumerable: true, get: function () { return NativeEditorDocumentHandle_1._assertNativeEditorDocumentHandle; } });
|
|
37
|
+
Object.defineProperty(exports, "createNativeEditorDocumentHandle", { enumerable: true, get: function () { return NativeEditorDocumentHandle_1.createNativeEditorDocumentHandle; } });
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { NativeEditorErrorBase } from './NativeEditorBoundaryError';
|
|
2
|
+
import { type NativeEditorTransportState, type NativeEditorState } from './NativeEditorResultNormalization';
|
|
3
|
+
/** One peer's awareness record, as Rust currently holds it. */
|
|
4
|
+
export interface NativeEditorPeerInfo {
|
|
5
|
+
/** Yjs client identity, as a decimal string. */
|
|
6
|
+
clientId: string;
|
|
7
|
+
/** Awareness clock, advancing with each of this peer's updates. */
|
|
8
|
+
clock: number;
|
|
9
|
+
/** Whether this record describes this device. */
|
|
10
|
+
isLocal: boolean;
|
|
11
|
+
/** The peer's published application state, e.g. `{ user, focused }`. */
|
|
12
|
+
state: Record<string, unknown> | null;
|
|
13
|
+
/** The peer's caret in engine document positions, or null when it published none. */
|
|
14
|
+
cursor: {
|
|
15
|
+
anchor: number;
|
|
16
|
+
head: number;
|
|
17
|
+
} | null;
|
|
18
|
+
}
|
|
19
|
+
/** One WebSocket frame exchanged during the protocol adapter's prelude. */
|
|
20
|
+
export type NativeCollaborationProtocolFrame = {
|
|
21
|
+
type: 'text';
|
|
22
|
+
data: string;
|
|
23
|
+
} | {
|
|
24
|
+
type: 'binary';
|
|
25
|
+
data: Uint8Array;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* What the transport does next after an adapter callback:
|
|
29
|
+
*
|
|
30
|
+
* - `continue` — stay in the prelude and await the next frame.
|
|
31
|
+
* - `ready` — the prelude succeeded; release Yjs traffic.
|
|
32
|
+
* - `reject` — abandon this attempt.
|
|
33
|
+
*/
|
|
34
|
+
export type NativeCollaborationProtocolAdapterAction = 'continue' | 'ready' | 'reject';
|
|
35
|
+
/** An adapter callback's decision, plus any frames to send before it takes effect. */
|
|
36
|
+
export interface NativeCollaborationProtocolAdapterResult {
|
|
37
|
+
action: NativeCollaborationProtocolAdapterAction;
|
|
38
|
+
/** Frames sent on the socket before the action applies. */
|
|
39
|
+
frames?: readonly NativeCollaborationProtocolFrame[];
|
|
40
|
+
}
|
|
41
|
+
/** Identifies the connection attempt an adapter callback is running for. */
|
|
42
|
+
export interface NativeCollaborationProtocolAdapterContext {
|
|
43
|
+
/** Identity of this physical connection attempt. */
|
|
44
|
+
attemptId: string;
|
|
45
|
+
/** Transport generation, as a decimal string. Advances on each reconfiguration. */
|
|
46
|
+
generation: string;
|
|
47
|
+
/** Subprotocol the server selected, if any. */
|
|
48
|
+
negotiatedProtocol: string | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* An RN-owned, attempt-scoped prelude for a native-owned WebSocket.
|
|
52
|
+
*
|
|
53
|
+
* Native blocks all Yjs traffic until `onMessage` returns `ready`. Callbacks
|
|
54
|
+
* run once per native event and can read fresh credentials on every physical
|
|
55
|
+
* reconnect. Their frames and return values are never persisted by native.
|
|
56
|
+
*/
|
|
57
|
+
export interface NativeCollaborationProtocolAdapter {
|
|
58
|
+
/** WebSocket subprotocols offered during the physical handshake, in preference order. */
|
|
59
|
+
protocols: readonly string[];
|
|
60
|
+
/** Maximum time native permits the adapter to keep a physical socket pending. */
|
|
61
|
+
timeoutMillis?: number;
|
|
62
|
+
/** Close codes that park the Rust transport instead of entering automatic retry. */
|
|
63
|
+
terminalCloseCodes?: readonly number[];
|
|
64
|
+
/** Runs once when the socket opens — send credentials here. */
|
|
65
|
+
onOpen(context: NativeCollaborationProtocolAdapterContext): NativeCollaborationProtocolAdapterResult | Promise<NativeCollaborationProtocolAdapterResult>;
|
|
66
|
+
/** Runs for each frame received before the prelude returns `ready`. */
|
|
67
|
+
onMessage(context: NativeCollaborationProtocolAdapterContext, frame: NativeCollaborationProtocolFrame): NativeCollaborationProtocolAdapterResult | Promise<NativeCollaborationProtocolAdapterResult>;
|
|
68
|
+
}
|
|
69
|
+
/** Where the native transport connects, and whether it should. */
|
|
70
|
+
export interface NativeCollaborationTransportConfig {
|
|
71
|
+
/** WebSocket endpoint, `ws:` or `wss:`. Treat it as sensitive — it may carry credentials. */
|
|
72
|
+
url: string;
|
|
73
|
+
/** Whether to open the connection now. False configures the endpoint without connecting. */
|
|
74
|
+
connect: boolean;
|
|
75
|
+
/** Optional RN-owned prelude that gates the native Yjs transport. */
|
|
76
|
+
protocolAdapter?: NativeCollaborationProtocolAdapter;
|
|
77
|
+
}
|
|
78
|
+
/** Why the transport woke and what it did — diagnostic only; no contract depends on these. */
|
|
79
|
+
export interface NativeCollaborationTransportDiagnostics {
|
|
80
|
+
/** What woke the transport, e.g. a received message or an elapsed timer. */
|
|
81
|
+
wakeReason: string;
|
|
82
|
+
transportState: NativeEditorTransportState;
|
|
83
|
+
/** Decimal-string deadline for the next scheduled wake, if one is pending. */
|
|
84
|
+
nextDeadlineMillis: string | null;
|
|
85
|
+
/** Whether this wake applied a remote commit. */
|
|
86
|
+
remoteCommitApplied: boolean;
|
|
87
|
+
/** Whether the peer list changed. */
|
|
88
|
+
peersChanged: boolean;
|
|
89
|
+
/** Whether the local awareness entry was republished. */
|
|
90
|
+
renewedLocal: boolean;
|
|
91
|
+
/** Peers dropped for having gone stale. */
|
|
92
|
+
expiredPeerCount: number;
|
|
93
|
+
}
|
|
94
|
+
/** The transport advanced: new engine state, peers, and diagnostics. */
|
|
95
|
+
export interface NativeCollaborationTransportStateEvent {
|
|
96
|
+
editorId: string;
|
|
97
|
+
/** Monotonic decimal-string sequence across all events for this handle. */
|
|
98
|
+
eventSequence: string;
|
|
99
|
+
generation: string | null;
|
|
100
|
+
kind: 'state';
|
|
101
|
+
state: NativeEditorState;
|
|
102
|
+
peers: NativeEditorPeerInfo[];
|
|
103
|
+
diagnostics: NativeCollaborationTransportDiagnostics;
|
|
104
|
+
}
|
|
105
|
+
/** The transport failed. Retryable failures are followed by further state events. */
|
|
106
|
+
export interface NativeCollaborationTransportErrorEvent {
|
|
107
|
+
editorId: string;
|
|
108
|
+
eventSequence: string;
|
|
109
|
+
generation: string | null;
|
|
110
|
+
kind: 'error';
|
|
111
|
+
error: NativeEditorErrorBase;
|
|
112
|
+
}
|
|
113
|
+
/** Native is asking the configured protocol adapter to handle a prelude step. */
|
|
114
|
+
export interface NativeCollaborationProtocolAdapterEvent {
|
|
115
|
+
editorId: string;
|
|
116
|
+
eventSequence: string;
|
|
117
|
+
generation: string;
|
|
118
|
+
kind: 'protocolAdapter';
|
|
119
|
+
/** Identity of the physical connection attempt. */
|
|
120
|
+
attemptId: string;
|
|
121
|
+
/** Identity of this callback invocation; the reply must quote it. */
|
|
122
|
+
eventId: string;
|
|
123
|
+
negotiatedProtocol: string | null;
|
|
124
|
+
/** Which adapter callback this event corresponds to. */
|
|
125
|
+
phase: 'open' | 'message';
|
|
126
|
+
/** The received frame, present when `phase` is `'message'`. */
|
|
127
|
+
frame?: NativeCollaborationProtocolFrame;
|
|
128
|
+
}
|
|
129
|
+
/** Any event emitted to a `NativeEditorDocumentHandle` transport listener. */
|
|
130
|
+
export type NativeCollaborationTransportEvent = NativeCollaborationTransportStateEvent | NativeCollaborationTransportErrorEvent | NativeCollaborationProtocolAdapterEvent;
|
|
131
|
+
export interface NativeCollaborationProtocolAdapterDescriptor {
|
|
132
|
+
protocols: string[];
|
|
133
|
+
timeoutMillis?: number;
|
|
134
|
+
terminalCloseCodes?: number[];
|
|
135
|
+
}
|
|
136
|
+
export interface NativeCollaborationTransportWireConfig {
|
|
137
|
+
url: string;
|
|
138
|
+
connect: boolean;
|
|
139
|
+
protocolAdapter?: NativeCollaborationProtocolAdapterDescriptor;
|
|
140
|
+
}
|
|
141
|
+
export declare const COLLABORATION_PROTOCOL_TOKEN: RegExp;
|
|
142
|
+
export declare const MAX_COLLABORATION_PROTOCOLS = 16;
|
|
143
|
+
export declare const MAX_COLLABORATION_PROTOCOL_BYTES = 128;
|
|
144
|
+
export declare const MAX_COLLABORATION_ADAPTER_TIMEOUT_MILLIS = 60000;
|
|
145
|
+
export declare const MAX_COLLABORATION_ADAPTER_FRAMES = 16;
|
|
146
|
+
export declare const MAX_COLLABORATION_ADAPTER_FRAME_BYTES: number;
|
|
147
|
+
export declare function collaborationProtocolAdapterDescriptor(value: NativeCollaborationProtocolAdapter): NativeCollaborationProtocolAdapterDescriptor;
|
|
148
|
+
export declare function collaborationTransportWireConfig(config: NativeCollaborationTransportConfig): NativeCollaborationTransportWireConfig;
|
|
149
|
+
export declare function serializeCollaborationProtocolAdapterResult(value: NativeCollaborationProtocolAdapterResult): string;
|
|
150
|
+
export declare function normalizeNativeCollaborationTransportDiagnostics(value: unknown): NativeCollaborationTransportDiagnostics | null;
|
|
151
|
+
export declare const BASE64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
152
|
+
export declare function encodeNativeCollaborationProtocolBytes(bytes: Uint8Array): string;
|
|
153
|
+
export declare function decodeNativeCollaborationProtocolBytes(value: string): Uint8Array | null;
|
|
154
|
+
export declare function normalizeNativeCollaborationTransportEvent(value: unknown): NativeCollaborationTransportEvent | null;
|