forked from persvr/pintura
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/kriszyp/pintura into pack…
…age-fix
- Loading branch information
Showing
58 changed files
with
643 additions
and
182 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
/* | ||
* The require-uri module provides a backwards compatible technique for | ||
* requiring modules with URLs. This is designed to be used at the top of a module: | ||
* require = require("require-uri").getRequire(require); | ||
*/ | ||
|
||
|
||
exports.getRequire = function(require){ | ||
return function(id){ | ||
if(module.supportsUri || id.charAt(0) === '.'){ | ||
// if we support URLs, use the real require | ||
return require(id); | ||
} | ||
id = resolveUri("", id, mappings); | ||
if(id.indexOf(":") === -1){ | ||
return require(id); | ||
} | ||
// otherwise pray that required module is in the path | ||
try{ | ||
return require(id.split("/lib/")[1]); | ||
} | ||
catch(e){ | ||
e.message += " Was trying to load module from " + id + | ||
" and failed, check to ensure it is installed locally or use the web-modules asynchronous loader"; | ||
throw e; | ||
} | ||
}; | ||
}; | ||
|
||
|
||
function resolveUri(currentId, uri, mappings){ | ||
if(uri.charAt(0) === '.'){ | ||
currentId = currentId.substring(0, currentId.lastIndexOf('/') + 1); | ||
return [(currentId + uri).replace(/\/\.\.\/[^\/]*/g,'').replace(/\.\//g,'')]; | ||
} | ||
else{ | ||
return (mappings && mappings.some(function(mapping){ | ||
var from = mapping.from; | ||
if(uri.substring(0, from.length) == from){ | ||
return mapping.to + uri.substring(from.length); | ||
} | ||
})) || uri; | ||
} | ||
} | ||
|
||
var engine = typeof process !== "undefined" ? "node" : "narwhal"; | ||
var mappingsArray = []; | ||
var allMappings = {}; | ||
exports.installPackage = function(packageData){ | ||
function addMappings(mappings){ | ||
if(mappings){ | ||
mappingsArray = mappingsArray.concat(Object.keys(mappings).filter(function(key){ | ||
return !(key in allMappings); | ||
}).map(function(key){ | ||
var to = mappings[key]; | ||
return { | ||
from: key, | ||
to: resolveUri(packageUri, typeof to == "string" ? to : to.to) | ||
}; | ||
}).sort(function(a, b){ | ||
return a.from.length < b.from.length ? 1 : -1; | ||
})); | ||
} | ||
} | ||
if(packageData.overlay){ | ||
Object.keys(packageData.overlay).forEach(function(condition){ | ||
try{ | ||
var matches = (engine == condition) || eval(condition); | ||
}catch(e){} | ||
if(matches){ | ||
addMappings(packageData.overlay[condition].mappings); | ||
} | ||
}); | ||
} | ||
addMappings(packageData.mappings); | ||
} | ||
|
||
exports.installPackage({ | ||
mappings:{ | ||
"perstore/": "", | ||
"commonjs-utils/": "", | ||
"pintura/": "", | ||
"wiky/": "" | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/** This facet is designed for bundling multiple requests in a single request. This is | ||
* based on the JSGI object structure. | ||
*/ | ||
|
||
var Facet = require("perstore/facet").Facet, | ||
directApp = require("../pintura").directApp, | ||
defer = require("promised-io/promise").defer, | ||
namedFacets = require("../facet-resolver").namedFacets; | ||
|
||
namedFacets["application/jsgi"] = exports.JsgiFacet = Facet(Object, function(store){ | ||
return { | ||
forStore: function(requestedStore){ | ||
function genericHandler(requests, metadata){ | ||
requests.forEach(function(request){ | ||
request.store = requestedStore; | ||
(request.headers || (request.headers = {})).__proto__ = metadata; | ||
metadata.clientConnection; | ||
metadata.streamable; | ||
try{ | ||
var response = directApp(request); | ||
if(typeof response.body.observe === "function"){ | ||
response.body.observe() | ||
} | ||
var response = { | ||
|
||
body: directApp(request) | ||
}; | ||
}catch(e){ | ||
response = { | ||
error: e | ||
}; | ||
} | ||
onResponse(response); | ||
}); | ||
var responses = []; | ||
var onResponse; | ||
// maybe use lazy-array here | ||
responses.forEach = function(callback){ | ||
onResponse = callback; | ||
var deferred = defer(); | ||
return deferred.promise; | ||
}; | ||
return responses; | ||
} | ||
return { | ||
get: genericHandler, | ||
put: genericHandler, | ||
post: genericHandler | ||
}; | ||
} | ||
}; | ||
}); |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
|
||
// returns MIME type for extension, or fallback, or octet-steam | ||
exports.mimeType = function(ext, fallback) { | ||
return exports.MIME_TYPES[ext.toLowerCase()] || fallback || 'application/octet-stream'; | ||
}, | ||
|
||
// List of most common mime-types, stolen from Rack. | ||
exports.MIME_TYPES = { | ||
".3gp" : "video/3gpp", | ||
".a" : "application/octet-stream", | ||
".ai" : "application/postscript", | ||
".aif" : "audio/x-aiff", | ||
".aiff" : "audio/x-aiff", | ||
".asc" : "application/pgp-signature", | ||
".asf" : "video/x-ms-asf", | ||
".asm" : "text/x-asm", | ||
".asx" : "video/x-ms-asf", | ||
".atom" : "application/atom+xml", | ||
".au" : "audio/basic", | ||
".avi" : "video/x-msvideo", | ||
".bat" : "application/x-msdownload", | ||
".bin" : "application/octet-stream", | ||
".bmp" : "image/bmp", | ||
".bz2" : "application/x-bzip2", | ||
".c" : "text/x-c", | ||
".cab" : "application/vnd.ms-cab-compressed", | ||
".cc" : "text/x-c", | ||
".chm" : "application/vnd.ms-htmlhelp", | ||
".class" : "application/octet-stream", | ||
".com" : "application/x-msdownload", | ||
".conf" : "text/plain", | ||
".cpp" : "text/x-c", | ||
".crt" : "application/x-x509-ca-cert", | ||
".css" : "text/css", | ||
".csv" : "text/csv", | ||
".cxx" : "text/x-c", | ||
".deb" : "application/x-debian-package", | ||
".der" : "application/x-x509-ca-cert", | ||
".diff" : "text/x-diff", | ||
".djv" : "image/vnd.djvu", | ||
".djvu" : "image/vnd.djvu", | ||
".dll" : "application/x-msdownload", | ||
".dmg" : "application/octet-stream", | ||
".doc" : "application/msword", | ||
".dot" : "application/msword", | ||
".dtd" : "application/xml-dtd", | ||
".dvi" : "application/x-dvi", | ||
".ear" : "application/java-archive", | ||
".eml" : "message/rfc822", | ||
".eps" : "application/postscript", | ||
".exe" : "application/x-msdownload", | ||
".f" : "text/x-fortran", | ||
".f77" : "text/x-fortran", | ||
".f90" : "text/x-fortran", | ||
".flv" : "video/x-flv", | ||
".for" : "text/x-fortran", | ||
".gem" : "application/octet-stream", | ||
".gemspec" : "text/x-script.ruby", | ||
".gif" : "image/gif", | ||
".gz" : "application/x-gzip", | ||
".h" : "text/x-c", | ||
".hh" : "text/x-c", | ||
".htm" : "text/html", | ||
".html" : "text/html", | ||
".ico" : "image/vnd.microsoft.icon", | ||
".ics" : "text/calendar", | ||
".ifb" : "text/calendar", | ||
".iso" : "application/octet-stream", | ||
".jar" : "application/java-archive", | ||
".java" : "text/x-java-source", | ||
".jnlp" : "application/x-java-jnlp-file", | ||
".jpeg" : "image/jpeg", | ||
".jpg" : "image/jpeg", | ||
".js" : "application/javascript", | ||
".json" : "application/json", | ||
".log" : "text/plain", | ||
".m3u" : "audio/x-mpegurl", | ||
".m4v" : "video/mp4", | ||
".man" : "text/troff", | ||
".mathml" : "application/mathml+xml", | ||
".mbox" : "application/mbox", | ||
".mdoc" : "text/troff", | ||
".me" : "text/troff", | ||
".mid" : "audio/midi", | ||
".midi" : "audio/midi", | ||
".mime" : "message/rfc822", | ||
".mml" : "application/mathml+xml", | ||
".mng" : "video/x-mng", | ||
".mov" : "video/quicktime", | ||
".mp3" : "audio/mpeg", | ||
".mp4" : "video/mp4", | ||
".mp4v" : "video/mp4", | ||
".mpeg" : "video/mpeg", | ||
".mpg" : "video/mpeg", | ||
".ms" : "text/troff", | ||
".msi" : "application/x-msdownload", | ||
".odp" : "application/vnd.oasis.opendocument.presentation", | ||
".ods" : "application/vnd.oasis.opendocument.spreadsheet", | ||
".odt" : "application/vnd.oasis.opendocument.text", | ||
".ogg" : "application/ogg", | ||
".p" : "text/x-pascal", | ||
".pas" : "text/x-pascal", | ||
".pbm" : "image/x-portable-bitmap", | ||
".pdf" : "application/pdf", | ||
".pem" : "application/x-x509-ca-cert", | ||
".pgm" : "image/x-portable-graymap", | ||
".pgp" : "application/pgp-encrypted", | ||
".pkg" : "application/octet-stream", | ||
".pl" : "text/x-script.perl", | ||
".pm" : "text/x-script.perl-module", | ||
".png" : "image/png", | ||
".pnm" : "image/x-portable-anymap", | ||
".ppm" : "image/x-portable-pixmap", | ||
".pps" : "application/vnd.ms-powerpoint", | ||
".ppt" : "application/vnd.ms-powerpoint", | ||
".ps" : "application/postscript", | ||
".psd" : "image/vnd.adobe.photoshop", | ||
".py" : "text/x-script.python", | ||
".qt" : "video/quicktime", | ||
".ra" : "audio/x-pn-realaudio", | ||
".rake" : "text/x-script.ruby", | ||
".ram" : "audio/x-pn-realaudio", | ||
".rar" : "application/x-rar-compressed", | ||
".rb" : "text/x-script.ruby", | ||
".rdf" : "application/rdf+xml", | ||
".roff" : "text/troff", | ||
".rpm" : "application/x-redhat-package-manager", | ||
".rss" : "application/rss+xml", | ||
".rtf" : "application/rtf", | ||
".ru" : "text/x-script.ruby", | ||
".s" : "text/x-asm", | ||
".sgm" : "text/sgml", | ||
".sgml" : "text/sgml", | ||
".sh" : "application/x-sh", | ||
".sig" : "application/pgp-signature", | ||
".snd" : "audio/basic", | ||
".so" : "application/octet-stream", | ||
".svg" : "image/svg+xml", | ||
".svgz" : "image/svg+xml", | ||
".swf" : "application/x-shockwave-flash", | ||
".t" : "text/troff", | ||
".tar" : "application/x-tar", | ||
".tbz" : "application/x-bzip-compressed-tar", | ||
".tcl" : "application/x-tcl", | ||
".tex" : "application/x-tex", | ||
".texi" : "application/x-texinfo", | ||
".texinfo" : "application/x-texinfo", | ||
".text" : "text/plain", | ||
".tif" : "image/tiff", | ||
".tiff" : "image/tiff", | ||
".torrent" : "application/x-bittorrent", | ||
".tr" : "text/troff", | ||
".txt" : "text/plain", | ||
".vcf" : "text/x-vcard", | ||
".vcs" : "text/x-vcalendar", | ||
".vrml" : "model/vrml", | ||
".war" : "application/java-archive", | ||
".wav" : "audio/x-wav", | ||
".wma" : "audio/x-ms-wma", | ||
".wmv" : "video/x-ms-wmv", | ||
".wmx" : "video/x-ms-wmx", | ||
".wrl" : "model/vrml", | ||
".wsdl" : "application/wsdl+xml", | ||
".xbm" : "image/x-xbitmap", | ||
".xhtml" : "application/xhtml+xml", | ||
".xls" : "application/vnd.ms-excel", | ||
".xml" : "application/xml", | ||
".xpm" : "image/x-xpixmap", | ||
".xsl" : "application/xml", | ||
".xslt" : "application/xslt+xml", | ||
".yaml" : "text/yaml", | ||
".yml" : "text/yaml", | ||
".zip" : "application/zip" | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
var when = require("promised-io/promise").when, | ||
fs = require("promised-io/fs"), | ||
forEachableToString = require("../media").forEachableToString; | ||
|
||
module.exports = function(nextApp) { | ||
return function(request) { | ||
if(request.method === "PUT") { | ||
return when(forEachableToString(request.body), function(body){ | ||
fs.writeFile(request.filePath, body); | ||
return { | ||
status: 200, | ||
headers: {}, | ||
body: ["successful"] | ||
} | ||
}); | ||
} | ||
return nextApp ? nextApp(request) : { | ||
status: 404, | ||
headers: {}, | ||
body: [] | ||
}; | ||
}; | ||
}; |
Oops, something went wrong.