pagyra-js 0.0.1
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/.eslintrc.json +30 -0
- package/CHANGELOG.md +13 -0
- package/README.md +275 -0
- package/UA_Styles_Chromium.md +93 -0
- package/_ext/woff2_conversion/brotli-decode.d.ts +139 -0
- package/_ext/woff2_conversion/brotli-encode.d.ts +129 -0
- package/_ext/woff2_conversion/brotli-port.d.ts +12 -0
- package/_ext/woff2_conversion/brotli-shared-dictionary.d.ts +25 -0
- package/_ext/woff2_conversion/brotli-types.d.ts +15 -0
- package/_ext/woff2_conversion/woff2-common.d.ts +37 -0
- package/_ext/woff2_conversion/woff2-decode.d.ts +32 -0
- package/_ext/woff2_conversion/woff2-encode.d.ts +31 -0
- package/_ext/woff2_conversion/woff2-output.d.ts +39 -0
- package/_ext/woff2_original_cpp/brotli/brotli.c +1559 -0
- package/_ext/woff2_original_cpp/brotli/brotli.md +116 -0
- package/_ext/woff2_original_cpp/brotli/decode.h +409 -0
- package/_ext/woff2_original_cpp/brotli/encode.h +505 -0
- package/_ext/woff2_original_cpp/brotli/port.h +302 -0
- package/_ext/woff2_original_cpp/brotli/shared_dictionary.h +100 -0
- package/_ext/woff2_original_cpp/brotli/types.h +83 -0
- package/_ext/woff2_original_cpp/cmake/FindBrotliDec.cmake +35 -0
- package/_ext/woff2_original_cpp/cmake/FindBrotliEnc.cmake +35 -0
- package/_ext/woff2_original_cpp/include/woff2/decode.h +36 -0
- package/_ext/woff2_original_cpp/include/woff2/encode.h +43 -0
- package/_ext/woff2_original_cpp/include/woff2/output.h +86 -0
- package/_ext/woff2_original_cpp/src/buffer.h +164 -0
- package/_ext/woff2_original_cpp/src/convert_woff2ttf_fuzzer.cc +13 -0
- package/_ext/woff2_original_cpp/src/convert_woff2ttf_fuzzer_new_entry.cc +12 -0
- package/_ext/woff2_original_cpp/src/file.h +30 -0
- package/_ext/woff2_original_cpp/src/font.cc +400 -0
- package/_ext/woff2_original_cpp/src/font.h +105 -0
- package/_ext/woff2_original_cpp/src/glyph.cc +383 -0
- package/_ext/woff2_original_cpp/src/glyph.h +71 -0
- package/_ext/woff2_original_cpp/src/normalize.cc +314 -0
- package/_ext/woff2_original_cpp/src/normalize.h +39 -0
- package/_ext/woff2_original_cpp/src/port.h +66 -0
- package/_ext/woff2_original_cpp/src/round.h +27 -0
- package/_ext/woff2_original_cpp/src/store_bytes.h +55 -0
- package/_ext/woff2_original_cpp/src/table_tags.cc +82 -0
- package/_ext/woff2_original_cpp/src/table_tags.h +30 -0
- package/_ext/woff2_original_cpp/src/transform.cc +430 -0
- package/_ext/woff2_original_cpp/src/transform.h +26 -0
- package/_ext/woff2_original_cpp/src/variable_length.cc +129 -0
- package/_ext/woff2_original_cpp/src/variable_length.h +30 -0
- package/_ext/woff2_original_cpp/src/woff2_common.cc +50 -0
- package/_ext/woff2_original_cpp/src/woff2_common.h +64 -0
- package/_ext/woff2_original_cpp/src/woff2_compress.cc +43 -0
- package/_ext/woff2_original_cpp/src/woff2_dec.cc +1398 -0
- package/_ext/woff2_original_cpp/src/woff2_decompress.cc +41 -0
- package/_ext/woff2_original_cpp/src/woff2_enc.cc +458 -0
- package/_ext/woff2_original_cpp/src/woff2_info.cc +142 -0
- package/_ext/woff2_original_cpp/src/woff2_out.cc +63 -0
- package/assets/fonts/ttf/arimo/Arimo-Bold.ttf +0 -0
- package/assets/fonts/ttf/arimo/Arimo-BoldItalic.ttf +0 -0
- package/assets/fonts/ttf/arimo/Arimo-Italic.ttf +0 -0
- package/assets/fonts/ttf/arimo/Arimo-Regular.ttf +0 -0
- package/assets/fonts/ttf/cinzeldecorative/CinzelDecorative-Black.ttf +0 -0
- package/assets/fonts/ttf/cinzeldecorative/CinzelDecorative-Bold.ttf +0 -0
- package/assets/fonts/ttf/cinzeldecorative/CinzelDecorative-Regular.ttf +0 -0
- package/assets/fonts/ttf/dejavu/DejaVuSans.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Bold.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Light.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Medium.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Regular.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-SemiBold.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Bold.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Light.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Medium.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Regular.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-SemiBold.ttf +0 -0
- package/assets/fonts/ttf/notosans/NotoSans-Regular.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-Bold.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-BoldItalic.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-Italic.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-Regular.ttf +0 -0
- package/assets/fonts/ttf/stixtwomath/STIXTwoMath-Regular.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-Bold.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-BoldItalic.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-Italic.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-Regular.ttf +0 -0
- package/assets/fonts/woff/lato/lato-latin-400-italic.woff +0 -0
- package/assets/fonts/woff/lato/lato-latin-400-normal.woff +0 -0
- package/assets/fonts/woff/lato/lato-latin-700-italic.woff +0 -0
- package/assets/fonts/woff/lato/lato-latin-700-normal.woff +0 -0
- package/assets/fonts/woff2/caveat/Caveat-Bold.woff2 +0 -0
- package/assets/fonts/woff2/caveat/Caveat-Regular.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-400-italic.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-400-normal.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-700-italic.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-700-normal.woff2 +0 -0
- package/docs/AGENTS.md +288 -0
- package/docs/BACKGROUND-REPEAT-IMPLEMENTATION.md +127 -0
- package/docs/BACKGROUND-REPEAT-REFERENCE.md +127 -0
- package/docs/BACKGROUND-REPEAT-SPACE-ROUND.md +164 -0
- package/docs/css-properties-support.md +256 -0
- package/docs/src_modules_table.md +172 -0
- package/docs/text-overlap-fix.md +85 -0
- package/docs/text-overlap-investigation.md +27 -0
- package/eslint.config.js +36 -0
- package/glyph_measure.htm +1458 -0
- package/package.json +50 -0
- package/playground/browser-entry.ts +2 -0
- package/playground/exports/background-text-debug.pdf +0 -0
- package/playground/public/app.js +875 -0
- package/playground/public/assets/1.webp +0 -0
- package/playground/public/examples/accents-test.html +24 -0
- package/playground/public/examples/advanced-selectors-demo.html +118 -0
- package/playground/public/examples/background-advanced-showcase.html +82 -0
- package/playground/public/examples/background-clip-text.html +36 -0
- package/playground/public/examples/background-origin-showcase.html +137 -0
- package/playground/public/examples/background-position-showcase.html +83 -0
- package/playground/public/examples/background-repeat-showcase.html +83 -0
- package/playground/public/examples/background-repeat-space-round.html +348 -0
- package/playground/public/examples/background-size-showcase.html +82 -0
- package/playground/public/examples/background-text-debug.html +18 -0
- package/playground/public/examples/baseline-test.html +24 -0
- package/playground/public/examples/bold-showcase.html +150 -0
- package/playground/public/examples/bold-strike-example.html +12 -0
- package/playground/public/examples/border-collapse-test.html +23 -0
- package/playground/public/examples/centered-shadow-div.html +72 -0
- package/playground/public/examples/css-variables.html +50 -0
- package/playground/public/examples/debug-accents.html +11 -0
- package/playground/public/examples/debug-text-overlap.html +46 -0
- package/playground/public/examples/flex-gap-column.html +130 -0
- package/playground/public/examples/flex-gap-row.html +137 -0
- package/playground/public/examples/flex-padding-test.html +29 -0
- package/playground/public/examples/flexbox-text-test.html +193 -0
- package/playground/public/examples/fonts-demo.html +126 -0
- package/playground/public/examples/footer-example.html +4 -0
- package/playground/public/examples/gradient-text.html +54 -0
- package/playground/public/examples/grid-gap-demo.html +156 -0
- package/playground/public/examples/header-example.html +4 -0
- package/playground/public/examples/header-footer-example.html +27 -0
- package/playground/public/examples/image-showcase.html +33 -0
- package/playground/public/examples/justify-text.html +22 -0
- package/playground/public/examples/linear-gradient-example.html +38 -0
- package/playground/public/examples/lorem-span.html +14 -0
- package/playground/public/examples/margin-block-showcase.html +21 -0
- package/playground/public/examples/margin-inline-showcase.html +21 -0
- package/playground/public/examples/monthly-summary.html +95 -0
- package/playground/public/examples/multi-page-lorem.html +190 -0
- package/playground/public/examples/opacity-debug.html +39 -0
- package/playground/public/examples/opacity-example.html +70 -0
- package/playground/public/examples/png-image-example.html +13 -0
- package/playground/public/examples/red-rectangle.html +18 -0
- package/playground/public/examples/repro.html +24 -0
- package/playground/public/examples/rounded-borders-test.html +24 -0
- package/playground/public/examples/simple-list.html +89 -0
- package/playground/public/examples/simple-svg.html +37 -0
- package/playground/public/examples/simple-table.html +52 -0
- package/playground/public/examples/skew-div.html +138 -0
- package/playground/public/examples/skew-text.html +21 -0
- package/playground/public/examples/starter-report.css +51 -0
- package/playground/public/examples/starter-report.html +23 -0
- package/playground/public/examples/svg-aspect-ratio-showcase.html +116 -0
- package/playground/public/examples/svg-gradients-linear.html +28 -0
- package/playground/public/examples/svg-gradients-radial.html +29 -0
- package/playground/public/examples/svg-gradients-showcase.html +66 -0
- package/playground/public/examples/svg-image-path-test.html +43 -0
- package/playground/public/examples/svg-images-clipping.html +27 -0
- package/playground/public/examples/svg-path-gallery.html +118 -0
- package/playground/public/examples/svg-radial-transform-demo.html +78 -0
- package/playground/public/examples/svg-transform-stack.html +103 -0
- package/playground/public/examples/svg-transforms-demo.html +127 -0
- package/playground/public/examples/table-merge-test.html +34 -0
- package/playground/public/examples/text-decoration-showcase.html +138 -0
- package/playground/public/examples/text-indent-showcase.html +137 -0
- package/playground/public/examples/text-shadow-example.html +29 -0
- package/playground/public/examples/very-complex-css.html +293 -0
- package/playground/public/examples/webp-example.html +13 -0
- package/playground/public/examples/z-index-demo.html +93 -0
- package/playground/public/examples.json +240 -0
- package/playground/public/images/dice.png +0 -0
- package/playground/public/images/duck.jpg +0 -0
- package/playground/public/index.html +149 -0
- package/playground/public/mode.js +1 -0
- package/playground/public/styles.css +382 -0
- package/playground/public/tmp-h2-debug.html +33 -0
- package/playground/public/tmp-italic-debug.html +32 -0
- package/playground/public/vendor/codemirror/codemirror.min.css +1 -0
- package/playground/public/vendor/codemirror/codemirror.min.js +1 -0
- package/playground/public/vendor/codemirror/css.min.js +1 -0
- package/playground/public/vendor/codemirror/darcula.min.css +1 -0
- package/playground/public/vendor/codemirror/htmlmixed.min.js +1 -0
- package/playground/public/vendor/codemirror/javascript.min.js +1 -0
- package/playground/public/vendor/codemirror/xml.min.js +1 -0
- package/playground/public/vendor/pagyra-playground-browser.js +165966 -0
- package/playground/public/vendor/pagyra-playground-browser.js.map +7 -0
- package/playground/server.d.ts +1 -0
- package/playground/server.js +68 -0
- package/playground/server.ts +128 -0
- package/scripts/browser-build.ts +101 -0
- package/scripts/build-browser-bundle.ts +52 -0
- package/scripts/glyph-comparison/simulate.ts +744 -0
- package/scripts/playground-browser-server.ts +57 -0
- package/scripts/probe-roboto.ts +6 -0
- package/scripts/render-playground-example.ts +121 -0
- package/scripts/run-glyph-atlas-tuner-runner.mjs +113 -0
- package/scripts/run-glyph-atlas-tuner.ts +141 -0
- package/scripts/top-ts-files.ps1 +39 -0
- package/scripts/top-ts-files.sh +37 -0
- package/scripts/woff2_info.ps1 +132 -0
- package/src/browser-entry.ts +14 -0
- package/src/compression/adler32.ts +45 -0
- package/src/compression/brotli/brotli.ts +463 -0
- package/src/compression/brotli/index.ts +15 -0
- package/src/compression/brotli/transform.ts +184 -0
- package/src/compression/brotli/types.ts +58 -0
- package/src/compression/brotli/utils.ts +157 -0
- package/src/compression/brotli/vendor/bit_reader.js +124 -0
- package/src/compression/brotli/vendor/context.js +250 -0
- package/src/compression/brotli/vendor/decode.d.ts +2 -0
- package/src/compression/brotli/vendor/decode.js +938 -0
- package/src/compression/brotli/vendor/dictionary-data.js +9469 -0
- package/src/compression/brotli/vendor/dictionary.js +36 -0
- package/src/compression/brotli/vendor/huffman.js +123 -0
- package/src/compression/brotli/vendor/package.json +3 -0
- package/src/compression/brotli/vendor/prefix.js +60 -0
- package/src/compression/brotli/vendor/streams.js +31 -0
- package/src/compression/brotli/vendor/transform.js +247 -0
- package/src/compression/brotli/vendor-decode.d.ts +4 -0
- package/src/compression/brotli/woff2-glyf-transform.ts +623 -0
- package/src/compression/decompress.ts +16 -0
- package/src/compression/deflate.ts +295 -0
- package/src/compression/index.ts +4 -0
- package/src/compression/types.ts +26 -0
- package/src/compression/utils.ts +107 -0
- package/src/core.ts +18 -0
- package/src/css/apply-declarations.ts +86 -0
- package/src/css/background-types.ts +65 -0
- package/src/css/browser-defaults.ts +16 -0
- package/src/css/clip-path-types.ts +13 -0
- package/src/css/compute-style.ts +494 -0
- package/src/css/css-unit-resolver.ts +65 -0
- package/src/css/custom-properties.ts +215 -0
- package/src/css/enums.ts +127 -0
- package/src/css/font-face-parser.ts +233 -0
- package/src/css/font-weight.ts +65 -0
- package/src/css/inline-style-parser.ts +27 -0
- package/src/css/layout-property-resolver.ts +75 -0
- package/src/css/length.ts +141 -0
- package/src/css/line-height.ts +96 -0
- package/src/css/named-colors.ts +150 -0
- package/src/css/parsers/background-parser-extended.ts +111 -0
- package/src/css/parsers/background-parser.ts +456 -0
- package/src/css/parsers/border-block-parser.ts +26 -0
- package/src/css/parsers/border-inline-parser.ts +26 -0
- package/src/css/parsers/border-parser-extended.ts +256 -0
- package/src/css/parsers/border-parser.ts +175 -0
- package/src/css/parsers/box-shadow-parser.ts +106 -0
- package/src/css/parsers/clip-path-parser.ts +92 -0
- package/src/css/parsers/color-parser.ts +14 -0
- package/src/css/parsers/dimension-parser.ts +117 -0
- package/src/css/parsers/display-flex-parser.ts +59 -0
- package/src/css/parsers/flex-parser.ts +144 -0
- package/src/css/parsers/font-parser.ts +40 -0
- package/src/css/parsers/gradient-parser.ts +366 -0
- package/src/css/parsers/grid-parser-extended.ts +55 -0
- package/src/css/parsers/grid-parser.ts +218 -0
- package/src/css/parsers/length-parser.ts +95 -0
- package/src/css/parsers/list-style-parser.ts +39 -0
- package/src/css/parsers/margin-block-parser.ts +12 -0
- package/src/css/parsers/margin-inline-parser.ts +12 -0
- package/src/css/parsers/margin-parser.ts +30 -0
- package/src/css/parsers/opacity-parser.ts +32 -0
- package/src/css/parsers/overflow-wrap-parser.ts +38 -0
- package/src/css/parsers/padding-block-parser.ts +12 -0
- package/src/css/parsers/padding-inline-parser.ts +12 -0
- package/src/css/parsers/padding-parser.ts +30 -0
- package/src/css/parsers/position-parser.ts +75 -0
- package/src/css/parsers/register-parsers.ts +302 -0
- package/src/css/parsers/registry.ts +18 -0
- package/src/css/parsers/text-parser-extended.ts +144 -0
- package/src/css/parsers/text-parser.ts +25 -0
- package/src/css/parsers/text-shadow-parser.ts +94 -0
- package/src/css/properties/box-model.ts +82 -0
- package/src/css/properties/flexbox.ts +44 -0
- package/src/css/properties/gap.ts +14 -0
- package/src/css/properties/grid.ts +94 -0
- package/src/css/properties/layout.ts +59 -0
- package/src/css/properties/misc.ts +44 -0
- package/src/css/properties/typography.ts +71 -0
- package/src/css/properties/visual.ts +68 -0
- package/src/css/selectors/matcher.ts +219 -0
- package/src/css/selectors/parser.ts +163 -0
- package/src/css/selectors/simple-key.ts +31 -0
- package/src/css/selectors/specificity.ts +41 -0
- package/src/css/selectors/types.ts +31 -0
- package/src/css/shorthands/border-shorthand.ts +68 -0
- package/src/css/shorthands/box-shorthand.ts +33 -0
- package/src/css/style-inheritance.ts +50 -0
- package/src/css/style.ts +402 -0
- package/src/css/ua-defaults/base-defaults.ts +266 -0
- package/src/css/ua-defaults/browser-defaults.ts +134 -0
- package/src/css/ua-defaults/element-defaults.ts +374 -0
- package/src/css/ua-defaults/types.ts +43 -0
- package/src/css/unit-conversion.ts +24 -0
- package/src/css/utils.ts +108 -0
- package/src/css/viewport.ts +17 -0
- package/src/debug/audit.ts +20 -0
- package/src/debug/ids.ts +13 -0
- package/src/debug/log.js +28 -0
- package/src/debug/log.ts +52 -0
- package/src/debug/tree.ts +57 -0
- package/src/dom/node.ts +133 -0
- package/src/environment/browser-environment.ts +78 -0
- package/src/environment/environment.ts +35 -0
- package/src/environment/global.ts +13 -0
- package/src/environment/node-environment.browser.ts +28 -0
- package/src/environment/node-environment.ts +64 -0
- package/src/fonts/detector.ts +28 -0
- package/src/fonts/engines/ttf-engine.ts +28 -0
- package/src/fonts/engines/woff-engine.ts +38 -0
- package/src/fonts/engines/woff2-engine.ts +41 -0
- package/src/fonts/extractors/metrics-extractor.ts +362 -0
- package/src/fonts/font-registry-resolver.ts +132 -0
- package/src/fonts/index.ts +3 -0
- package/src/fonts/orchestrator.ts +92 -0
- package/src/fonts/parsers/base-parser.ts +23 -0
- package/src/fonts/types.ts +85 -0
- package/src/fonts/utils/ttf-reconstructor.ts +120 -0
- package/src/fonts/woff/decoder.ts +105 -0
- package/src/fonts/woff2/buffer.ts +106 -0
- package/src/fonts/woff2/decoder.ts +981 -0
- package/src/geometry/box.ts +48 -0
- package/src/geometry/matrix.ts +59 -0
- package/src/html/css/parse-css.ts +85 -0
- package/src/html/dom-converter.ts +433 -0
- package/src/html/image-converter.ts +200 -0
- package/src/html-to-pdf.ts +410 -0
- package/src/image/base-decoder.ts +149 -0
- package/src/image/image-service.ts +188 -0
- package/src/image/jpeg-decoder.ts +73 -0
- package/src/image/png-decoder.ts +550 -0
- package/src/image/types.ts +20 -0
- package/src/image/webp-decoder.ts +242 -0
- package/src/image/webp-huffman.ts +218 -0
- package/src/image/webp-riff-parser.ts +54 -0
- package/src/image/webp-vp8l-decoder.ts +199 -0
- package/src/index.ts +35 -0
- package/src/layout/context/float-context.ts +62 -0
- package/src/layout/context/layout-environment.ts +29 -0
- package/src/layout/debug.ts +18 -0
- package/src/layout/inline/bounding-box-calculator.ts +132 -0
- package/src/layout/inline/font-baseline-calculator.ts +76 -0
- package/src/layout/inline/inline-utils.ts +94 -0
- package/src/layout/inline/layout.ts +285 -0
- package/src/layout/inline/line_breaker.ts +109 -0
- package/src/layout/inline/measurement.ts +144 -0
- package/src/layout/inline/run-placer.ts +139 -0
- package/src/layout/inline/text-alignment.ts +70 -0
- package/src/layout/inline/tokenizer.ts +195 -0
- package/src/layout/inline/types.ts +76 -0
- package/src/layout/pipeline/context-factory.ts +16 -0
- package/src/layout/pipeline/default-engine.ts +24 -0
- package/src/layout/pipeline/engine.ts +59 -0
- package/src/layout/pipeline/layout-tree.ts +13 -0
- package/src/layout/pipeline/out-of-flow-manager.ts +73 -0
- package/src/layout/pipeline/strategy.ts +12 -0
- package/src/layout/pipeline/text-metrics-initializer.ts +13 -0
- package/src/layout/strategies/block.ts +236 -0
- package/src/layout/strategies/display-none.ts +14 -0
- package/src/layout/strategies/fallback.ts +15 -0
- package/src/layout/strategies/flex.ts +477 -0
- package/src/layout/strategies/fragmentation.ts +17 -0
- package/src/layout/strategies/grid.ts +247 -0
- package/src/layout/strategies/image.ts +342 -0
- package/src/layout/strategies/inline.ts +128 -0
- package/src/layout/strategies/table.ts +595 -0
- package/src/layout/table/cell_layout.ts +31 -0
- package/src/layout/table/diagnostics.ts +19 -0
- package/src/layout/text-run.ts +42 -0
- package/src/layout/utils/content-measurer.ts +117 -0
- package/src/layout/utils/display-utils.ts +24 -0
- package/src/layout/utils/floats.ts +98 -0
- package/src/layout/utils/gap-calculator.ts +167 -0
- package/src/layout/utils/inline-formatter.ts +31 -0
- package/src/layout/utils/inline-formatting.ts +9 -0
- package/src/layout/utils/margin.ts +140 -0
- package/src/layout/utils/node-math.ts +237 -0
- package/src/layout/utils/overflow.ts +14 -0
- package/src/layout/utils/sizing.ts +12 -0
- package/src/layout/utils/text-metrics.ts +361 -0
- package/src/logging/debug.ts +58 -0
- package/src/pdf/font/base14/widths-courier-bold.ts +159 -0
- package/src/pdf/font/base14/widths-courier.ts +159 -0
- package/src/pdf/font/base14/widths-helvetica-bold.ts +158 -0
- package/src/pdf/font/base14/widths-helvetica.ts +158 -0
- package/src/pdf/font/base14/widths-times-bold.ts +158 -0
- package/src/pdf/font/base14/widths-times-roman.ts +158 -0
- package/src/pdf/font/base14/widths-types.ts +25 -0
- package/src/pdf/font/base14-widths.ts +32 -0
- package/src/pdf/font/blur.ts +81 -0
- package/src/pdf/font/builtin-fonts.browser.ts +262 -0
- package/src/pdf/font/builtin-fonts.ts +126 -0
- package/src/pdf/font/composite-glyph-parser.ts +242 -0
- package/src/pdf/font/embedder.ts +395 -0
- package/src/pdf/font/font-config.ts +190 -0
- package/src/pdf/font/font-registry.ts +263 -0
- package/src/pdf/font/font-subset.ts +258 -0
- package/src/pdf/font/glyph-atlas-maxrects.ts +305 -0
- package/src/pdf/font/glyph-atlas-tuner.ts +98 -0
- package/src/pdf/font/glyph-atlas.ts +226 -0
- package/src/pdf/font/glyph-cache.ts +127 -0
- package/src/pdf/font/loca-reader.ts +109 -0
- package/src/pdf/font/managers/font-resource-manager.ts +73 -0
- package/src/pdf/font/managers/subset-resource-manager.ts +164 -0
- package/src/pdf/font/rasterizer.ts +270 -0
- package/src/pdf/font/resolvers/base-font-mapper.ts +77 -0
- package/src/pdf/font/resolvers/family-resolver.ts +33 -0
- package/src/pdf/font/resolvers/weight-style-applicator.ts +63 -0
- package/src/pdf/font/simple-glyph-parser.ts +289 -0
- package/src/pdf/font/to-unicode.ts +109 -0
- package/src/pdf/font/transformation-matrix.ts +136 -0
- package/src/pdf/font/ttf-cmap.ts +180 -0
- package/src/pdf/font/ttf-global-metrics.ts +58 -0
- package/src/pdf/font/ttf-glyf.ts +125 -0
- package/src/pdf/font/ttf-glyph-metrics.ts +43 -0
- package/src/pdf/font/ttf-lite.ts +269 -0
- package/src/pdf/font/ttf-table-parser.ts +132 -0
- package/src/pdf/font/ttf-table-provider.ts +61 -0
- package/src/pdf/font/widths.ts +79 -0
- package/src/pdf/font-subset/font-registry.ts +127 -0
- package/src/pdf/header-footer-layout.ts +153 -0
- package/src/pdf/header-footer-painter.ts +209 -0
- package/src/pdf/header-footer-renderer.ts +357 -0
- package/src/pdf/header-footer-tokens.ts +55 -0
- package/src/pdf/header-footer.ts +25 -0
- package/src/pdf/layout-tree-builder.ts +261 -0
- package/src/pdf/page-painter.ts +241 -0
- package/src/pdf/pagination.ts +155 -0
- package/src/pdf/primitives/pdf-builder.ts +378 -0
- package/src/pdf/primitives/pdf-bytes.ts +40 -0
- package/src/pdf/primitives/pdf-document.ts +108 -0
- package/src/pdf/primitives/pdf-reference-manager.ts +47 -0
- package/src/pdf/primitives/pdf-resource-registries.ts +255 -0
- package/src/pdf/primitives/pdf-serializers.ts +194 -0
- package/src/pdf/primitives/pdf-types.ts +73 -0
- package/src/pdf/render.ts +210 -0
- package/src/pdf/renderer/box-painter.ts +236 -0
- package/src/pdf/renderer/page-paint.ts +102 -0
- package/src/pdf/renderer/paint-box-shadows.ts +218 -0
- package/src/pdf/renderer/radius.ts +58 -0
- package/src/pdf/renderers/graphics-state-manager.ts +40 -0
- package/src/pdf/renderers/image-renderer.ts +127 -0
- package/src/pdf/renderers/radius-utils.ts +80 -0
- package/src/pdf/renderers/rectangle-renderer.ts +129 -0
- package/src/pdf/renderers/rounded-rect-path.ts +120 -0
- package/src/pdf/renderers/shape-renderer.ts +563 -0
- package/src/pdf/renderers/shape-utils.ts +194 -0
- package/src/pdf/renderers/text-decoration-renderer.ts +313 -0
- package/src/pdf/renderers/text-encoder.ts +41 -0
- package/src/pdf/renderers/text-font-resolver.ts +75 -0
- package/src/pdf/renderers/text-renderer-utils.ts +28 -0
- package/src/pdf/renderers/text-renderer.ts +391 -0
- package/src/pdf/renderers/text-shadow-renderer.ts +300 -0
- package/src/pdf/shading/gradient-service.ts +525 -0
- package/src/pdf/shading/index.ts +1 -0
- package/src/pdf/stacking/build-stacking-contexts.ts +93 -0
- package/src/pdf/stacking/resolve-paint-order.ts +157 -0
- package/src/pdf/stacking/types.ts +40 -0
- package/src/pdf/svg/aspect-ratio.ts +81 -0
- package/src/pdf/svg/coordinate-mapper.ts +81 -0
- package/src/pdf/svg/geometry-builder.ts +45 -0
- package/src/pdf/svg/render-svg.ts +296 -0
- package/src/pdf/svg/shape-renderer.ts +463 -0
- package/src/pdf/svg/style-computer.ts +246 -0
- package/src/pdf/transform-adapter.ts +26 -0
- package/src/pdf/types.ts +377 -0
- package/src/pdf/utils/background-layer-resolver.ts +439 -0
- package/src/pdf/utils/background-tiles.ts +192 -0
- package/src/pdf/utils/border-dashes.ts +109 -0
- package/src/pdf/utils/border-radius-utils.ts +86 -0
- package/src/pdf/utils/box-dimensions-utils.ts +47 -0
- package/src/pdf/utils/clip-path-resolver.ts +50 -0
- package/src/pdf/utils/clipping-path-builder.ts +190 -0
- package/src/pdf/utils/color-utils.ts +102 -0
- package/src/pdf/utils/coordinate-transformer.ts +30 -0
- package/src/pdf/utils/drop-shadow-raster.ts +233 -0
- package/src/pdf/utils/encoding.ts +98 -0
- package/src/pdf/utils/glyph-atlas-registrar.ts +13 -0
- package/src/pdf/utils/glyph-run-renderer.ts +129 -0
- package/src/pdf/utils/image-command-partitioner.ts +28 -0
- package/src/pdf/utils/image-matrix-builder.ts +31 -0
- package/src/pdf/utils/image-utils.ts +26 -0
- package/src/pdf/utils/list-utils.ts +194 -0
- package/src/pdf/utils/node-text-run-factory.ts +202 -0
- package/src/pdf/utils/page-resource-registrar.ts +46 -0
- package/src/pdf/utils/result-combiner.ts +102 -0
- package/src/pdf/utils/shadow-utils.ts +127 -0
- package/src/pdf/utils/text-alignment-resolver.ts +76 -0
- package/src/pdf/utils/text-decoration-utils.ts +64 -0
- package/src/pdf/utils/text-layout-adjuster.ts +185 -0
- package/src/pdf/utils/text-utils.ts +193 -0
- package/src/pdf/utils/transform-scope-manager.ts +69 -0
- package/src/render/offset.ts +170 -0
- package/src/shim/empty.ts +2 -0
- package/src/shim/fs-empty.ts +5 -0
- package/src/shim/url-empty.ts +7 -0
- package/src/shim/zlib-empty.ts +9 -0
- package/src/style/shorthands/index.ts +19 -0
- package/src/style/ua/defaults.ts +69 -0
- package/src/svg/index.ts +4 -0
- package/src/svg/parser-registry.ts +71 -0
- package/src/svg/parser.ts +486 -0
- package/src/svg/path-data.ts +515 -0
- package/src/svg/types.ts +194 -0
- package/src/text/line-breaker.ts +321 -0
- package/src/text/text-transform.ts +43 -0
- package/src/text/text.ts +33 -0
- package/src/transform/css-parser.ts +95 -0
- package/src/types/fonts.ts +62 -0
- package/src/types/public.ts +19 -0
- package/src/units/page-utils.ts +58 -0
- package/src/units/units.ts +50 -0
- package/src/utils/base64.ts +24 -0
- package/test-output.txt +79 -0
- package/tests/css/background-parser.spec.ts +14 -0
- package/tests/css/clip-path-parser.spec.ts +66 -0
- package/tests/environment/path-resolution.spec.ts +104 -0
- package/tests/helpers/ai-layout-diagnostics.ts +141 -0
- package/tests/helpers/render-utils.ts +52 -0
- package/tests/helpers/text-geometry.ts +56 -0
- package/tests/layout/custom-properties.test.ts +38 -0
- package/tests/layout/gap-calculator.spec.ts +196 -0
- package/tests/layout/inline-background-alignment.spec.ts +93 -0
- package/tests/layout/inline-fragments.spec.ts +26 -0
- package/tests/layout/run-placer-baseline.spec.ts +108 -0
- package/tests/pdf/alignments.spec.ts +26 -0
- package/tests/pdf/background-clip.spec.ts +57 -0
- package/tests/pdf/background-repeat-space-round.spec.ts +35 -0
- package/tests/pdf/background-repeat.spec.ts +137 -0
- package/tests/pdf/border-radius.spec.ts +151 -0
- package/tests/pdf/clip-path.spec.ts +92 -0
- package/tests/pdf/radial-gradient.spec.ts +50 -0
- package/tests/pdf/svg-stroke-dash.spec.ts +81 -0
- package/tests/pdf/text-transform-matrix.spec.ts +43 -0
- package/tsconfig.json +17 -0
- package/types/fonts.js +10 -0
- package/vitest.config.ts +9 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/* Copyright 2016 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Macros for compiler / platform specific API declarations. */
|
|
8
|
+
|
|
9
|
+
#ifndef BROTLI_COMMON_PORT_H_
|
|
10
|
+
#define BROTLI_COMMON_PORT_H_
|
|
11
|
+
|
|
12
|
+
/* The following macros were borrowed from https://github.com/nemequ/hedley
|
|
13
|
+
* with permission of original author - Evan Nemerson <evan@nemerson.com> */
|
|
14
|
+
|
|
15
|
+
/* >>> >>> >>> hedley macros */
|
|
16
|
+
|
|
17
|
+
#define BROTLI_MAKE_VERSION(major, minor, revision) \
|
|
18
|
+
(((major) * 1000000) + ((minor) * 1000) + (revision))
|
|
19
|
+
|
|
20
|
+
#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__)
|
|
21
|
+
#define BROTLI_GNUC_VERSION \
|
|
22
|
+
BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
|
|
23
|
+
#elif defined(__GNUC__)
|
|
24
|
+
#define BROTLI_GNUC_VERSION BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, 0)
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#if defined(BROTLI_GNUC_VERSION)
|
|
28
|
+
#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) \
|
|
29
|
+
(BROTLI_GNUC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
30
|
+
#else
|
|
31
|
+
#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) (0)
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000)
|
|
35
|
+
#define BROTLI_MSVC_VERSION \
|
|
36
|
+
BROTLI_MAKE_VERSION((_MSC_FULL_VER / 10000000), \
|
|
37
|
+
(_MSC_FULL_VER % 10000000) / 100000, \
|
|
38
|
+
(_MSC_FULL_VER % 100000) / 100)
|
|
39
|
+
#elif defined(_MSC_FULL_VER)
|
|
40
|
+
#define BROTLI_MSVC_VERSION \
|
|
41
|
+
BROTLI_MAKE_VERSION((_MSC_FULL_VER / 1000000), \
|
|
42
|
+
(_MSC_FULL_VER % 1000000) / 10000, \
|
|
43
|
+
(_MSC_FULL_VER % 10000) / 10)
|
|
44
|
+
#elif defined(_MSC_VER)
|
|
45
|
+
#define BROTLI_MSVC_VERSION \
|
|
46
|
+
BROTLI_MAKE_VERSION(_MSC_VER / 100, _MSC_VER % 100, 0)
|
|
47
|
+
#endif
|
|
48
|
+
|
|
49
|
+
#if !defined(_MSC_VER)
|
|
50
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) (0)
|
|
51
|
+
#elif defined(_MSC_VER) && (_MSC_VER >= 1400)
|
|
52
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
|
|
53
|
+
(_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch)))
|
|
54
|
+
#elif defined(_MSC_VER) && (_MSC_VER >= 1200)
|
|
55
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
|
|
56
|
+
(_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch)))
|
|
57
|
+
#else
|
|
58
|
+
#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \
|
|
59
|
+
(_MSC_VER >= ((major * 100) + (minor)))
|
|
60
|
+
#endif
|
|
61
|
+
|
|
62
|
+
#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE)
|
|
63
|
+
#define BROTLI_INTEL_VERSION \
|
|
64
|
+
BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100, \
|
|
65
|
+
__INTEL_COMPILER % 100, \
|
|
66
|
+
__INTEL_COMPILER_UPDATE)
|
|
67
|
+
#elif defined(__INTEL_COMPILER)
|
|
68
|
+
#define BROTLI_INTEL_VERSION \
|
|
69
|
+
BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0)
|
|
70
|
+
#endif
|
|
71
|
+
|
|
72
|
+
#if defined(BROTLI_INTEL_VERSION)
|
|
73
|
+
#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) \
|
|
74
|
+
(BROTLI_INTEL_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
75
|
+
#else
|
|
76
|
+
#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) (0)
|
|
77
|
+
#endif
|
|
78
|
+
|
|
79
|
+
#if defined(__PGI) && \
|
|
80
|
+
defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)
|
|
81
|
+
#define BROTLI_PGI_VERSION \
|
|
82
|
+
BROTLI_MAKE_VERSION(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__)
|
|
83
|
+
#endif
|
|
84
|
+
|
|
85
|
+
#if defined(BROTLI_PGI_VERSION)
|
|
86
|
+
#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) \
|
|
87
|
+
(BROTLI_PGI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
88
|
+
#else
|
|
89
|
+
#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) (0)
|
|
90
|
+
#endif
|
|
91
|
+
|
|
92
|
+
#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000)
|
|
93
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
94
|
+
BROTLI_MAKE_VERSION( \
|
|
95
|
+
(((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), \
|
|
96
|
+
(((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), \
|
|
97
|
+
(__SUNPRO_C & 0xf) * 10)
|
|
98
|
+
#elif defined(__SUNPRO_C)
|
|
99
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
100
|
+
BROTLI_MAKE_VERSION((__SUNPRO_C >> 8) & 0xf, \
|
|
101
|
+
(__SUNPRO_C >> 4) & 0xf, \
|
|
102
|
+
(__SUNPRO_C) & 0xf)
|
|
103
|
+
#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000)
|
|
104
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
105
|
+
BROTLI_MAKE_VERSION( \
|
|
106
|
+
(((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), \
|
|
107
|
+
(((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), \
|
|
108
|
+
(__SUNPRO_CC & 0xf) * 10)
|
|
109
|
+
#elif defined(__SUNPRO_CC)
|
|
110
|
+
#define BROTLI_SUNPRO_VERSION \
|
|
111
|
+
BROTLI_MAKE_VERSION((__SUNPRO_CC >> 8) & 0xf, \
|
|
112
|
+
(__SUNPRO_CC >> 4) & 0xf, \
|
|
113
|
+
(__SUNPRO_CC) & 0xf)
|
|
114
|
+
#endif
|
|
115
|
+
|
|
116
|
+
#if defined(BROTLI_SUNPRO_VERSION)
|
|
117
|
+
#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) \
|
|
118
|
+
(BROTLI_SUNPRO_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
119
|
+
#else
|
|
120
|
+
#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) (0)
|
|
121
|
+
#endif
|
|
122
|
+
|
|
123
|
+
#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION)
|
|
124
|
+
#define BROTLI_ARM_VERSION \
|
|
125
|
+
BROTLI_MAKE_VERSION((__ARMCOMPILER_VERSION / 1000000), \
|
|
126
|
+
(__ARMCOMPILER_VERSION % 1000000) / 10000, \
|
|
127
|
+
(__ARMCOMPILER_VERSION % 10000) / 100)
|
|
128
|
+
#elif defined(__CC_ARM) && defined(__ARMCC_VERSION)
|
|
129
|
+
#define BROTLI_ARM_VERSION \
|
|
130
|
+
BROTLI_MAKE_VERSION((__ARMCC_VERSION / 1000000), \
|
|
131
|
+
(__ARMCC_VERSION % 1000000) / 10000, \
|
|
132
|
+
(__ARMCC_VERSION % 10000) / 100)
|
|
133
|
+
#endif
|
|
134
|
+
|
|
135
|
+
#if defined(BROTLI_ARM_VERSION)
|
|
136
|
+
#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) \
|
|
137
|
+
(BROTLI_ARM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
138
|
+
#else
|
|
139
|
+
#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) (0)
|
|
140
|
+
#endif
|
|
141
|
+
|
|
142
|
+
#if defined(__ibmxl__)
|
|
143
|
+
#define BROTLI_IBM_VERSION \
|
|
144
|
+
BROTLI_MAKE_VERSION(__ibmxl_version__, \
|
|
145
|
+
__ibmxl_release__, \
|
|
146
|
+
__ibmxl_modification__)
|
|
147
|
+
#elif defined(__xlC__) && defined(__xlC_ver__)
|
|
148
|
+
#define BROTLI_IBM_VERSION \
|
|
149
|
+
BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff)
|
|
150
|
+
#elif defined(__xlC__)
|
|
151
|
+
#define BROTLI_IBM_VERSION BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, 0)
|
|
152
|
+
#endif
|
|
153
|
+
|
|
154
|
+
#if defined(BROTLI_IBM_VERSION)
|
|
155
|
+
#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) \
|
|
156
|
+
(BROTLI_IBM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
157
|
+
#else
|
|
158
|
+
#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) (0)
|
|
159
|
+
#endif
|
|
160
|
+
|
|
161
|
+
#if defined(__TI_COMPILER_VERSION__)
|
|
162
|
+
#define BROTLI_TI_VERSION \
|
|
163
|
+
BROTLI_MAKE_VERSION((__TI_COMPILER_VERSION__ / 1000000), \
|
|
164
|
+
(__TI_COMPILER_VERSION__ % 1000000) / 1000, \
|
|
165
|
+
(__TI_COMPILER_VERSION__ % 1000))
|
|
166
|
+
#endif
|
|
167
|
+
|
|
168
|
+
#if defined(BROTLI_TI_VERSION)
|
|
169
|
+
#define BROTLI_TI_VERSION_CHECK(major, minor, patch) \
|
|
170
|
+
(BROTLI_TI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
171
|
+
#else
|
|
172
|
+
#define BROTLI_TI_VERSION_CHECK(major, minor, patch) (0)
|
|
173
|
+
#endif
|
|
174
|
+
|
|
175
|
+
#if defined(__IAR_SYSTEMS_ICC__)
|
|
176
|
+
#if __VER__ > 1000
|
|
177
|
+
#define BROTLI_IAR_VERSION \
|
|
178
|
+
BROTLI_MAKE_VERSION((__VER__ / 1000000), \
|
|
179
|
+
(__VER__ / 1000) % 1000, \
|
|
180
|
+
(__VER__ % 1000))
|
|
181
|
+
#else
|
|
182
|
+
#define BROTLI_IAR_VERSION BROTLI_MAKE_VERSION(VER / 100, __VER__ % 100, 0)
|
|
183
|
+
#endif
|
|
184
|
+
#endif
|
|
185
|
+
|
|
186
|
+
#if defined(BROTLI_IAR_VERSION)
|
|
187
|
+
#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) \
|
|
188
|
+
(BROTLI_IAR_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
189
|
+
#else
|
|
190
|
+
#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) (0)
|
|
191
|
+
#endif
|
|
192
|
+
|
|
193
|
+
#if defined(__TINYC__)
|
|
194
|
+
#define BROTLI_TINYC_VERSION \
|
|
195
|
+
BROTLI_MAKE_VERSION(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100)
|
|
196
|
+
#endif
|
|
197
|
+
|
|
198
|
+
#if defined(BROTLI_TINYC_VERSION)
|
|
199
|
+
#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) \
|
|
200
|
+
(BROTLI_TINYC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))
|
|
201
|
+
#else
|
|
202
|
+
#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) (0)
|
|
203
|
+
#endif
|
|
204
|
+
|
|
205
|
+
#if defined(__has_attribute)
|
|
206
|
+
#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \
|
|
207
|
+
__has_attribute(attribute)
|
|
208
|
+
#else
|
|
209
|
+
#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \
|
|
210
|
+
BROTLI_GNUC_VERSION_CHECK(major, minor, patch)
|
|
211
|
+
#endif
|
|
212
|
+
|
|
213
|
+
#if defined(__has_builtin)
|
|
214
|
+
#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \
|
|
215
|
+
__has_builtin(builtin)
|
|
216
|
+
#else
|
|
217
|
+
#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \
|
|
218
|
+
BROTLI_GNUC_VERSION_CHECK(major, minor, patch)
|
|
219
|
+
#endif
|
|
220
|
+
|
|
221
|
+
#if defined(__has_feature)
|
|
222
|
+
#define BROTLI_HAS_FEATURE(feature) __has_feature(feature)
|
|
223
|
+
#else
|
|
224
|
+
#define BROTLI_HAS_FEATURE(feature) (0)
|
|
225
|
+
#endif
|
|
226
|
+
|
|
227
|
+
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
228
|
+
#define BROTLI_PUBLIC
|
|
229
|
+
#elif BROTLI_GNUC_VERSION_CHECK(3, 3, 0) || \
|
|
230
|
+
BROTLI_TI_VERSION_CHECK(8, 0, 0) || \
|
|
231
|
+
BROTLI_INTEL_VERSION_CHECK(16, 0, 0) || \
|
|
232
|
+
BROTLI_ARM_VERSION_CHECK(4, 1, 0) || \
|
|
233
|
+
BROTLI_IBM_VERSION_CHECK(13, 1, 0) || \
|
|
234
|
+
BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) || \
|
|
235
|
+
(BROTLI_TI_VERSION_CHECK(7, 3, 0) && \
|
|
236
|
+
defined(__TI_GNU_ATTRIBUTE_SUPPORT__) && defined(__TI_EABI__))
|
|
237
|
+
#define BROTLI_PUBLIC __attribute__ ((visibility ("default")))
|
|
238
|
+
#else
|
|
239
|
+
#define BROTLI_PUBLIC
|
|
240
|
+
#endif
|
|
241
|
+
|
|
242
|
+
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
243
|
+
#define BROTLI_INTERNAL
|
|
244
|
+
#elif BROTLI_GNUC_VERSION_CHECK(3, 3, 0) || \
|
|
245
|
+
BROTLI_TI_VERSION_CHECK(8, 0, 0) || \
|
|
246
|
+
BROTLI_INTEL_VERSION_CHECK(16, 0, 0) || \
|
|
247
|
+
BROTLI_ARM_VERSION_CHECK(4, 1, 0) || \
|
|
248
|
+
BROTLI_IBM_VERSION_CHECK(13, 1, 0) || \
|
|
249
|
+
BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) || \
|
|
250
|
+
(BROTLI_TI_VERSION_CHECK(7, 3, 0) && \
|
|
251
|
+
defined(__TI_GNU_ATTRIBUTE_SUPPORT__) && defined(__TI_EABI__))
|
|
252
|
+
#define BROTLI_INTERNAL __attribute__ ((visibility ("hidden")))
|
|
253
|
+
#else
|
|
254
|
+
#define BROTLI_INTERNAL
|
|
255
|
+
#endif
|
|
256
|
+
|
|
257
|
+
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \
|
|
258
|
+
!defined(__STDC_NO_VLA__) && !defined(__cplusplus) && \
|
|
259
|
+
!defined(__PGI) && !defined(__PGIC__) && !defined(__TINYC__) && \
|
|
260
|
+
!defined(__clang__)
|
|
261
|
+
#define BROTLI_ARRAY_PARAM(name) (name)
|
|
262
|
+
#else
|
|
263
|
+
#define BROTLI_ARRAY_PARAM(name)
|
|
264
|
+
#endif
|
|
265
|
+
|
|
266
|
+
/* <<< <<< <<< end of hedley macros. */
|
|
267
|
+
|
|
268
|
+
#if defined(BROTLI_SHARED_COMPILATION)
|
|
269
|
+
#if defined(_WIN32)
|
|
270
|
+
#if defined(BROTLICOMMON_SHARED_COMPILATION)
|
|
271
|
+
#define BROTLI_COMMON_API __declspec(dllexport)
|
|
272
|
+
#else /* !BROTLICOMMON_SHARED_COMPILATION */
|
|
273
|
+
#define BROTLI_COMMON_API __declspec(dllimport)
|
|
274
|
+
#endif /* BROTLICOMMON_SHARED_COMPILATION */
|
|
275
|
+
#if defined(BROTLIDEC_SHARED_COMPILATION)
|
|
276
|
+
#define BROTLI_DEC_API __declspec(dllexport)
|
|
277
|
+
#else /* !BROTLIDEC_SHARED_COMPILATION */
|
|
278
|
+
#define BROTLI_DEC_API __declspec(dllimport)
|
|
279
|
+
#endif /* BROTLIDEC_SHARED_COMPILATION */
|
|
280
|
+
#if defined(BROTLIENC_SHARED_COMPILATION)
|
|
281
|
+
#define BROTLI_ENC_API __declspec(dllexport)
|
|
282
|
+
#else /* !BROTLIENC_SHARED_COMPILATION */
|
|
283
|
+
#define BROTLI_ENC_API __declspec(dllimport)
|
|
284
|
+
#endif /* BROTLIENC_SHARED_COMPILATION */
|
|
285
|
+
#else /* !_WIN32 */
|
|
286
|
+
#define BROTLI_COMMON_API BROTLI_PUBLIC
|
|
287
|
+
#define BROTLI_DEC_API BROTLI_PUBLIC
|
|
288
|
+
#define BROTLI_ENC_API BROTLI_PUBLIC
|
|
289
|
+
#endif /* _WIN32 */
|
|
290
|
+
#else /* BROTLI_SHARED_COMPILATION */
|
|
291
|
+
#define BROTLI_COMMON_API
|
|
292
|
+
#define BROTLI_DEC_API
|
|
293
|
+
#define BROTLI_ENC_API
|
|
294
|
+
#endif
|
|
295
|
+
|
|
296
|
+
#if defined(BROTLI_BUILD_ENC_EXTRA_API)
|
|
297
|
+
#define BROTLI_ENC_EXTRA_API BROTLI_ENC_API
|
|
298
|
+
#else
|
|
299
|
+
#define BROTLI_ENC_EXTRA_API BROTLI_INTERNAL
|
|
300
|
+
#endif
|
|
301
|
+
|
|
302
|
+
#endif /* BROTLI_COMMON_PORT_H_ */
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/* Copyright 2017 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* (Opaque) Shared Dictionary definition and utilities. */
|
|
8
|
+
|
|
9
|
+
#ifndef BROTLI_COMMON_SHARED_DICTIONARY_H_
|
|
10
|
+
#define BROTLI_COMMON_SHARED_DICTIONARY_H_
|
|
11
|
+
|
|
12
|
+
#include <brotli/port.h>
|
|
13
|
+
#include <brotli/types.h>
|
|
14
|
+
|
|
15
|
+
#if defined(__cplusplus) || defined(c_plusplus)
|
|
16
|
+
extern "C" {
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#define SHARED_BROTLI_MIN_DICTIONARY_WORD_LENGTH 4
|
|
20
|
+
#define SHARED_BROTLI_MAX_DICTIONARY_WORD_LENGTH 31
|
|
21
|
+
#define SHARED_BROTLI_NUM_DICTIONARY_CONTEXTS 64
|
|
22
|
+
#define SHARED_BROTLI_MAX_COMPOUND_DICTS 15
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Opaque structure that holds shared dictionary data.
|
|
26
|
+
*
|
|
27
|
+
* Allocated and initialized with ::BrotliSharedDictionaryCreateInstance.
|
|
28
|
+
* Cleaned up and deallocated with ::BrotliSharedDictionaryDestroyInstance.
|
|
29
|
+
*/
|
|
30
|
+
typedef struct BrotliSharedDictionaryStruct BrotliSharedDictionary;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Input data type for ::BrotliSharedDictionaryAttach.
|
|
34
|
+
*/
|
|
35
|
+
typedef enum BrotliSharedDictionaryType {
|
|
36
|
+
/** Raw LZ77 prefix dictionary. */
|
|
37
|
+
BROTLI_SHARED_DICTIONARY_RAW = 0,
|
|
38
|
+
/** Serialized shared dictionary.
|
|
39
|
+
*
|
|
40
|
+
* DO NOT USE: methods accepting this value will fail.
|
|
41
|
+
*/
|
|
42
|
+
BROTLI_SHARED_DICTIONARY_SERIALIZED = 1
|
|
43
|
+
} BrotliSharedDictionaryType;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Creates an instance of ::BrotliSharedDictionary.
|
|
47
|
+
*
|
|
48
|
+
* Fresh instance has default word dictionary and transforms
|
|
49
|
+
* and no LZ77 prefix dictionary.
|
|
50
|
+
*
|
|
51
|
+
* @p alloc_func and @p free_func @b MUST be both zero or both non-zero. In the
|
|
52
|
+
* case they are both zero, default memory allocators are used. @p opaque is
|
|
53
|
+
* passed to @p alloc_func and @p free_func when they are called. @p free_func
|
|
54
|
+
* has to return without doing anything when asked to free a NULL pointer.
|
|
55
|
+
*
|
|
56
|
+
* @param alloc_func custom memory allocation function
|
|
57
|
+
* @param free_func custom memory free function
|
|
58
|
+
* @param opaque custom memory manager handle
|
|
59
|
+
* @returns @c 0 if instance can not be allocated or initialized
|
|
60
|
+
* @returns pointer to initialized ::BrotliSharedDictionary otherwise
|
|
61
|
+
*/
|
|
62
|
+
BROTLI_COMMON_API BrotliSharedDictionary* BrotliSharedDictionaryCreateInstance(
|
|
63
|
+
brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Deinitializes and frees ::BrotliSharedDictionary instance.
|
|
67
|
+
*
|
|
68
|
+
* @param dict shared dictionary instance to be cleaned up and deallocated
|
|
69
|
+
*/
|
|
70
|
+
BROTLI_COMMON_API void BrotliSharedDictionaryDestroyInstance(
|
|
71
|
+
BrotliSharedDictionary* dict);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Attaches dictionary to a given instance of ::BrotliSharedDictionary.
|
|
75
|
+
*
|
|
76
|
+
* Dictionary to be attached is represented in a serialized format as a region
|
|
77
|
+
* of memory.
|
|
78
|
+
*
|
|
79
|
+
* Provided data it partially referenced by a resulting (compound) dictionary,
|
|
80
|
+
* and should be kept untouched, while at least one compound dictionary uses it.
|
|
81
|
+
* This way memory overhead is kept minimal by the cost of additional resource
|
|
82
|
+
* management.
|
|
83
|
+
*
|
|
84
|
+
* @param dict dictionary to extend
|
|
85
|
+
* @param type type of dictionary to attach
|
|
86
|
+
* @param data_size size of @p data
|
|
87
|
+
* @param data serialized dictionary of type @p type, with at least @p data_size
|
|
88
|
+
* addressable bytes
|
|
89
|
+
* @returns ::BROTLI_TRUE if provided dictionary is successfully attached
|
|
90
|
+
* @returns ::BROTLI_FALSE otherwise
|
|
91
|
+
*/
|
|
92
|
+
BROTLI_COMMON_API BROTLI_BOOL BrotliSharedDictionaryAttach(
|
|
93
|
+
BrotliSharedDictionary* dict, BrotliSharedDictionaryType type,
|
|
94
|
+
size_t data_size, const uint8_t data[BROTLI_ARRAY_PARAM(data_size)]);
|
|
95
|
+
|
|
96
|
+
#if defined(__cplusplus) || defined(c_plusplus)
|
|
97
|
+
} /* extern "C" */
|
|
98
|
+
#endif
|
|
99
|
+
|
|
100
|
+
#endif /* BROTLI_COMMON_SHARED_DICTIONARY_H_ */
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* Copyright 2013 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @file
|
|
9
|
+
* Common types used in decoder and encoder API.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#ifndef BROTLI_COMMON_TYPES_H_
|
|
13
|
+
#define BROTLI_COMMON_TYPES_H_
|
|
14
|
+
|
|
15
|
+
#include <stddef.h> /* IWYU pragma: export */
|
|
16
|
+
|
|
17
|
+
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
|
18
|
+
typedef __int8 int8_t;
|
|
19
|
+
typedef unsigned __int8 uint8_t;
|
|
20
|
+
typedef __int16 int16_t;
|
|
21
|
+
typedef unsigned __int16 uint16_t;
|
|
22
|
+
typedef __int32 int32_t;
|
|
23
|
+
typedef unsigned __int32 uint32_t;
|
|
24
|
+
typedef unsigned __int64 uint64_t;
|
|
25
|
+
typedef __int64 int64_t;
|
|
26
|
+
#else
|
|
27
|
+
#include <stdint.h> /* IWYU pragma: export */
|
|
28
|
+
#endif /* defined(_MSC_VER) && (_MSC_VER < 1600) */
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A portable @c bool replacement.
|
|
32
|
+
*
|
|
33
|
+
* ::BROTLI_BOOL is a "documentation" type: actually it is @c int, but in API it
|
|
34
|
+
* denotes a type, whose only values are ::BROTLI_TRUE and ::BROTLI_FALSE.
|
|
35
|
+
*
|
|
36
|
+
* ::BROTLI_BOOL values passed to Brotli should either be ::BROTLI_TRUE or
|
|
37
|
+
* ::BROTLI_FALSE, or be a result of ::TO_BROTLI_BOOL macros.
|
|
38
|
+
*
|
|
39
|
+
* ::BROTLI_BOOL values returned by Brotli should not be tested for equality
|
|
40
|
+
* with @c true, @c false, ::BROTLI_TRUE, ::BROTLI_FALSE, but rather should be
|
|
41
|
+
* evaluated, for example: @code{.cpp}
|
|
42
|
+
* if (SomeBrotliFunction(encoder, BROTLI_TRUE) &&
|
|
43
|
+
* !OtherBrotliFunction(decoder, BROTLI_FALSE)) {
|
|
44
|
+
* bool x = !!YetAnotherBrotliFunction(encoder, TO_BROLTI_BOOL(2 * 2 == 4));
|
|
45
|
+
* DoSomething(x);
|
|
46
|
+
* }
|
|
47
|
+
* @endcode
|
|
48
|
+
*/
|
|
49
|
+
#define BROTLI_BOOL int
|
|
50
|
+
/** Portable @c true replacement. */
|
|
51
|
+
#define BROTLI_TRUE 1
|
|
52
|
+
/** Portable @c false replacement. */
|
|
53
|
+
#define BROTLI_FALSE 0
|
|
54
|
+
/** @c bool to ::BROTLI_BOOL conversion macros. */
|
|
55
|
+
#define TO_BROTLI_BOOL(X) (!!(X) ? BROTLI_TRUE : BROTLI_FALSE)
|
|
56
|
+
|
|
57
|
+
#define BROTLI_MAKE_UINT64_T(high, low) ((((uint64_t)(high)) << 32) | low)
|
|
58
|
+
|
|
59
|
+
#define BROTLI_UINT32_MAX (~((uint32_t)0))
|
|
60
|
+
#define BROTLI_SIZE_MAX (~((size_t)0))
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Allocating function pointer type.
|
|
64
|
+
*
|
|
65
|
+
* @param opaque custom memory manager handle provided by client
|
|
66
|
+
* @param size requested memory region size; can not be @c 0
|
|
67
|
+
* @returns @c 0 in the case of failure
|
|
68
|
+
* @returns a valid pointer to a memory region of at least @p size bytes
|
|
69
|
+
* long otherwise
|
|
70
|
+
*/
|
|
71
|
+
typedef void* (*brotli_alloc_func)(void* opaque, size_t size);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Deallocating function pointer type.
|
|
75
|
+
*
|
|
76
|
+
* This function @b SHOULD do nothing if @p address is @c 0.
|
|
77
|
+
*
|
|
78
|
+
* @param opaque custom memory manager handle provided by client
|
|
79
|
+
* @param address memory region pointer returned by ::brotli_alloc_func, or @c 0
|
|
80
|
+
*/
|
|
81
|
+
typedef void (*brotli_free_func)(void* opaque, void* address);
|
|
82
|
+
|
|
83
|
+
#endif /* BROTLI_COMMON_TYPES_H_ */
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Copyright 2017 Igalia S.L. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Distributed under MIT license.
|
|
4
|
+
# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
# Try to find BrotliDec. Once done, this will define
|
|
7
|
+
#
|
|
8
|
+
# BROTLIDEC_FOUND - system has BrotliDec.
|
|
9
|
+
# BROTLIDEC_INCLUDE_DIRS - the BrotliDec include directories
|
|
10
|
+
# BROTLIDEC_LIBRARIES - link these to use BrotliDec.
|
|
11
|
+
|
|
12
|
+
find_package(PkgConfig)
|
|
13
|
+
|
|
14
|
+
pkg_check_modules(PC_BROTLIDEC libbrotlidec)
|
|
15
|
+
|
|
16
|
+
find_path(BROTLIDEC_INCLUDE_DIRS
|
|
17
|
+
NAMES brotli/decode.h
|
|
18
|
+
HINTS ${PC_BROTLIDEC_INCLUDEDIR}
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
find_library(BROTLIDEC_LIBRARIES
|
|
22
|
+
NAMES brotlidec
|
|
23
|
+
HINTS ${PC_BROTLIDEC_LIBDIR}
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
include(FindPackageHandleStandardArgs)
|
|
27
|
+
find_package_handle_standard_args(BrotliDec
|
|
28
|
+
REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
|
|
29
|
+
FOUND_VAR BROTLIDEC_FOUND
|
|
30
|
+
VERSION_VAR PC_BROTLIDEC_VERSION)
|
|
31
|
+
|
|
32
|
+
mark_as_advanced(
|
|
33
|
+
BROTLIDEC_INCLUDE_DIRS
|
|
34
|
+
BROTLIDEC_LIBRARIES
|
|
35
|
+
)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Copyright 2017 Igalia S.L. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Distributed under MIT license.
|
|
4
|
+
# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
# Try to find BrotliEnc. Once done, this will define
|
|
7
|
+
#
|
|
8
|
+
# BROTLIENC_FOUND - system has BrotliEnc.
|
|
9
|
+
# BROTLIENC_INCLUDE_DIRS - the BrotliEnc include directories
|
|
10
|
+
# BROTLIENC_LIBRARIES - link these to use BrotliEnc.
|
|
11
|
+
|
|
12
|
+
find_package(PkgConfig)
|
|
13
|
+
|
|
14
|
+
pkg_check_modules(PC_BROTLIENC libbrotlienc)
|
|
15
|
+
|
|
16
|
+
find_path(BROTLIENC_INCLUDE_DIRS
|
|
17
|
+
NAMES brotli/encode.h
|
|
18
|
+
HINTS ${PC_BROTLIENC_INCLUDEDIR}
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
find_library(BROTLIENC_LIBRARIES
|
|
22
|
+
NAMES brotlienc
|
|
23
|
+
HINTS ${PC_BROTLIENC_LIBDIR}
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
include(FindPackageHandleStandardArgs)
|
|
27
|
+
find_package_handle_standard_args(BrotliEnc
|
|
28
|
+
REQUIRED_VARS BROTLIENC_INCLUDE_DIRS BROTLIENC_LIBRARIES
|
|
29
|
+
FOUND_VAR BROTLIENC_FOUND
|
|
30
|
+
VERSION_VAR PC_BROTLIENC_VERSION)
|
|
31
|
+
|
|
32
|
+
mark_as_advanced(
|
|
33
|
+
BROTLIENC_INCLUDE_DIRS
|
|
34
|
+
BROTLIENC_LIBRARIES
|
|
35
|
+
)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* Copyright 2014 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Library for converting WOFF2 format font files to their TTF versions. */
|
|
8
|
+
|
|
9
|
+
#ifndef WOFF2_WOFF2_DEC_H_
|
|
10
|
+
#define WOFF2_WOFF2_DEC_H_
|
|
11
|
+
|
|
12
|
+
#include <stddef.h>
|
|
13
|
+
#include <inttypes.h>
|
|
14
|
+
#include <woff2/output.h>
|
|
15
|
+
|
|
16
|
+
namespace woff2 {
|
|
17
|
+
|
|
18
|
+
// Compute the size of the final uncompressed font, or 0 on error.
|
|
19
|
+
size_t ComputeWOFF2FinalSize(const uint8_t *data, size_t length);
|
|
20
|
+
|
|
21
|
+
// Decompresses the font into the target buffer. The result_length should
|
|
22
|
+
// be the same as determined by ComputeFinalSize(). Returns true on successful
|
|
23
|
+
// decompression.
|
|
24
|
+
// DEPRECATED; please prefer the version that takes a WOFF2Out*
|
|
25
|
+
bool ConvertWOFF2ToTTF(uint8_t *result, size_t result_length,
|
|
26
|
+
const uint8_t *data, size_t length);
|
|
27
|
+
|
|
28
|
+
// Decompresses the font into out. Returns true on success.
|
|
29
|
+
// Works even if WOFF2Header totalSfntSize is wrong.
|
|
30
|
+
// Please prefer this API.
|
|
31
|
+
bool ConvertWOFF2ToTTF(const uint8_t *data, size_t length,
|
|
32
|
+
WOFF2Out* out);
|
|
33
|
+
|
|
34
|
+
} // namespace woff2
|
|
35
|
+
|
|
36
|
+
#endif // WOFF2_WOFF2_DEC_H_
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* Copyright 2014 Google Inc. All Rights Reserved.
|
|
2
|
+
|
|
3
|
+
Distributed under MIT license.
|
|
4
|
+
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* Library for converting WOFF2 format font files to their TTF versions. */
|
|
8
|
+
|
|
9
|
+
#ifndef WOFF2_WOFF2_ENC_H_
|
|
10
|
+
#define WOFF2_WOFF2_ENC_H_
|
|
11
|
+
|
|
12
|
+
#include <stddef.h>
|
|
13
|
+
#include <inttypes.h>
|
|
14
|
+
#include <string>
|
|
15
|
+
|
|
16
|
+
namespace woff2 {
|
|
17
|
+
|
|
18
|
+
struct WOFF2Params {
|
|
19
|
+
WOFF2Params() : extended_metadata(""), brotli_quality(11),
|
|
20
|
+
allow_transforms(true) {}
|
|
21
|
+
|
|
22
|
+
std::string extended_metadata;
|
|
23
|
+
int brotli_quality;
|
|
24
|
+
bool allow_transforms;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// Returns an upper bound on the size of the compressed file.
|
|
28
|
+
size_t MaxWOFF2CompressedSize(const uint8_t* data, size_t length);
|
|
29
|
+
size_t MaxWOFF2CompressedSize(const uint8_t *data, size_t length,
|
|
30
|
+
const std::string &extended_metadata);
|
|
31
|
+
|
|
32
|
+
// Compresses the font into the target buffer. *result_length should be at least
|
|
33
|
+
// the value returned by MaxWOFF2CompressedSize(), upon return, it is set to the
|
|
34
|
+
// actual compressed size. Returns true on successful compression.
|
|
35
|
+
bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
|
|
36
|
+
uint8_t *result, size_t *result_length);
|
|
37
|
+
bool ConvertTTFToWOFF2(const uint8_t *data, size_t length,
|
|
38
|
+
uint8_t *result, size_t *result_length,
|
|
39
|
+
const WOFF2Params& params);
|
|
40
|
+
|
|
41
|
+
} // namespace woff2
|
|
42
|
+
|
|
43
|
+
#endif // WOFF2_WOFF2_ENC_H_
|