@reekon-tools/react-native-pdf-canvas 0.1.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/PdfCanvas.podspec +80 -0
- package/README.md +1391 -0
- package/android/build.gradle +175 -0
- package/android/consumer-rules.pro +3 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +7 -0
- package/android/gradle.properties +2 -0
- package/android/gradlew +248 -0
- package/android/gradlew.bat +98 -0
- package/android/settings.gradle +34 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasCancellationTest.java +226 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasConcurrencyTest.java +239 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasDeviceTimingTest.java +251 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasFailureTest.java +221 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasJsiTransportTest.java +783 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasPhaseTimingTest.java +1388 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasPoisonGuardTest.java +98 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasQuirksTest.java +324 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PdfCanvasRasterizerTest.java +775 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/PoisonsTheProcess.java +20 -0
- package/android/src/androidTest/java/tools/reekon/pdfcanvas/TestPdfs.java +558 -0
- package/android/src/jsi/cpp/CMakeLists.txt +33 -0
- package/android/src/jsi/cpp/pdfcanvas-jsi.cpp +469 -0
- package/android/src/jsi/java/tools/reekon/pdfcanvas/jsi/PdfCanvasPixelBridge.java +140 -0
- package/android/src/main/AndroidManifest.xml +7 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/PageGeometry.java +45 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/PdfCanvasRasterizer.java +564 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/PdfErrorCode.java +33 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/PdfPlatformQuirks.java +277 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/PdfPreflight.java +214 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/PdfRasterException.java +30 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/PdfRendererPool.java +234 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/RasterCancellation.java +47 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/RasterPixels.java +143 -0
- package/android/src/main/java/tools/reekon/pdfcanvas/RasterRequest.java +95 -0
- package/android/src/reactnative/java/tools/reekon/pdfcanvas/rn/PdfCanvasModule.java +626 -0
- package/android/src/reactnative/java/tools/reekon/pdfcanvas/rn/PdfCanvasPackage.java +33 -0
- package/android/tools/compile-gate.sh +289 -0
- package/dist/cache.d.ts +161 -0
- package/dist/cache.js +389 -0
- package/dist/clock.d.ts +21 -0
- package/dist/clock.js +31 -0
- package/dist/controller.d.ts +131 -0
- package/dist/controller.js +1002 -0
- package/dist/geometry.d.ts +96 -0
- package/dist/geometry.js +248 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.js +50 -0
- package/dist/index.native.d.ts +21 -0
- package/dist/index.native.js +23 -0
- package/dist/index.web.d.ts +24 -0
- package/dist/index.web.js +26 -0
- package/dist/layout.d.ts +78 -0
- package/dist/layout.js +152 -0
- package/dist/peer-check.d.ts +83 -0
- package/dist/peer-check.js +183 -0
- package/dist/planner.d.ts +35 -0
- package/dist/planner.js +530 -0
- package/dist/policy.d.ts +14 -0
- package/dist/policy.js +168 -0
- package/dist/rasterizer/android.d.ts +121 -0
- package/dist/rasterizer/android.js +126 -0
- package/dist/rasterizer/buffer.d.ts +18 -0
- package/dist/rasterizer/buffer.js +18 -0
- package/dist/rasterizer/fake.d.ts +92 -0
- package/dist/rasterizer/fake.js +433 -0
- package/dist/rasterizer/index.d.ts +38 -0
- package/dist/rasterizer/index.js +69 -0
- package/dist/rasterizer/index.native.d.ts +19 -0
- package/dist/rasterizer/index.native.js +80 -0
- package/dist/rasterizer/index.web.d.ts +63 -0
- package/dist/rasterizer/index.web.js +75 -0
- package/dist/rasterizer/ingest.d.ts +180 -0
- package/dist/rasterizer/ingest.js +307 -0
- package/dist/rasterizer/ios.d.ts +84 -0
- package/dist/rasterizer/ios.js +155 -0
- package/dist/rasterizer/native-bridge.d.ts +261 -0
- package/dist/rasterizer/native-bridge.js +413 -0
- package/dist/rasterizer/web/client.d.ts +84 -0
- package/dist/rasterizer/web/client.js +359 -0
- package/dist/rasterizer/web/engine.d.ts +69 -0
- package/dist/rasterizer/web/engine.js +308 -0
- package/dist/rasterizer/web/index.d.ts +26 -0
- package/dist/rasterizer/web/index.js +21 -0
- package/dist/rasterizer/web/pdfium.d.ts +213 -0
- package/dist/rasterizer/web/pdfium.js +170 -0
- package/dist/rasterizer/web/protocol.d.ts +138 -0
- package/dist/rasterizer/web/protocol.js +37 -0
- package/dist/rasterizer/web/session.d.ts +106 -0
- package/dist/rasterizer/web/session.js +413 -0
- package/dist/rasterizer/web/worker.d.ts +44 -0
- package/dist/rasterizer/web/worker.js +76 -0
- package/dist/react/PdfContentView.d.ts +98 -0
- package/dist/react/PdfContentView.js +189 -0
- package/dist/react/index.d.ts +6 -0
- package/dist/react/index.js +3 -0
- package/dist/react/usePdfDocument.d.ts +134 -0
- package/dist/react/usePdfDocument.js +275 -0
- package/dist/react/usePdfLayer.d.ts +94 -0
- package/dist/react/usePdfLayer.js +388 -0
- package/dist/skia/index.d.ts +26 -0
- package/dist/skia/index.js +25 -0
- package/dist/skia/index.native.d.ts +14 -0
- package/dist/skia/index.native.js +16 -0
- package/dist/skia/index.web.d.ts +12 -0
- package/dist/skia/index.web.js +14 -0
- package/dist/skia/resolve.native.d.ts +18 -0
- package/dist/skia/resolve.native.js +22 -0
- package/dist/skia/resolve.web.d.ts +41 -0
- package/dist/skia/resolve.web.js +62 -0
- package/dist/skia/skia-api.d.ts +94 -0
- package/dist/skia/skia-api.js +113 -0
- package/dist/testing/index.d.ts +27 -0
- package/dist/testing/index.js +28 -0
- package/dist/testing/scenes.d.ts +100 -0
- package/dist/testing/scenes.js +267 -0
- package/dist/types.d.ts +611 -0
- package/dist/types.js +21 -0
- package/dist/web-init.d.ts +68 -0
- package/dist/web-init.js +64 -0
- package/ios/Package.swift +58 -0
- package/ios/Sources/PdfCanvasBridge/PdfCanvasModule.mm +743 -0
- package/ios/Sources/PdfCanvasBridge/include/PdfCanvasModule.h +36 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasCancellation.m +38 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasDocumentPool.m +389 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasErrorCode.m +57 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasPageGeometry.m +44 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasPageTransform.m +82 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasPixelSink.m +37 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasPreflight.m +158 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasRasterPixels.m +80 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasRasterRequest.m +65 -0
- package/ios/Sources/PdfCanvasCore/PdfCanvasRasterizer.m +548 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasCancellation.h +48 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasCore.h +26 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasDocumentPool.h +122 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasErrorCode.h +80 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasPageGeometry.h +79 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasPageTransform.h +129 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasPixelSink.h +100 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasPreflight.h +65 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasRasterPixels.h +111 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasRasterRequest.h +85 -0
- package/ios/Sources/PdfCanvasCore/include/PdfCanvasRasterizer.h +163 -0
- package/ios/Sources/PdfCanvasSlots/PdfCanvasSlots.mm +297 -0
- package/ios/Sources/PdfCanvasSlots/include/PdfCanvasSlots.h +140 -0
- package/ios/Tests/PdfCanvasCoreTests/ConcurrencyTests.swift +358 -0
- package/ios/Tests/PdfCanvasCoreTests/FailureTests.swift +262 -0
- package/ios/Tests/PdfCanvasCoreTests/GeometryTests.swift +173 -0
- package/ios/Tests/PdfCanvasCoreTests/PreviewTests.swift +114 -0
- package/ios/Tests/PdfCanvasCoreTests/RasterAssertions.swift +158 -0
- package/ios/Tests/PdfCanvasCoreTests/RasterizerTests.swift +544 -0
- package/ios/Tests/PdfCanvasCoreTests/SinkTests.swift +287 -0
- package/ios/Tests/PdfCanvasCoreTests/SlotsTests.swift +396 -0
- package/ios/Tests/PdfCanvasCoreTests/TestPdfs.swift +639 -0
- package/ios/Tests/PdfCanvasCoreTests/TimingTests.swift +179 -0
- package/ios/Tests/PdfCanvasCoreTests/TransformTests.swift +283 -0
- package/package.json +144 -0
- package/react-native.config.js +40 -0
- package/scripts/check-skia-peer.mjs +86 -0
- package/scripts/skia-peer-check.mjs +363 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
|
|
5
|
+
# The pod is named `PdfCanvas`, matching the JS-side native module name, so
|
|
6
|
+
# `NativeModules.PdfCanvas`, `RCT_EXPORT_MODULE(PdfCanvas)`, the Android
|
|
7
|
+
# `PdfCanvasModule.NAME` and the line in `Podfile.lock` are all the same word. A
|
|
8
|
+
# `pod install` that does not print it means autolinking never saw this file — see
|
|
9
|
+
# `react-native.config.js`, which names it explicitly for the same reason the
|
|
10
|
+
# Android entry names its `packageImportPath`.
|
|
11
|
+
Pod::Spec.new do |s|
|
|
12
|
+
s.name = "PdfCanvas"
|
|
13
|
+
s.version = package["version"]
|
|
14
|
+
s.summary = package["description"]
|
|
15
|
+
s.description = <<-DESC
|
|
16
|
+
The iOS rasterizer for @reekon-tools/react-native-pdf-canvas: PDF pages as
|
|
17
|
+
RGBA bytes at exact doc-space rects, through CoreGraphics for tiles and PDFKit
|
|
18
|
+
where annotations have to be composited.
|
|
19
|
+
DESC
|
|
20
|
+
s.homepage = "https://gitlab.com/reekon-tools/software/rock-pro/react-native-pdf-canvas"
|
|
21
|
+
s.license = { :type => "MIT" }
|
|
22
|
+
s.authors = { "REEKON Tools" => "hello@reekon.tools" }
|
|
23
|
+
s.source = { :git => "https://gitlab.com/reekon-tools/software/rock-pro/react-native-pdf-canvas.git", :tag => "#{s.version}" }
|
|
24
|
+
|
|
25
|
+
# 13.0 rather than the app's 16.4. Nothing here needs anything newer:
|
|
26
|
+
# `CGPDFDocument`, `CGBitmapContext` and `PDFKit` on iOS all predate it, and
|
|
27
|
+
# `-[NSFileHandle readDataUpToLength:error:]` — the newest API touched — is 13.0.
|
|
28
|
+
# `ios/Package.swift` declares the same floor, so the host-machine build and the
|
|
29
|
+
# pod build agree about what is reachable.
|
|
30
|
+
s.platforms = { :ios => "13.0" }
|
|
31
|
+
s.requires_arc = true
|
|
32
|
+
|
|
33
|
+
# PDFKit and CoreGraphics are the whole dependency list. Note what is NOT here:
|
|
34
|
+
# UIKit. `PdfCanvasCore` is compiled for macOS by `ios/Package.swift` so that
|
|
35
|
+
# `swift test` can prove it on a laptop, and a UIKit import would break that
|
|
36
|
+
# build — which is exactly when it should break.
|
|
37
|
+
s.frameworks = "PDFKit", "CoreGraphics", "CoreFoundation"
|
|
38
|
+
|
|
39
|
+
# THREE TARGETS' WORTH OF SOURCE, ONE POD, mirroring the three source sets
|
|
40
|
+
# `android/build.gradle` splits with its `standalone` flag:
|
|
41
|
+
#
|
|
42
|
+
# PdfCanvasCore — the React-free rasterizer. Also a SwiftPM target.
|
|
43
|
+
# PdfCanvasSlots — the raster transport's storage. Also a SwiftPM target,
|
|
44
|
+
# because it guards `<jsi/jsi.h>` with `__has_include`; this
|
|
45
|
+
# build is the one where that header IS present, so the host
|
|
46
|
+
# function is compiled in.
|
|
47
|
+
# PdfCanvasBridge — the React binding. Only ever built here: it needs
|
|
48
|
+
# `<React/RCTBridgeModule.h>` and
|
|
49
|
+
# `<ReactCommon/RCTInteropTurboModule.h>`.
|
|
50
|
+
s.source_files = "ios/Sources/**/*.{h,m,mm}"
|
|
51
|
+
|
|
52
|
+
# Both `include` directories, so `#import <PdfCanvasRasterizer.h>` resolves from
|
|
53
|
+
# the bridge and `#import "PdfCanvasSlots.h"` resolves from itself. Angle-bracket
|
|
54
|
+
# imports of a pod's own headers are what survives `use_frameworks!`, which this
|
|
55
|
+
# package's first consumer uses (`ios.useFrameworks: static`).
|
|
56
|
+
s.pod_target_xcconfig = {
|
|
57
|
+
"HEADER_SEARCH_PATHS" => [
|
|
58
|
+
'"$(PODS_TARGET_SRCROOT)/ios/Sources/PdfCanvasCore/include"',
|
|
59
|
+
'"$(PODS_TARGET_SRCROOT)/ios/Sources/PdfCanvasSlots/include"',
|
|
60
|
+
'"$(PODS_TARGET_SRCROOT)/ios/Sources/PdfCanvasBridge/include"',
|
|
61
|
+
].join(" "),
|
|
62
|
+
# C++17 is the floor `<jsi/jsi.h>` needs; the React Native podspecs in the
|
|
63
|
+
# same install compile at 20, and `install_modules_dependencies` below raises
|
|
64
|
+
# this to match when it is available.
|
|
65
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
|
|
66
|
+
"DEFINES_MODULE" => "YES",
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
# `install_modules_dependencies` is React Native's own helper (react_native_pods.rb).
|
|
70
|
+
# It adds React-Core, React-jsi, ReactCommon/turbomodule and the rest, and sets
|
|
71
|
+
# the new-architecture compiler flags — so the pod tracks whatever the host's RN
|
|
72
|
+
# version wants rather than restating a dependency list that would go stale. The
|
|
73
|
+
# `defined?` guard is what every RN library ships: it lets `pod lib lint` and any
|
|
74
|
+
# non-RN install still evaluate the podspec.
|
|
75
|
+
if defined?(install_modules_dependencies) != nil
|
|
76
|
+
install_modules_dependencies(s)
|
|
77
|
+
else
|
|
78
|
+
s.dependency "React-Core"
|
|
79
|
+
end
|
|
80
|
+
end
|