PK
|X subtool-1.0.0/PK
|X subtool-1.0.0/lib/PK
|X;o o subtool-1.0.0/lib/subtool.jslet express = require('express')
let { createProxyMiddleware } = require('http-proxy-middleware');
let app = express()
// ++++++++++++++ 中间件 ++++++++++++++++++
app.use('/api', createProxyMiddleware({ target: 'https://8du.fun', changeOrigin: true }));
app.use('/s/', createProxyMiddleware({ target: 'https://sub.8du.fun', changeOrigin: true }));
let cache = null
app.get('/', (req, res) => {
cache = cache || Buffer.from(`
节点助手`)
res.setHeader('Content-Type', 'text/html');
res.end(cache)
})
app.listen(3000, () => {
console.log('服务运行在: http://localhost:3000')
});
PK
|X> subtool-1.0.0/package.json{
"name": "@runkit/turboceo_subtool",
"version": "1.0.0",
"main": "./lib/subtool",
"dependencies": {
"express": "4.17.1",
"http-proxy-middleware": "2.0.1"
},
"scripts": {
"install": "node scripts/install.js"
}
}PK
|X5j, , ! subtool-1.0.0/npm-shrinkwrap.json{
"name": "@runkit/turboceo_subtool",
"version": "1.0.0",
"dependencies": {
"express": {
"version": "4.17.1",
"from": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
"dependencies": {
"accepts": {
"version": "1.3.7",
"from": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"dependencies": {
"mime-types": {
"version": "2.1.32",
"from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
"dependencies": {
"mime-db": {
"version": "1.49.0",
"from": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz"
}
}
},
"negotiator": {
"version": "0.6.2",
"from": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"
}
}
},
"array-flatten": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
},
"body-parser": {
"version": "1.19.0",
"from": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
"dependencies": {
"bytes": {
"version": "3.1.0",
"from": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"
},
"content-type": {
"version": "1.0.4",
"from": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
},
"debug": {
"version": "2.6.9",
"from": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"dependencies": {
"ms": {
"version": "2.0.0",
"from": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
}
}
},
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"http-errors": {
"version": "1.7.2",
"from": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
"dependencies": {
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"inherits": {
"version": "2.0.3",
"from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
},
"setprototypeof": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
},
"toidentifier": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
}
}
},
"iconv-lite": {
"version": "0.4.24",
"from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"dependencies": {
"safer-buffer": {
"version": "2.1.2",
"from": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
}
}
},
"on-finished": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"dependencies": {
"ee-first": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
}
}
},
"qs": {
"version": "6.7.0",
"from": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
},
"raw-body": {
"version": "2.4.0",
"from": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
"dependencies": {
"bytes": {
"version": "3.1.0",
"from": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"
},
"http-errors": {
"version": "1.7.2",
"from": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
"dependencies": {
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"inherits": {
"version": "2.0.3",
"from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
},
"setprototypeof": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
},
"toidentifier": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
}
}
},
"iconv-lite": {
"version": "0.4.24",
"from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"dependencies": {
"safer-buffer": {
"version": "2.1.2",
"from": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
}
}
},
"unpipe": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
}
}
},
"type-is": {
"version": "1.6.18",
"from": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"dependencies": {
"media-typer": {
"version": "0.3.0",
"from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
},
"mime-types": {
"version": "2.1.32",
"from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
"dependencies": {
"mime-db": {
"version": "1.49.0",
"from": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz"
}
}
}
}
}
}
},
"content-disposition": {
"version": "0.5.3",
"from": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"from": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
}
}
},
"content-type": {
"version": "1.0.4",
"from": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
},
"cookie": {
"version": "0.4.0",
"from": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"
},
"cookie-signature": {
"version": "1.0.6",
"from": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
},
"debug": {
"version": "2.6.9",
"from": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"dependencies": {
"ms": {
"version": "2.0.0",
"from": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
}
}
},
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"encodeurl": {
"version": "1.0.2",
"from": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
},
"escape-html": {
"version": "1.0.3",
"from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
},
"etag": {
"version": "1.8.1",
"from": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
},
"finalhandler": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
"dependencies": {
"debug": {
"version": "2.6.9",
"from": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"dependencies": {
"ms": {
"version": "2.0.0",
"from": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
}
}
},
"encodeurl": {
"version": "1.0.2",
"from": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
},
"escape-html": {
"version": "1.0.3",
"from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
},
"on-finished": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"dependencies": {
"ee-first": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
}
}
},
"parseurl": {
"version": "1.3.3",
"from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
},
"unpipe": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
}
}
},
"fresh": {
"version": "0.5.2",
"from": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
},
"merge-descriptors": {
"version": "1.0.1",
"from": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
},
"methods": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
},
"on-finished": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"dependencies": {
"ee-first": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
}
}
},
"parseurl": {
"version": "1.3.3",
"from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
},
"path-to-regexp": {
"version": "0.1.7",
"from": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
},
"proxy-addr": {
"version": "2.0.7",
"from": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"dependencies": {
"forwarded": {
"version": "0.2.0",
"from": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
},
"ipaddr.js": {
"version": "1.9.1",
"from": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
}
}
},
"qs": {
"version": "6.7.0",
"from": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
},
"range-parser": {
"version": "1.2.1",
"from": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
},
"safe-buffer": {
"version": "5.1.2",
"from": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
},
"send": {
"version": "0.17.1",
"from": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
"dependencies": {
"debug": {
"version": "2.6.9",
"from": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"dependencies": {
"ms": {
"version": "2.0.0",
"from": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
}
}
},
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"destroy": {
"version": "1.0.4",
"from": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
},
"encodeurl": {
"version": "1.0.2",
"from": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
},
"escape-html": {
"version": "1.0.3",
"from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
},
"etag": {
"version": "1.8.1",
"from": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
},
"fresh": {
"version": "0.5.2",
"from": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
},
"http-errors": {
"version": "1.7.3",
"from": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
"dependencies": {
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"inherits": {
"version": "2.0.4",
"from": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
},
"setprototypeof": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
},
"toidentifier": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
}
}
},
"mime": {
"version": "1.6.0",
"from": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
},
"ms": {
"version": "2.1.1",
"from": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
},
"on-finished": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"dependencies": {
"ee-first": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
}
}
},
"range-parser": {
"version": "1.2.1",
"from": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
}
}
},
"serve-static": {
"version": "1.14.1",
"from": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
"dependencies": {
"encodeurl": {
"version": "1.0.2",
"from": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
},
"escape-html": {
"version": "1.0.3",
"from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
},
"parseurl": {
"version": "1.3.3",
"from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
},
"send": {
"version": "0.17.1",
"from": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
"dependencies": {
"debug": {
"version": "2.6.9",
"from": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"dependencies": {
"ms": {
"version": "2.0.0",
"from": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
}
}
},
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"destroy": {
"version": "1.0.4",
"from": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
},
"encodeurl": {
"version": "1.0.2",
"from": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
},
"escape-html": {
"version": "1.0.3",
"from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
},
"etag": {
"version": "1.8.1",
"from": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
},
"fresh": {
"version": "0.5.2",
"from": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
},
"http-errors": {
"version": "1.7.3",
"from": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
"dependencies": {
"depd": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
},
"inherits": {
"version": "2.0.4",
"from": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
},
"setprototypeof": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
},
"toidentifier": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
}
}
},
"mime": {
"version": "1.6.0",
"from": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
},
"ms": {
"version": "2.1.1",
"from": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
},
"on-finished": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"dependencies": {
"ee-first": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
}
}
},
"range-parser": {
"version": "1.2.1",
"from": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
}
}
}
}
},
"setprototypeof": {
"version": "1.1.1",
"from": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
},
"statuses": {
"version": "1.5.0",
"from": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
},
"type-is": {
"version": "1.6.18",
"from": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"dependencies": {
"media-typer": {
"version": "0.3.0",
"from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
},
"mime-types": {
"version": "2.1.32",
"from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
"dependencies": {
"mime-db": {
"version": "1.49.0",
"from": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz"
}
}
}
}
},
"utils-merge": {
"version": "1.0.1",
"from": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
},
"vary": {
"version": "1.1.2",
"from": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
}
}
},
"http-proxy-middleware": {
"version": "2.0.1",
"from": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz",
"dependencies": {
"@types/http-proxy": {
"version": "1.17.7",
"from": "https://registry.npmjs.org/@types/http-proxy/-/types/http-proxy-1.17.7.tgz",
"dependencies": {
"@types/node": {
"version": "16.9.1",
"from": "https://registry.npmjs.org/@types/node/-/types/node-16.9.1.tgz"
}
}
},
"http-proxy": {
"version": "1.18.1",
"from": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"dependencies": {
"eventemitter3": {
"version": "4.0.7",
"from": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz"
},
"requires-port": {
"version": "1.0.0",
"from": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
},
"follow-redirects": {
"version": "1.14.4",
"from": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz"
}
}
},
"is-glob": {
"version": "4.0.1",
"from": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
"dependencies": {
"is-extglob": {
"version": "2.1.1",
"from": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
}
}
},
"is-plain-obj": {
"version": "3.0.0",
"from": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz"
},
"micromatch": {
"version": "4.0.4",
"from": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
"dependencies": {
"braces": {
"version": "3.0.2",
"from": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"dependencies": {
"fill-range": {
"version": "7.0.1",
"from": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"dependencies": {
"to-regex-range": {
"version": "5.0.1",
"from": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"dependencies": {
"is-number": {
"version": "7.0.0",
"from": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
}
}
}
}
}
}
},
"picomatch": {
"version": "2.3.0",
"from": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz"
}
}
}
}
}
}
}PK
|X subtool-1.0.0/scripts/PK
|X CZ Z subtool-1.0.0/scripts/install.jsvar fs = require('fs');
var path = require('path');
var json = require("../package.json");
var match = json.name.match(/^@runkit\/(.*)_(.*)$/);
// check if our module name actually makes sense, otherwise abort
if (!match) throw new Error("Unknown package structure!");
// check if we're actually inside a node_modules/@runkit folder, otherwise don't create symlinks
if (path.basename(path.dirname(process.cwd())) !== "@runkit" || path.basename(path.dirname(path.dirname(process.cwd()))) !== "node_modules") {
console.log("Not installing as notebook: " + process.cwd());
return;
}
console.log("creating notebook symlinks");
var userPath = path.join("..", match[1]);
var repoPath = path.join(userPath, match[2]);
mkdir(userPath);
mkdir(repoPath);
var branchMatch = json.version.match(/^0\.0\.0\-(.*)$/);
if (branchMatch) {
var branchPath = path.join(repoPath, "branches");
mkdir(branchPath);
var versionPath = path.join(branchPath, branchMatch[1]);
var relativePath = path.join("..", "..", "..", path.basename(process.cwd()));
unlink(versionPath);
fs.symlinkSync(relativePath, versionPath);
} else {
var relativePath = path.join("..", "..", path.basename(process.cwd()));
var latestPath = path.join(repoPath, "latest");
var versionPath = path.join(repoPath, json.version);
unlink(latestPath);
fs.symlinkSync(relativePath, latestPath);
unlink(versionPath);
fs.symlinkSync(relativePath, versionPath);
}
function mkdir(p) {
try {
fs.mkdirSync(p);
} catch (e) {}
}
function unlink(p) {
try {
fs.unlinkSync(p);
} catch (e) {}
}PK
|X subtool-1.0.0/PK
|X , subtool-1.0.0/lib/PK
|X;o o \ subtool-1.0.0/lib/subtool.jsPK
|X> subtool-1.0.0/package.jsonPK
|X5j, , ! D subtool-1.0.0/npm-shrinkwrap.jsonPK
|X subtool-1.0.0/scripts/PK
|X CZ Z subtool-1.0.0/scripts/install.jsPK {