aboutsummaryrefslogtreecommitdiffstats
path: root/dgbuilder/dgeflows/node_modules/serve-favicon/node_modules/etag/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'dgbuilder/dgeflows/node_modules/serve-favicon/node_modules/etag/index.js')
-rw-r--r--dgbuilder/dgeflows/node_modules/serve-favicon/node_modules/etag/index.js171
1 files changed, 0 insertions, 171 deletions
diff --git a/dgbuilder/dgeflows/node_modules/serve-favicon/node_modules/etag/index.js b/dgbuilder/dgeflows/node_modules/serve-favicon/node_modules/etag/index.js
deleted file mode 100644
index bb05eb7e..00000000
--- a/dgbuilder/dgeflows/node_modules/serve-favicon/node_modules/etag/index.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/*!
- * etag
- * Copyright(c) 2014 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-/**
- * Module exports.
- */
-
-module.exports = etag
-
-/**
- * Module dependencies.
- */
-
-var crc = require('crc').crc32
-var crypto = require('crypto')
-var Stats = require('fs').Stats
-
-/**
- * Module variables.
- */
-
-var crc32threshold = 1000 // 1KB
-var NULL = new Buffer([0])
-var toString = Object.prototype.toString
-
-/**
- * Create a simple ETag.
- *
- * @param {string|Buffer|Stats} entity
- * @param {object} [options]
- * @param {boolean} [options.weak]
- * @return {String}
- * @api public
- */
-
-function etag(entity, options) {
- if (entity == null) {
- throw new TypeError('argument entity is required')
- }
-
- var isStats = isstats(entity)
- var weak = options && typeof options.weak === 'boolean'
- ? options.weak
- : isStats
-
- // support fs.Stats object
- if (isStats) {
- return stattag(entity, weak)
- }
-
- if (typeof entity !== 'string' && !Buffer.isBuffer(entity)) {
- throw new TypeError('argument entity must be string, Buffer, or fs.Stats')
- }
-
- var hash = weak
- ? weakhash(entity)
- : stronghash(entity)
-
- return weak
- ? 'W/"' + hash + '"'
- : '"' + hash + '"'
-}
-
-/**
- * Determine if object is a Stats object.
- *
- * @param {object} obj
- * @return {boolean}
- * @api private
- */
-
-function isstats(obj) {
- // not even an object
- if (obj === null || typeof obj !== 'object') {
- return false
- }
-
- // genuine fs.Stats
- if (obj instanceof Stats) {
- return true
- }
-
- // quack quack
- return 'atime' in obj && toString.call(obj.atime) === '[object Date]'
- && 'ctime' in obj && toString.call(obj.ctime) === '[object Date]'
- && 'mtime' in obj && toString.call(obj.mtime) === '[object Date]'
- && 'ino' in obj && typeof obj.ino === 'number'
- && 'size' in obj && typeof obj.size === 'number'
-}
-
-/**
- * Generate a tag for a stat.
- *
- * @param {Buffer} entity
- * @return {String}
- * @api private
- */
-
-function stattag(stat, weak) {
- var mtime = stat.mtime.toISOString()
- var size = stat.size.toString(16)
-
- if (weak) {
- return 'W/"' + size + '-' + crc(mtime) + '"'
- }
-
- var hash = crypto
- .createHash('md5')
- .update('file', 'utf8')
- .update(NULL)
- .update(size, 'utf8')
- .update(NULL)
- .update(mtime, 'utf8')
- .digest('base64')
-
- return '"' + hash + '"'
-}
-
-/**
- * Generate a strong hash.
- *
- * @param {Buffer} entity
- * @return {String}
- * @api private
- */
-
-function stronghash(entity) {
- if (entity.length === 0) {
- // fast-path empty
- return '1B2M2Y8AsgTpgAmY7PhCfg=='
- }
-
- return crypto
- .createHash('md5')
- .update(entity, 'utf8')
- .digest('base64')
-}
-
-/**
- * Generate a weak hash.
- *
- * @param {Buffer} entity
- * @return {String}
- * @api private
- */
-
-function weakhash(entity) {
- if (entity.length === 0) {
- // fast-path empty
- return '0-0'
- }
-
- var len = typeof entity === 'string'
- ? Buffer.byteLength(entity, 'utf8')
- : entity.length
-
- if (len <= crc32threshold) {
- // crc32 plus length when it's fast
- // crc(str) only accepts utf-8 encoding
- return len.toString(16) + '-' + crc(entity).toString(16)
- }
-
- // use md4 for long strings
- return crypto
- .createHash('md4')
- .update(entity, 'utf8')
- .digest('base64')
-}