Socket
Socket
Sign inDemoInstall

apidoc

Package Overview
Dependencies
Maintainers
1
Versions
96
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apidoc - npm Package Compare versions

Comparing version 0.3.0 to 0.4.0

test/fixtures/example/language.erl

10

CHANGELOG.md
# apiDoc Changelog
#### 0.4.0
Add support for other comment-style. Now apiDoc supports:
* Erlang
* JavaScript (DocStyle: e.g. also used C#, Go, Dart, Java, PHP)
* Python
* Ruby
Add some programming language test cases.
Remove german code comments.
Upgrade all used node modules.
#### 0.3.0

@@ -4,0 +14,0 @@ Replace deprecated node-markdown with [marked](https://github.com/chjj/marked).

20

Gruntfile.js

@@ -15,3 +15,3 @@ /*

/* --------------------------------------------------------------------------------
* Configuration.
* Configuration
* -------------------------------------------------------------------------------- */

@@ -21,9 +21,9 @@ grunt.initConfig({

// clear temporary dir.
clean: {
test: ["tmp"]
}, // clean
// Clear temporary dir
clean: {
test: ["tmp"]
}, // clean
jshint: {
all: ["Gruntfile.js", "lib/**/*.js", "test/**/*.js"],
all: ["Gruntfile.js", "lib/**/*.js", "test/**/*.js", "!test/fixtures/**"],
options: {

@@ -72,9 +72,9 @@ // Enforcing Options

all: { src: ["test/apidoc_test.js"] }
} // simplemocha
} // simplemocha
}); // grunt.initConfig
/* --------------------------------------------------------------------------------
* Modules.
* Modules
* -------------------------------------------------------------------------------- */
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-jshint");

@@ -84,3 +84,3 @@ grunt.loadNpmTasks("grunt-simple-mocha");

/* --------------------------------------------------------------------------------
* Tasks.
* Tasks
* -------------------------------------------------------------------------------- */

@@ -87,0 +87,0 @@ // Task: default

@@ -17,3 +17,3 @@ var _ = require("underscore");

excludeFilters: [],
includeFilters: [ ".*\\.js$" ],
includeFilters: [ ".*\\.(cs|dart|erl|go|java|js|php?|py|rb|ts)$" ],

@@ -47,3 +47,3 @@ src: path.join(__dirname, "../example/"),

//uncaughtException
// uncaughtException
process.on("uncaughtException", function(err) {

@@ -56,3 +56,3 @@ console.error((new Date()).toUTCString() + " uncaughtException:", err.message);

/**
* Output Debug-Messages.
* Output Debug-Messages
*

@@ -67,3 +67,3 @@ * @param {String} message

/**
* Output Log-Messages.
* Output Log-Messages
*

@@ -78,3 +78,3 @@ * @param {String} message

/**
* Output Error-Log-Messages.
* Output Error-Log-Messages
*

@@ -138,3 +138,3 @@ * @param {String} message

/**
* Read package.json Data and optianl descriptions.
* Read package.json Data and optianl descriptions
*/

@@ -194,3 +194,3 @@ function getPackageData()

/**
* Output parsed content to files.
* Output parsed content to files
*

@@ -276,3 +276,3 @@ * @param {Object[]} parsedFiles

/**
* Main.
* Main
*

@@ -349,3 +349,3 @@ * @return {Number} Count parsed files.

/**
* Exports.
* Exports
*/

@@ -355,2 +355,2 @@ module.exports = main;

// Direct call
if(path.dirname(process.argv[1]) === __dirname) main();
if(path.dirname(process.argv[1]) === __dirname) main();
var util = require("util");
var _ = require("underscore");
var semver = require("semver");

@@ -11,9 +9,9 @@ var app = {};

// Globale Variablen
// Global Variables
app = _app;
// Klassenvariablen
// Class Variables
this.filters = [];
// Process laden
// Load Filters
var filters = Object.keys(app.filters);

@@ -28,3 +26,3 @@ filters.forEach(function(filter) {

/**
* Vererben.
* Inherit
*/

@@ -34,3 +32,3 @@ util.inherits(Filter, Object);

/**
* Exports.
* Exports
*/

@@ -40,3 +38,3 @@ module.exports = Filter;

/**
* Filter hinzufügen.
* Add Filter
*/

@@ -49,3 +47,3 @@ Filter.prototype.addFilter = function(name, filter)

/**
* Ausführung.
* Execute filter
*/

@@ -71,2 +69,2 @@ Filter.prototype.process = function(parsedFiles, parsedFilenames)

} // for
}; // process
}; // process
var fs = require("fs");
var path = require("path");
var util = require("util");
var _ = require("underscore");
var semver = require("semver");

@@ -12,6 +12,6 @@ var app = {};

// Globale Variablen
// Global Variables
app = _app;
// Klassenvariablen
// Class Variables
self.parsers = {};

@@ -31,3 +31,3 @@ self.parsedFileElements = [];

/**
* Vererben.
* Inherit
*/

@@ -37,3 +37,3 @@ util.inherits(Parser, Object);

/**
* Exports.
* Exports
*/

@@ -43,3 +43,3 @@ module.exports = Parser;

/**
* Parser hinzufügen.
* Add a Parser
*/

@@ -52,3 +52,3 @@ Parser.prototype.addParser = function(name, parser)

/**
* Ausführung.
* Execute Fileparsing
*/

@@ -62,6 +62,7 @@ Parser.prototype.parseFile = function(filename)

self.filename = filename;
self.extension = path.extname(filename).toLowerCase();
self.src = fs.readFileSync(filename, "utf8").toString();
app.debug("size: " + self.src.length);
// Zeilenumbrüche vereinheitlichen
// Unify Linebreaks
self.src = self.src.replace(/\r\n/g, "\n");

@@ -73,3 +74,3 @@

// Blöcke ermitteln
// Determine Blocks
self.blocks = self._findBlocks();

@@ -79,3 +80,3 @@ if(self.blocks.length === 0) return;

// Elemente der Blöcke ermitteln
// Determine Elements of Blocks
for(var i = 0; i < self.blocks.length; i += 1)

@@ -89,3 +90,3 @@ {

// Liste der Blöcke mit API-Elementen ermitteln
// Determine List of Blocks with API-Elements
self.indexApiBlocks = self._findBlockWithApiGetIndex(self.elements);

@@ -98,3 +99,3 @@ if(self.indexApiBlocks.length === 0) return;

/**
* API Elemente durch Plugins parsen
* Parse API Elements with Plugins
*

@@ -124,3 +125,3 @@ * @param indexApiBlocks

{
// Feldwerte ermitteln
// Determine Fieldvalues
var result = null;

@@ -159,3 +160,3 @@ try {

{
// Feldwerte werden zu einem Unterpfad hinzugefügt
// Fieldvalues will be inserted into subpath
var pushTo = self.parsers[element.name].pushTo();

@@ -192,3 +193,3 @@

{
// Pfad wird angelegt
// Create path
self._createObjectPath(blockData, pushTo);

@@ -198,3 +199,4 @@ }

var blockDataPath = _pathToObject(pushTo, blockData);
// Feldwerte in Pfad-Array einfügen
// Insert Fieldvalues in Path-Array
if(typeof(blockData[pushTo]) === "object")

@@ -209,6 +211,5 @@ {

// Zusätzlich in Root einfügen
if(self.parsers[element.name].extendRoot === true)
{
// Feldwerte in Hauptpfad einfügen
// Insert Fieldvalues in Mainpath
_.extend(blockData, result);

@@ -219,3 +220,3 @@ }

{
// Feldwerte in Hauptpfad einfügen
// Insert Fieldvalues in Mainpath
_.extend(blockData, result);

@@ -276,3 +277,3 @@ }

/**
* Blöcke ermitteln.
* Determine Blocks
*/

@@ -284,12 +285,37 @@ Parser.prototype._findBlocks = function()

var src = self.src;
var inlineRegExp;
var docBlocksRegExp;
// Zeilenumbrüche durch Unicode ersetzen
// Replace Linebreak with Unicode
src = src.replace(/\n/g, "\uffff");
// Entfernt in den gefundenen Blöcken die überflüssigen " * " und " " am Anfang.
//var starsRegExp = /^\s?(\*|\s)?\s?/gm;
var starsRegExp = /^(\s+)?(\*|\s)[ ]?/gm;
// Blocksearch depending on file-extension
switch(self.extension)
{
case ".erl":
// Find document blocks between "%{" and "%}"
docBlocksRegExp = /\%\{\uffff(.+?)\%\}/g;
// Remove not needed " % " and " " (tabs) at the beginning
// HINT: Not sure if erlang developer use the %, but i think it should be no problem
inlineRegExp = /^(\t+)?(\%)[ ]?/gm;
break;
case ".py":
// Find document blocks between """ and """
docBlocksRegExp = /\"\"\"\uffff(.+?)\"\"\"/g;
// Remove not needed " " (tabs) at the beginning
inlineRegExp = /^(\t+)?[ ]?/gm;
break;
case ".rb":
// Find document blocks between "=begin" and "=end"
docBlocksRegExp = /\=begin\uffff(.+?)\=end/g;
// Remove not needed " " (tabs) at the beginning
inlineRegExp = /^(\t+)?[ ]?/gm;
break;
default:
// Find document blocks between "/**" and "*/"
docBlocksRegExp = /\/\*\*\uffff(.+?)\*\//g;
// Remove not needed " * " and " " (tabs) at the beginning
inlineRegExp = /^(\s+)?(\*)[ ]?/gm;
} // switch
// Findet die Dokumentblöcke zwischen "/**" und "*/"
var docBlocksRegExp = /\/\*\*\uffff(.+?)\*\//g;
var matches = docBlocksRegExp.exec(src);

@@ -300,10 +326,10 @@ while(matches)

// Unicode Zeilenumbrüche zurückwandeln
// Reverse Unicode Linebreaks
block = block.replace(/\uffff/g, "\n");
block = block.replace(starsRegExp, "");
block = block.replace(inlineRegExp, "");
blocks.push(block);
// Nächsten Eintrag finden
// Find next
matches = docBlocksRegExp.exec(src);

@@ -315,3 +341,3 @@ } // while

/**
* Prüfen ob es API-Elemente sind und liefert den Block-Index zurück.
* Check if block has API elements and return block indexes.
*/

@@ -378,2 +404,2 @@ Parser.prototype._findBlockWithApiGetIndex = function(elements)

return elements;
}; // _findElements
}; // _findElements

@@ -54,3 +54,3 @@ var fs = require("fs");

files = files.filter(function(filename) {
// Apply every filter
// Apply every filter
for(var i = 0; i < length; i += 1)

@@ -78,4 +78,4 @@ {

/**
* Exports.
* Exports
*/
module.exports = findFiles;
module.exports = findFiles;
var util = require("util");
var _ = require("underscore");
var semver = require("semver");

@@ -11,9 +10,9 @@ var app = {};

// Globale Variablen
// Global Variables
app = _app;
// Klassenvariablen
// Class Variables
this.workers = [];
// Process laden
// Load Worker
var workers = Object.keys(app.workers);

@@ -28,3 +27,3 @@ workers.forEach(function(worker) {

/**
* Vererben.
* Inherit
*/

@@ -34,3 +33,3 @@ util.inherits(Worker, Object);

/**
* Exports.
* Exports
*/

@@ -40,3 +39,3 @@ module.exports = Worker;

/**
* Worker hinzufügen.
* Add Worker
*/

@@ -49,3 +48,3 @@ Worker.prototype.addWorker = function(name, worker)

/**
* Ausführung.
* Execute worker
*/

@@ -84,2 +83,2 @@ Worker.prototype.process = function(parsedFiles, parsedFilenames)

} // for
}; // process
}; // process
{
"name": "apidoc",
"version": "0.3.0",
"version": "0.4.0",
"description": "RESTful web API Documentation Generator",

@@ -25,9 +25,9 @@ "author": "Peter Rottmann <rottmann@inveris.de>",

"dependencies": {
"wrench": "~1.5.4",
"underscore": "~1.5.2",
"wrench": "~1.5.8",
"underscore": "~1.6.0",
"semver": "~2.2.1",
"lodash": "~2.4.1",
"optimist": "~0.6.0",
"optimist": "~0.6.1",
"colors": "~0.6.2",
"marked": "~0.2.10"
"marked": "~0.3.1"
},

@@ -37,6 +37,6 @@ "devDependencies": {

"grunt-contrib-clean": "~0.5.0",
"grunt-contrib-jshint": "~0.7.2",
"grunt-contrib-jshint": "~0.8.0",
"grunt-simple-mocha": "~0.4.0",
"should": "~2.1.1"
"should": "~3.1.3"
}
}

@@ -1,15 +0,60 @@

# apiDoc
# apiDoc 0.4.0
## About
Generates a RESTful web API Documentation.
Docs and examples at [apidocjs.com](http://apidocjs.com).
Documentation at [apidocjs.com](http://apidocjs.com).
[Example](http://apidocjs.com/example/) output.
## Supported programming languages
* **C#, Go, Dart, Java, JavaScript, PHP** (all DocStyle capable languages like ):
```javascript
/**
* This is a comment.
*/
```
* **Erlang**:
```erlang
%{
This is a comment.
%}
```
* **Python**
```python
"""
This is a comment.
"""
```
* **Ruby**
```ruby
=begin
This is a comment.
=end
```
## Installation
`npm install apidoc -g`
## Example
`apidoc -i example/ -o doc/`
Creates from input files a documentation in path `doc/`.
## Grunt Module
[grund-apidoc](https://github.com/apidoc/grunt-apidoc) `npm install grunt-apidoc`.
## Changelog

@@ -19,5 +64,7 @@

## License
Copyright (c) 2013 inveris OHG
Author Peter Rottmann <rottmann@inveris.de>
Licensed under the MIT license.
Licensed under the MIT license.

@@ -179,2 +179,162 @@ define({ api: [

"type": "get",
"url": "/language/erlang",
"title": "Erlang",
"name": "GetLanguageErlang",
"group": "Language",
"version": "0.4.0",
"description": "Test for Erlang Comment-Syntax.",
"filename": "test/fixtures/example/language.erl"
},
{
"type": "get",
"url": "/language/erlang/indented1",
"title": "Erlang indented 1",
"name": "GetLanguageErlangIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n\t Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.erl"
},
{
"type": "get",
"url": "/language/erlang/indented2",
"title": "Erlang indented 2",
"name": "GetLanguageErlangIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.erl"
},
{
"type": "get",
"url": "/language/javascript",
"title": "JavaScript",
"name": "GetLanguageJavaScript",
"group": "Language",
"version": "0.4.0",
"description": "Test for JavaScript Comment-Syntax.",
"filename": "test/fixtures/example/language.js"
},
{
"type": "get",
"url": "/language/javascript/indented1",
"title": "JavaScript indented 1",
"name": "GetLanguageJavaScriptIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.js"
},
{
"type": "get",
"url": "/language/javascript/indented2",
"title": "JavaScript indented 2",
"name": "GetLanguageJavaScriptIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.js"
},
{
"type": "get",
"url": "/language/python",
"title": "Python",
"name": "GetLanguagePython",
"group": "Language",
"version": "0.4.0",
"description": "Test for Python Comment-Syntax.",
"filename": "test/fixtures/example/language.py"
},
{
"type": "get",
"url": "/language/python/indented1",
"title": "Python indented 1",
"name": "GetLanguagePythonIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.py"
},
{
"type": "get",
"url": "/language/python/indented2",
"title": "Python indented 2",
"name": "GetLanguagePythonIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.py"
},
{
"type": "get",
"url": "/language/ruby",
"title": "Ruby",
"name": "GetLanguageRuby",
"group": "Language",
"version": "0.4.0",
"description": "Test for Ruby Comment-Syntax.",
"filename": "test/fixtures/example/language.rb"
},
{
"type": "get",
"url": "/language/ruby/indented1",
"title": "Ruby indented 1",
"name": "GetLanguageRubyIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.rb"
},
{
"type": "get",
"url": "/language/ruby/indented2",
"title": "Ruby indented 2",
"name": "GetLanguageRubyIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.rb"
},
{
"type": "get",
"url": "/param/:id",

@@ -553,5 +713,5 @@ "title": "Parameters",

"group": "Parameter",
"field": "field1",
"field": "field2",
"optional": false,
"description": "This is Field 1."
"description": "This is Field 2."
}

@@ -573,5 +733,5 @@ ]

"group": "Parameter",
"field": "field2",
"field": "field1",
"optional": false,
"description": "This is Field 2."
"description": "This is Field 1."
}

@@ -578,0 +738,0 @@ ]

@@ -179,2 +179,162 @@ [

"type": "get",
"url": "/language/erlang",
"title": "Erlang",
"name": "GetLanguageErlang",
"group": "Language",
"version": "0.4.0",
"description": "Test for Erlang Comment-Syntax.",
"filename": "test/fixtures/example/language.erl"
},
{
"type": "get",
"url": "/language/erlang/indented1",
"title": "Erlang indented 1",
"name": "GetLanguageErlangIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n\t Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.erl"
},
{
"type": "get",
"url": "/language/erlang/indented2",
"title": "Erlang indented 2",
"name": "GetLanguageErlangIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.erl"
},
{
"type": "get",
"url": "/language/javascript",
"title": "JavaScript",
"name": "GetLanguageJavaScript",
"group": "Language",
"version": "0.4.0",
"description": "Test for JavaScript Comment-Syntax.",
"filename": "test/fixtures/example/language.js"
},
{
"type": "get",
"url": "/language/javascript/indented1",
"title": "JavaScript indented 1",
"name": "GetLanguageJavaScriptIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.js"
},
{
"type": "get",
"url": "/language/javascript/indented2",
"title": "JavaScript indented 2",
"name": "GetLanguageJavaScriptIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.js"
},
{
"type": "get",
"url": "/language/python",
"title": "Python",
"name": "GetLanguagePython",
"group": "Language",
"version": "0.4.0",
"description": "Test for Python Comment-Syntax.",
"filename": "test/fixtures/example/language.py"
},
{
"type": "get",
"url": "/language/python/indented1",
"title": "Python indented 1",
"name": "GetLanguagePythonIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.py"
},
{
"type": "get",
"url": "/language/python/indented2",
"title": "Python indented 2",
"name": "GetLanguagePythonIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.py"
},
{
"type": "get",
"url": "/language/ruby",
"title": "Ruby",
"name": "GetLanguageRuby",
"group": "Language",
"version": "0.4.0",
"description": "Test for Ruby Comment-Syntax.",
"filename": "test/fixtures/example/language.rb"
},
{
"type": "get",
"url": "/language/ruby/indented1",
"title": "Ruby indented 1",
"name": "GetLanguageRubyIndented1",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.rb"
},
{
"type": "get",
"url": "/language/ruby/indented2",
"title": "Ruby indented 2",
"name": "GetLanguageRubyIndented2",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.rb"
},
{
"type": "get",
"url": "/param/:id",

@@ -553,5 +713,5 @@ "title": "Parameters",

"group": "Parameter",
"field": "field1",
"field": "field2",
"optional": false,
"description": "This is Field 1."
"description": "This is Field 2."
}

@@ -573,5 +733,5 @@ ]

"group": "Parameter",
"field": "field2",
"field": "field1",
"optional": false,
"description": "This is Field 2."
"description": "This is Field 1."
}

@@ -578,0 +738,0 @@ ]

define({
"name": "apidoc",
"version": "0.3.0",
"version": "0.4.0",
"description": "RESTful web API Documentation Generator",
"apidoc": "",
"generator": {
"version": "0.3.0",
"time": "2013-12-23T15:00:00.000Z"
"version": "0.4.0",
"time": "2014-03-04T16:24:51.514Z"
}
});
{
"name": "apidoc",
"version": "0.3.0",
"version": "0.4.0",
"description": "RESTful web API Documentation Generator",
"apidoc": "",
"generator": {
"version": "0.3.0",
"time": "2013-12-23T15:00:00.000Z"
"version": "0.4.0",
"time": "2014-03-04T16:24:51.514Z"
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc