Initial import from local backup (Documents-Playground/pakerpale)

This commit is contained in:
jeonghwa
2026-07-03 05:27:45 +09:00
commit 95f2ab1713
2784 changed files with 1066361 additions and 0 deletions

145
node_modules/gtoken/CHANGELOG.md generated vendored Normal file
View File

@@ -0,0 +1,145 @@
# Changelog
[npm history][1]
[1]: https://www.npmjs.com/package/gtoken?activeTab=versions
### [3.0.2](https://www.github.com/googleapis/node-gtoken/compare/v3.0.1...v3.0.2) (2019-06-26)
### Bug Fixes
* **docs:** make anchors work in jsdoc ([#215](https://www.github.com/googleapis/node-gtoken/issues/215)) ([c5f6c89](https://www.github.com/googleapis/node-gtoken/commit/c5f6c89))
### [3.0.1](https://www.github.com/googleapis/node-gtoken/compare/v3.0.0...v3.0.1) (2019-06-13)
### Bug Fixes
* **docs:** move to new client docs URL ([#212](https://www.github.com/googleapis/node-gtoken/issues/212)) ([b7a8c75](https://www.github.com/googleapis/node-gtoken/commit/b7a8c75))
## [3.0.0](https://www.github.com/googleapis/node-gtoken/compare/v2.3.3...v3.0.0) (2019-05-07)
### Bug Fixes
* **deps:** update dependency gaxios to v2 ([#191](https://www.github.com/googleapis/node-gtoken/issues/191)) ([da65ea7](https://www.github.com/googleapis/node-gtoken/commit/da65ea7))
* **deps:** update dependency google-p12-pem to v2 ([#196](https://www.github.com/googleapis/node-gtoken/issues/196)) ([b510f06](https://www.github.com/googleapis/node-gtoken/commit/b510f06))
* fs.readFile does not exist in browser ([#186](https://www.github.com/googleapis/node-gtoken/issues/186)) ([a16d8e7](https://www.github.com/googleapis/node-gtoken/commit/a16d8e7))
### Build System
* upgrade engines field to >=8.10.0 ([#194](https://www.github.com/googleapis/node-gtoken/issues/194)) ([ee4d6c8](https://www.github.com/googleapis/node-gtoken/commit/ee4d6c8))
### BREAKING CHANGES
* upgrade engines field to >=8.10.0 (#194)
## v2.3.3
03-13-2019 14:54 PDT
### Bug Fixes
- fix: propagate error message ([#173](https://github.com/google/node-gtoken/pull/173))
### Documentation
- docs: update links in contrib guide ([#171](https://github.com/google/node-gtoken/pull/171))
- docs: move CONTRIBUTING.md to root ([#166](https://github.com/google/node-gtoken/pull/166))
- docs: add lint/fix example to contributing guide ([#164](https://github.com/google/node-gtoken/pull/164))
### Internal / Testing Changes
- build: Add docuploader credentials to node publish jobs ([#176](https://github.com/google/node-gtoken/pull/176))
- build: use node10 to run samples-test, system-test etc ([#175](https://github.com/google/node-gtoken/pull/175))
- build: update release configuration
- chore(deps): update dependency mocha to v6
- build: use linkinator for docs test ([#170](https://github.com/google/node-gtoken/pull/170))
- build: create docs test npm scripts ([#169](https://github.com/google/node-gtoken/pull/169))
- build: test using @grpc/grpc-js in CI ([#168](https://github.com/google/node-gtoken/pull/168))
- build: ignore googleapis.com in doc link check ([#162](https://github.com/google/node-gtoken/pull/162))
- build: check for 404s on all docs
## v2.3.2
01-09-2019 13:40 PST
### Documentation
- docs: generate docs with compodoc ([#154](https://github.com/googleapis/node-gtoken/pull/154))
- docs: fix up the readme ([#153](https://github.com/googleapis/node-gtoken/pull/153))
### Internal / Testing Changes
- build: Re-generated to pick up changes in the API or client library generator. ([#158](https://github.com/googleapis/node-gtoken/pull/158))
- build: check broken links in generated docs ([#152](https://github.com/googleapis/node-gtoken/pull/152))
- fix: add a system test and get it passing ([#150](https://github.com/googleapis/node-gtoken/pull/150))
- chore(build): inject yoshi automation key ([#149](https://github.com/googleapis/node-gtoken/pull/149))
## v2.3.1
12-10-2018 15:28 PST
### Dependencies
- fix(deps): update dependency pify to v4 ([#87](https://github.com/google/node-gtoken/pull/87))
- fix(deps): use gaxios for http requests ([#125](https://github.com/google/node-gtoken/pull/125))
### Internal / Testing Changes
- build: add Kokoro configs for autorelease ([#143](https://github.com/google/node-gtoken/pull/143))
- chore: always nyc report before calling codecov ([#141](https://github.com/google/node-gtoken/pull/141))
- chore: nyc ignore build/test by default ([#140](https://github.com/google/node-gtoken/pull/140))
- chore: update synth metadata and templates ([#138](https://github.com/google/node-gtoken/pull/138))
- fix(build): fix system key decryption ([#133](https://github.com/google/node-gtoken/pull/133))
- chore(deps): update dependency typescript to ~3.2.0 ([#132](https://github.com/google/node-gtoken/pull/132))
- chore: add a synth.metadata
- chore(deps): update dependency gts to ^0.9.0 ([#127](https://github.com/google/node-gtoken/pull/127))
- chore: update eslintignore config ([#126](https://github.com/google/node-gtoken/pull/126))
- chore: use latest npm on Windows ([#124](https://github.com/google/node-gtoken/pull/124))
- chore: update CircleCI config ([#123](https://github.com/google/node-gtoken/pull/123))
- chore: include build in eslintignore ([#120](https://github.com/google/node-gtoken/pull/120))
- chore: update issue templates ([#116](https://github.com/google/node-gtoken/pull/116))
- chore: remove old issue template ([#114](https://github.com/google/node-gtoken/pull/114))
- build: run tests on node11 ([#113](https://github.com/google/node-gtoken/pull/113))
- chore(deps): update dependency nock to v10 ([#111](https://github.com/google/node-gtoken/pull/111))
- chores(build): do not collect sponge.xml from windows builds ([#112](https://github.com/google/node-gtoken/pull/112))
- chore(deps): update dependency typescript to ~3.1.0 ([#110](https://github.com/google/node-gtoken/pull/110))
- chores(build): run codecov on continuous builds ([#109](https://github.com/google/node-gtoken/pull/109))
- chore: update new issue template ([#108](https://github.com/google/node-gtoken/pull/108))
- chore: update CI config ([#105](https://github.com/google/node-gtoken/pull/105))
- Update kokoro config ([#103](https://github.com/google/node-gtoken/pull/103))
- Update CI config ([#101](https://github.com/google/node-gtoken/pull/101))
- Don't publish sourcemaps ([#99](https://github.com/google/node-gtoken/pull/99))
- Update kokoro config ([#97](https://github.com/google/node-gtoken/pull/97))
- test: remove appveyor config ([#96](https://github.com/google/node-gtoken/pull/96))
- Update CI config ([#95](https://github.com/google/node-gtoken/pull/95))
- Enable prefer-const in the eslint config ([#94](https://github.com/google/node-gtoken/pull/94))
- Enable no-var in eslint ([#93](https://github.com/google/node-gtoken/pull/93))
- Update CI config ([#92](https://github.com/google/node-gtoken/pull/92))
- Add synth and update CI config ([#91](https://github.com/google/node-gtoken/pull/91))
- Retry npm install in CI ([#90](https://github.com/google/node-gtoken/pull/90))
- chore(deps): update dependency nyc to v13 ([#88](https://github.com/google/node-gtoken/pull/88))
- chore: ignore package-log.json ([#86](https://github.com/google/node-gtoken/pull/86))
- chore: update renovate config ([#83](https://github.com/google/node-gtoken/pull/83))
- chore(deps): lock file maintenance ([#85](https://github.com/google/node-gtoken/pull/85))
- chore: remove greenkeeper badge ([#82](https://github.com/google/node-gtoken/pull/82))
- test: throw on deprecation ([#81](https://github.com/google/node-gtoken/pull/81))
- chore(deps): update dependency typescript to v3 ([#80](https://github.com/google/node-gtoken/pull/80))
- chore: move mocha options to mocha.opts ([#78](https://github.com/google/node-gtoken/pull/78))
- chore(deps): lock file maintenance ([#79](https://github.com/google/node-gtoken/pull/79))
- test: use strictEqual in tests ([#76](https://github.com/google/node-gtoken/pull/76))
- chore(deps): lock file maintenance ([#77](https://github.com/google/node-gtoken/pull/77))
- chore(deps): update dependency typescript to ~2.9.0 ([#75](https://github.com/google/node-gtoken/pull/75))
- chore: Configure Renovate ([#74](https://github.com/google/node-gtoken/pull/74))
- Update gts to the latest version 🚀 ([#73](https://github.com/google/node-gtoken/pull/73))
- Add Code of Conduct
- build: start testing against Node 10 ([#69](https://github.com/google/node-gtoken/pull/69))
- chore(package): update nyc to version 12.0.2 ([#67](https://github.com/google/node-gtoken/pull/67))
- chore(package): update @types/node to version 10.0.3 ([#65](https://github.com/google/node-gtoken/pull/65))
### 2.0.0
New features:
- API now supports callback and promise based workflows
Breaking changes:
- `GoogleToken` is now a class type, and must be instantiated.
- `GoogleToken.expires_at` renamed to `GoogleToken.expiresAt`
- `GoogleToken.raw_token` renamed to `GoogleToken.rawToken`
- `GoogleToken.token_expires` renamed to `GoogleToken.tokenExpires`

21
node_modules/gtoken/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Ryan Seys
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

182
node_modules/gtoken/README.md generated vendored Normal file
View File

@@ -0,0 +1,182 @@
# node-gtoken
[![NPM Version][npm-image]][npm-url]
[![Dependency Status][david-image]][david-url]
[![devDependency Status][david-dev-image]][david-dev-url]
[![Known Vulnerabilities][snyk-image]][snyk-url]
[![codecov][codecov-image]][codecov-url]
[![style badge][gts-image]][gts-url]
> Node.js Google Authentication Service Account Tokens
## Installation
``` sh
npm install gtoken
```
## Usage
### Use with a `.pem` or `.p12` key file:
``` js
const { GoogleToken } = require('gtoken');
const gtoken = new GoogleToken({
keyFile: 'path/to/key.pem', // or path to .p12 key file
email: 'my_service_account_email@developer.gserviceaccount.com',
scope: ['https://scope1', 'https://scope2'] // or space-delimited string of scopes
});
gtoken.getToken(function(err, token) {
if (err) {
console.log(err);
return;
}
console.log(token);
});
```
You can also use the async/await style API:
``` js
const token = await gtoken.getToken()
console.log(token);
```
Or use promises:
```js
gtoken.getToken()
.then(token => {
console.log(`Token: ${token}`)
})
.catch(e => console.error);
```
### Use with a service account `.json` key file:
``` js
const { GoogleToken } = require('gtoken');
const gtoken = new GoogleToken({
keyFile: 'path/to/key.json',
scope: ['https://scope1', 'https://scope2'] // or space-delimited string of scopes
});
gtoken.getToken(function(err, token) {
if (err) {
console.log(err);
return;
}
console.log(token);
});
```
### Pass the private key as a string directly:
``` js
const key = '-----BEGIN RSA PRIVATE KEY-----\nXXXXXXXXXXX...';
const { GoogleToken } = require('gtoken');
const gtoken = new GoogleToken({
email: 'my_service_account_email@developer.gserviceaccount.com',
scope: ['https://scope1', 'https://scope2'], // or space-delimited string of scopes
key: key
});
```
## Options
> Various options that can be set when creating initializing the `gtoken` object.
- `options.email or options.iss`: The service account email address.
- `options.scope`: An array of scope strings or space-delimited string of scopes.
- `options.sub`: The email address of the user requesting delegated access.
- `options.keyFile`: The filename of `.json` key, `.pem` key or `.p12` key.
- `options.key`: The raw RSA private key value, in place of using `options.keyFile`.
### .getToken(callback)
> Returns the cached token or requests a new one and returns it.
``` js
gtoken.getToken(function(err, token) {
console.log(err || token);
// gtoken.token value is also set
});
```
### .getCredentials('path/to/key.json')
> Given a keyfile, returns the key and (if available) the client email.
```js
const creds = await gtoken.getCredentials('path/to/key.json');
```
### Properties
> Various properties set on the gtoken object after call to `.getToken()`.
- `gtoken.token`: The access token.
- `gtoken.expiresAt`: The expiry date as milliseconds since 1970/01/01
- `gtoken.key`: The raw key value.
- `gtoken.rawToken`: Most recent raw token data received from Google.
### .hasExpired()
> Returns true if the token has expired, or token does not exist.
``` js
gtoken.getToken(function(err, token) {
if(token) {
gtoken.hasExpired(); // false
}
});
```
### .revokeToken()
> Revoke the token if set.
``` js
gtoken.revokeToken(function(err) {
if (err) {
console.log(err);
return;
}
console.log('Token revoked!');
});
```
## Downloading your private `.p12` key from Google
1. Open the [Google Developer Console][gdevconsole].
2. Open your project and under "APIs & auth", click Credentials.
3. Generate a new `.p12` key and download it into your project.
## Converting your `.p12` key to a `.pem` key
You can just specify your `.p12` file (with `.p12` extension) as the `keyFile` and it will automatically be converted to a `.pem` on the fly, however this results in a slight performance hit. If you'd like to convert to a `.pem` for use later, use OpenSSL if you have it installed.
``` sh
$ openssl pkcs12 -in key.p12 -nodes -nocerts > key.pem
```
Don't forget, the passphrase when converting these files is the string `'notasecret'`
## License
[MIT](https://github.com/googleapis/node-gtoken/blob/master/LICENSE)
[codecov-image]: https://codecov.io/gh/googleapis/node-gtoken/branch/master/graph/badge.svg
[codecov-url]: https://codecov.io/gh/googleapis/node-gtoken
[david-image]: https://david-dm.org/googleapis/node-gtoken.svg
[david-url]: https://david-dm.org/googleapis/node-gtoken
[david-dev-image]: https://david-dm.org/googleapis/node-gtoken/dev-status.svg
[david-dev-url]: https://david-dm.org/googleapis/node-gtoken?type=dev
[gdevconsole]: https://console.developers.google.com
[gts-image]: https://img.shields.io/badge/code%20style-Google%20%E2%98%82%EF%B8%8F-blue.svg
[gts-url]: https://www.npmjs.com/package/gts
[npm-image]: https://img.shields.io/npm/v/gtoken.svg
[npm-url]: https://npmjs.org/package/gtoken
[snyk-image]: https://snyk.io/test/github/googleapis/node-gtoken/badge.svg
[snyk-url]: https://snyk.io/test/github/googleapis/node-gtoken

83
node_modules/gtoken/build/src/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,83 @@
/**
* Copyright 2018 Google LLC
*
* Distributed under MIT license.
* See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
*/
export interface Credentials {
privateKey: string;
clientEmail?: string;
}
export interface TokenData {
refresh_token?: string;
expires_in?: number;
access_token?: string;
token_type?: string;
id_token?: string;
}
export interface TokenOptions {
keyFile?: string;
key?: string;
email?: string;
iss?: string;
sub?: string;
scope?: string | string[];
additionalClaims?: {};
}
export declare class GoogleToken {
token?: string | null;
expiresAt?: number | null;
key?: string;
keyFile?: string;
iss?: string;
sub?: string;
scope?: string;
rawToken: TokenData | null;
tokenExpires: number | null;
email?: string;
additionalClaims?: {};
/**
* Create a GoogleToken.
*
* @param options Configuration object.
*/
constructor(options?: TokenOptions);
/**
* Returns whether the token has expired.
*
* @return true if the token has expired, false otherwise.
*/
hasExpired(): boolean;
/**
* Returns a cached token or retrieves a new one from Google.
*
* @param callback The callback function.
*/
getToken(): Promise<string | null | undefined>;
getToken(callback: (err: Error | null, token?: string | null | undefined) => void): void;
/**
* Given a keyFile, extract the key and client email if available
* @param keyFile Path to a json, pem, or p12 file that contains the key.
* @returns an object with privateKey and clientEmail properties
*/
getCredentials(keyFile: string): Promise<Credentials>;
private getTokenAsync;
private ensureEmail;
/**
* Revoke the token if one is set.
*
* @param callback The callback function.
*/
revokeToken(): Promise<void>;
revokeToken(callback: (err?: Error) => void): void;
private revokeTokenAsync;
/**
* Configure the GoogleToken for re-use.
* @param {object} options Configuration object.
*/
private configure;
/**
* Request the token from Google.
*/
private requestToken;
}

219
node_modules/gtoken/build/src/index.js generated vendored Normal file
View File

@@ -0,0 +1,219 @@
"use strict";
/**
* Copyright 2018 Google LLC
*
* Distributed under MIT license.
* See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
*/
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const gaxios_1 = require("gaxios");
const jws = require("jws");
const mime = require("mime");
const util_1 = require("util");
const readFile = fs.readFile
? util_1.promisify(fs.readFile)
: async () => {
// if running in the web-browser, fs.readFile may not have been shimmed.
throw new ErrorWithCode('use key rather than keyFile.', 'MISSING_CREDENTIALS');
};
const GOOGLE_TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token';
const GOOGLE_REVOKE_TOKEN_URL = 'https://accounts.google.com/o/oauth2/revoke?token=';
class ErrorWithCode extends Error {
constructor(message, code) {
super(message);
this.code = code;
}
}
let getPem;
class GoogleToken {
/**
* Create a GoogleToken.
*
* @param options Configuration object.
*/
constructor(options) {
this.token = null;
this.expiresAt = null;
this.rawToken = null;
this.tokenExpires = null;
this.configure(options);
}
/**
* Returns whether the token has expired.
*
* @return true if the token has expired, false otherwise.
*/
hasExpired() {
const now = new Date().getTime();
if (this.token && this.expiresAt) {
return now >= this.expiresAt;
}
else {
return true;
}
}
getToken(callback) {
if (callback) {
this.getTokenAsync().then(t => callback(null, t), callback);
return;
}
return this.getTokenAsync();
}
/**
* Given a keyFile, extract the key and client email if available
* @param keyFile Path to a json, pem, or p12 file that contains the key.
* @returns an object with privateKey and clientEmail properties
*/
async getCredentials(keyFile) {
const mimeType = mime.getType(keyFile);
switch (mimeType) {
case 'application/json': {
// *.json file
const key = await readFile(keyFile, 'utf8');
const body = JSON.parse(key);
const privateKey = body.private_key;
const clientEmail = body.client_email;
if (!privateKey || !clientEmail) {
throw new ErrorWithCode('private_key and client_email are required.', 'MISSING_CREDENTIALS');
}
return { privateKey, clientEmail };
}
case 'application/x-x509-ca-cert': {
// *.pem file
const privateKey = await readFile(keyFile, 'utf8');
return { privateKey };
}
case 'application/x-pkcs12': {
// *.p12 file
// NOTE: The loading of `google-p12-pem` is deferred for performance
// reasons. The `node-forge` npm module in `google-p12-pem` adds a fair
// bit time to overall module loading, and is likely not frequently
// used. In a future release, p12 support will be entirely removed.
if (!getPem) {
getPem = (await Promise.resolve().then(() => require('google-p12-pem'))).getPem;
}
const privateKey = await getPem(keyFile);
return { privateKey };
}
default:
throw new ErrorWithCode('Unknown certificate type. Type is determined based on file extension. ' +
'Current supported extensions are *.json, *.pem, and *.p12.', 'UNKNOWN_CERTIFICATE_TYPE');
}
}
async getTokenAsync() {
if (!this.hasExpired()) {
return Promise.resolve(this.token);
}
if (!this.key && !this.keyFile) {
throw new Error('No key or keyFile set.');
}
if (!this.key && this.keyFile) {
const creds = await this.getCredentials(this.keyFile);
this.key = creds.privateKey;
this.iss = creds.clientEmail || this.iss;
if (!creds.clientEmail) {
this.ensureEmail();
}
}
return this.requestToken();
}
ensureEmail() {
if (!this.iss) {
throw new ErrorWithCode('email is required.', 'MISSING_CREDENTIALS');
}
}
revokeToken(callback) {
if (callback) {
this.revokeTokenAsync().then(() => callback(), callback);
return;
}
return this.revokeTokenAsync();
}
async revokeTokenAsync() {
if (!this.token) {
throw new Error('No token to revoke.');
}
return gaxios_1.request({ url: GOOGLE_REVOKE_TOKEN_URL + this.token }).then(r => {
this.configure({
email: this.iss,
sub: this.sub,
key: this.key,
keyFile: this.keyFile,
scope: this.scope,
additionalClaims: this.additionalClaims,
});
});
}
/**
* Configure the GoogleToken for re-use.
* @param {object} options Configuration object.
*/
configure(options = {}) {
this.keyFile = options.keyFile;
this.key = options.key;
this.token = this.expiresAt = this.rawToken = null;
this.iss = options.email || options.iss;
this.sub = options.sub;
this.additionalClaims = options.additionalClaims;
if (typeof options.scope === 'object') {
this.scope = options.scope.join(' ');
}
else {
this.scope = options.scope;
}
}
/**
* Request the token from Google.
*/
async requestToken() {
const iat = Math.floor(new Date().getTime() / 1000);
const additionalClaims = this.additionalClaims || {};
const payload = Object.assign({
iss: this.iss,
scope: this.scope,
aud: GOOGLE_TOKEN_URL,
exp: iat + 3600,
iat,
sub: this.sub,
}, additionalClaims);
const signedJWT = jws.sign({
header: { alg: 'RS256' },
payload,
secret: this.key,
});
return gaxios_1.request({
method: 'POST',
url: GOOGLE_TOKEN_URL,
data: {
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
assertion: signedJWT,
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'json',
})
.then(r => {
this.rawToken = r.data;
this.token = r.data.access_token;
this.expiresAt =
r.data.expires_in === null || r.data.expires_in === undefined
? null
: (iat + r.data.expires_in) * 1000;
return this.token;
})
.catch(e => {
this.token = null;
this.tokenExpires = null;
const body = e.response && e.response.data ? e.response.data : {};
if (body.error) {
const desc = body.error_description
? `: ${body.error_description}`
: '';
e.message = `${body.error}${desc}`;
}
throw e;
});
}
}
exports.GoogleToken = GoogleToken;
//# sourceMappingURL=index.js.map

15
node_modules/gtoken/node_modules/.bin/mime generated vendored Normal file
View File

@@ -0,0 +1,15 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../mime/cli.js" "$@"
ret=$?
else
node "$basedir/../mime/cli.js" "$@"
ret=$?
fi
exit $ret

7
node_modules/gtoken/node_modules/.bin/mime.cmd generated vendored Normal file
View File

@@ -0,0 +1,7 @@
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\..\mime\cli.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\..\mime\cli.js" %*
)

51
node_modules/gtoken/node_modules/mime/.eslintrc.json generated vendored Normal file
View File

@@ -0,0 +1,51 @@
{
"root": true,
"parserOptions": {
"ecmaVersion": 6
},
"env": {
"browser": true,
"commonjs": true,
"node": true,
"mocha": true
},
"extends": ["eslint:recommended"],
"rules": {
"array-bracket-spacing": ["warn", "never"],
"arrow-body-style": ["warn", "as-needed"],
"arrow-parens": ["warn", "as-needed"],
"arrow-spacing": "warn",
"brace-style": ["warn", "1tbs"],
"camelcase": "warn",
"comma-spacing": ["warn", {"after": true}],
"dot-notation": "warn",
"eqeqeq": ["warn", "smart"],
"indent": ["warn", 2, {
"SwitchCase": 1,
"FunctionDeclaration": {"parameters": 1},
"MemberExpression": 1,
"CallExpression": {"arguments": 1}
}],
"key-spacing": ["warn", {"beforeColon": false, "afterColon": true, "mode": "minimum"}],
"keyword-spacing": "warn",
"no-console": "off",
"no-empty": "off",
"no-multi-spaces": "warn",
"no-redeclare": "off",
"no-restricted-globals": ["warn", "Promise"],
"no-trailing-spaces": "warn",
"no-undef": "error",
"no-unused-vars": ["warn", {"args": "none"}],
"one-var": ["warn", "never"],
"padded-blocks": ["warn", "never"],
"object-curly-spacing": ["warn", "never"],
"quotes": ["warn", "single"],
"react/prop-types": "off",
"react/jsx-no-bind": "off",
"semi": ["warn", "always"],
"space-before-blocks": ["warn", "always"],
"space-before-function-paren": ["warn", "never"],
"space-in-parens": ["warn", "never"],
"strict": ["warn", "global"]
}
}

View File

@@ -0,0 +1,6 @@
### If you have an issue with a specific extension or type
Locate the definition for your extension/type in the [db.json file](https://github.com/jshttp/mime-db/blob/master/db.json) in the `mime-db` project. Does it look right?
- [ ] No. [File a `mime-db` issue](https://github.com/jshttp/mime-db/issues/new).
- [ ] Yes: Go ahead and submit your issue/PR here and I'll look into it.

View File

@@ -0,0 +1,6 @@
### If you have an issue with a specific extension or type
Locate the definition for your extension/type in the [db.json file](https://github.com/jshttp/mime-db/blob/master/db.json) in the `mime-db` project. Does it look right?
- [ ] No. [File a `mime-db` issue](https://github.com/jshttp/mime-db/issues/new).
- [ ] Yes: Go ahead and submit your issue/PR here and I'll look into it.

5
node_modules/gtoken/node_modules/mime/.travis.yml generated vendored Normal file
View File

@@ -0,0 +1,5 @@
language: node_js
node_js:
- "6"
- "8"
- "10"

262
node_modules/gtoken/node_modules/mime/CHANGELOG.md generated vendored Normal file
View File

@@ -0,0 +1,262 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [2.4.4](https://github.com/broofa/node-mime/compare/v2.4.3...v2.4.4) (2019-06-07)
## [2.4.3](https://github.com/broofa/node-mime/compare/v2.4.2...v2.4.3) (2019-05-15)
## [2.4.2](https://github.com/broofa/node-mime/compare/v2.4.1...v2.4.2) (2019-04-07)
### Bug Fixes
* don't use arrow function introduced in 2.4.1 ([2e00b5c](https://github.com/broofa/node-mime/commit/2e00b5c))
## [2.4.1](https://github.com/broofa/node-mime/compare/v2.4.0...v2.4.1) (2019-04-03)
### Bug Fixes
* update MDN and mime-db types ([3e567a9](https://github.com/broofa/node-mime/commit/3e567a9))
<a name="2.4.0"></a>
# [2.4.0](https://github.com/broofa/node-mime/compare/v2.3.1...v2.4.0) (2018-11-26)
### Features
* Bind exported methods ([9d2a7b8](https://github.com/broofa/node-mime/commit/9d2a7b8))
* update to mime-db@1.37.0 ([49e6e41](https://github.com/broofa/node-mime/commit/49e6e41))
<a name="2.3.1"></a>
## [2.3.1](https://github.com/broofa/node-mime/compare/v2.3.0...v2.3.1) (2018-04-11)
### Bug Fixes
* fix [#198](https://github.com/broofa/node-mime/issues/198) ([25ca180](https://github.com/broofa/node-mime/commit/25ca180))
<a name="2.3.0"></a>
# [2.3.0](https://github.com/broofa/node-mime/compare/v2.2.2...v2.3.0) (2018-04-11)
### Bug Fixes
* fix [#192](https://github.com/broofa/node-mime/issues/192) ([5c35df6](https://github.com/broofa/node-mime/commit/5c35df6))
### Features
* add travis-ci testing ([d64160f](https://github.com/broofa/node-mime/commit/d64160f))
<a name="2.2.2"></a>
## [2.2.2](https://github.com/broofa/node-mime/compare/v2.2.1...v2.2.2) (2018-03-30)
### Bug Fixes
* update types files to mime-db@1.32.0 ([85aac16](https://github.com/broofa/node-mime/commit/85aac16))
<a name="2.2.1"></a>
## [2.2.1](https://github.com/broofa/node-mime/compare/v2.2.0...v2.2.1) (2018-03-30)
### Bug Fixes
* Retain type->extension mappings for non-default types. Fixes [#180](https://github.com/broofa/node-mime/issues/180) ([b5c83fb](https://github.com/broofa/node-mime/commit/b5c83fb))
<a name="2.2.0"></a>
# [2.2.0](https://github.com/broofa/node-mime/compare/v2.1.0...v2.2.0) (2018-01-04)
### Features
* Retain type->extension mappings for non-default types. Fixes [#180](https://github.com/broofa/node-mime/issues/180) ([10f82ac](https://github.com/broofa/node-mime/commit/10f82ac))
<a name="2.1.0"></a>
# [2.1.0](https://github.com/broofa/node-mime/compare/v2.0.5...v2.1.0) (2017-12-22)
### Features
* Upgrade to mime-db@1.32.0. Fixes [#185](https://github.com/broofa/node-mime/issues/185) ([3f775ba](https://github.com/broofa/node-mime/commit/3f775ba))
<a name="2.0.5"></a>
## [2.0.5](https://github.com/broofa/node-mime/compare/v2.0.1...v2.0.5) (2017-12-22)
### Bug Fixes
* ES5 support (back to node v0.4) ([f14ccb6](https://github.com/broofa/node-mime/commit/f14ccb6))
# Changelog
## v2.0.4 (24/11/2017)
- [**closed**] Switch to mime-score module for resolving extension contention issues. [#182](https://github.com/broofa/node-mime/issues/182)
- [**closed**] Update mime-db to 1.31.0 in v1.x branch [#181](https://github.com/broofa/node-mime/issues/181)
---
## v1.5.0 (22/11/2017)
- [**closed**] need ES5 version ready in npm package [#179](https://github.com/broofa/node-mime/issues/179)
- [**closed**] mime-db no trace of iWork - pages / numbers / etc. [#178](https://github.com/broofa/node-mime/issues/178)
- [**closed**] How it works in brownser ? [#176](https://github.com/broofa/node-mime/issues/176)
- [**closed**] Missing `./Mime` [#175](https://github.com/broofa/node-mime/issues/175)
- [**closed**] Vulnerable Regular Expression [#167](https://github.com/broofa/node-mime/issues/167)
---
## v2.0.3 (25/09/2017)
*No changelog for this release.*
---
## v1.4.1 (25/09/2017)
- [**closed**] Issue when bundling with webpack [#172](https://github.com/broofa/node-mime/issues/172)
---
## v2.0.2 (15/09/2017)
- [**V2**] fs.readFileSync is not a function [#165](https://github.com/broofa/node-mime/issues/165)
- [**closed**] The extension for video/quicktime should map to .mov, not .qt [#164](https://github.com/broofa/node-mime/issues/164)
- [**V2**] [v2 Feedback request] Mime class API [#163](https://github.com/broofa/node-mime/issues/163)
- [**V2**] [v2 Feedback request] Resolving conflicts over extensions [#162](https://github.com/broofa/node-mime/issues/162)
- [**V2**] Allow callers to load module with official, full, or no defined types. [#161](https://github.com/broofa/node-mime/issues/161)
- [**V2**] Use "facets" to resolve extension conflicts [#160](https://github.com/broofa/node-mime/issues/160)
- [**V2**] Remove fs and path dependencies [#152](https://github.com/broofa/node-mime/issues/152)
- [**V2**] Default content-type should not be application/octet-stream [#139](https://github.com/broofa/node-mime/issues/139)
- [**V2**] reset mime-types [#124](https://github.com/broofa/node-mime/issues/124)
- [**V2**] Extensionless paths should return null or false [#113](https://github.com/broofa/node-mime/issues/113)
---
## v2.0.1 (14/09/2017)
- [**closed**] Changelog for v2.0 does not mention breaking changes [#171](https://github.com/broofa/node-mime/issues/171)
- [**closed**] MIME breaking with 'class' declaration as it is without 'use strict mode' [#170](https://github.com/broofa/node-mime/issues/170)
---
## v2.0.0 (12/09/2017)
- [**closed**] woff and woff2 [#168](https://github.com/broofa/node-mime/issues/168)
---
## v1.4.0 (28/08/2017)
- [**closed**] support for ac3 voc files [#159](https://github.com/broofa/node-mime/issues/159)
- [**closed**] Help understanding change from application/xml to text/xml [#158](https://github.com/broofa/node-mime/issues/158)
- [**closed**] no longer able to override mimetype [#157](https://github.com/broofa/node-mime/issues/157)
- [**closed**] application/vnd.adobe.photoshop [#147](https://github.com/broofa/node-mime/issues/147)
- [**closed**] Directories should appear as something other than application/octet-stream [#135](https://github.com/broofa/node-mime/issues/135)
- [**closed**] requested features [#131](https://github.com/broofa/node-mime/issues/131)
- [**closed**] Make types.json loading optional? [#129](https://github.com/broofa/node-mime/issues/129)
- [**closed**] Cannot find module './types.json' [#120](https://github.com/broofa/node-mime/issues/120)
- [**V2**] .wav files show up as "audio/x-wav" instead of "audio/x-wave" [#118](https://github.com/broofa/node-mime/issues/118)
- [**closed**] Don't be a pain in the ass for node community [#108](https://github.com/broofa/node-mime/issues/108)
- [**closed**] don't make default_type global [#78](https://github.com/broofa/node-mime/issues/78)
- [**closed**] mime.extension() fails if the content-type is parameterized [#74](https://github.com/broofa/node-mime/issues/74)
---
## v1.3.6 (11/05/2017)
- [**closed**] .md should be text/markdown as of March 2016 [#154](https://github.com/broofa/node-mime/issues/154)
- [**closed**] Error while installing mime [#153](https://github.com/broofa/node-mime/issues/153)
- [**closed**] application/manifest+json [#149](https://github.com/broofa/node-mime/issues/149)
- [**closed**] Dynamic adaptive streaming over HTTP (DASH) file extension typo [#141](https://github.com/broofa/node-mime/issues/141)
- [**closed**] charsets image/png undefined [#140](https://github.com/broofa/node-mime/issues/140)
- [**closed**] Mime-db dependency out of date [#130](https://github.com/broofa/node-mime/issues/130)
- [**closed**] how to support plist [#126](https://github.com/broofa/node-mime/issues/126)
- [**closed**] how does .types file format look like? [#123](https://github.com/broofa/node-mime/issues/123)
- [**closed**] Feature: support for expanding MIME patterns [#121](https://github.com/broofa/node-mime/issues/121)
- [**closed**] DEBUG_MIME doesn't work [#117](https://github.com/broofa/node-mime/issues/117)
---
## v1.3.4 (06/02/2015)
*No changelog for this release.*
---
## v1.3.3 (06/02/2015)
*No changelog for this release.*
---
## v1.3.1 (05/02/2015)
- [**closed**] Consider adding support for Handlebars .hbs file ending [#111](https://github.com/broofa/node-mime/issues/111)
- [**closed**] Consider adding support for hjson. [#110](https://github.com/broofa/node-mime/issues/110)
- [**closed**] Add mime type for Opus audio files [#94](https://github.com/broofa/node-mime/issues/94)
- [**closed**] Consider making the `Requesting New Types` information more visible [#77](https://github.com/broofa/node-mime/issues/77)
---
## v1.3.0 (05/02/2015)
- [**closed**] Add common name? [#114](https://github.com/broofa/node-mime/issues/114)
- [**closed**] application/x-yaml [#104](https://github.com/broofa/node-mime/issues/104)
- [**closed**] Add mime type for WOFF file format 2.0 [#102](https://github.com/broofa/node-mime/issues/102)
- [**closed**] application/x-msi for .msi [#99](https://github.com/broofa/node-mime/issues/99)
- [**closed**] Add mimetype for gettext translation files [#98](https://github.com/broofa/node-mime/issues/98)
- [**closed**] collaborators [#88](https://github.com/broofa/node-mime/issues/88)
- [**closed**] getting errot in installation of mime module...any1 can help? [#87](https://github.com/broofa/node-mime/issues/87)
- [**closed**] should application/json's charset be utf8? [#86](https://github.com/broofa/node-mime/issues/86)
- [**closed**] Add "license" and "licenses" to package.json [#81](https://github.com/broofa/node-mime/issues/81)
- [**closed**] lookup with extension-less file on Windows returns wrong type [#68](https://github.com/broofa/node-mime/issues/68)
---
## v1.2.11 (15/08/2013)
- [**closed**] Update mime.types [#65](https://github.com/broofa/node-mime/issues/65)
- [**closed**] Publish a new version [#63](https://github.com/broofa/node-mime/issues/63)
- [**closed**] README should state upfront that "application/octet-stream" is default for unknown extension [#55](https://github.com/broofa/node-mime/issues/55)
- [**closed**] Suggested improvement to the charset API [#52](https://github.com/broofa/node-mime/issues/52)
---
## v1.2.10 (25/07/2013)
- [**closed**] Mime type for woff files should be application/font-woff and not application/x-font-woff [#62](https://github.com/broofa/node-mime/issues/62)
- [**closed**] node.types in conflict with mime.types [#51](https://github.com/broofa/node-mime/issues/51)
---
## v1.2.9 (17/01/2013)
- [**closed**] Please update "mime" NPM [#49](https://github.com/broofa/node-mime/issues/49)
- [**closed**] Please add semicolon [#46](https://github.com/broofa/node-mime/issues/46)
- [**closed**] parse full mime types [#43](https://github.com/broofa/node-mime/issues/43)
---
## v1.2.8 (10/01/2013)
- [**closed**] /js directory mime is application/javascript. Is it correct? [#47](https://github.com/broofa/node-mime/issues/47)
- [**closed**] Add mime types for lua code. [#45](https://github.com/broofa/node-mime/issues/45)
---
## v1.2.7 (19/10/2012)
- [**closed**] cannot install 1.2.7 via npm [#41](https://github.com/broofa/node-mime/issues/41)
- [**closed**] Transfer ownership to @broofa [#36](https://github.com/broofa/node-mime/issues/36)
- [**closed**] it's wrong to set charset to UTF-8 for text [#30](https://github.com/broofa/node-mime/issues/30)
- [**closed**] Allow multiple instances of MIME types container [#27](https://github.com/broofa/node-mime/issues/27)

View File

@@ -0,0 +1,5 @@
1. Commit messages should have a [Conventional Commit](https://conventionalcommits.org/) prefix.
2. If you're editing the `types/*` files, just stop. These are auto-generated from [mime-db](https://github.com/jshttp/mime-db). Go talk to those folks.
3. README edits should be made to [src/README_md.js](src/README_md.js).
Thanks for helping out with this project. You rock!

21
node_modules/gtoken/node_modules/mime/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2010 Benjamin Thomas, Robert Kieffer
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

95
node_modules/gtoken/node_modules/mime/Mime.js generated vendored Normal file
View File

@@ -0,0 +1,95 @@
'use strict';
/**
* @param typeMap [Object] Map of MIME type -> Array[extensions]
* @param ...
*/
function Mime() {
this._types = Object.create(null);
this._extensions = Object.create(null);
for (var i = 0; i < arguments.length; i++) {
this.define(arguments[i]);
}
this.define = this.define.bind(this);
this.getType = this.getType.bind(this);
this.getExtension = this.getExtension.bind(this);
}
/**
* Define mimetype -> extension mappings. Each key is a mime-type that maps
* to an array of extensions associated with the type. The first extension is
* used as the default extension for the type.
*
* e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});
*
* If a type declares an extension that has already been defined, an error will
* be thrown. To suppress this error and force the extension to be associated
* with the new type, pass `force`=true. Alternatively, you may prefix the
* extension with "*" to map the type to extension, without mapping the
* extension to the type.
*
* e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});
*
*
* @param map (Object) type definitions
* @param force (Boolean) if true, force overriding of existing definitions
*/
Mime.prototype.define = function(typeMap, force) {
for (var type in typeMap) {
var extensions = typeMap[type].map(function(t) {return t.toLowerCase()});
type = type.toLowerCase();
for (var i = 0; i < extensions.length; i++) {
var ext = extensions[i];
// '*' prefix = not the preferred type for this extension. So fixup the
// extension, and skip it.
if (ext[0] == '*') {
continue;
}
if (!force && (ext in this._types)) {
throw new Error(
'Attempt to change mapping for "' + ext +
'" extension from "' + this._types[ext] + '" to "' + type +
'". Pass `force=true` to allow this, otherwise remove "' + ext +
'" from the list of extensions for "' + type + '".'
);
}
this._types[ext] = type;
}
// Use first extension as default
if (force || !this._extensions[type]) {
var ext = extensions[0];
this._extensions[type] = (ext[0] != '*') ? ext : ext.substr(1)
}
}
};
/**
* Lookup a mime type based on extension
*/
Mime.prototype.getType = function(path) {
path = String(path);
var last = path.replace(/^.*[/\\]/, '').toLowerCase();
var ext = last.replace(/^.*\./, '').toLowerCase();
var hasPath = last.length < path.length;
var hasDot = ext.length < last.length - 1;
return (hasDot || !hasPath) && this._types[ext] || null;
};
/**
* Return file extension associated with a mime type
*/
Mime.prototype.getExtension = function(type) {
type = /^\s*([^;\s]*)/.test(type) && RegExp.$1;
return type && this._extensions[type.toLowerCase()] || null;
};
module.exports = Mime;

193
node_modules/gtoken/node_modules/mime/README.md generated vendored Normal file
View File

@@ -0,0 +1,193 @@
<!--
-- This file is auto-generated from src/README_js.md. Changes should be made there.
-->
# Mime
A comprehensive, compact MIME type module.
[![Build Status](https://travis-ci.org/broofa/node-mime.svg?branch=master)](https://travis-ci.org/broofa/node-mime)
## Version 2 Notes
Version 2 is a breaking change from 1.x as the semver implies. Specifically:
* `lookup()` renamed to `getType()`
* `extension()` renamed to `getExtension()`
* `charset()` and `load()` methods have been removed
If you prefer the legacy version of this module please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/node-mime/tree/v1.4.0).
## Install
### NPM
```
npm install mime
```
### Browser
It is recommended that you use a bundler such as
[webpack](https://webpack.github.io/) or [browserify](http://browserify.org/) to
package your code. However, browser-ready versions are available via wzrd.in.
E.g. For the full version:
<script src="https://wzrd.in/standalone/mime@latest"></script>
<script>
mime.getType(...); // etc.
<script>
Or, for the `mime/lite` version:
<script src="https://wzrd.in/standalone/mime%2flite@latest"></script>
<script>
mimelite.getType(...); // (Note `mimelite` here)
<script>
## Quick Start
For the full version (800+ MIME types, 1,000+ extensions):
```javascript
const mime = require('mime');
mime.getType('txt'); // ⇨ 'text/plain'
mime.getExtension('text/plain'); // ⇨ 'txt'
```
See [Mime API](#mime-api) below for API details.
## Lite Version
There is also a "lite" version of this module that omits vendor-specific
(`*/vnd.*`) and experimental (`*/x-*`) types. It weighs in at ~2.5KB, compared
to 8KB for the full version. To load the lite version:
```javascript
const mime = require('mime/lite');
```
## Mime .vs. mime-types .vs. mime-db modules
For those of you wondering about the difference between these [popular] NPM modules,
here's a brief rundown ...
[`mime-db`](https://github.com/jshttp/mime-db) is "the source of
truth" for MIME type information. It is not an API. Rather, it is a canonical
dataset of mime type definitions pulled from IANA, Apache, NGINX, and custom mappings
submitted by the Node.js community.
[`mime-types`](https://github.com/jshttp/mime-types) is a thin
wrapper around mime-db that provides an API drop-in compatible(ish) with `mime @ < v1.3.6` API.
`mime` is, as of v2, a self-contained module bundled with a pre-optimized version
of the `mime-db` dataset. It provides a simplified API with the following characteristics:
* Intelligently resolved type conflicts (See [mime-score](https://github.com/broofa/mime-score) for details)
* Method naming consistent with industry best-practices
* Compact footprint. E.g. The minified+compressed sizes of the various modules:
Module | Size
--- | ---
`mime-db` | 18 KB
`mime-types` | same as mime-db
`mime` | 8 KB
`mime/lite` | 2 KB
## Mime API
Both `require('mime')` and `require('mime/lite')` return instances of the MIME
class, documented below.
Note: Inputs to this API are case-insensitive. Outputs (returned values) will
be lowercase.
### new Mime(typeMap, ... more maps)
Most users of this module will not need to create Mime instances directly.
However if you would like to create custom mappings, you may do so as follows
...
```javascript
// Require Mime class
const Mime = require('mime/Mime');
// Define mime type -> extensions map
const typeMap = {
'text/abc': ['abc', 'alpha', 'bet'],
'text/def': ['leppard']
};
// Create and use Mime instance
const myMime = new Mime(typeMap);
myMime.getType('abc'); // ⇨ 'text/abc'
myMime.getExtension('text/def'); // ⇨ 'leppard'
```
If more than one map argument is provided, each map is `define()`ed (see below), in order.
### mime.getType(pathOrExtension)
Get mime type for the given path or extension. E.g.
```javascript
mime.getType('js'); // ⇨ 'application/javascript'
mime.getType('json'); // ⇨ 'application/json'
mime.getType('txt'); // ⇨ 'text/plain'
mime.getType('dir/text.txt'); // ⇨ 'text/plain'
mime.getType('dir\\text.txt'); // ⇨ 'text/plain'
mime.getType('.text.txt'); // ⇨ 'text/plain'
mime.getType('.txt'); // ⇨ 'text/plain'
```
`null` is returned in cases where an extension is not detected or recognized
```javascript
mime.getType('foo/txt'); // ⇨ null
mime.getType('bogus_type'); // ⇨ null
```
### mime.getExtension(type)
Get extension for the given mime type. Charset options (often included in
Content-Type headers) are ignored.
```javascript
mime.getExtension('text/plain'); // ⇨ 'txt'
mime.getExtension('application/json'); // ⇨ 'json'
mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
```
### mime.define(typeMap[, force = false])
Define [more] type mappings.
`typeMap` is a map of type -> extensions, as documented in `new Mime`, above.
By default this method will throw an error if you try to map a type to an
extension that is already assigned to another type. Passing `true` for the
`force` argument will suppress this behavior (overriding any previous mapping).
```javascript
mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
```
## Command Line
mime [path_or_extension]
E.g.
> mime scripts/jquery.js
application/javascript
----
Markdown generated from [src/README_js.md](src/README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd)

10
node_modules/gtoken/node_modules/mime/cli.js generated vendored Normal file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/env node
'use strict';
var mime = require('.');
var file = process.argv[2];
var type = mime.getType(file);
process.stdout.write(type + '\n');

4
node_modules/gtoken/node_modules/mime/index.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
'use strict';
var Mime = require('./Mime');
module.exports = new Mime(require('./types/standard'), require('./types/other'));

4
node_modules/gtoken/node_modules/mime/lite.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
'use strict';
var Mime = require('./Mime');
module.exports = new Mime(require('./types/standard'));

74
node_modules/gtoken/node_modules/mime/package.json generated vendored Normal file
View File

@@ -0,0 +1,74 @@
{
"_from": "mime@^2.2.0",
"_id": "mime@2.4.4",
"_inBundle": false,
"_integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
"_location": "/gtoken/mime",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "mime@^2.2.0",
"name": "mime",
"escapedName": "mime",
"rawSpec": "^2.2.0",
"saveSpec": null,
"fetchSpec": "^2.2.0"
},
"_requiredBy": [
"/gtoken"
],
"_resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
"_shasum": "bd7b91135fc6b01cde3e9bae33d659b63d8857e5",
"_spec": "mime@^2.2.0",
"_where": "D:\\dev\\crossmap\\backend-services\\cm-app-youtube\\node_modules\\gtoken",
"author": {
"name": "Robert Kieffer",
"email": "robert@broofa.com",
"url": "http://github.com/broofa"
},
"bin": {
"mime": "cli.js"
},
"bugs": {
"url": "https://github.com/broofa/node-mime/issues"
},
"bundleDependencies": false,
"contributors": [],
"dependencies": {},
"deprecated": false,
"description": "A comprehensive library for mime-type mapping",
"devDependencies": {
"benchmark": "*",
"chalk": "*",
"eslint": "*",
"mime-db": "1.40.0",
"mime-score": "*",
"mime-types": "2.1.24",
"mocha": "6.1.4",
"runmd": "*",
"standard-version": "6.0.1"
},
"engines": {
"node": ">=4.0.0"
},
"homepage": "https://github.com/broofa/node-mime#readme",
"keywords": [
"util",
"mime"
],
"license": "MIT",
"name": "mime",
"repository": {
"url": "git+https://github.com/broofa/node-mime.git",
"type": "git"
},
"scripts": {
"benchmark": "node src/benchmark.js",
"md": "runmd --watch --output README.md src/README_js.md",
"prepare": "node src/build.js && runmd --output README.md src/README_js.md",
"release": "standard-version",
"test": "mocha src/test.js"
},
"version": "2.4.4"
}

184
node_modules/gtoken/node_modules/mime/src/README_js.md generated vendored Normal file
View File

@@ -0,0 +1,184 @@
```javascript --hide
runmd.onRequire = path => path.replace(/^mime/, '..');
```
# Mime
A comprehensive, compact MIME type module.
[![Build Status](https://travis-ci.org/broofa/node-mime.svg?branch=master)](https://travis-ci.org/broofa/node-mime)
## Version 2 Notes
Version 2 is a breaking change from 1.x as the semver implies. Specifically:
* `lookup()` renamed to `getType()`
* `extension()` renamed to `getExtension()`
* `charset()` and `load()` methods have been removed
If you prefer the legacy version of this module please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/node-mime/tree/v1.4.0).
## Install
### NPM
```
npm install mime
```
### Browser
It is recommended that you use a bundler such as
[webpack](https://webpack.github.io/) or [browserify](http://browserify.org/) to
package your code. However, browser-ready versions are available via wzrd.in.
E.g. For the full version:
<script src="https://wzrd.in/standalone/mime@latest"></script>
<script>
mime.getType(...); // etc.
<script>
Or, for the `mime/lite` version:
<script src="https://wzrd.in/standalone/mime%2flite@latest"></script>
<script>
mimelite.getType(...); // (Note `mimelite` here)
<script>
## Quick Start
For the full version (800+ MIME types, 1,000+ extensions):
```javascript --run default
const mime = require('mime');
mime.getType('txt'); // RESULT
mime.getExtension('text/plain'); // RESULT
```
See [Mime API](#mime-api) below for API details.
## Lite Version
There is also a "lite" version of this module that omits vendor-specific
(`*/vnd.*`) and experimental (`*/x-*`) types. It weighs in at ~2.5KB, compared
to 8KB for the full version. To load the lite version:
```javascript
const mime = require('mime/lite');
```
## Mime .vs. mime-types .vs. mime-db modules
For those of you wondering about the difference between these [popular] NPM modules,
here's a brief rundown ...
[`mime-db`](https://github.com/jshttp/mime-db) is "the source of
truth" for MIME type information. It is not an API. Rather, it is a canonical
dataset of mime type definitions pulled from IANA, Apache, NGINX, and custom mappings
submitted by the Node.js community.
[`mime-types`](https://github.com/jshttp/mime-types) is a thin
wrapper around mime-db that provides an API drop-in compatible(ish) with `mime @ < v1.3.6` API.
`mime` is, as of v2, a self-contained module bundled with a pre-optimized version
of the `mime-db` dataset. It provides a simplified API with the following characteristics:
* Intelligently resolved type conflicts (See [mime-score](https://github.com/broofa/mime-score) for details)
* Method naming consistent with industry best-practices
* Compact footprint. E.g. The minified+compressed sizes of the various modules:
Module | Size
--- | ---
`mime-db` | 18 KB
`mime-types` | same as mime-db
`mime` | 8 KB
`mime/lite` | 2 KB
## Mime API
Both `require('mime')` and `require('mime/lite')` return instances of the MIME
class, documented below.
Note: Inputs to this API are case-insensitive. Outputs (returned values) will
be lowercase.
### new Mime(typeMap, ... more maps)
Most users of this module will not need to create Mime instances directly.
However if you would like to create custom mappings, you may do so as follows
...
```javascript --run default
// Require Mime class
const Mime = require('mime/Mime');
// Define mime type -> extensions map
const typeMap = {
'text/abc': ['abc', 'alpha', 'bet'],
'text/def': ['leppard']
};
// Create and use Mime instance
const myMime = new Mime(typeMap);
myMime.getType('abc'); // RESULT
myMime.getExtension('text/def'); // RESULT
```
If more than one map argument is provided, each map is `define()`ed (see below), in order.
### mime.getType(pathOrExtension)
Get mime type for the given path or extension. E.g.
```javascript --run default
mime.getType('js'); // RESULT
mime.getType('json'); // RESULT
mime.getType('txt'); // RESULT
mime.getType('dir/text.txt'); // RESULT
mime.getType('dir\\text.txt'); // RESULT
mime.getType('.text.txt'); // RESULT
mime.getType('.txt'); // RESULT
```
`null` is returned in cases where an extension is not detected or recognized
```javascript --run default
mime.getType('foo/txt'); // RESULT
mime.getType('bogus_type'); // RESULT
```
### mime.getExtension(type)
Get extension for the given mime type. Charset options (often included in
Content-Type headers) are ignored.
```javascript --run default
mime.getExtension('text/plain'); // RESULT
mime.getExtension('application/json'); // RESULT
mime.getExtension('text/html; charset=utf8'); // RESULT
```
### mime.define(typeMap[, force = false])
Define [more] type mappings.
`typeMap` is a map of type -> extensions, as documented in `new Mime`, above.
By default this method will throw an error if you try to map a type to an
extension that is already assigned to another type. Passing `true` for the
`force` argument will suppress this behavior (overriding any previous mapping).
```javascript --run default
mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // RESULT
mime.getExtension('text/x-abc') // RESULT
```
## Command Line
mime [path_or_extension]
E.g.
> mime scripts/jquery.js
application/javascript

26
node_modules/gtoken/node_modules/mime/src/benchmark.js generated vendored Normal file
View File

@@ -0,0 +1,26 @@
const Benchmark = require('benchmark');
const mime = require('..');
const mimeLite = require('../lite');
const suite = new Benchmark.Suite();
const extensions = Object.keys(mime._types);
let idx = 0;
suite
.add('mime.getType',
function() {
mime.getType(extensions[idx++]);
if (idx >= extensions.length) idx = 0;
}
)
.add('mimeLite.getType',
function() {
mimeLite.getType(extensions[idx++]);
if (idx >= extensions.length) idx = 0;
}
)
.on('cycle', function(event) {
console.log(String(event.target));
})
.run();

71
node_modules/gtoken/node_modules/mime/src/build.js generated vendored Normal file
View File

@@ -0,0 +1,71 @@
#!/usr/bin/env node
'use strict';
var fs = require('fs');
var path = require('path');
var mimeScore = require('mime-score');
var db = require('mime-db');
var chalk = require('chalk');
var STANDARD_FACET_SCORE = 900;
var byExtension = {};
// Clear out any conflict extensions in mime-db
for (var type in db) {
var entry = db[type];
entry.type = type;
if (!entry.extensions) continue;
entry.extensions.forEach(function(ext) {
var drop;
var keep = entry;
if (ext in byExtension) {
var e0 = entry;
var e1 = byExtension[ext];
e0.pri = mimeScore(e0.type, e0.source);
e1.pri = mimeScore(e1.type, e1.source);
drop = e0.pri < e1.pri ? e0 : e1;
keep = e0.pri >= e1.pri ? e0 : e1;
// Prefix lower-priority extensions with '*'
drop.extensions = drop.extensions.map(function(e) {return e == ext ? '*' + e : e});
console.log(
ext + ': Preferring ' + chalk.green(keep.type) + ' (' + keep.pri +
') over ' + chalk.red(drop.type) + ' (' + drop.pri + ')' + ' for ' + ext
);
}
// Cache the hightest ranking type for this extension
if (keep == entry) byExtension[ext] = entry;
});
}
function writeTypesFile(types, path) {
fs.writeFileSync(path, 'module.exports = ' + JSON.stringify(types) + ';');
}
// Segregate into standard and non-standard types based on facet per
// https://tools.ietf.org/html/rfc6838#section-3.1
var standard = {};
var other = {};
Object.keys(db).sort().forEach(function(k) {
var entry = db[k];
if (entry.extensions) {
if (mimeScore(entry.type, entry.source) >= STANDARD_FACET_SCORE) {
standard[entry.type] = entry.extensions;
} else {
other[entry.type] = entry.extensions;
}
}
});
writeTypesFile(standard, path.join(__dirname, '../types', 'standard.js'));
writeTypesFile(other, path.join(__dirname, '../types', 'other.js'));

256
node_modules/gtoken/node_modules/mime/src/test.js generated vendored Normal file
View File

@@ -0,0 +1,256 @@
'use strict';
var mime = require('..');
var mimeTypes = require('../node_modules/mime-types');
var assert = require('assert');
var chalk = require('chalk');
describe('class Mime', function() {
it('mime and mime/lite coexist', function() {
assert.doesNotThrow(function() {
require('../lite');
});
});
it('new constructor()', function() {
var Mime = require('../Mime');
var mime = new Mime(
{'text/a': ['a', 'a1']},
{'text/b': ['b', 'b1']}
);
assert.deepEqual(mime._types, {
a: 'text/a',
a1: 'text/a',
b: 'text/b',
b1: 'text/b',
});
assert.deepEqual(mime._extensions, {
'text/a': 'a',
'text/b': 'b',
});
});
it('define()', function() {
var Mime = require('../Mime');
var mime = new Mime({'text/a': ['a']}, {'text/b': ['b']});
assert.throws(function() {
mime.define({'text/c': ['b']});
});
assert.doesNotThrow(function() {
mime.define({'text/c': ['b']}, true);
});
assert.deepEqual(mime._types, {
a: 'text/a',
b: 'text/c',
});
assert.deepEqual(mime._extensions, {
'text/a': 'a',
'text/b': 'b',
'text/c': 'b',
});
});
it('define() *\'ed types', function() {
var Mime = require('../Mime');
var mime = new Mime(
{'text/a': ['*b']},
{'text/b': ['b']}
);
assert.deepEqual(mime._types, {
b: 'text/b',
});
assert.deepEqual(mime._extensions, {
'text/a': 'b',
'text/b': 'b',
});
});
it ('case-insensitive', function() {
var Mime = require('../Mime');
const mime = new Mime({
'TEXT/UPPER': ['UP'],
'text/lower': ['low'],
});
assert.equal(mime.getType('test.up'), 'text/upper');
assert.equal(mime.getType('test.UP'), 'text/upper');
assert.equal(mime.getType('test.low'), 'text/lower');
assert.equal(mime.getType('test.LOW'), 'text/lower');
assert.equal(mime.getExtension('text/upper'), 'up');
assert.equal(mime.getExtension('text/lower'), 'low');
assert.equal(mime.getExtension('TEXT/UPPER'), 'up');
assert.equal(mime.getExtension('TEXT/LOWER'), 'low');
});
it('getType()', function() {
// Upper/lower case
assert.equal(mime.getType('text.txt'), 'text/plain');
assert.equal(mime.getType('TEXT.TXT'), 'text/plain');
// Bare extension
assert.equal(mime.getType('txt'), 'text/plain');
assert.equal(mime.getType('.txt'), 'text/plain');
assert.strictEqual(mime.getType('.bogus'), null);
assert.strictEqual(mime.getType('bogus'), null);
// Non-sensical
assert.strictEqual(mime.getType(null), null);
assert.strictEqual(mime.getType(undefined), null);
assert.strictEqual(mime.getType(42), null);
assert.strictEqual(mime.getType({}), null);
// File paths
assert.equal(mime.getType('dir/text.txt'), 'text/plain');
assert.equal(mime.getType('dir\\text.txt'), 'text/plain');
assert.equal(mime.getType('.text.txt'), 'text/plain');
assert.equal(mime.getType('.txt'), 'text/plain');
assert.equal(mime.getType('txt'), 'text/plain');
assert.equal(mime.getType('/path/to/page.html'), 'text/html');
assert.equal(mime.getType('c:\\path\\to\\page.html'), 'text/html');
assert.equal(mime.getType('page.html'), 'text/html');
assert.equal(mime.getType('path/to/page.html'), 'text/html');
assert.equal(mime.getType('path\\to\\page.html'), 'text/html');
assert.strictEqual(mime.getType('/txt'), null);
assert.strictEqual(mime.getType('\\txt'), null);
assert.strictEqual(mime.getType('text.nope'), null);
assert.strictEqual(mime.getType('/path/to/file.bogus'), null);
assert.strictEqual(mime.getType('/path/to/json'), null);
assert.strictEqual(mime.getType('/path/to/.json'), null);
assert.strictEqual(mime.getType('/path/to/.config.json'), 'application/json');
assert.strictEqual(mime.getType('.config.json'), 'application/json');
});
it('getExtension()', function() {
assert.equal(mime.getExtension('text/html'), 'html');
assert.equal(mime.getExtension(' text/html'), 'html');
assert.equal(mime.getExtension('text/html '), 'html');
assert.strictEqual(mime.getExtension('application/x-bogus'), null);
assert.strictEqual(mime.getExtension('bogus'), null);
assert.strictEqual(mime.getExtension(null), null);
assert.strictEqual(mime.getExtension(undefined), null);
assert.strictEqual(mime.getExtension(42), null);
assert.strictEqual(mime.getExtension({}), null);
});
});
describe('DB', function() {
var diffs = [];
after(function() {
if (diffs.length) {
console.log('\n[INFO] The following inconsistencies with MDN (https://goo.gl/lHrFU6) and/or mime-types (https://github.com/jshttp/mime-types) are expected:');
diffs.forEach(function(d) {
console.warn(
' ' + d[0]+ '[' + chalk.blue(d[1]) + '] = ' + chalk.red(d[2]) +
', mime[' + d[1] + '] = ' + chalk.green(d[3])
);
});
}
});
it('Consistency', function() {
for (var ext in this.types) {
assert.equal(ext, this.extensions[this.types[ext]], '${ext} does not have consistent ext->type->ext mapping');
}
});
it('MDN types', function() {
// MDN types listed at https://goo.gl/lHrFU6
var MDN = {
aac: 'audio/aac',
bin: 'application/octet-stream',
css: 'text/css',
csv: 'text/csv',
doc: 'application/msword',
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
gif: 'image/gif',
html: 'text/html',
ico: 'image/vnd.microsoft.icon',
jpg: 'image/jpeg',
js: 'application/javascript',
json: 'application/json',
midi: 'audio/midi',
mjs: 'application/javascript',
mp3: 'audio/mpeg',
mpeg: 'video/mpeg',
oga: 'audio/ogg',
ogv: 'video/ogg',
otf: 'font/otf',
png: 'image/png',
pdf: 'application/pdf',
rtf: 'application/rtf',
svg: 'image/svg+xml',
swf: 'application/x-shockwave-flash',
tiff: 'image/tiff',
ttf: 'font/ttf',
txt: 'text/plain',
wav: 'audio/wav',
weba: 'audio/webm',
webm: 'video/webm',
webp: 'image/webp',
woff: 'font/woff',
xls: 'application/vnd.ms-excel',
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
xml: 'application/xml',
zip: 'application/zip',
'3gp': 'video/3gpp',
};
for (var ext in MDN) {
var expected = MDN[ext];
var actual = mime.getType(ext);
if (actual !== expected) diffs.push(['MDN', ext, expected, actual]);
}
for (var ext in mimeTypes.types) {
var expected = mimeTypes.types[ext];
var actual = mime.getType(ext);
if (actual !== expected) diffs.push(['mime-types', ext, expected, actual]);
}
});
it('Specific types', function() {
// Assortment of types we sanity check for good measure
assert.equal(mime.getType('html'), 'text/html');
assert.equal(mime.getType('js'), 'application/javascript');
assert.equal(mime.getType('json'), 'application/json');
assert.equal(mime.getType('rtf'), 'application/rtf');
assert.equal(mime.getType('txt'), 'text/plain');
assert.equal(mime.getType('xml'), 'application/xml');
assert.equal(mime.getType('wasm'), 'application/wasm');
});
it('Specific extensions', function() {
assert.equal(mime.getExtension('text/html;charset=UTF-8'), 'html');
assert.equal(mime.getExtension('text/HTML; charset=UTF-8'), 'html');
assert.equal(mime.getExtension('text/html; charset=UTF-8'), 'html');
assert.equal(mime.getExtension('text/html; charset=UTF-8 '), 'html');
assert.equal(mime.getExtension('text/html ; charset=UTF-8'), 'html');
assert.equal(mime.getExtension(mime._types.text), 'txt');
assert.equal(mime.getExtension(mime._types.htm), 'html');
assert.equal(mime.getExtension('application/octet-stream'), 'bin');
assert.equal(mime.getExtension('application/octet-stream '), 'bin');
assert.equal(mime.getExtension(' text/html; charset=UTF-8'), 'html');
assert.equal(mime.getExtension('text/html; charset=UTF-8 '), 'html');
assert.equal(mime.getExtension('text/html; charset=UTF-8'), 'html');
assert.equal(mime.getExtension('text/html ; charset=UTF-8'), 'html');
assert.equal(mime.getExtension('text/html;charset=UTF-8'), 'html');
assert.equal(mime.getExtension('text/Html;charset=UTF-8'), 'html');
assert.equal(mime.getExtension('unrecognized'), null);
assert.equal(mime.getExtension('text/xml'), 'xml'); // See #180
});
});

1
node_modules/gtoken/node_modules/mime/types/other.js generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

99
node_modules/gtoken/package.json generated vendored Normal file
View File

@@ -0,0 +1,99 @@
{
"_from": "gtoken@^3.0.0",
"_id": "gtoken@3.0.2",
"_inBundle": false,
"_integrity": "sha512-BOBi6Zz31JfxhSHRZBIDdbwIbOPyux10WxJHdx8wz/FMP1zyN1xFrsAWsgcLe5ww5v/OZu/MePUEZAjgJXSauA==",
"_location": "/gtoken",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "gtoken@^3.0.0",
"name": "gtoken",
"escapedName": "gtoken",
"rawSpec": "^3.0.0",
"saveSpec": null,
"fetchSpec": "^3.0.0"
},
"_requiredBy": [
"/google-auth-library"
],
"_resolved": "https://registry.npmjs.org/gtoken/-/gtoken-3.0.2.tgz",
"_shasum": "09b3c2998a785f81d7d020b9221d65d27e0e8e62",
"_spec": "gtoken@^3.0.0",
"_where": "D:\\dev\\crossmap\\backend-services\\cm-app-youtube\\node_modules\\google-auth-library",
"author": {
"name": "Google, LLC"
},
"bugs": {
"url": "https://github.com/google/node-gtoken/issues"
},
"bundleDependencies": false,
"dependencies": {
"gaxios": "^2.0.0",
"google-p12-pem": "^2.0.0",
"jws": "^3.1.5",
"mime": "^2.2.0"
},
"deprecated": false,
"description": "Node.js Google Authentication Service Account Tokens",
"devDependencies": {
"@compodoc/compodoc": "^1.1.7",
"@types/jws": "^3.1.0",
"@types/mime": "^2.0.0",
"@types/mocha": "^5.0.0",
"@types/nock": "^10.0.0",
"@types/node": "^10.0.3",
"codecov": "^3.0.2",
"gts": "^1.0.0",
"intelli-espower-loader": "^1.0.1",
"js-green-licenses": "^1.0.0",
"linkinator": "^1.1.2",
"mocha": "^6.0.0",
"nock": "^10.0.0",
"nyc": "^14.0.0",
"source-map-support": "^0.5.6",
"typescript": "~3.5.0"
},
"engines": {
"node": ">=8.10.0"
},
"files": [
"build/src",
"!build/src/**/*.map"
],
"homepage": "https://github.com/google/node-gtoken#readme",
"keywords": [
"google",
"service",
"account",
"api",
"token",
"api",
"auth"
],
"license": "MIT",
"main": "./build/src/index.js",
"name": "gtoken",
"repository": {
"type": "git",
"url": "git+https://github.com/google/node-gtoken.git"
},
"scripts": {
"clean": "gts clean",
"compile": "tsc -p .",
"docs": "compodoc src/",
"docs-test": "linkinator docs -r --skip www.googleapis.com",
"fix": "gts fix",
"lint": "gts check",
"predocs-test": "npm run docs",
"prepare": "npm run compile",
"presystem-test": "npm run compile",
"pretest": "npm run compile",
"samples-test": "cd samples/ && npm link ../ && npm test && cd ../",
"system-test": "mocha build/system-test",
"test": "nyc mocha build/test"
},
"types": "./build/src/index.d.ts",
"version": "3.0.2"
}