Initial commit (by create-cloudflare CLI)

This commit is contained in:
Jonas_Jones 2023-09-12 00:20:38 +02:00
parent 8cb86120f1
commit fff961078a
1777 changed files with 1011798 additions and 0 deletions

View file

@ -0,0 +1,117 @@
'use strict';
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
const inject = _interopDefault(require('rollup-plugin-inject'));
const path = require('path');
const crypto = require('crypto');
const EMPTY_PATH = require.resolve('../polyfills/empty.js');
function builtinsResolver(opts) {
const libs = new Map();
libs.set('process', require.resolve('../polyfills/process-es6'));
libs.set('buffer', require.resolve('../polyfills/buffer-es6'));
libs.set('util', require.resolve('../polyfills/util'));
libs.set('sys', libs.get('util'));
libs.set('events', require.resolve('../polyfills/events'));
libs.set('stream', require.resolve('../polyfills/stream'));
libs.set('path', require.resolve('../polyfills/path'));
libs.set('querystring', require.resolve('../polyfills/qs'));
libs.set('punycode', require.resolve('../polyfills/punycode'));
libs.set('url', require.resolve('../polyfills/url'));
libs.set('string_decoder', require.resolve('../polyfills/string-decoder'));
libs.set('http', require.resolve('../polyfills/http'));
libs.set('https', require.resolve('../polyfills/http'));
libs.set('os', require.resolve('../polyfills/os'));
libs.set('assert', require.resolve('../polyfills/assert'));
libs.set('constants', require.resolve('../polyfills/constants'));
libs.set('_stream_duplex', require.resolve('../polyfills/readable-stream/duplex'));
libs.set('_stream_passthrough', require.resolve('../polyfills/readable-stream/passthrough'));
libs.set('_stream_readable', require.resolve('../polyfills/readable-stream/readable'));
libs.set('_stream_writable', require.resolve('../polyfills/readable-stream/writable'));
libs.set('_stream_transform', require.resolve('../polyfills/readable-stream/transform'));
libs.set('timers', require.resolve('../polyfills/timers'));
libs.set('console', require.resolve('../polyfills/console'));
libs.set('vm', require.resolve('../polyfills/vm'));
libs.set('zlib', require.resolve('../polyfills/zlib'));
libs.set('tty', require.resolve('../polyfills/tty'));
libs.set('domain', require.resolve('../polyfills/domain'));
// not shimmed
libs.set('dns', EMPTY_PATH);
libs.set('dgram', EMPTY_PATH);
libs.set('child_process', EMPTY_PATH);
libs.set('cluster', EMPTY_PATH);
libs.set('module', EMPTY_PATH);
libs.set('net', EMPTY_PATH);
libs.set('readline', EMPTY_PATH);
libs.set('repl', EMPTY_PATH);
libs.set('tls', EMPTY_PATH);
libs.set('fs', EMPTY_PATH);
libs.set('crypto', EMPTY_PATH);
if (opts.fs) {
libs.set('fs', require.resolve('../polyfills/browserify-fs'));
}
if (opts.crypto) {
libs.set('crypto', require.resolve('../polyfills/crypto-browserify'));
}
return (importee) => {
if (importee && importee.slice(-1) === '/') {
importee === importee.slice(0, -1);
}
if (libs.has(importee)) {
return { id: libs.get(importee), moduleSideEffects: false };
}
return null;
};
}
// @ts-ignore
function index (opts = {}) {
const injectPlugin = inject({
include: opts.include === undefined ? 'node_modules/**/*.js' : undefined,
exclude: opts.exclude,
sourceMap: opts.sourceMap,
modules: {
'process': 'process',
'Buffer': ['buffer', 'Buffer'],
'global': GLOBAL_PATH,
'__filename': FILENAME_PATH,
'__dirname': DIRNAME_PATH,
}
});
const basedir = opts.baseDir || '/';
const dirs = new Map();
const resolver = builtinsResolver(opts);
return {
name: 'node-polyfills',
resolveId(importee, importer) {
if (importee === DIRNAME_PATH) {
const id = getRandomId();
dirs.set(id, path.dirname('/' + path.relative(basedir, importer)));
return { id, moduleSideEffects: false };
}
if (importee === FILENAME_PATH) {
const id = getRandomId();
dirs.set(id, path.dirname('/' + path.relative(basedir, importer)));
return { id, moduleSideEffects: false };
}
return resolver(importee);
},
load(id) {
if (dirs.has(id)) {
return `export default '${dirs.get(id)}'`;
}
},
transform(code, id) {
return injectPlugin.transform.call(this, code, id);
}
};
}
function getRandomId() {
return crypto.randomBytes(15).toString('hex');
}
const GLOBAL_PATH = require.resolve('../polyfills/global.js');
const DIRNAME_PATH = '\0node-polyfills:dirname';
const FILENAME_PATH = '\0node-polyfills:filename';
module.exports = index;

View file

@ -0,0 +1,113 @@
import inject from 'rollup-plugin-inject';
import { dirname, relative } from 'path';
import { randomBytes } from 'crypto';
const EMPTY_PATH = require.resolve('../polyfills/empty.js');
function builtinsResolver(opts) {
const libs = new Map();
libs.set('process', require.resolve('../polyfills/process-es6'));
libs.set('buffer', require.resolve('../polyfills/buffer-es6'));
libs.set('util', require.resolve('../polyfills/util'));
libs.set('sys', libs.get('util'));
libs.set('events', require.resolve('../polyfills/events'));
libs.set('stream', require.resolve('../polyfills/stream'));
libs.set('path', require.resolve('../polyfills/path'));
libs.set('querystring', require.resolve('../polyfills/qs'));
libs.set('punycode', require.resolve('../polyfills/punycode'));
libs.set('url', require.resolve('../polyfills/url'));
libs.set('string_decoder', require.resolve('../polyfills/string-decoder'));
libs.set('http', require.resolve('../polyfills/http'));
libs.set('https', require.resolve('../polyfills/http'));
libs.set('os', require.resolve('../polyfills/os'));
libs.set('assert', require.resolve('../polyfills/assert'));
libs.set('constants', require.resolve('../polyfills/constants'));
libs.set('_stream_duplex', require.resolve('../polyfills/readable-stream/duplex'));
libs.set('_stream_passthrough', require.resolve('../polyfills/readable-stream/passthrough'));
libs.set('_stream_readable', require.resolve('../polyfills/readable-stream/readable'));
libs.set('_stream_writable', require.resolve('../polyfills/readable-stream/writable'));
libs.set('_stream_transform', require.resolve('../polyfills/readable-stream/transform'));
libs.set('timers', require.resolve('../polyfills/timers'));
libs.set('console', require.resolve('../polyfills/console'));
libs.set('vm', require.resolve('../polyfills/vm'));
libs.set('zlib', require.resolve('../polyfills/zlib'));
libs.set('tty', require.resolve('../polyfills/tty'));
libs.set('domain', require.resolve('../polyfills/domain'));
// not shimmed
libs.set('dns', EMPTY_PATH);
libs.set('dgram', EMPTY_PATH);
libs.set('child_process', EMPTY_PATH);
libs.set('cluster', EMPTY_PATH);
libs.set('module', EMPTY_PATH);
libs.set('net', EMPTY_PATH);
libs.set('readline', EMPTY_PATH);
libs.set('repl', EMPTY_PATH);
libs.set('tls', EMPTY_PATH);
libs.set('fs', EMPTY_PATH);
libs.set('crypto', EMPTY_PATH);
if (opts.fs) {
libs.set('fs', require.resolve('../polyfills/browserify-fs'));
}
if (opts.crypto) {
libs.set('crypto', require.resolve('../polyfills/crypto-browserify'));
}
return (importee) => {
if (importee && importee.slice(-1) === '/') {
importee === importee.slice(0, -1);
}
if (libs.has(importee)) {
return { id: libs.get(importee), moduleSideEffects: false };
}
return null;
};
}
// @ts-ignore
function index (opts = {}) {
const injectPlugin = inject({
include: opts.include === undefined ? 'node_modules/**/*.js' : undefined,
exclude: opts.exclude,
sourceMap: opts.sourceMap,
modules: {
'process': 'process',
'Buffer': ['buffer', 'Buffer'],
'global': GLOBAL_PATH,
'__filename': FILENAME_PATH,
'__dirname': DIRNAME_PATH,
}
});
const basedir = opts.baseDir || '/';
const dirs = new Map();
const resolver = builtinsResolver(opts);
return {
name: 'node-polyfills',
resolveId(importee, importer) {
if (importee === DIRNAME_PATH) {
const id = getRandomId();
dirs.set(id, dirname('/' + relative(basedir, importer)));
return { id, moduleSideEffects: false };
}
if (importee === FILENAME_PATH) {
const id = getRandomId();
dirs.set(id, dirname('/' + relative(basedir, importer)));
return { id, moduleSideEffects: false };
}
return resolver(importee);
},
load(id) {
if (dirs.has(id)) {
return `export default '${dirs.get(id)}'`;
}
},
transform(code, id) {
return injectPlugin.transform.call(this, code, id);
}
};
}
function getRandomId() {
return randomBytes(15).toString('hex');
}
const GLOBAL_PATH = require.resolve('../polyfills/global.js');
const DIRNAME_PATH = '\0node-polyfills:dirname';
const FILENAME_PATH = '\0node-polyfills:filename';
export default index;

View file

@ -0,0 +1,10 @@
import { NodePolyfillsOptions } from './modules';
export default function (opts?: NodePolyfillsOptions): {
name: string;
resolveId(importee: string, importer: string): {
id: any;
moduleSideEffects: boolean;
} | null;
load(id: string): string | undefined;
transform(code: string, id: string): any;
};

View file

@ -0,0 +1,12 @@
export interface NodePolyfillsOptions {
fs?: boolean;
crypto?: boolean;
sourceMap?: boolean;
baseDir?: string;
include?: Array<string | RegExp> | string | RegExp | null;
exclude?: Array<string | RegExp> | string | RegExp | null;
}
export declare function builtinsResolver(opts: NodePolyfillsOptions): (importee: string) => {
id: any;
moduleSideEffects: boolean;
} | null;