Skip to content

Commit edc0753

Browse files
committed
Release 4.0.0
1 parent ae6edea commit edc0753

File tree

184 files changed

+10453
-3304
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

184 files changed

+10453
-3304
lines changed

.buckconfig

Lines changed: 0 additions & 6 deletions
This file was deleted.

.flowconfig

Lines changed: 0 additions & 45 deletions
This file was deleted.

.git-blame-ignore-revs

Lines changed: 0 additions & 4 deletions
This file was deleted.

.rubocop.yml

Lines changed: 0 additions & 4 deletions
This file was deleted.

ACKNOWLEDGEMENTS.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4167,6 +4167,32 @@ Apache License
41674167
limitations under the License.
41684168

41694169

4170+
--------------------------------------------------------------------------------
4171+
sqlite-vec — https://github.com/asg017/sqlite-vec
4172+
4173+
MIT License
4174+
4175+
Copyright (c) 2023 Alex Garcia
4176+
4177+
Permission is hereby granted, free of charge, to any person obtaining a copy
4178+
of this software and associated documentation files (the "Software"), to deal
4179+
in the Software without restriction, including without limitation the rights
4180+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
4181+
copies of the Software, and to permit persons to whom the Software is
4182+
furnished to do so, subject to the following conditions:
4183+
4184+
The above copyright notice and this permission notice shall be included in all
4185+
copies or substantial portions of the Software.
4186+
4187+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4188+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4189+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4190+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4191+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4192+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4193+
SOFTWARE.
4194+
4195+
41704196
--------------------------------------------------------------------------------
41714197
## SQLite (https://www.sqlite.org/)
41724198

CHANGELOG.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
## 3.2.0 - 20 Oct 2025
1+
## 4.0.0 — 20 Nov 2025
2+
3+
- Adds support for React Native’s new architecture. (J#HYB-847)
4+
- Updates the `onDocumentLoadFailed` and `DocumentEvent.LOAD_FAILED` events to include a reason code and message. (J#HYB-903)
5+
6+
## 3.2.0 — 20 Oct 2025
27

38
- Adds the page size to the existing `getPageInfo` API call. (J#HYB-888)
49
- Adds the `androidEnableStylusOnDetection` option to the `PDFConfiguration` object to control stylus detection on Android. (J#HYB-893)
5-
- Updates related to Nutrient Android SDK 10.7.0.
6-
- Updates related to Nutrient iOS SDK 26.1.0.
10+
- Updates for Nutrient Android SDK 10.7.0.
11+
- Updates for Nutrient iOS SDK 26.1.0.
712
- Fixes image annotations being incorrectly placed when added on pages with a rotation or crop box. (J#IOS-767)
813
- Fixes an issue where the `presentInstant` API call would never resolve its promise on iOS. (J#HYB-894)
9-
- Fixes an issue where the `onDocumentLoadFailed` callback wasn`t triggered for invalid documents on iOS. (J#HYB-885)
14+
- Fixes an issue where the `onDocumentLoadFailed` callback wasnt triggered for invalid documents on iOS. (J#HYB-885)
1015

1116
## 3.1.1 - 19 Sep 2025
1217

PROJECT_CONTEXT.md

Lines changed: 0 additions & 64 deletions
This file was deleted.

__mocks__/react-native.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
module.exports = {
2+
Platform: { OS: 'ios' },
3+
UIManager: {
4+
getViewManagerConfig: () => ({ Commands: {} }),
5+
dispatchViewManagerCommand: jest.fn(),
6+
},
7+
NativeModules: {
8+
PDFDocumentManager: {
9+
getPageCount: jest.fn().mockResolvedValue(10),
10+
getDocumentId: jest.fn().mockResolvedValue('doc-id'),
11+
},
12+
PSPDFKitViewManager: {},
13+
Nutrient: {
14+
handleListenerAdded: jest.fn(),
15+
handleListenerRemoved: jest.fn(),
16+
},
17+
},
18+
findNodeHandle: jest.fn(() => 1011),
19+
requireNativeComponent: jest.fn((name) => {
20+
// Return a simple mock function (no React needed for remaining tests)
21+
return jest.fn(() => null);
22+
}),
23+
TurboModuleRegistry: {
24+
getEnforcing: jest.fn((name) => {
25+
// Return a mock TurboModule
26+
return {
27+
enterAnnotationCreationMode: jest.fn().mockResolvedValue(true),
28+
exitCurrentlyActiveMode: jest.fn().mockResolvedValue(true),
29+
saveCurrentDocument: jest.fn().mockResolvedValue(true),
30+
setToolbar: jest.fn(),
31+
getToolbar: jest.fn().mockResolvedValue({}),
32+
clearSelectedAnnotations: jest.fn().mockResolvedValue(true),
33+
selectAnnotations: jest.fn().mockResolvedValue(true),
34+
setPageIndex: jest.fn().mockResolvedValue(true),
35+
setMeasurementValueConfigurations: jest.fn().mockResolvedValue(true),
36+
getMeasurementValueConfigurations: jest.fn().mockResolvedValue([]),
37+
getConfiguration: jest.fn().mockResolvedValue({}),
38+
setExcludedAnnotations: jest.fn(),
39+
destroyView: jest.fn(),
40+
};
41+
}),
42+
},
43+
};
44+

__mocks__/react.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Mock React for tests that import index.js
2+
module.exports = {
3+
Component: class Component {},
4+
createRef: jest.fn(() => ({ current: null })),
5+
createElement: jest.fn((type, props, ...children) => {
6+
return { type, props, children };
7+
}),
8+
forwardRef: jest.fn((fn) => fn),
9+
useMemo: jest.fn((fn) => fn()),
10+
useImperativeHandle: jest.fn(),
11+
};
12+

__mocks__/react/jsx-runtime.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// Mock react/jsx-runtime for JSX transform
2+
module.exports = {
3+
jsx: jest.fn((type, props, key) => ({ type, props, key })),
4+
jsxs: jest.fn((type, props, key) => ({ type, props, key })),
5+
Fragment: Symbol.for('react.fragment'),
6+
};
7+

0 commit comments

Comments
 (0)