npm.io
38.0.0 • Published 4d ago

victory-vendor

Licence
MIT AND ISC AND BSD-3-Clause
Version
38.0.0
Deps
14
Size
383 kB
Vulns
0
Weekly
0
Stars
11.2K

VictoryVendor

Vendored dependencies for Victory.

Background

D3 has released most of its libraries as ESM-only. This means that consumers in Node.js applications can no longer just require() anything with a d3 transitive dependency, including much of Victory.

To help provide an easy path to folks still using CommonJS in their Node.js applications that consume Victory, we now provide this package to vendor in various d3-related packages.

Packages

We presently provide the following top-level libraries:

  • d3-ease
  • d3-interpolate
  • d3-scale
  • d3-shape
  • d3-timer

This is the total list of top and transitive libraries we vendor:

  • d3-array
  • d3-color
  • d3-ease
  • d3-format
  • d3-interpolate
  • d3-path
  • d3-scale
  • d3-shape
  • d3-time
  • d3-time-format
  • d3-timer
  • internmap

Note that this does not include the following D3 libraries that still support CommonJS:

  • d3-voronoi

How it works

We provide two alternate paths and behaviors -- for ESM and CommonJS

ESM

If you do a Node.js import like:

import { interpolate } from "victory-vendor/d3-interpolate";

under the hood it's going to just re-export and pass you through to node_modules/d3-interpolate, the real ESM library from D3.

CommonJS

If you do a Node.js import like:

const { interpolate } = require("victory-vendor/d3-interpolate");

under the hood it's going to will go to an alternate path that contains the transpiled version of the underlying d3 library to be found at victory-vendor/lib-vendor/d3-interpolate/**/*.js. This futher has internally consistent import references to other victory-vendor/lib-vendor/<pkg-name> paths.

Note that for some tooling (like Jest) that doesn't play well with package.json:exports routing to this CommonJS path, we also output a root file in the form of victory-vendor/d3-interpolate.js.

Licenses

victory-vendor itself is released under the MIT license. It also bundles transpiled copies of third-party libraries (in lib-vendor/, used by the CommonJS build) that carry their own licenses:

Library License
d3-array, d3-color, d3-format, d3-interpolate, d3-path, d3-scale, d3-shape, d3-time, d3-time-format, d3-timer, internmap ISC
d3-ease (includes Robert Penner's easing equations) BSD-3-Clause
d3-voronoi (includes Raymond Hill's Javascript-Voronoi, MIT) BSD-3-Clause AND MIT

The combined SPDX expression is MIT AND ISC AND BSD-3-Clause (see package.json:license). The full text of every license is in the published package's LICENSE.txt, and each library's original license is also kept at lib-vendor/<library>/LICENSE.

The ESM build (es/) re-exports the installed d3-* dependencies rather than bundling them, so ESM consumers get those licenses from the upstream packages directly.

Keywords