esm-dev / esm.sh Goto Github PK
View Code? Open in Web Editor NEWA fast, smart, & global CDN for modern(es2015+) web development.
Home Page: https://esm.sh
License: MIT License
A fast, smart, & global CDN for modern(es2015+) web development.
Home Page: https://esm.sh
License: MIT License
https://esm.sh/[email protected]/js/i18n/locales/cs.js doesn't work
this worked previously in version 16 https://cdn.esm.sh/v16/[email protected]/esnext/js/i18n/locales/cs.js
the problem is: name export not from domhandler.default
i think maybe we need reslove name export is from default or not
import toMarkdown_ from "https://esm.sh/mdast-util-to-markdown";
yields => Error: Unable to resolve media type for specifier: "https://cdn.esm.sh/v35/[email protected]/types.d.ts"
https://cdn.esm.sh/v35/[email protected]/types.d.ts yields:
/* esm.sh - error */
throw new Error("[esm.sh] " + "open /tmp/esm-build-413904a1d3c767a56b2ad4a8af7be3e19623444b/node_modules/mdast-util-to-markdown/types.d.ts.js: no such file or directory");
export default null;
Seems like the cache is corrupt, or a bad references is produced
https://esm.sh/vanillajs-datepicker/js/i18n/locales/cs.js doesn't load the locales files, I think this worked earlier - https://github.com/mymth/vanillajs-datepicker/blob/master/js/i18n/locales/cs.js
Hey!
For some reason we can't start our project (this project is inside a docker and it was ok before last releases of esm.sh).
The error is the following:
Check https://deno.land/x/[email protected]/cli/start.ts
error: Uncaught (in promise) TypeError: AssertionError: "data" is unexpectedly null for "https://esm.sh/v25/_node.ns.d.ts".
at assert (deno:cli/tsc/99_main_compiler.js:59:13)
at Object.getSourceFile (deno:cli/tsc/99_main_compiler.js:268:7)
at findSourceFileWorker (deno:cli/tsc/00_typescript.js:106861:29)
at findSourceFile (deno:cli/tsc/00_typescript.js:106771:26)
at deno:cli/tsc/00_typescript.js:106728:85
at getSourceFileFromReferenceWorker (deno:cli/tsc/00_typescript.js:106695:34)
at processSourceFile (deno:cli/tsc/00_typescript.js:106728:13)
at deno:cli/tsc/00_typescript.js:107014:17
at Object.forEach (deno:cli/tsc/00_typescript.js:382:30)
at processReferencedFiles (deno:cli/tsc/00_typescript.js:107012:16)
```
Would be nice to see some stats like served packages and number of requests per month.
/* esm.sh - error */
throw new Error("[esm.sh] " + "esbuild: Declarations with the name \"arguments\" cannot be used in strict mode");
export default null;
I am importing React but I am not getting any autocompletion can anyone tell me what should be project config to get it working ?
Importing https://cdn.esm.sh/v9/@material-ui/[email protected]/withStyles.d.ts (dependency of @material-ui/core) will result in the following
/* esm.sh - error */
throw new Error("[esm.sh] " + "yarn: warning package.json: No license field\nwarning No license field\nerror An unexpected error occurred: \"https://registry.yarnpkg.com/@material-ui%2fstyles/withStyles.d.ts: Request \\\"https://registry.yarnpkg.com/@material-ui%2fstyles/withStyles.d.ts\\\" returned a 405\".\n");
export default null;
Hey, @ije nice try for esm.sh 's refactoring to transform node eval
to ast parser
.
Better for some package like: /@lume/element
, /@lume/variable
.
But bad for some packages too, here is the details:
Online Test for current esm.sh : 66.23%
Online Test for (esm.alibaba-inc.com) which is based on old version: 89.61%
error message:
error: Uncaught SyntaxError: The requested module 'https://cdn.esm.sh/v15/_node_fs.js' does not provide an export named 'default' import __fs$ from "https://cdn.esm.sh/v15/_node_fs.js"; ~~~~~ at <anonymous>
If you go to esm.sh/solid-ssr you get the following code:
/* esm.sh - error */
throw new Error("[esm.sh] " + "esbuild: Could not resolve \"solid-ssr\" (mark it as external to exclude it from the bundle)");
export default null;
So basically for some reason Solid SSR doesn't work.
I'm trying to create modern build stack using javascript modules and dynamic imports. And today this is very much possible for example with rollup and modules from npm, with esm.sh even better for loading modules directly from CDN.
The problem is production use and old browsers, it's possible now to use rollup and @babel/env to use javascript modules and dynamic imports as amd with requirejs, but that only works for npm imported es modules. (eg. https://web.dev/publish-modern-javascript/#@rollupplugin-babel)
dir: 'dist/js',
format: 'esm',
entryFileNames: '[name].es5.js',
chunkFileNames: '[name].[hash].es5.js',
plugins: [
getBabelOutputPlugin({
presets: [['@babel/env', { modules: 'amd', targets: {
esmodules: true,
} }]],
}),
]
So my question is, if it's possible to do something like import React from 'https://esm.sh/react?target=amd'
? That way there could be a rollup plugin that would add correct urls for legacy builds.
And ssh.sh could be very much be used as CDN for es modules in production. Thoughts?
import('https://esm.sh/@lume/element').then(({Element}) => {
console.log(Element)
})
results in logging undefined
instead of the expected value.
Note that the @lume/element
package follows modern ESM standards and it works in Node.js ESM, or any tools that strictly follow Node ESM standards (like Webpack 5+).
Here's what the entry looks like: https://unpkg.com/@lume/element
Importing the module https://esm.sh/@apollo/client returns the empty esbuild bundle:
https://cdn.esm.sh/v29/@apollo/[email protected]/esnext/client.js
Is this a bug in esm.sh or esbuild?
Hey team,
Since change on deno polyfill (last commits) we have an issue when we use our package from esm:
Example of usages:
export { parseStringPromise } from "https://esm.sh/[email protected]";
Thank you for esm.sh, of all the things I tried this gets me the closest to running telegraf
on Deno. But not close enough:
~
$ deno --version
deno 1.7.1 (release, x86_64-pc-windows-msvc)
v8 8.9.255.3
typescript 4.1.3
~
$ deno eval 'import "https://esm.sh/[email protected]?dev"'
error: Uncaught SyntaxError: The requested module '/v15/[email protected]/esnext/stream-browserify.development.js' does not provide an export named 'Readable'
import {Readable} from "/v15/[email protected]/esnext/stream-browserify.development.js";
~~~~~~~~
at <anonymous> (https://cdn.esm.sh/v15/[email protected]/esnext/telegraf.development.js:1542:9)
[1] ~
$
telegraf
depends on sandwich-stream
, which has an .mjs
entry which import { Readable } from 'stream'
. This is legal:
~
$ node --version
v14.0.0
~
$ node --input-type=module --eval 'import { Readable } from "stream"'
~
$
However, stream-browserify
, used by esm.sh to ponyfill stream
, doesn't support it. I can open a PR, but only if @goto-bus-stop or another maintainer promises to actually review it.
Otherwise, esm.sh should switch to better maintained ponyfill, perhaps https://deno.land/std/node/stream.ts?
I'm trying to use deno bundle
with esm React v17.0.1, but got this error:
$ deno bundle --config tsconfig.json src/client.tsx public/assets/js/client.js
Bundle file:///.../deno-react-minimal-frontend/src/client.tsx
Check file:///.../deno-react-minimal-frontend/src/client.tsx
Unsupported compiler options in "/.../deno-react-minimal-frontend/tsconfig.json".
The following options were ignored:
allowUmdGlobalAccess, disableSizeLimit, esModuleInterop, module, moduleResolution, noEmit, preserveConstEnums, resolveJsonModule, skipLibCheck, sourceMap, target
error: TS2344 [ERROR]: Type 'C' does not satisfy the constraint 'ElementType<any>'.
Type 'string | number | ForwardRefExoticComponent<any> | (new (props: any) => Component<any, {}, any>) | ((props: any, context?: any) => ReactElement<any, string | ((props: any) => ReactElement<...> | null) | (new (props: any) => Component<...>)> | null)' is not assignable to type 'ElementType<any>'.
Type 'number' is not assignable to type 'ElementType<any>'.
Type 'C' is not assignable to type 'FunctionComponent<any>'.
Type 'string | number | ForwardRefExoticComponent<any> | (new (props: any) => Component<any, {}, any>) | ((props: any, context?: any) => ReactElement<any, string | ((props: any) => ReactElement<...> | null) | (new (props: any) => Component<...>)> | null)' is not assignable to type 'FunctionComponent<any>'.
Type 'string' is not assignable to type 'FunctionComponent<any>'.
"ref" extends keyof ComponentPropsWithRef<C>
^
at https://esm.sh/@types/[email protected]/index.d.ts:120:51
TS2344 [ERROR]: Type 'C' does not satisfy the constraint 'ElementType<any>'.
Type 'C' is not assignable to type 'FunctionComponent<any>'.
? NonNullable<ComponentPropsWithRef<C>["ref"]> extends Ref<
^
at https://esm.sh/@types/[email protected]/index.d.ts:121:49
Found 2 errors.
Here is my import/export part of code:
export { default as React } from "https://esm.sh/[email protected]";
export { default as ReactDOM } from "https://esm.sh/[email protected]";
My environment:
Deno v1.5.2
OS: macOS Mojave 10.14.6
I've just tried using this im/export:
deps/react.ts
export { default as React } from "https://esm.sh/[react,react-dom]/react?dev&no-check";
But when I tried to create JSX component as const MyComponent: React.FC<MyComponentProps> = ({ prop1, ..., children }) => { ... }
, it'd give out error that the prop bindings are implicit any
.
And in test code, I can't find FC
nor FunctionalComponent
in imported React
deps/react.test.ts
import { React } from "./react.ts";
// ...
console.log("React=",React);
console.log("React.FC=",React.FC);
Output:
React= {
default: {
Fragment: Symbol(react.fragment),
StrictMode: Symbol(react.strict_mode),
Profiler: Symbol(react.profiler),
Suspense: Symbol(react.suspense),
Children: {
map: [Function: mapChildren],
forEach: [Function: forEachChildren],
count: [Function: countChildren],
toArray: [Function: toArray],
only: [Function: onlyChild]
},
Component: [Function: Component],
PureComponent: [Function: PureComponent],
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
ReactCurrentDispatcher: { current: null },
ReactCurrentBatchConfig: { transition: 0 },
ReactCurrentOwner: { current: null },
IsSomeRendererActing: { current: false },
assign: [Function: assign],
ReactDebugCurrentFrame: {
setExtraStackFrame: [Function],
getCurrentStack: null,
getStackAddendum: [Function]
}
},
cloneElement: [Function: cloneElementWithValidation],
createContext: [Function: createContext],
createElement: [Function: createElementWithValidation],
createFactory: [Function: createFactoryWithValidation],
createRef: [Function: createRef],
forwardRef: [Function: forwardRef],
isValidElement: [Function: isValidElement],
lazy: [Function: lazy],
memo: [Function: memo],
useCallback: [Function: useCallback],
useContext: [Function: useContext],
useDebugValue: [Function: useDebugValue],
useEffect: [Function: useEffect],
useImperativeHandle: [Function: useImperativeHandle],
useLayoutEffect: [Function: useLayoutEffect],
useMemo: [Function: useMemo],
useReducer: [Function: useReducer],
useRef: [Function: useRef],
useState: [Function: useState],
version: "17.0.1"
},
Fragment: [Getter],
StrictMode: [Getter],
Profiler: [Getter],
Suspense: [Getter],
Children: [Getter],
Component: [Getter],
PureComponent: [Getter],
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: [Getter],
cloneElement: [Getter],
createContext: [Getter],
createElement: [Getter],
createFactory: [Getter],
createRef: [Getter],
forwardRef: [Getter],
isValidElement: [Getter],
lazy: [Getter],
memo: [Getter],
useCallback: [Getter],
useContext: [Getter],
useDebugValue: [Getter],
useEffect: [Getter],
useImperativeHandle: [Getter],
useLayoutEffect: [Getter],
useMemo: [Getter],
useReducer: [Getter],
useRef: [Getter],
useState: [Getter],
version: [Getter]
}
React.FC= undefined
Did I miss something here, or is React.FC just deprecated ?
Hey, I try to build my website using aleph 3.0 alpha 8, but the following file failed to build
https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts
/* esm.sh - error */
throw new Error("[esm.sh] " + "esbuild: The constant \"nominalTypeHack\" must be initialized");
export default null;
11:55:24 PM 02/08/2021: INFO Aleph server config loaded from aleph.config.js
11:55:24 PM 02/08/2021: INFO Building...
11:55:25 PM 02/08/2021: INFO Download https://esm.sh/[email protected]
11:55:26 PM 02/08/2021: INFO Download https://cdn.esm.sh/v15/[email protected]/esnext/react.js
11:55:26 PM 02/08/2021: INFO Download https://deno.land/x/[email protected]/mod.ts
11:55:27 PM 02/08/2021: INFO Download https://deno.land/x/[email protected]/framework/react/hooks.ts
11:55:27 PM 02/08/2021: INFO Download https://deno.land/x/[email protected]/framework/react/context.ts
11:55:27 PM 02/08/2021: INFO Download https://deno.land/x/[email protected]/framework/react/util.ts
11:55:27 PM 02/08/2021: INFO Download https://deno.land/x/[email protected]/framework/react/error.ts
11:55:28 PM 02/08/2021: INFO Download https://esm.sh/@ethersproject/providers
11:55:28 PM 02/08/2021: INFO Download https://cdn.esm.sh/v15/@ethersproject/[email protected]/esnext/providers.js
11:55:30 PM 02/08/2021: INFO Download https://cdn.esm.sh/v15/_process_browser.js
11:55:31 PM 02/08/2021: INFO Download https://esm.sh/[email protected]
11:55:31 PM 02/08/2021: INFO Download https://cdn.esm.sh/v15/[email protected]/esnext/react-dom.js
11:55:32 PM 02/08/2021: INFO Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts
11:55:33 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:34 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:35 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:36 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:37 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:37 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:38 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:39 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:39 PM 02/08/2021: WARN Download https://cdn.esm.sh/v13/@types/[email protected]/index.d.ts failed, retrying...
11:55:40 PM 02/08/2021: error: Uncaught (in promise) Error: Internal Server Error
11:55:40 PM 02/08/2021: return Promise.reject(new Error(resp.statusText));
11:55:40 PM 02/08/2021: ^
11:55:40 PM 02/08/2021: at app.ts:1141:35
11:55:40 PM 02/08/2021: at async Application.fetchDependency (app.ts:1139:24)
11:55:40 PM 02/08/2021: at async Application.compile (app.ts:800:25)
11:55:40 PM 02/08/2021: at async Application.compile (app.ts:983:22)
11:55:40 PM 02/08/2021: at async Application.compile (app.ts:983:22)
11:55:40 PM 02/08/2021: at async Application.compile (app.ts:983:22)
11:55:40 PM 02/08/2021: at async Application.compile (app.ts:983:22)
11:55:40 PM 02/08/2021: at async Application.init (app.ts:455:19)
11:55:40 PM 02/08/2021: at async Application.build (app.ts:239:5)
11:55:40 PM 02/08/2021: at async default (build.ts:18:3)
11:56:07 PM 02/08/2021: Error occured during the build.
Esm.sh does not correctly export non default exports. When using skypack it does.
Take graphql-request for example.
Graphql-request does export a gql function.
https://github.com/prisma-labs/graphql-request/blob/5b233c5658e65ed0d98cf8bff50beec413f399b9/src/index.ts#L223
Using skypack:
import request, {gql} from "https://cdn.skypack.dev/graphql-request";
console.log(gql); // function...
Using esm.sh:
import request, {gql} from "https://esm.sh/graphql-request";
console.log(gql); // undefined
What's strange is when you download the esm.sh bundle (https://cdn.esm.sh/v14/[email protected]/esnext/graphql-request.js) it contains the following at the end. Which clearly contains gql...
...
export {
jt as ClientError, At as GraphQLClient, It as
default, Bt as gql, _t as rawRequest, Ft as request
};
Recently Skypack launched a feature kind of like what ESM.sh does - uses the node compat layer. Instead of having deno bundle
stuff which needs to be committed they auto alias it to the URL to the node compat layer. I think this is a great feature as it removes the need to do chore commits to add the polyfills.
I'm trying to import React, ReactDOM and React Router for bundling by Deno.
However, when running app in browser it dies with this error:
Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
at resolveDispatcher (client.bundle.js:24618)
at useContext2 (client.bundle.js:24624)
at useLocation (client.bundle.js:25894)
at useRouteMatch (client.bundle.js:25900)
at HeaderNavBar (client.bundle.js:26187)
...
The hook calls are surely located inside Functional Components.
Then I tried to import/re-export these 3 libs bundled together like this (previously only react and react-dom is bundled):
// src/deps/react.ts
export { default as React } from "https://esm.sh/[[email protected],[email protected],[email protected]]/react?dev&no-check";
// src/deps/react-dom.ts
export { default as ReactDOM } from "https://esm.sh/[[email protected],[email protected],[email protected]]/react-dom?dev&no-check";
// src/deps/react-router.ts
export {
BrowserRouter as Router,
...
useRouteMatch,
} from "https://esm.sh/[[email protected],[email protected],[email protected]]/react-router-dom?dev&no-check";
but Deno cannot process them because the links gave error:
/* esm.sh - error */
throw new Error("[esm.sh] " + "yarn: ");
export default null;
Removing @version
numbers still gives the same results.
I have not much to add other than the error:
Uncaught Error: [esm.sh] esbuild: Could not resolve "react/v39/[email protected]/deno/object-assign" (mark it as external to exclude it from the bundle)
<anonymous> object-assign.development.js:1
object-assign.development.js:1:20
<anonymous> object-assign.development.js:1
InnerModuleEvaluation self-hosted:2379
InnerModuleEvaluation self-hosted:2379
InnerModuleEval
I came across these errors while trying to download html-minifier
. Is this intentional or can it be fixed?
Download http://esm.sh/html-minifier
Download https://cdn.esm.sh/v27/[email protected]/deno/html-minifier.js
Download https://cdn.esm.sh/v27/@types/[email protected]/index.d.ts
Download https://cdn.esm.sh/v27/[email protected]/deno/stream-http.js
Download https://cdn.esm.sh/v27/[email protected]/deno/url.js
Download https://cdn.esm.sh/v27/[email protected]/deno/https-browserify.js
Download https://cdn.esm.sh/v27/_node_process.js
Download https://cdn.esm.sh/v27/[email protected]/deno/path-browserify.js
Download https://cdn.esm.sh/v27/[email protected]/deno/browser.js
Download https://cdn.esm.sh/v27/_node_buffer.js
Download https://deno.land/[email protected]/node/fs.ts
Download https://cdn.esm.sh/v27/@types/[email protected]/index.d.ts
Download https://cdn.esm.sh/v27/@types/[email protected]/index.d.ts
Download https://cdn.esm.sh/v27/@types/[email protected]/index.d.ts
Download https://cdn.esm.sh/v27/[email protected]/deno/buffer.js
Download https://cdn.esm.sh/v27/[email protected]/deno/events.js
Download https://cdn.esm.sh/v27/[email protected]/deno/util.js
Download https://cdn.esm.sh/v27/[email protected]/deno/punycode.js
Download https://cdn.esm.sh/v27/[email protected]/deno/querystring-es3.js
Download https://cdn.esm.sh/v27/@types/[email protected]/http.d.ts
Download https://cdn.esm.sh/v27/@types/[email protected]/https.d.ts
Download https://esm.sh/v27/_node.ns.d.ts
Download https://cdn.esm.sh/v27/[email protected]/source-map.d.ts
Download https://deno.land/[email protected]/node/_fs/_fs_chown.ts
Download https://deno.land/[email protected]/node/_fs/_fs_mkdir.ts
Download https://deno.land/[email protected]/node/_fs/_fs_constants.ts
Download https://deno.land/[email protected]/node/_fs/_fs_mkdtemp.ts
Download https://deno.land/[email protected]/node/_fs/_fs_realpath.ts
Download https://deno.land/[email protected]/node/_fs/_fs_rmdir.ts
Download https://deno.land/[email protected]/node/_fs/_fs_access.ts
Download https://deno.land/[email protected]/node/_fs/_fs_appendFile.ts
Download https://deno.land/[email protected]/node/_fs/_fs_unlink.ts
Download https://deno.land/[email protected]/node/_fs/_fs_readdir.ts
Download https://deno.land/[email protected]/node/_fs/_fs_watch.ts
Download https://deno.land/[email protected]/node/_fs/_fs_open.ts
Download https://deno.land/[email protected]/node/_fs/_fs_stat.ts
Download https://deno.land/[email protected]/node/_fs/_fs_lstat.ts
Download https://deno.land/[email protected]/node/_fs/_fs_truncate.ts
Download https://deno.land/[email protected]/node/_fs/promises/mod.ts
Download https://deno.land/[email protected]/node/_fs/_fs_rename.ts
Download https://deno.land/[email protected]/node/_fs/_fs_close.ts
Download https://deno.land/[email protected]/node/_fs/_fs_writeFile.ts
Download https://deno.land/[email protected]/node/_fs/_fs_chmod.ts
Download https://deno.land/[email protected]/node/_fs/_fs_readFile.ts
Download https://deno.land/[email protected]/node/_fs/_fs_readlink.ts
Download https://deno.land/[email protected]/node/_fs/_fs_exists.ts
Download https://deno.land/[email protected]/node/_fs/_fs_copy.ts
Download https://deno.land/[email protected]/node/path.ts
Download https://deno.land/[email protected]/node/_utils.ts
Download https://deno.land/[email protected]/node/_fs/_fs_common.ts
Download https://deno.land/[email protected]/node/buffer.ts
Download https://cdn.esm.sh/v27/node:stream
Download https://cdn.esm.sh/v27/node:url
Download https://cdn.esm.sh/v27/node:net
Download https://deno.land/[email protected]/node/_errors.ts
Download https://deno.land/[email protected]/node/events.ts
Download https://deno.land/[email protected]/node/_fs/_fs_dirent.ts
Download https://deno.land/[email protected]/node/_fs/promises/_fs_readFile.ts
Download https://deno.land/[email protected]/node/_fs/promises/_fs_writeFile.ts
Download https://deno.land/[email protected]/fs/mod.ts
Download https://cdn.esm.sh/v27/node:tls
Download https://cdn.esm.sh/v27/node:http
Download https://deno.land/[email protected]/async/mod.ts
Download https://deno.land/[email protected]/testing/asserts.ts
Download https://deno.land/[email protected]/path/mod.ts
Download https://deno.land/[email protected]/encoding/base64.ts
Download https://deno.land/[email protected]/encoding/hex.ts
Download https://deno.land/[email protected]/_util/assert.ts
Download https://deno.land/[email protected]/node/util.ts
Download https://deno.land/[email protected]/fs/walk.ts
Download https://deno.land/[email protected]/fs/eol.ts
Download https://deno.land/[email protected]/fs/exists.ts
Download https://deno.land/[email protected]/fs/ensure_dir.ts
Download https://deno.land/[email protected]/fs/move.ts
Download https://deno.land/[email protected]/fs/copy.ts
Download https://deno.land/[email protected]/fs/expand_glob.ts
Download https://deno.land/[email protected]/fs/ensure_link.ts
Download https://deno.land/[email protected]/fs/ensure_symlink.ts
Download https://deno.land/[email protected]/fs/empty_dir.ts
Download https://deno.land/[email protected]/fs/ensure_file.ts
Download https://deno.land/[email protected]/async/mux_async_iterator.ts
Download https://deno.land/[email protected]/async/delay.ts
Download https://deno.land/[email protected]/async/pool.ts
Download https://deno.land/[email protected]/async/deferred.ts
Download https://deno.land/[email protected]/path/common.ts
Download https://deno.land/[email protected]/path/_interface.ts
Download https://deno.land/[email protected]/path/posix.ts
Download https://deno.land/[email protected]/path/win32.ts
Download https://deno.land/[email protected]/path/glob.ts
Download https://deno.land/[email protected]/_util/os.ts
Download https://deno.land/[email protected]/path/separator.ts
Download https://deno.land/[email protected]/testing/_diff.ts
Download https://deno.land/[email protected]/fmt/colors.ts
Download https://deno.land/[email protected]/node/_util/_util_callbackify.ts
Download https://deno.land/[email protected]/node/_util/_util_promisify.ts
Download https://deno.land/[email protected]/node/_util/_util_types.ts
Download https://deno.land/[email protected]/fs/_util.ts
Download https://deno.land/[email protected]/path/_util.ts
Download https://deno.land/[email protected]/path/_constants.ts
Check file:///example.ts
error: TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
export * from '/v27/@types/[email protected]/https.d.ts';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/https.d.ts:2:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import * as tls from '/v27/node:tls';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/https.d.ts:6:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import * as http from '/v27/node:http';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/https.d.ts:7:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import { URL } from '/v27/node:url';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/https.d.ts:8:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
export * from '/v27/@types/[email protected]/http.d.ts';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/http.d.ts:2:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import * as stream from '/v27/node:stream';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/http.d.ts:6:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import { URL } from '/v27/node:url';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/http.d.ts:7:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import { Socket, Server as NetServer } from '/v27/node:net';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v27/@types/[email protected]/http.d.ts:8:5
Found 8 errors.
For example, when trying to compile WalletConnect, it throws "Could not find the binary git"
WalletConnect/walletconnect-monorepo#405
Is it possible to have git?
Using the https://esm.sh/stripe
package gives the error,
error: TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
export * from '/v33/@types/[email protected]/http.d.ts';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v33/@types/[email protected]/http.d.ts:2:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import * as stream from '/v33/node:stream';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v33/@types/[email protected]/http.d.ts:6:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import { URL } from '/v33/node:url';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v33/@types/[email protected]/http.d.ts:7:5
TS2439 [ERROR]: Import or export declaration in an ambient module declaration cannot reference module through relative module name.
import { Socket, Server as NetServer } from '/v33/node:net';
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v33/@types/[email protected]/http.d.ts:8:5
Trying with https://esm.sh/stripe?no-check
gives,
error: Uncaught ReferenceError: require is not defined
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:4:12741
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:1:763
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:4:23152
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:1:763
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:4:29463
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:1:763
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:5:10580
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:1:763
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:5:15340
at https://cdn.esm.sh/v33/[email protected]/deno/stripe.js:1:763
Hey, I'm trying to use web3 from ESM
import Web3 from "https://esm.sh/web3"
export default function Home() {
return null;
}
But when loading the page I'm getting this error
TypeError: Buffer.from is not a function
at varintEncode (file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:31889:23)
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:31900:37
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:69:9
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:31930:33
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:69:9
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:34701:18
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:69:9
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:34738:23
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:69:9
at file:///.../.aleph/development.es2018/-/cdn.esm.sh/v11/[email protected]/es2018/web3.development.js:34833:23
https://esm.sh/@fluentui/[email protected]
/* esm.sh - error */
throw new Error("[esm.sh] " + "esbuild: Ambiguous import \"DateRangeType\" has multiple matching exports");
export default null;
Used to work but now displays this error.
timreichen/Bundler#31: https://esm.sh/postcss-preset-env
breaks with the newest update where in the past it didn't. Do you think there is an easy fix?
Hey guys, I was trying to use ant.design components with alephjs, which recommends using esm.sh for npm imports. I tried importing the CSS file: https://esm.sh/antd/dist/antd.css, however it throws a 500 error.
Is importing CSS beyond the intended usage of esm.sh ?
Do let me know. Thanks
I want to try out aleph.js alephjs/aleph.js, but i every time i try to start the dev server i run into the following problem:
error: Uncaught (in promise) TypeError: Import 'https://cdn.esm.sh/v10/[email protected]/lib/processor.js.d.ts' failed: 502 Bad Gateway
at https://cdn.esm.sh/v10/[email protected]/lib/postcss.d.ts:22:0
When i check the shown links in the browser, a Cloudflare 502 Bad gateway error is returned. Every time i run the alpeh dev
command another file is affected.
https://cdn.esm.sh/v10/[email protected]/lib/comment.js.d.ts
https://cdn.esm.sh/v10/[email protected]/lib/input.js.d.ts
https://cdn.esm.sh/v10/[email protected]/lib/processor.js.d.ts
Is this error on my end somehow? Thanks!
Hello,
Another try (using deno and postcss)
when trying to use it with tailwindcss
import tailwindcss from 'https://esm.sh/tailwindcss'
...
i get the following error
error: Uncaught TypeError: k_.Parser.extend(...).extend is not a function
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:25:17298
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:2:1074
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:25:26185
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:2:1074
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:25:27714
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:2:1074
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:89:35993
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:2:1074
at https://cdn.esm.sh/v14/[email protected]/esnext/tailwindcss.js:89:37184
thanks for helping/idea
Hello,
thanks for the port to Deno
I use deno version
deno 1.6.3 (release, x86_64-unknown-linux-gnu)
v8 8.8.294
typescript 4.1.3
but when i to use deno+postcss with your sample
import postcss from 'https://esm.sh/postcss'
import autoprefixer from 'https://esm.sh/autoprefixer'
const css = (await postcss([ autoprefixer]).process(`
backdrop-filter: blur(5px);
user-select: none;
`).async()).content
i get the following error
error: TS2315 [ERROR]: Type 'Plugin' is not generic.
type Autoprefixer = Plugin & ExportedAPI;
~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v14/@types/[email protected]/index.d.ts:65:25
do you have any idea of the origin ? thanks for helping
While trying to import xss:
import { filterXSS } from 'https://esm.sh/xss'
I came across with this error:
deno run -r render.ts
Download https://esm.sh/xss?nocheck
Download https://cdn.esm.sh/v28/[email protected]/deno/xss.js
Download https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts
Check file:///home/v1rtl/Coding/deno-libs/gql/graphiql/render.ts
error: TS2300 [ERROR]: Duplicate identifier 'OnTagHandler'.
type OnTagHandler = (
~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:93:12
'OnTagHandler' was also declared here.
type OnTagHandler = (
~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:281:12
TS2300 [ERROR]: Duplicate identifier 'OnTagAttrHandler'.
type OnTagAttrHandler = (
~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:99:12
'OnTagAttrHandler' was also declared here.
type OnTagAttrHandler = (
~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:287:12
TS2300 [ERROR]: Duplicate identifier 'SafeAttrValueHandler'.
type SafeAttrValueHandler = (
~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:106:12
'SafeAttrValueHandler' was also declared here.
type SafeAttrValueHandler = (
~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:294:12
TS2300 [ERROR]: Duplicate identifier 'EscapeHandler'.
type EscapeHandler = (str: string) => string;
~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:113:12
'EscapeHandler' was also declared here.
type EscapeHandler = (str: string) => string;
~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:301:12
TS2300 [ERROR]: Duplicate identifier 'OnTagHandler'.
type OnTagHandler = (
~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:281:12
'OnTagHandler' was also declared here.
type OnTagHandler = (
~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:93:12
TS2300 [ERROR]: Duplicate identifier 'OnTagAttrHandler'.
type OnTagAttrHandler = (
~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:287:12
'OnTagAttrHandler' was also declared here.
type OnTagAttrHandler = (
~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:99:12
TS2300 [ERROR]: Duplicate identifier 'SafeAttrValueHandler'.
type SafeAttrValueHandler = (
~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:294:12
'SafeAttrValueHandler' was also declared here.
type SafeAttrValueHandler = (
~~~~~~~~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:106:12
TS2300 [ERROR]: Duplicate identifier 'EscapeHandler'.
type EscapeHandler = (str: string) => string;
~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:301:12
'EscapeHandler' was also declared here.
type EscapeHandler = (str: string) => string;
~~~~~~~~~~~~~
at https://cdn.esm.sh/v28/[email protected]/typings/xss.d.ts:113:12
Found 8 errors.
Add the ?no-check
to module URL.
ref: timreichen/Bundler#29 (comment)
https://esm.sh/[email protected]?no-check
returns
/* esm.sh - error */
throw new Error("[esm.sh] " + "copyDTS(@types/[email protected]/index.d.ts): read /tmp/esmd-build/d33c8a41ecd5db81/node_modules: is a directory");
export default null;
whereas before it didn't and worked as expected. My local cache file has this content:
/* esm.sh - [email protected] */
export * from "https://cdn.esm.sh/v15/[email protected]/esnext/postcss-preset-env.js?no-check";
export { default } from "https://cdn.esm.sh/v15/[email protected]/esnext/postcss-preset-env.js?no-check";
Is this a bug?
error: Uncaught ReferenceError: require is not defined
at https://cdn.esm.sh/v15/[email protected]/esnext/esbuild.js:8:1378
at https://cdn.esm.sh/v15/[email protected]/esnext/esbuild.js:1:754
at https://cdn.esm.sh/v15/[email protected]/esnext/esbuild.js:8:4069
I can find a require("child_process")
in esbuild.js, which I think is what causes the issue.
I'm not sure if this is an aleph.js or an esm.sh issue:
error: Uncaught (in promise) TypeError: TS2345 [ERROR]: Argument of type 'TransformerFactory<SourceFile>' is not assignable to parameter of type 'TransformerFactory<SourceFile> | CustomTransformerFactory'.
Type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").TransformerFactory<import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").SourceFile>' is not assignable to type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").TransformerFactory<import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").SourceFile>'.
Types of parameters 'context' and 'context' are incompatible.
Type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").TransformationContext' is not assignable to type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").TransformationContext'.
The types of 'factory.createTypeParameterDeclaration(...).parent' are incompatible between these types.
Type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").DeclarationWithTypeParameterChildren | import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").InferTypeNode' is not assignable to type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").DeclarationWithTypeParameterChildren | import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").InferTypeNode'.
Type 'JSDocTemplateTag' is not assignable to type 'DeclarationWithTypeParameterChildren | InferTypeNode'.
Type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDocTemplateTag' is not assignable to type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDocTemplateTag'.
Types of property 'parent' are incompatible.
Type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDoc | import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDocTypeLiteral' is not assignable to type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDoc | import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDocTypeLiteral'.
Type 'JSDoc' is not assignable to type 'JSDoc | JSDocTypeLiteral'.
Type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDoc' is not assignable to type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").JSDoc'.
Types of property 'parent' are incompatible.
Type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").HasJSDoc' is not assignable to type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").HasJSDoc'.
Type 'ImportEqualsDeclaration' is not assignable to type 'HasJSDoc'.
Property 'isTypeOnly' is missing in type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").ImportEqualsDeclaration' but required in type 'import("https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts").ImportEqualsDeclaration'.
if (reactRefresh) transformers.before!.push(reactRefreshTS())
~~~~~~~~~~~~~~~~
at https://deno.land/x/[email protected]/tsc/compile.ts:28:49
'isTypeOnly' is declared here.
readonly isTypeOnly: boolean;
~~~~~~~~~~
at https://cdn.esm.sh/v40/[email protected]/lib/typescript.d.ts:1601:18
const { default: cmd } = await import(`./cli/${command}.ts`)
^
at async main (https://deno.land/x/[email protected]/cli.ts:163:30)
I'm trying:
deno cache --reload https://esm.sh/[email protected]
and get:
Sending fatal alert BadCertificate
error: error sending request for url (https://esm.sh/[email protected]): error trying to connect: invalid certificate: UnknownIssuer```
Is there a certificate issue on the server?
INFO Download https://esm.sh/react • https://esm.sh/[react,react-hook-form,@fluentui/react,react-flow-renderer,swr]/react?target=es2018&dev
INFO Download https://cdn.esm.sh/bundle-ojv7uwoviwslf342bemex5fq7b4wvqk3.js
error: Uncaught (in promise) Error: Download https://cdn.esm.sh/bundle-ojv7uwoviwslf342bemex5fq7b4wvqk3.js: Download https://cdn.esm.sh/bundle-ojv7uwoviwslf342bemex5fq7b4wvqk3.js: 404 - Not Found
throw new Error(`Download ${url}: ${err.message}`)
import_map.json
{
"imports": {
"https://esm.sh/": "https://esm.sh/[react,react-hook-form,@fluentui/react,react-flow-renderer,swr]/"
}
}
I found some patterns.
preact case
import { h, render } from "https://esm.sh/preact";
import { useEffect } from "https://esm.sh/preact/hooks";
function App (){
useEffect(() => {
console.log("mounted");
});
return <div></div>
}
svelte case.
<script>
import { onMount } from "svelte";
onMount()
</script>
compiled svelte has import { ... } from "svelte/internal"
.
To be common to both, they have to share the same instance in its inside. esm.sh failed.
(skypack works in these cases)
INFO Download https://esm.sh/graphql • https://esm.sh/graphql?target=es2018&dev
error: Uncaught (in promise) Error: Download https://esm.sh/graphql: Download https://esm.sh/graphql: 500 - Internal Server Error
When traversing to https://esm.sh/graphql?target=es2018&dev
you get
/* esm.sh - error */
throw new Error("[esm.sh] " + "esbuild: \"graphql\" has already been declared");
export default null;
With v30 https://esm.sh/@material-ui/core does not work anymore.
It returns:
/* esm.sh - error */
throw new Error("[esm.sh] " + "esbuild: No matching export in \"node_modules/@material-ui/core/esm/index.js\" for import \"default\"");
export default null;
In Bundle Mode of README.md, I see this
{
"imports": {
"https://esm.sh/": "https://esm.sh/[react,react-dom,swr]/",
...
}
}
Which causes markdown error validation on ...
You can comment this out, but JSON does not allow comments so you'll still an error.
Solution: Use json5
syntax which supports comments.
```json5
{
"imports": {
"https://esm.sh/": "https://esm.sh/[react,react-dom,swr]/",
// ...
}
}
```
{
"imports": {
"https://esm.sh/": "https://esm.sh/[react,react-dom,swr]/",
// ...
}
}
import('https://esm.sh/lume').then(console.log)
gives
Uncaught (in promise) ReferenceError: __cassowary_parser is not defined
Any idea why?
https://esm.sh/@fullcalendar/daygrid fails to load, you should check all @fullcalendar plugins though, I think it's because import css statement
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.