From d4a1c5ab3d04514acf1bf9c71e2ac95308858d5b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 25 May 2026 19:45:35 +0000 Subject: [PATCH] fix(module): rename to /v2 import path for semantic import versioning v2.0.0 was tagged with the v1-style module path 'github.com/benedoc-inc/pdfer', so the Go proxy rejects it with "module path must match major version". Rename go.mod to 'github.com/benedoc-inc/pdfer/v2' and rewrite all internal imports, README badges, install commands, and the modulePath constant used by Version(). Add a semantic-import-versioning guard to release.yml that refuses to tag vN.x.x (N>=2) when go.mod's module path doesn't end in /vN, and refuses v1.x.x when it does. This prevents repeating the broken-release situation. The orphaned v2.0.0 tag and release will be removed separately before re-cutting v2.0.0 from this commit. --- .github/workflows/release.yml | 28 ++++++++++++++++++++++ CLAUDE.md | 2 +- README.md | 12 +++++----- api.go | 16 ++++++------- attach.go | 2 +- cmd/pdfer/main.go | 6 ++--- content/extract/annotations.go | 4 ++-- content/extract/annotations_test.go | 4 ++-- content/extract/benchmark_test.go | 2 +- content/extract/bookmarks.go | 4 ++-- content/extract/content_extraction_test.go | 4 ++-- content/extract/content_stream.go | 2 +- content/extract/directory.go | 4 ++-- content/extract/extract.go | 4 ++-- content/extract/extract_from_disk_test.go | 2 +- content/extract/extract_test.go | 2 +- content/extract/images.go | 4 ++-- content/extract/images_test.go | 4 ++-- content/extract/layout.go | 2 +- content/extract/metadata.go | 4 ++-- content/extract/metadata_api.go | 4 ++-- content/extract/pages.go | 4 ++-- content/extract/resources.go | 4 ++-- content/extract/resources_test.go | 2 +- content/extract/semantic.go | 2 +- content/extract/semantic_test.go | 4 ++-- content/extract/tables.go | 2 +- content/extract/test_helpers.go | 6 ++--- content/extract/text_extraction_test.go | 2 +- core/compare/compare.go | 6 ++--- core/compare/compare_moved_test.go | 2 +- core/compare/compare_options_test.go | 2 +- core/compare/compare_test.go | 2 +- core/compare/form_test.go | 4 ++-- core/compare/granularity_test.go | 2 +- core/compare/myers_diff.go | 2 +- core/compare/myers_diff_test.go | 4 ++-- core/compare/report_test.go | 2 +- core/compare/text_diff.go | 2 +- core/encrypt/decrypt.go | 2 +- core/encrypt/decrypt_test.go | 2 +- core/encrypt/encrypt.go | 2 +- core/encrypt/encrypt_test.go | 6 ++--- core/encrypt/key_derivation.go | 2 +- core/encrypt/key_derivation_test.go | 2 +- core/encrypt/key_derivation_v5_test.go | 2 +- core/encrypt/parser.go | 2 +- core/encrypt/strings.go | 2 +- core/manipulate/decrypt_pdf.go | 4 ++-- core/manipulate/decrypt_pdf_test.go | 4 ++-- core/manipulate/deletion_test.go | 4 ++-- core/manipulate/encrypt_pdf.go | 6 ++--- core/manipulate/encrypt_pdf_test.go | 6 ++--- core/manipulate/extraction.go | 2 +- core/manipulate/image_replace_test.go | 2 +- core/manipulate/linearize.go | 4 ++-- core/manipulate/manipulate.go | 6 ++--- core/manipulate/manipulation_test.go | 4 ++-- core/manipulate/merging.go | 4 ++-- core/manipulate/pdfa_convert.go | 2 +- core/manipulate/pdfa_convert_test.go | 2 +- core/manipulate/redact.go | 2 +- core/manipulate/redact_test.go | 4 ++-- core/manipulate/repair_test.go | 4 ++-- core/manipulate/rotation_test.go | 4 ++-- core/manipulate/stamp_test.go | 4 ++-- core/parse/api.go | 4 ++-- core/parse/get_object.go | 4 ++-- core/parse/object_stream.go | 4 ++-- core/parse/parser.go | 2 +- core/parse/xfa_parser.go | 2 +- core/parse/xref_stream.go | 2 +- core/sign/appearance_test.go | 2 +- core/sign/ltv.go | 2 +- core/sign/sign.go | 2 +- core/sign/sign_test.go | 4 ++-- core/sign/tsa_ltv_test.go | 2 +- core/write/annotations_test.go | 4 ++-- core/write/bookmarks.go | 2 +- core/write/bookmarks_test.go | 4 ++-- core/write/encryption_v5.go | 2 +- core/write/encryption_v5_test.go | 6 ++--- core/write/metadata.go | 2 +- core/write/metadata_test.go | 2 +- core/write/object_stream_test.go | 2 +- core/write/page.go | 6 ++--- core/write/pdfa_fix.go | 2 +- core/write/pdfa_test.go | 2 +- core/write/pdfa_validate.go | 2 +- core/write/table_test.go | 2 +- core/write/watermark_test.go | 2 +- core/write/writer.go | 2 +- core/write/xfa_builder.go | 4 ++-- core/write/xref_stream_test.go | 4 ++-- examples/acroform_create/main.go | 4 ++-- examples/acroform_extract/main.go | 2 +- examples/acroform_fill/main.go | 4 ++-- examples/create_pdf/main.go | 2 +- examples/extract_xfa/main.go | 6 ++--- examples/font_embedding/main.go | 4 ++-- examples/kitchen_sink/main.go | 8 +++---- examples/sign_pdf/main.go | 8 +++---- forms/acroform/actions.go | 2 +- forms/acroform/appearance.go | 2 +- forms/acroform/btn_fill_test.go | 4 ++-- forms/acroform/comprehensive_test.go | 4 ++-- forms/acroform/create_test.go | 8 +++---- forms/acroform/extract.go | 4 ++-- forms/acroform/fill.go | 2 +- forms/acroform/fill_streams.go | 4 ++-- forms/acroform/fill_streams_test.go | 4 ++-- forms/acroform/flatten.go | 4 ++-- forms/acroform/flatten_test.go | 6 ++--- forms/acroform/incremental.go | 4 ++-- forms/acroform/integration.go | 4 ++-- forms/acroform/parser.go | 4 ++-- forms/acroform/replace.go | 4 ++-- forms/acroform/stream_finder.go | 4 ++-- forms/acroform/stream_rebuild.go | 6 ++--- forms/acroform/validation.go | 2 +- forms/acroform/validation_test.go | 2 +- forms/acroform/writer.go | 2 +- forms/acroform/writer_test.go | 2 +- forms/forms.go | 10 ++++---- forms/xfa/parse_then_decrypt.go | 4 ++-- forms/xfa/stream.go | 4 ++-- forms/xfa/xfa.go | 6 ++--- forms/xfa/xfa_config_translator.go | 2 +- forms/xfa/xfa_connection_translator.go | 2 +- forms/xfa/xfa_datasets_translator.go | 2 +- forms/xfa/xfa_form_translator.go | 2 +- forms/xfa/xfa_locale_translator.go | 2 +- forms/xfa/xfa_script_extraction_test.go | 2 +- forms/xfa/xfa_stylesheet_translator.go | 2 +- forms/xfa/xfa_test.go | 4 ++-- forms/xfa/xfa_translator_test.go | 2 +- forms/xfa/xfa_utils.go | 6 ++--- go.mod | 2 +- pdfer.go | 6 ++--- tests/e2e_aes256_test.go | 6 ++--- tests/e2e_test.go | 8 +++---- tests/estar_test.go | 4 ++-- tests/fda_3881_test.go | 6 ++--- tests/pdf_writer_test.go | 8 +++---- tests/scripts/create_test_pdfs.go | 4 ++-- tests/xfa_roundtrip_test.go | 6 ++--- 146 files changed, 292 insertions(+), 264 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84775b7..3679255 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -40,6 +40,34 @@ jobs: exit 1 fi + - name: Enforce semantic import versioning + run: | + VERSION="${{ inputs.version }}" + MAJOR="${VERSION#v}" + MAJOR="${MAJOR%%.*}" + MODULE_PATH=$(awk '/^module / {print $2; exit}' go.mod) + if [ "$MAJOR" -ge 2 ]; then + EXPECTED_SUFFIX="/v${MAJOR}" + case "$MODULE_PATH" in + *"$EXPECTED_SUFFIX") + ;; + *) + echo "ERROR: releasing $VERSION but go.mod module path is '$MODULE_PATH'." + echo "Go's semantic import versioning requires the path to end in '$EXPECTED_SUFFIX' for major version $MAJOR." + echo "Update go.mod and rewrite internal imports before releasing." + exit 1 + ;; + esac + else + case "$MODULE_PATH" in + */v[0-9]*) + echo "ERROR: releasing $VERSION but go.mod module path '$MODULE_PATH' has a /vN suffix." + echo "Only major versions >= 2 should carry a /vN suffix." + exit 1 + ;; + esac + fi + - uses: actions/setup-go@v5 with: go-version: '1.22' diff --git a/CLAUDE.md b/CLAUDE.md index a69b91e..4a8c9ee 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -56,7 +56,7 @@ pdfer is a pure Go PDF library with zero external dependencies. The codebase fol Most operations are available directly from the root package: ```go -import "github.com/benedoc-inc/pdfer" +import "github.com/benedoc-inc/pdfer/v2" // Encrypt / decrypt out, err := pdfer.EncryptPDF(pdfBytes, []byte("password"), nil, false) diff --git a/README.md b/README.md index ac0c7f0..fe9aa44 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,19 @@ Pure Go PDF processing library — zero CGO, zero external dependencies. -[![Go Reference](https://pkg.go.dev/badge/github.com/benedoc-inc/pdfer.svg)](https://pkg.go.dev/github.com/benedoc-inc/pdfer) -[![Go Report Card](https://goreportcard.com/badge/github.com/benedoc-inc/pdfer)](https://goreportcard.com/report/github.com/benedoc-inc/pdfer) +[![Go Reference](https://pkg.go.dev/badge/github.com/benedoc-inc/pdfer/v2.svg)](https://pkg.go.dev/github.com/benedoc-inc/pdfer/v2) +[![Go Report Card](https://goreportcard.com/badge/github.com/benedoc-inc/pdfer/v2)](https://goreportcard.com/report/github.com/benedoc-inc/pdfer/v2) ## Installation ```bash -go get github.com/benedoc-inc/pdfer +go get github.com/benedoc-inc/pdfer/v2 ``` ## Quick start ```go -import "github.com/benedoc-inc/pdfer" +import "github.com/benedoc-inc/pdfer/v2" // Merge two PDFs out, err := pdfer.MergePDFs([][]byte{a, b}, nil, false) @@ -248,7 +248,7 @@ if !vr.Conformant { ## Creating PDFs from scratch ```go -import "github.com/benedoc-inc/pdfer/core/write" +import "github.com/benedoc-inc/pdfer/v2/core/write" builder := write.NewSimplePDFBuilder() page := builder.AddPage(write.PageSizeLetter) @@ -308,7 +308,7 @@ layout.BalanceColumns() // align cursors to the lowest column ## Parsing PDFs directly ```go -import "github.com/benedoc-inc/pdfer/core/parse" +import "github.com/benedoc-inc/pdfer/v2/core/parse" pdf, err := parse.OpenWithOptions(pdfBytes, parse.ParseOptions{ Password: []byte("secret"), diff --git a/api.go b/api.go index eb818f2..41c705a 100644 --- a/api.go +++ b/api.go @@ -1,14 +1,14 @@ package pdfer import ( - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/compare" - "github.com/benedoc-inc/pdfer/core/manipulate" - "github.com/benedoc-inc/pdfer/core/sign" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms" - "github.com/benedoc-inc/pdfer/forms/acroform" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/compare" + "github.com/benedoc-inc/pdfer/v2/core/manipulate" + "github.com/benedoc-inc/pdfer/v2/core/sign" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/types" ) // --- Type aliases ----------------------------------------------------------- diff --git a/attach.go b/attach.go index 46334e4..0b9a86b 100644 --- a/attach.go +++ b/attach.go @@ -9,7 +9,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) // FileAttachment holds a file to be embedded in the exported PDF. diff --git a/cmd/pdfer/main.go b/cmd/pdfer/main.go index e24f3d5..688dddb 100644 --- a/cmd/pdfer/main.go +++ b/cmd/pdfer/main.go @@ -11,9 +11,9 @@ import ( "log" "os" - encrypt "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/forms/xfa" - "github.com/benedoc-inc/pdfer/types" + encrypt "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/forms/xfa" + "github.com/benedoc-inc/pdfer/v2/types" ) func main() { diff --git a/content/extract/annotations.go b/content/extract/annotations.go index 94b9046..e201a40 100644 --- a/content/extract/annotations.go +++ b/content/extract/annotations.go @@ -5,8 +5,8 @@ import ( "regexp" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) var uriInActionPattern = regexp.MustCompile(`/URI\s*\(([^)]*)\)`) diff --git a/content/extract/annotations_test.go b/content/extract/annotations_test.go index 963ff24..2444b8c 100644 --- a/content/extract/annotations_test.go +++ b/content/extract/annotations_test.go @@ -3,8 +3,8 @@ package extract import ( "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestExtractAnnotations_Link(t *testing.T) { diff --git a/content/extract/benchmark_test.go b/content/extract/benchmark_test.go index 533b13e..70ecdb9 100644 --- a/content/extract/benchmark_test.go +++ b/content/extract/benchmark_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) const benchmarkDir = "../../tests/resources/benchmark" diff --git a/content/extract/bookmarks.go b/content/extract/bookmarks.go index ade6f82..62c1798 100644 --- a/content/extract/bookmarks.go +++ b/content/extract/bookmarks.go @@ -1,8 +1,8 @@ package extract import ( - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // ExtractBookmarks extracts bookmarks/outlines from a PDF diff --git a/content/extract/content_extraction_test.go b/content/extract/content_extraction_test.go index 33150bf..462607f 100644 --- a/content/extract/content_extraction_test.go +++ b/content/extract/content_extraction_test.go @@ -5,8 +5,8 @@ import ( "path/filepath" "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestExtractText_TjOperator(t *testing.T) { diff --git a/content/extract/content_stream.go b/content/extract/content_stream.go index 4dc3ad5..e6392dd 100644 --- a/content/extract/content_stream.go +++ b/content/extract/content_stream.go @@ -5,7 +5,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // parseContentStream parses a PDF content stream and extracts text, graphics, and images diff --git a/content/extract/directory.go b/content/extract/directory.go index b1f520b..e702a4c 100644 --- a/content/extract/directory.go +++ b/content/extract/directory.go @@ -6,8 +6,8 @@ import ( "os" "path/filepath" - "github.com/benedoc-inc/pdfer/forms" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/forms" + "github.com/benedoc-inc/pdfer/v2/types" ) // DirectoryOutput represents the result of extracting a PDF to a directory diff --git a/content/extract/extract.go b/content/extract/extract.go index d4aa435..323dff4 100644 --- a/content/extract/extract.go +++ b/content/extract/extract.go @@ -7,8 +7,8 @@ import ( "encoding/json" "fmt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // ExtractContent extracts all content from a PDF into a ContentDocument diff --git a/content/extract/extract_from_disk_test.go b/content/extract/extract_from_disk_test.go index d48a6ba..1c0415a 100644 --- a/content/extract/extract_from_disk_test.go +++ b/content/extract/extract_from_disk_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestExtractFromDisk_Fonts(t *testing.T) { diff --git a/content/extract/extract_test.go b/content/extract/extract_test.go index 543fe2f..eea6379 100644 --- a/content/extract/extract_test.go +++ b/content/extract/extract_test.go @@ -5,7 +5,7 @@ import ( "path/filepath" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestExtractFromGeneratedPDF(t *testing.T) { diff --git a/content/extract/images.go b/content/extract/images.go index 6dab2dc..3ab753f 100644 --- a/content/extract/images.go +++ b/content/extract/images.go @@ -8,8 +8,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // extractImageData extracts actual image binary data from an image XObject diff --git a/content/extract/images_test.go b/content/extract/images_test.go index 41a4f2e..8e114a0 100644 --- a/content/extract/images_test.go +++ b/content/extract/images_test.go @@ -3,8 +3,8 @@ package extract import ( "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestExtractImages_JPEG(t *testing.T) { diff --git a/content/extract/layout.go b/content/extract/layout.go index 282690c..96ba4b0 100644 --- a/content/extract/layout.go +++ b/content/extract/layout.go @@ -5,7 +5,7 @@ import ( "sort" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ---- Intermediate types (package-internal) ---- diff --git a/content/extract/metadata.go b/content/extract/metadata.go index d33028b..6322749 100644 --- a/content/extract/metadata.go +++ b/content/extract/metadata.go @@ -7,8 +7,8 @@ import ( "strings" "time" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // ExtractMetadata extracts document metadata diff --git a/content/extract/metadata_api.go b/content/extract/metadata_api.go index 33358ff..64ca03c 100644 --- a/content/extract/metadata_api.go +++ b/content/extract/metadata_api.go @@ -3,8 +3,8 @@ package extract import ( "fmt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // GetMetadata parses pdfBytes and returns document metadata without requiring diff --git a/content/extract/pages.go b/content/extract/pages.go index 0b9827e..b708ce8 100644 --- a/content/extract/pages.go +++ b/content/extract/pages.go @@ -6,8 +6,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // ExtractPages extracts all pages from a PDF diff --git a/content/extract/resources.go b/content/extract/resources.go index cb3c423..9139142 100644 --- a/content/extract/resources.go +++ b/content/extract/resources.go @@ -6,8 +6,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // extractResources extracts resources from a Resources dictionary diff --git a/content/extract/resources_test.go b/content/extract/resources_test.go index 0e79235..ba35bfd 100644 --- a/content/extract/resources_test.go +++ b/content/extract/resources_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestExtractResources_Fonts(t *testing.T) { diff --git a/content/extract/semantic.go b/content/extract/semantic.go index 74f68f5..674f04a 100644 --- a/content/extract/semantic.go +++ b/content/extract/semantic.go @@ -6,7 +6,7 @@ import ( "strings" "unicode" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) type textPos struct { diff --git a/content/extract/semantic_test.go b/content/extract/semantic_test.go index 4950107..a4daebd 100644 --- a/content/extract/semantic_test.go +++ b/content/extract/semantic_test.go @@ -3,8 +3,8 @@ package extract import ( "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestSemanticAnalysis_BasicParagraphs(t *testing.T) { diff --git a/content/extract/tables.go b/content/extract/tables.go index eec71b9..7628bf4 100644 --- a/content/extract/tables.go +++ b/content/extract/tables.go @@ -5,7 +5,7 @@ import ( "sort" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // detectTables finds table structures from graphic lines and maps text into cells. diff --git a/content/extract/test_helpers.go b/content/extract/test_helpers.go index 3b0af14..9631762 100644 --- a/content/extract/test_helpers.go +++ b/content/extract/test_helpers.go @@ -1,9 +1,9 @@ package extract import ( - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) // CreateTestPDFWithText creates a simple PDF with known text content for testing extraction diff --git a/content/extract/text_extraction_test.go b/content/extract/text_extraction_test.go index 6dd909e..db95a0e 100644 --- a/content/extract/text_extraction_test.go +++ b/content/extract/text_extraction_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) func TestTextExtraction_510kSummary(t *testing.T) { diff --git a/core/compare/compare.go b/core/compare/compare.go index db084e1..c1340e4 100644 --- a/core/compare/compare.go +++ b/core/compare/compare.go @@ -5,9 +5,9 @@ import ( "fmt" "reflect" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/forms" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/forms" + "github.com/benedoc-inc/pdfer/v2/types" ) // ComparisonResult represents the result of comparing two PDFs diff --git a/core/compare/compare_moved_test.go b/core/compare/compare_moved_test.go index d5c23d2..ac97658 100644 --- a/core/compare/compare_moved_test.go +++ b/core/compare/compare_moved_test.go @@ -3,7 +3,7 @@ package compare import ( "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestCompareImages_MovedOnSamePage(t *testing.T) { diff --git a/core/compare/compare_options_test.go b/core/compare/compare_options_test.go index f9be576..9b32304 100644 --- a/core/compare/compare_options_test.go +++ b/core/compare/compare_options_test.go @@ -3,7 +3,7 @@ package compare import ( "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestCompareOptions_TextTolerance(t *testing.T) { diff --git a/core/compare/compare_test.go b/core/compare/compare_test.go index 13cd7ef..b6d7c35 100644 --- a/core/compare/compare_test.go +++ b/core/compare/compare_test.go @@ -5,7 +5,7 @@ import ( "fmt" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestComparePDFs_Identical(t *testing.T) { diff --git a/core/compare/form_test.go b/core/compare/form_test.go index e962f35..a5f31c0 100644 --- a/core/compare/form_test.go +++ b/core/compare/form_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" ) func TestCompareForms_NoForms(t *testing.T) { diff --git a/core/compare/granularity_test.go b/core/compare/granularity_test.go index 8336447..ab62ac6 100644 --- a/core/compare/granularity_test.go +++ b/core/compare/granularity_test.go @@ -3,7 +3,7 @@ package compare import ( "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestCompareOptions_Granularity(t *testing.T) { diff --git a/core/compare/myers_diff.go b/core/compare/myers_diff.go index 47aae87..161bf79 100644 --- a/core/compare/myers_diff.go +++ b/core/compare/myers_diff.go @@ -1,7 +1,7 @@ package compare import ( - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // myersDiff implements the O(ND) Myers diff algorithm diff --git a/core/compare/myers_diff_test.go b/core/compare/myers_diff_test.go index eb79787..96c3b9a 100644 --- a/core/compare/myers_diff_test.go +++ b/core/compare/myers_diff_test.go @@ -3,8 +3,8 @@ package compare import ( "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestMyersDiff_Identical(t *testing.T) { diff --git a/core/compare/report_test.go b/core/compare/report_test.go index a4ff66a..982a387 100644 --- a/core/compare/report_test.go +++ b/core/compare/report_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestGenerateReport(t *testing.T) { diff --git a/core/compare/text_diff.go b/core/compare/text_diff.go index 6444153..c384e4f 100644 --- a/core/compare/text_diff.go +++ b/core/compare/text_diff.go @@ -1,7 +1,7 @@ package compare import ( - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // compareText compares text elements between two pages using advanced diff algorithms diff --git a/core/encrypt/decrypt.go b/core/encrypt/decrypt.go index fbe2907..27233ec 100644 --- a/core/encrypt/decrypt.go +++ b/core/encrypt/decrypt.go @@ -8,7 +8,7 @@ import ( "crypto/rc4" "log" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // DecryptPDF verifies the password and derives the file encryption key. diff --git a/core/encrypt/decrypt_test.go b/core/encrypt/decrypt_test.go index bb5a3b6..92b8e09 100644 --- a/core/encrypt/decrypt_test.go +++ b/core/encrypt/decrypt_test.go @@ -8,7 +8,7 @@ import ( "crypto/rc4" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestDecryptObject_RC4(t *testing.T) { diff --git a/core/encrypt/encrypt.go b/core/encrypt/encrypt.go index 40a1c5c..73288db 100644 --- a/core/encrypt/encrypt.go +++ b/core/encrypt/encrypt.go @@ -6,7 +6,7 @@ import ( "crypto/rc4" "fmt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) var pdfPadding = []byte{ diff --git a/core/encrypt/encrypt_test.go b/core/encrypt/encrypt_test.go index eb7ce89..95b1a02 100644 --- a/core/encrypt/encrypt_test.go +++ b/core/encrypt/encrypt_test.go @@ -3,9 +3,9 @@ package encrypt_test import ( "testing" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func buildEncryptedPDF(t *testing.T, userPwd, ownerPwd []byte) []byte { diff --git a/core/encrypt/key_derivation.go b/core/encrypt/key_derivation.go index 209e5a9..3b2a49e 100644 --- a/core/encrypt/key_derivation.go +++ b/core/encrypt/key_derivation.go @@ -13,7 +13,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // DeriveEncryptionKey derives the encryption key from password diff --git a/core/encrypt/key_derivation_test.go b/core/encrypt/key_derivation_test.go index d0e68f6..4069458 100644 --- a/core/encrypt/key_derivation_test.go +++ b/core/encrypt/key_derivation_test.go @@ -4,7 +4,7 @@ import ( "bytes" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestParseHexString(t *testing.T) { diff --git a/core/encrypt/key_derivation_v5_test.go b/core/encrypt/key_derivation_v5_test.go index eab81f3..3ab2f72 100644 --- a/core/encrypt/key_derivation_v5_test.go +++ b/core/encrypt/key_derivation_v5_test.go @@ -6,7 +6,7 @@ import ( "crypto/sha256" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestDeriveEncryptionKeyV5(t *testing.T) { diff --git a/core/encrypt/parser.go b/core/encrypt/parser.go index 18da3f7..c55b7ce 100644 --- a/core/encrypt/parser.go +++ b/core/encrypt/parser.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseEncryptionDictionary parses the /Encrypt dictionary from PDF diff --git a/core/encrypt/strings.go b/core/encrypt/strings.go index 6f982b4..faa4928 100644 --- a/core/encrypt/strings.go +++ b/core/encrypt/strings.go @@ -3,7 +3,7 @@ package encrypt import ( "fmt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // DecryptStringsInContent walks raw PDF object content (a non-stream dictionary diff --git a/core/manipulate/decrypt_pdf.go b/core/manipulate/decrypt_pdf.go index 53dd0ce..1a81f26 100644 --- a/core/manipulate/decrypt_pdf.go +++ b/core/manipulate/decrypt_pdf.go @@ -4,8 +4,8 @@ import ( "fmt" "regexp" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // DecryptPDF produces a fully decrypted, plaintext PDF from an encrypted one. diff --git a/core/manipulate/decrypt_pdf_test.go b/core/manipulate/decrypt_pdf_test.go index 80a8819..973851f 100644 --- a/core/manipulate/decrypt_pdf_test.go +++ b/core/manipulate/decrypt_pdf_test.go @@ -5,8 +5,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) func TestDecryptPDF_AlreadyPlaintext(t *testing.T) { diff --git a/core/manipulate/deletion_test.go b/core/manipulate/deletion_test.go index a7843bc..6961eb0 100644 --- a/core/manipulate/deletion_test.go +++ b/core/manipulate/deletion_test.go @@ -4,8 +4,8 @@ import ( "fmt" "testing" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestDeletePage(t *testing.T) { diff --git a/core/manipulate/encrypt_pdf.go b/core/manipulate/encrypt_pdf.go index a58a878..88ba8bc 100644 --- a/core/manipulate/encrypt_pdf.go +++ b/core/manipulate/encrypt_pdf.go @@ -4,9 +4,9 @@ import ( "bytes" "fmt" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // EncryptPDF applies AES-128 (V=4, R=4) encryption to an existing unencrypted diff --git a/core/manipulate/encrypt_pdf_test.go b/core/manipulate/encrypt_pdf_test.go index 1ba20e3..bf2a075 100644 --- a/core/manipulate/encrypt_pdf_test.go +++ b/core/manipulate/encrypt_pdf_test.go @@ -5,9 +5,9 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // buildPlainPDF builds a one-page PDF with a single text run (no encryption). diff --git a/core/manipulate/extraction.go b/core/manipulate/extraction.go index f7fc1f4..bff91c7 100644 --- a/core/manipulate/extraction.go +++ b/core/manipulate/extraction.go @@ -5,7 +5,7 @@ import ( "regexp" "strconv" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // ExtractPages extracts specific pages from a PDF and returns a new PDF containing diff --git a/core/manipulate/image_replace_test.go b/core/manipulate/image_replace_test.go index 60748bb..cec11a2 100644 --- a/core/manipulate/image_replace_test.go +++ b/core/manipulate/image_replace_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // makeMinimalJPEG returns a syntactically minimal JPEG (SOI + SOF0 + EOI). diff --git a/core/manipulate/linearize.go b/core/manipulate/linearize.go index 5e4e89f..d475218 100644 --- a/core/manipulate/linearize.go +++ b/core/manipulate/linearize.go @@ -8,8 +8,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // Linearize rewrites a PDF for fast web delivery ("Fast Web View"). It: diff --git a/core/manipulate/manipulate.go b/core/manipulate/manipulate.go index 7ef9192..9478a36 100644 --- a/core/manipulate/manipulate.go +++ b/core/manipulate/manipulate.go @@ -6,9 +6,9 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // PDFManipulator provides functions to modify existing PDFs diff --git a/core/manipulate/manipulation_test.go b/core/manipulate/manipulation_test.go index 60ffa7c..89dd761 100644 --- a/core/manipulate/manipulation_test.go +++ b/core/manipulate/manipulation_test.go @@ -5,8 +5,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestExtractPages(t *testing.T) { diff --git a/core/manipulate/merging.go b/core/manipulate/merging.go index c5c0aa8..c0e42de 100644 --- a/core/manipulate/merging.go +++ b/core/manipulate/merging.go @@ -4,8 +4,8 @@ import ( "fmt" "regexp" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // MergePDFs merges multiple PDFs into a single PDF diff --git a/core/manipulate/pdfa_convert.go b/core/manipulate/pdfa_convert.go index fba9048..1fa5601 100644 --- a/core/manipulate/pdfa_convert.go +++ b/core/manipulate/pdfa_convert.go @@ -3,7 +3,7 @@ package manipulate import ( "fmt" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // ConvertToPDFA converts a PDF to PDF/A format. diff --git a/core/manipulate/pdfa_convert_test.go b/core/manipulate/pdfa_convert_test.go index 4c48397..d73b500 100644 --- a/core/manipulate/pdfa_convert_test.go +++ b/core/manipulate/pdfa_convert_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func makeSimplePDF(t *testing.T) []byte { diff --git a/core/manipulate/redact.go b/core/manipulate/redact.go index 3f33d99..f578e78 100644 --- a/core/manipulate/redact.go +++ b/core/manipulate/redact.go @@ -6,7 +6,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) // RedactBox specifies a rectangular region to redact on a particular page. diff --git a/core/manipulate/redact_test.go b/core/manipulate/redact_test.go index e513c3c..13ad92d 100644 --- a/core/manipulate/redact_test.go +++ b/core/manipulate/redact_test.go @@ -5,8 +5,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // buildRedactPDF creates a one-page PDF with two text runs at different positions: diff --git a/core/manipulate/repair_test.go b/core/manipulate/repair_test.go index 37cd608..38d94da 100644 --- a/core/manipulate/repair_test.go +++ b/core/manipulate/repair_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // buildMultiRevisionPDF creates a PDF with two revisions: an initial page and diff --git a/core/manipulate/rotation_test.go b/core/manipulate/rotation_test.go index 9cf0d54..0fec36a 100644 --- a/core/manipulate/rotation_test.go +++ b/core/manipulate/rotation_test.go @@ -5,8 +5,8 @@ import ( "path/filepath" "testing" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestRotatePage(t *testing.T) { diff --git a/core/manipulate/stamp_test.go b/core/manipulate/stamp_test.go index c8d7545..7802613 100644 --- a/core/manipulate/stamp_test.go +++ b/core/manipulate/stamp_test.go @@ -5,8 +5,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // buildTwoPagePDF creates a two-page PDF with no content. diff --git a/core/parse/api.go b/core/parse/api.go index ad4b628..0157b4b 100644 --- a/core/parse/api.go +++ b/core/parse/api.go @@ -28,8 +28,8 @@ package parse import ( - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseOptions configures PDF parsing behavior diff --git a/core/parse/get_object.go b/core/parse/get_object.go index ea27fef..95c6463 100644 --- a/core/parse/get_object.go +++ b/core/parse/get_object.go @@ -7,8 +7,8 @@ import ( "regexp" "strconv" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/types" ) // ObjectLocation describes where an object is located diff --git a/core/parse/object_stream.go b/core/parse/object_stream.go index 2eff238..8050b7c 100644 --- a/core/parse/object_stream.go +++ b/core/parse/object_stream.go @@ -10,8 +10,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/types" ) // ObjectStreamEntry represents an object stored in an object stream (Type 2 xref entry) diff --git a/core/parse/parser.go b/core/parse/parser.go index fdc2b25..7e59c98 100644 --- a/core/parse/parser.go +++ b/core/parse/parser.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParsePDFTrailer parses the PDF trailer to find object references diff --git a/core/parse/xfa_parser.go b/core/parse/xfa_parser.go index 3f25766..a36db8d 100644 --- a/core/parse/xfa_parser.go +++ b/core/parse/xfa_parser.go @@ -7,7 +7,7 @@ import ( "log" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseXFAFields parses XFA XML and extracts form fields, returning FormField types diff --git a/core/parse/xref_stream.go b/core/parse/xref_stream.go index 37f6c13..dda9b04 100644 --- a/core/parse/xref_stream.go +++ b/core/parse/xref_stream.go @@ -1,7 +1,7 @@ package parse import ( - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseXRefStream parses a PDF cross-reference stream and returns a map of object diff --git a/core/sign/appearance_test.go b/core/sign/appearance_test.go index 7d91bbb..7c218ab 100644 --- a/core/sign/appearance_test.go +++ b/core/sign/appearance_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/sign" + "github.com/benedoc-inc/pdfer/v2/core/sign" ) func TestSignPDF_VisibleAppearance_RectIsNonZero(t *testing.T) { diff --git a/core/sign/ltv.go b/core/sign/ltv.go index 28038ff..e158d1e 100644 --- a/core/sign/ltv.go +++ b/core/sign/ltv.go @@ -10,7 +10,7 @@ import ( "sort" "strings" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) // appendDSS appends a /DSS (Document Security Store) dictionary to an diff --git a/core/sign/sign.go b/core/sign/sign.go index 04ad29f..7c532ad 100644 --- a/core/sign/sign.go +++ b/core/sign/sign.go @@ -19,7 +19,7 @@ import ( "strings" "time" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) const ( diff --git a/core/sign/sign_test.go b/core/sign/sign_test.go index 0ed2d4d..a7946dc 100644 --- a/core/sign/sign_test.go +++ b/core/sign/sign_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/sign" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/sign" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // buildSimplePDF creates a minimal one-page PDF for signing tests. diff --git a/core/sign/tsa_ltv_test.go b/core/sign/tsa_ltv_test.go index a9ef23c..968184a 100644 --- a/core/sign/tsa_ltv_test.go +++ b/core/sign/tsa_ltv_test.go @@ -10,7 +10,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/sign" + "github.com/benedoc-inc/pdfer/v2/core/sign" ) // fakeTSAServer returns an httptest.Server that responds to any request with a diff --git a/core/write/annotations_test.go b/core/write/annotations_test.go index 91df774..5e6fd30 100644 --- a/core/write/annotations_test.go +++ b/core/write/annotations_test.go @@ -4,8 +4,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // buildAnnotationPDF is a helper that creates a single-page PDF, adds the diff --git a/core/write/bookmarks.go b/core/write/bookmarks.go index 12b3067..428b732 100644 --- a/core/write/bookmarks.go +++ b/core/write/bookmarks.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // SetBookmarks sets the document bookmarks/outlines diff --git a/core/write/bookmarks_test.go b/core/write/bookmarks_test.go index 0acc492..0d3993e 100644 --- a/core/write/bookmarks_test.go +++ b/core/write/bookmarks_test.go @@ -5,8 +5,8 @@ import ( "fmt" "testing" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) func max(a, b int) int { diff --git a/core/write/encryption_v5.go b/core/write/encryption_v5.go index 3b86c18..e90e3e4 100644 --- a/core/write/encryption_v5.go +++ b/core/write/encryption_v5.go @@ -7,7 +7,7 @@ import ( "crypto/sha256" "fmt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // SetupAES256Encryption creates an encryption dictionary for AES-256 (V5/R5/R6) diff --git a/core/write/encryption_v5_test.go b/core/write/encryption_v5_test.go index 76eb300..0394318 100644 --- a/core/write/encryption_v5_test.go +++ b/core/write/encryption_v5_test.go @@ -6,9 +6,9 @@ import ( "fmt" "testing" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestSetupAES256Encryption(t *testing.T) { diff --git a/core/write/metadata.go b/core/write/metadata.go index 5d40597..e8efdab 100644 --- a/core/write/metadata.go +++ b/core/write/metadata.go @@ -5,7 +5,7 @@ import ( "strings" "time" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // SetMetadata creates an Info dictionary object with the provided metadata diff --git a/core/write/metadata_test.go b/core/write/metadata_test.go index c610f68..febcecd 100644 --- a/core/write/metadata_test.go +++ b/core/write/metadata_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestSetMetadata(t *testing.T) { diff --git a/core/write/object_stream_test.go b/core/write/object_stream_test.go index 120ada8..59e49e7 100644 --- a/core/write/object_stream_test.go +++ b/core/write/object_stream_test.go @@ -5,7 +5,7 @@ import ( "fmt" "testing" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) func TestObjectStream_Basic(t *testing.T) { diff --git a/core/write/page.go b/core/write/page.go index 7b8ee1d..bc72da8 100644 --- a/core/write/page.go +++ b/core/write/page.go @@ -6,9 +6,9 @@ import ( "strings" "time" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/resources/font" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/resources/font" + "github.com/benedoc-inc/pdfer/v2/types" ) // PageSize represents standard page dimensions in points (1 point = 1/72 inch) diff --git a/core/write/pdfa_fix.go b/core/write/pdfa_fix.go index 0a82a34..c0c6d17 100644 --- a/core/write/pdfa_fix.go +++ b/core/write/pdfa_fix.go @@ -6,7 +6,7 @@ import ( "strings" "time" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) // FixPDFA attempts to repair common PDF/A conformance violations and return a diff --git a/core/write/pdfa_test.go b/core/write/pdfa_test.go index 1241906..5213243 100644 --- a/core/write/pdfa_test.go +++ b/core/write/pdfa_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func buildOnePage(t *testing.T) *write.SimplePDFBuilder { diff --git a/core/write/pdfa_validate.go b/core/write/pdfa_validate.go index fe7c913..2fb0e1a 100644 --- a/core/write/pdfa_validate.go +++ b/core/write/pdfa_validate.go @@ -6,7 +6,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) // PDFAValidationResult contains the outcome of a PDF/A conformance check. diff --git a/core/write/table_test.go b/core/write/table_test.go index fa97854..d20afd4 100644 --- a/core/write/table_test.go +++ b/core/write/table_test.go @@ -4,7 +4,7 @@ import ( "bytes" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestDrawTextBox_Basic(t *testing.T) { diff --git a/core/write/watermark_test.go b/core/write/watermark_test.go index 33025ef..68070d6 100644 --- a/core/write/watermark_test.go +++ b/core/write/watermark_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/parse" ) func TestWatermark_Text(t *testing.T) { diff --git a/core/write/writer.go b/core/write/writer.go index 648972b..4476469 100644 --- a/core/write/writer.go +++ b/core/write/writer.go @@ -14,7 +14,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // PDFObject represents a PDF object with its content diff --git a/core/write/xfa_builder.go b/core/write/xfa_builder.go index c61467d..90bcc3c 100644 --- a/core/write/xfa_builder.go +++ b/core/write/xfa_builder.go @@ -9,8 +9,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // XFABuilder builds PDFs with XFA content diff --git a/core/write/xref_stream_test.go b/core/write/xref_stream_test.go index 2d80a93..4e58413 100644 --- a/core/write/xref_stream_test.go +++ b/core/write/xref_stream_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestXRefStream_Basic(t *testing.T) { diff --git a/examples/acroform_create/main.go b/examples/acroform_create/main.go index 123a9e9..6dbe9b9 100644 --- a/examples/acroform_create/main.go +++ b/examples/acroform_create/main.go @@ -6,8 +6,8 @@ import ( "log" "os" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" ) func main() { diff --git a/examples/acroform_extract/main.go b/examples/acroform_extract/main.go index c9bb15a..126a1d8 100644 --- a/examples/acroform_extract/main.go +++ b/examples/acroform_extract/main.go @@ -6,7 +6,7 @@ import ( "log" "os" - "github.com/benedoc-inc/pdfer/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" ) func main() { diff --git a/examples/acroform_fill/main.go b/examples/acroform_fill/main.go index 80c20a3..467f917 100644 --- a/examples/acroform_fill/main.go +++ b/examples/acroform_fill/main.go @@ -6,8 +6,8 @@ import ( "log" "os" - "github.com/benedoc-inc/pdfer/forms/acroform" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/types" ) func main() { diff --git a/examples/create_pdf/main.go b/examples/create_pdf/main.go index 5982ad2..a08766f 100644 --- a/examples/create_pdf/main.go +++ b/examples/create_pdf/main.go @@ -6,7 +6,7 @@ import ( "log" "os" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func main() { diff --git a/examples/extract_xfa/main.go b/examples/extract_xfa/main.go index f9d23ae..70c7895 100644 --- a/examples/extract_xfa/main.go +++ b/examples/extract_xfa/main.go @@ -8,9 +8,9 @@ import ( "log" "os" - "github.com/benedoc-inc/pdfer" - encrypt "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/forms/xfa" + "github.com/benedoc-inc/pdfer/v2" + encrypt "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/forms/xfa" ) func main() { diff --git a/examples/font_embedding/main.go b/examples/font_embedding/main.go index 3307fe7..6a00c74 100644 --- a/examples/font_embedding/main.go +++ b/examples/font_embedding/main.go @@ -6,8 +6,8 @@ import ( "log" "os" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/resources/font" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/resources/font" ) func main() { diff --git a/examples/kitchen_sink/main.go b/examples/kitchen_sink/main.go index 09b18ec..c4cec74 100644 --- a/examples/kitchen_sink/main.go +++ b/examples/kitchen_sink/main.go @@ -24,9 +24,9 @@ import ( "os" "strings" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms/acroform" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/types" ) func main() { @@ -415,7 +415,7 @@ func buildPage2(p *write.PageBuilder) { linkText := "Click here to visit the pdfer repository" p.AddAnnotation(write.NewLinkAnnotation(72, 378, 310, 398, - "https://github.com/benedoc-inc/pdfer").WithBorderWidth(1).WithColor(0, 0, 0.8)) + "https://github.com/benedoc-inc/pdfer/v2").WithBorderWidth(1).WithColor(0, 0, 0.8)) cs.BeginText().SetFont(font, 10).SetFillColorRGB(0, 0, 0.7). SetTextPosition(72, 380).ShowText(linkText).EndText() // Underline drawn as a thin rectangle diff --git a/examples/sign_pdf/main.go b/examples/sign_pdf/main.go index de68814..671fd51 100644 --- a/examples/sign_pdf/main.go +++ b/examples/sign_pdf/main.go @@ -6,10 +6,10 @@ import ( "log" "os" - "github.com/benedoc-inc/pdfer/core/sign" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms/acroform" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/sign" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/types" ) func main() { diff --git a/forms/acroform/actions.go b/forms/acroform/actions.go index 1b87ac2..f2e0a9e 100644 --- a/forms/acroform/actions.go +++ b/forms/acroform/actions.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // removeDictKey removes a single "/key value" pair from a PDF dict string. diff --git a/forms/acroform/appearance.go b/forms/acroform/appearance.go index 66cf7f4..38f4216 100644 --- a/forms/acroform/appearance.go +++ b/forms/acroform/appearance.go @@ -6,7 +6,7 @@ import ( "regexp" "strings" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // AppearanceBuilder helps create appearance streams for form fields diff --git a/forms/acroform/btn_fill_test.go b/forms/acroform/btn_fill_test.go index d07629c..6545565 100644 --- a/forms/acroform/btn_fill_test.go +++ b/forms/acroform/btn_fill_test.go @@ -5,8 +5,8 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) // buildCheckboxPDF creates a one-page PDF with a single unchecked checkbox diff --git a/forms/acroform/comprehensive_test.go b/forms/acroform/comprehensive_test.go index 4df73d4..5197788 100644 --- a/forms/acroform/comprehensive_test.go +++ b/forms/acroform/comprehensive_test.go @@ -4,8 +4,8 @@ import ( "os" "testing" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestFormBuilderIntegration(t *testing.T) { diff --git a/forms/acroform/create_test.go b/forms/acroform/create_test.go index 7106bc7..2ad167c 100644 --- a/forms/acroform/create_test.go +++ b/forms/acroform/create_test.go @@ -5,10 +5,10 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms/acroform" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/types" ) // buildTestForm creates a one-page PDF with a text field, a checkbox, and a diff --git a/forms/acroform/extract.go b/forms/acroform/extract.go index 4c8fb38..3571fec 100644 --- a/forms/acroform/extract.go +++ b/forms/acroform/extract.go @@ -5,8 +5,8 @@ import ( "bytes" "fmt" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/types" ) // ExtractAcroForm extracts AcroForm structure from a PDF diff --git a/forms/acroform/fill.go b/forms/acroform/fill.go index 2b2b5f9..4b2df2c 100644 --- a/forms/acroform/fill.go +++ b/forms/acroform/fill.go @@ -2,7 +2,7 @@ package acroform import ( - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // FillForm fills AcroForm fields with values from FormData diff --git a/forms/acroform/fill_streams.go b/forms/acroform/fill_streams.go index 154e026..c3b3c29 100644 --- a/forms/acroform/fill_streams.go +++ b/forms/acroform/fill_streams.go @@ -7,8 +7,8 @@ import ( "regexp" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // FillFormFieldsWithStreams fills form fields, handling both direct objects and object streams diff --git a/forms/acroform/fill_streams_test.go b/forms/acroform/fill_streams_test.go index ba61f9e..e241e1f 100644 --- a/forms/acroform/fill_streams_test.go +++ b/forms/acroform/fill_streams_test.go @@ -6,8 +6,8 @@ import ( "os" "testing" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestFillStreamsWithEstar(t *testing.T) { diff --git a/forms/acroform/flatten.go b/forms/acroform/flatten.go index 5c77e96..fc7d829 100644 --- a/forms/acroform/flatten.go +++ b/forms/acroform/flatten.go @@ -6,8 +6,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // FlattenForm converts all filled AcroForm widget annotations to static page diff --git a/forms/acroform/flatten_test.go b/forms/acroform/flatten_test.go index ff3f807..8b3179d 100644 --- a/forms/acroform/flatten_test.go +++ b/forms/acroform/flatten_test.go @@ -6,9 +6,9 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) // buildFilledTextFieldPDF returns a one-page PDF with a single text field diff --git a/forms/acroform/incremental.go b/forms/acroform/incremental.go index 1e0e372..49326f4 100644 --- a/forms/acroform/incremental.go +++ b/forms/acroform/incremental.go @@ -8,8 +8,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // fillIncremental fills AcroForm fields using a PDF incremental update. diff --git a/forms/acroform/integration.go b/forms/acroform/integration.go index f4546cb..9a49619 100644 --- a/forms/acroform/integration.go +++ b/forms/acroform/integration.go @@ -4,8 +4,8 @@ import ( "fmt" "strings" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) // FormBuilder integrates AcroForm creation with SimplePDFBuilder. diff --git a/forms/acroform/parser.go b/forms/acroform/parser.go index 8df3aa9..96e4a31 100644 --- a/forms/acroform/parser.go +++ b/forms/acroform/parser.go @@ -7,8 +7,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // AcroForm represents an AcroForm dictionary structure diff --git a/forms/acroform/replace.go b/forms/acroform/replace.go index 54dc956..44ce8ba 100644 --- a/forms/acroform/replace.go +++ b/forms/acroform/replace.go @@ -7,8 +7,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // ReplaceFieldObject replaces a field object in a PDF diff --git a/forms/acroform/stream_finder.go b/forms/acroform/stream_finder.go index 3736498..5747481 100644 --- a/forms/acroform/stream_finder.go +++ b/forms/acroform/stream_finder.go @@ -5,8 +5,8 @@ import ( "regexp" "strconv" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // findStreamForObject finds which object stream contains a given object diff --git a/forms/acroform/stream_rebuild.go b/forms/acroform/stream_rebuild.go index c07a6c8..626ea3a 100644 --- a/forms/acroform/stream_rebuild.go +++ b/forms/acroform/stream_rebuild.go @@ -9,9 +9,9 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // StreamObjectUpdate tracks updates to objects in a stream diff --git a/forms/acroform/validation.go b/forms/acroform/validation.go index d984078..2df1732 100644 --- a/forms/acroform/validation.go +++ b/forms/acroform/validation.go @@ -6,7 +6,7 @@ import ( "regexp" "strconv" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ValidationError represents a validation error for a field diff --git a/forms/acroform/validation_test.go b/forms/acroform/validation_test.go index 2cedbd9..1c91571 100644 --- a/forms/acroform/validation_test.go +++ b/forms/acroform/validation_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestValidateField(t *testing.T) { diff --git a/forms/acroform/writer.go b/forms/acroform/writer.go index 4e3db62..e081126 100644 --- a/forms/acroform/writer.go +++ b/forms/acroform/writer.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // FieldBuilder helps build AcroForm fields diff --git a/forms/acroform/writer_test.go b/forms/acroform/writer_test.go index 6e58f17..b6379c9 100644 --- a/forms/acroform/writer_test.go +++ b/forms/acroform/writer_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/write" ) func TestFieldBuilder(t *testing.T) { diff --git a/forms/forms.go b/forms/forms.go index cd2d6c5..d180bec 100644 --- a/forms/forms.go +++ b/forms/forms.go @@ -7,11 +7,11 @@ import ( "fmt" "regexp" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms/acroform" - "github.com/benedoc-inc/pdfer/forms/xfa" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms/acroform" + "github.com/benedoc-inc/pdfer/v2/forms/xfa" + "github.com/benedoc-inc/pdfer/v2/types" ) // FormType represents the type of form diff --git a/forms/xfa/parse_then_decrypt.go b/forms/xfa/parse_then_decrypt.go index 68c0f60..efe4f61 100644 --- a/forms/xfa/parse_then_decrypt.go +++ b/forms/xfa/parse_then_decrypt.go @@ -6,8 +6,8 @@ import ( "log" "regexp" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/types" ) // parseObjectStructure parses a PDF object structure first, then decrypts encrypted parts diff --git a/forms/xfa/stream.go b/forms/xfa/stream.go index 6836489..d7b2a1a 100644 --- a/forms/xfa/stream.go +++ b/forms/xfa/stream.go @@ -9,8 +9,8 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/types" ) // PDFStream represents a stream-like interface for reading PDF bytes diff --git a/forms/xfa/xfa.go b/forms/xfa/xfa.go index 483d40c..9936a41 100644 --- a/forms/xfa/xfa.go +++ b/forms/xfa/xfa.go @@ -11,9 +11,9 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) // extractStreamDataFromObject extracts stream data from raw object bytes diff --git a/forms/xfa/xfa_config_translator.go b/forms/xfa/xfa_config_translator.go index 955022a..62255ba 100644 --- a/forms/xfa/xfa_config_translator.go +++ b/forms/xfa/xfa_config_translator.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseXFAConfig parses XFA config XML and converts it to XFAConfig type diff --git a/forms/xfa/xfa_connection_translator.go b/forms/xfa/xfa_connection_translator.go index 4d2bea0..66c04f1 100644 --- a/forms/xfa/xfa_connection_translator.go +++ b/forms/xfa/xfa_connection_translator.go @@ -7,7 +7,7 @@ import ( "log" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseXFAConnectionSet parses XFA connectionSet XML and converts it to XFAConnectionSet type diff --git a/forms/xfa/xfa_datasets_translator.go b/forms/xfa/xfa_datasets_translator.go index 473a443..04455c0 100644 --- a/forms/xfa/xfa_datasets_translator.go +++ b/forms/xfa/xfa_datasets_translator.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseXFADatasets parses XFA datasets XML and converts it to XFADatasets type diff --git a/forms/xfa/xfa_form_translator.go b/forms/xfa/xfa_form_translator.go index b7e74e4..b6420e8 100644 --- a/forms/xfa/xfa_form_translator.go +++ b/forms/xfa/xfa_form_translator.go @@ -10,7 +10,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // htmlTagRe matches HTML tags for stripping caption exData HTML to plain text. diff --git a/forms/xfa/xfa_locale_translator.go b/forms/xfa/xfa_locale_translator.go index d90a3f7..a6c7b85 100644 --- a/forms/xfa/xfa_locale_translator.go +++ b/forms/xfa/xfa_locale_translator.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseXFALocaleSet parses XFA localeSet XML and converts it to XFALocaleSet type diff --git a/forms/xfa/xfa_script_extraction_test.go b/forms/xfa/xfa_script_extraction_test.go index ef69dd7..069668f 100644 --- a/forms/xfa/xfa_script_extraction_test.go +++ b/forms/xfa/xfa_script_extraction_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // TestFieldEventBodyPreservedVerbatim verifies that a field-attached event's diff --git a/forms/xfa/xfa_stylesheet_translator.go b/forms/xfa/xfa_stylesheet_translator.go index fcc2517..c4d7aea 100644 --- a/forms/xfa/xfa_stylesheet_translator.go +++ b/forms/xfa/xfa_stylesheet_translator.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // ParseXFAStylesheet parses XFA stylesheet XML and converts it to XFAStylesheet type diff --git a/forms/xfa/xfa_test.go b/forms/xfa/xfa_test.go index ecf2616..086c694 100644 --- a/forms/xfa/xfa_test.go +++ b/forms/xfa/xfa_test.go @@ -7,8 +7,8 @@ import ( "path/filepath" "testing" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestDecompressStream(t *testing.T) { diff --git a/forms/xfa/xfa_translator_test.go b/forms/xfa/xfa_translator_test.go index 33c105a..8c515db 100644 --- a/forms/xfa/xfa_translator_test.go +++ b/forms/xfa/xfa_translator_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestParseXFAForm(t *testing.T) { diff --git a/forms/xfa/xfa_utils.go b/forms/xfa/xfa_utils.go index 20bf7f0..8a3ce91 100644 --- a/forms/xfa/xfa_utils.go +++ b/forms/xfa/xfa_utils.go @@ -11,9 +11,9 @@ import ( "strconv" "strings" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/types" ) // findObjectBoundaries finds the start and end of a PDF object using incremental parsing diff --git a/go.mod b/go.mod index 64ceb78..91e586d 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/benedoc-inc/pdfer +module github.com/benedoc-inc/pdfer/v2 go 1.21 diff --git a/pdfer.go b/pdfer.go index 609f878..849e726 100644 --- a/pdfer.go +++ b/pdfer.go @@ -79,11 +79,11 @@ package pdfer import ( "runtime/debug" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/types" ) // Re-export common types for convenience. -// Users can import just "github.com/benedoc-inc/pdfer" for basic usage. +// Users can import just "github.com/benedoc-inc/pdfer/v2" for basic usage. // Encryption holds PDF encryption parameters and derived keys. type Encryption = types.PDFEncryption @@ -109,7 +109,7 @@ type XFAConfig = types.XFAConfig // XFALocaleSet represents parsed XFA localization data. type XFALocaleSet = types.XFALocaleSet -const modulePath = "github.com/benedoc-inc/pdfer" +const modulePath = "github.com/benedoc-inc/pdfer/v2" // Version returns the library version, derived from Go module metadata. // diff --git a/tests/e2e_aes256_test.go b/tests/e2e_aes256_test.go index 8e9644a..6e91e98 100644 --- a/tests/e2e_aes256_test.go +++ b/tests/e2e_aes256_test.go @@ -7,9 +7,9 @@ import ( "path/filepath" "testing" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" ) // TestE2E_AES256_Decrypt tests decrypting a real AES-256 (V5/R5/R6) encrypted PDF diff --git a/tests/e2e_test.go b/tests/e2e_test.go index 8eefe8d..455069e 100644 --- a/tests/e2e_test.go +++ b/tests/e2e_test.go @@ -10,10 +10,10 @@ import ( "strings" "testing" - "github.com/benedoc-inc/pdfer/content/extract" - "github.com/benedoc-inc/pdfer/core/parse" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/content/extract" + "github.com/benedoc-inc/pdfer/v2/core/parse" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/types" ) // TestE2E_CreateAndParseSimplePDF tests creating a simple PDF and parsing it back diff --git a/tests/estar_test.go b/tests/estar_test.go index 4f69785..dd5b9b8 100644 --- a/tests/estar_test.go +++ b/tests/estar_test.go @@ -5,8 +5,8 @@ import ( "os" "testing" - pdfer "github.com/benedoc-inc/pdfer" - pdftypes "github.com/benedoc-inc/pdfer/types" + pdfer "github.com/benedoc-inc/pdfer/v2" + pdftypes "github.com/benedoc-inc/pdfer/v2/types" ) // The minimum expected question counts for each eSTAR variant. diff --git a/tests/fda_3881_test.go b/tests/fda_3881_test.go index b85428a..fec9542 100644 --- a/tests/fda_3881_test.go +++ b/tests/fda_3881_test.go @@ -5,9 +5,9 @@ import ( "os" "testing" - pdfer "github.com/benedoc-inc/pdfer" - "github.com/benedoc-inc/pdfer/forms" - "github.com/benedoc-inc/pdfer/forms/xfa" + pdfer "github.com/benedoc-inc/pdfer/v2" + "github.com/benedoc-inc/pdfer/v2/forms" + "github.com/benedoc-inc/pdfer/v2/forms/xfa" ) // TestFDA3881_Detection verifies that Form 3881 is correctly identified as an XFA form. diff --git a/tests/pdf_writer_test.go b/tests/pdf_writer_test.go index 82c7191..625298e 100644 --- a/tests/pdf_writer_test.go +++ b/tests/pdf_writer_test.go @@ -6,10 +6,10 @@ import ( "path/filepath" "testing" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/forms/xfa" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/forms/xfa" + "github.com/benedoc-inc/pdfer/v2/types" ) func TestBuildPDFFromScratch(t *testing.T) { diff --git a/tests/scripts/create_test_pdfs.go b/tests/scripts/create_test_pdfs.go index d0fbe22..92b9c7d 100644 --- a/tests/scripts/create_test_pdfs.go +++ b/tests/scripts/create_test_pdfs.go @@ -10,8 +10,8 @@ import ( "path/filepath" "strings" - "github.com/benedoc-inc/pdfer/core/write" - "github.com/benedoc-inc/pdfer/resources/font" + "github.com/benedoc-inc/pdfer/v2/core/write" + "github.com/benedoc-inc/pdfer/v2/resources/font" ) func main() { diff --git a/tests/xfa_roundtrip_test.go b/tests/xfa_roundtrip_test.go index fbbeba9..fe0a6a6 100644 --- a/tests/xfa_roundtrip_test.go +++ b/tests/xfa_roundtrip_test.go @@ -7,9 +7,9 @@ import ( "path/filepath" "testing" - "github.com/benedoc-inc/pdfer/core/encrypt" - "github.com/benedoc-inc/pdfer/forms/xfa" - "github.com/benedoc-inc/pdfer/types" + "github.com/benedoc-inc/pdfer/v2/core/encrypt" + "github.com/benedoc-inc/pdfer/v2/forms/xfa" + "github.com/benedoc-inc/pdfer/v2/types" ) // getTestResourcePath is now in test_helpers.go