├── .gitignore
├── ArtWork
├── Converted
│ ├── AppIcon.png
│ └── AppIcon32x32.png
└── Original
│ └── AppIcon.svg
├── AssemblyInfoGlobal.cs
├── CHANGELOG.md
├── GithubHistory
├── HISTORY.md
├── HISTORY.md.js
└── node_modules
│ ├── async
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── component.json
│ ├── lib
│ │ └── async.js
│ └── package.json
│ ├── github
│ ├── .npmignore
│ ├── LICENSE
│ ├── README.md
│ ├── api
│ │ ├── v2.0.0
│ │ │ └── routes.json
│ │ └── v3.0.0
│ │ │ ├── authorization.js
│ │ │ ├── authorizationTest.js
│ │ │ ├── events.js
│ │ │ ├── eventsTest.js
│ │ │ ├── gists.js
│ │ │ ├── gistsTest.js
│ │ │ ├── gitdata.js
│ │ │ ├── gitdataTest.js
│ │ │ ├── gitignore.js
│ │ │ ├── gitignoreTest.js
│ │ │ ├── index.js
│ │ │ ├── issues.js
│ │ │ ├── issuesTest.js
│ │ │ ├── markdown.js
│ │ │ ├── markdownTest.js
│ │ │ ├── misc.js
│ │ │ ├── miscTest.js
│ │ │ ├── orgs.js
│ │ │ ├── orgsTest.js
│ │ │ ├── pullRequests.js
│ │ │ ├── pullRequestsTest.js
│ │ │ ├── releases.js
│ │ │ ├── releasesTest.js
│ │ │ ├── repos.js
│ │ │ ├── reposTest.js
│ │ │ ├── routes.json
│ │ │ ├── search.js
│ │ │ ├── searchTest.js
│ │ │ ├── statuses.js
│ │ │ ├── statusesTest.js
│ │ │ ├── user.js
│ │ │ └── userTest.js
│ ├── error.js
│ ├── generate.js
│ ├── index.js
│ ├── package.json
│ ├── seed.yml
│ ├── templates
│ │ ├── after_request.js.tpl
│ │ ├── handler.js.tpl
│ │ ├── index.js.tpl
│ │ ├── section.js.tpl
│ │ ├── test_handler.js.tpl
│ │ └── test_section.js.tpl
│ ├── test
│ │ ├── client_test.js
│ │ ├── example.js
│ │ ├── oauth.js
│ │ └── oauth_server.js
│ └── util.js
│ └── underscore
│ ├── LICENSE
│ ├── README.md
│ ├── package.json
│ ├── underscore-min.js
│ └── underscore.js
├── License.rtf
├── MSMQCommander.sln
├── MSMQCommander
├── App.xaml
├── App.xaml.cs
├── AppBootstrapper.cs
├── Contex
│ ├── CurrentSelectedQueueContext.cs
│ └── QueueConnectionContext.cs
├── Dialogs
│ └── DialogService.cs
├── Events
│ ├── AutoRefreshEvent.cs
│ ├── MessageDeletedEvent.cs
│ ├── MessageSelectedEvent.cs
│ ├── QueueClosedEvent.cs
│ ├── QueueConnectionChangedEvent.cs
│ ├── QueueDeletedEvent.cs
│ ├── QueueMessageCountChangedEvent.cs
│ ├── QueueSelectedEvent.cs
│ └── RefreshQueuesEvent.cs
├── IShell.cs
├── Images
│ └── AppIcon.ico
├── MSMQCommander.csproj
├── MSMQCommander_TemporaryKey.pfx
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── ShellView.xaml
├── ShellViewModel.cs
├── Utils
│ ├── ConsoleLogger.cs
│ ├── MessageQueueExtensions.cs
│ ├── VersionInformation.cs
│ └── ViewContentsFormattingExtensions.cs
├── ViewModels
│ ├── DetailsView
│ │ ├── DetailsViewModel.cs
│ │ ├── MessageDetailsViewModel.cs
│ │ ├── MessageGridRowViewModel.cs
│ │ └── MessagesGridViewModel.cs
│ ├── Dialogs
│ │ ├── ConfigureConnectionViewModel.cs
│ │ ├── CreateNewMessageViewModel.cs
│ │ ├── CreateNewQueueViewModel.cs
│ │ ├── ExportAllMessagesToQueueViewModel.cs
│ │ └── ImportMessageBodyViewModel.cs
│ └── TreeView
│ │ ├── ComputerTreeNodeViewModel.cs
│ │ ├── JournalQueueTreeNodeViewModel.cs
│ │ ├── QueueTreeNodeViewModel.cs
│ │ ├── QueueTypeTreeNodeViewModel.cs
│ │ └── TreeViewModel.cs
├── Views
│ ├── DetailsView.xaml
│ ├── DetailsView.xaml.cs
│ ├── Dialogs
│ │ ├── ConfigureConnectionView.xaml
│ │ ├── ConfigureConnectionView.xaml.cs
│ │ ├── CreateNewMessageView.xaml
│ │ ├── CreateNewMessageView.xaml.cs
│ │ ├── CreateNewQueueView.xaml
│ │ ├── CreateNewQueueView.xaml.cs
│ │ ├── ExportAllMessagesToQueueView.xaml
│ │ ├── ExportAllMessagesToQueueView.xaml.cs
│ │ ├── ImportMessageBodyView.xaml
│ │ └── ImportMessageBodyView.xaml.cs
│ ├── MessageDetailsView.xaml
│ ├── MessageDetailsView.xaml.cs
│ ├── MessagesGridView.xaml
│ ├── MessagesGridView.xaml.cs
│ ├── TreeView.xaml
│ └── TreeView.xaml.cs
└── packages.config
├── MSMQCommanderSetup
└── MSMQCommanderSetup.vdproj
├── MSMQWixInstaller
├── CreateMsi.cmd
├── CreateWxsFromProject.cmd
├── MSMQCommander.wixobj
├── MSMQCommander.wixpdb
├── MSMQCommander.wxs
└── WixUIExtension.dll
├── MsmqLib.Tests
├── ArrangeActAssertTestBase.cs
├── MessageObjectTestClasses
│ └── TestClass1.cs
├── MsmqLib.Tests.csproj
├── Properties
│ └── AssemblyInfo.cs
├── QueueServiceTests
│ ├── CreateMessageTests.cs
│ ├── DeleteMessageTests.cs
│ ├── GetJournalQueueTests.cs
│ ├── GetMessageCountTests.cs
│ ├── GetMessageInfosTests.cs
│ └── QueueStatusQueryServiceTests.cs
├── QueueTestHelper.cs
└── packages.config
├── MsmqLib
├── Guard.cs
├── Mapping
│ └── MessageMapping.cs
├── MessageExtensions.cs
├── MessageInfo.cs
├── MessageQueueTransactionWrapper.cs
├── MsmqLib.csproj
├── Properties
│ └── AssemblyInfo.cs
├── QueuePathHelper.cs
└── QueueService.cs
├── Packages.dgml
├── README.md
├── TODO.md
├── lib
├── AvalonDock.Themes.dll
└── AvalonDock.dll
└── packages
├── Autofac.2.6.3.862
├── Autofac.2.6.3.862.nupkg
└── lib
│ ├── NET35
│ ├── Autofac.Configuration.dll
│ ├── Autofac.dll
│ └── Autofac.xml
│ ├── NET40
│ ├── Autofac.Configuration.dll
│ ├── Autofac.dll
│ └── Autofac.xml
│ ├── SL3-WP
│ ├── Autofac.dll
│ └── Autofac.xml
│ ├── SL4-WindowsPhone
│ ├── Autofac.dll
│ └── Autofac.xml
│ ├── SL4-WindowsPhone71
│ ├── Autofac.dll
│ └── Autofac.xml
│ └── SL4
│ ├── Autofac.dll
│ └── Autofac.xml
├── Caliburn.Micro.1.3.1
├── Caliburn.Micro.1.3.1.nupkg
├── lib
│ ├── WinRT45
│ │ ├── Caliburn.Micro.Extensions.dll
│ │ ├── Caliburn.Micro.Extensions.pdb
│ │ ├── Caliburn.Micro.Extensions.xml
│ │ ├── Caliburn.Micro.dll
│ │ ├── Caliburn.Micro.pdb
│ │ └── Caliburn.Micro.xml
│ ├── net40
│ │ ├── Caliburn.Micro.dll
│ │ ├── Caliburn.Micro.pdb
│ │ ├── Caliburn.Micro.xml
│ │ ├── System.Windows.Interactivity.dll
│ │ └── System.Windows.Interactivity.xml
│ ├── sl4-windowsphone71
│ │ ├── Caliburn.Micro.Extensions.dll
│ │ ├── Caliburn.Micro.Extensions.pdb
│ │ ├── Caliburn.Micro.Extensions.xml
│ │ ├── Caliburn.Micro.dll
│ │ ├── Caliburn.Micro.pdb
│ │ ├── Caliburn.Micro.xml
│ │ ├── System.Windows.Interactivity.dll
│ │ ├── System.Windows.Interactivity.xml
│ │ ├── de
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ ├── en
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ ├── es
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ ├── fr
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ ├── it
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ ├── ja
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ ├── ko
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ ├── zh-Hans
│ │ │ └── System.Windows.Interactivity.resources.dll
│ │ └── zh-Hant
│ │ │ └── System.Windows.Interactivity.resources.dll
│ ├── sl4
│ │ ├── Caliburn.Micro.dll
│ │ ├── Caliburn.Micro.pdb
│ │ ├── Caliburn.Micro.xml
│ │ ├── System.Windows.Controls.dll
│ │ ├── System.Windows.Controls.xml
│ │ ├── System.Windows.Interactivity.dll
│ │ ├── System.Windows.Interactivity.xml
│ │ ├── ar
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── bg
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── ca
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── cs
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── da
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── de
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── el
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── es
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── et
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── eu
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── fi
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── fr
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── he
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── hr
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── hu
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── id
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── it
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── ja
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── ko
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── lt
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── lv
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── ms
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── nl
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── no
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── pl
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── pt-BR
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── pt
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── ro
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── ru
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── sk
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── sl
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── sr-Cyrl-CS
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── sr-Latn-CS
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── sv
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── th
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── tr
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── uk
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── vi
│ │ │ └── System.Windows.Controls.resources.dll
│ │ ├── zh-Hans
│ │ │ └── System.Windows.Controls.resources.dll
│ │ └── zh-Hant
│ │ │ └── System.Windows.Controls.resources.dll
│ └── sl5
│ │ ├── Caliburn.Micro.dll
│ │ ├── Caliburn.Micro.pdb
│ │ ├── Caliburn.Micro.xml
│ │ ├── System.Windows.Controls.dll
│ │ ├── System.Windows.Controls.xml
│ │ ├── System.Windows.Interactivity.dll
│ │ ├── System.Windows.Interactivity.xml
│ │ ├── ar
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── bg
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── ca
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── cs
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── da
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── de
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── el
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── es
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── et
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── eu
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── fi
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── fr
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── he
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── hr
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── hu
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── id
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── it
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── ja
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── ko
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── lt
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── lv
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── ms
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── nl
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── no
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── pl
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── pt-BR
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── pt
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── ro
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── ru
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── sk
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── sl
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── sr-Cyrl-CS
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── sr-Latn-CS
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── sv
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── th
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── tr
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── uk
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── vi
│ │ └── System.Windows.Controls.resources.dll
│ │ ├── zh-Hans
│ │ └── System.Windows.Controls.resources.dll
│ │ └── zh-Hant
│ │ └── System.Windows.Controls.resources.dll
└── tools
│ ├── install.ps1
│ ├── net40
│ ├── AppBootstrapper.cs
│ ├── IShell.cs
│ ├── ShellView.xaml
│ └── ShellViewModel.cs
│ ├── sl4-windowsphone71
│ ├── AppBootstrapper.cs
│ └── MainPageViewModel.cs
│ ├── sl4
│ ├── AppBootstrapper.cs
│ ├── IShell.cs
│ ├── ShellView.xaml
│ └── ShellViewModel.cs
│ └── sl5
│ ├── AppBootstrapper.cs
│ ├── IShell.cs
│ ├── ShellView.xaml
│ └── ShellViewModel.cs
├── NUnit.2.6.2
├── NUnit.2.6.2.nupkg
├── lib
│ ├── nunit.framework.dll
│ └── nunit.framework.xml
└── license.txt
└── repositories.config
/.gitignore:
--------------------------------------------------------------------------------
1 | obj
2 | bin
3 | _ReSharper.*
4 | *.csproj.user
5 | *.ReSharper.user
6 | *.resharper
7 | *.DotSettings.user
8 | *.suo
9 | *.cache
10 | *~
11 | *.swp
12 | *.msi
13 | /Build
14 | NDependOut
15 | TestResult
16 | *.exe
--------------------------------------------------------------------------------
/ArtWork/Converted/AppIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sverrehundeide/MSMQCommander/42a58dada3408c5598cae65547d2e7020f16e929/ArtWork/Converted/AppIcon.png
--------------------------------------------------------------------------------
/ArtWork/Converted/AppIcon32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sverrehundeide/MSMQCommander/42a58dada3408c5598cae65547d2e7020f16e929/ArtWork/Converted/AppIcon32x32.png
--------------------------------------------------------------------------------
/AssemblyInfoGlobal.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("Sverre Hundeide")]
11 | [assembly: AssemblyProduct("MSMQCommander")]
12 | [assembly: AssemblyCopyright("Copyright © Sverre Hundeide 2011")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | //In order to begin building localizable applications, set
22 | //CultureYouAreCodingWith in your .csproj file
23 | //inside a . For example, if you are using US english
24 | //in your source files, set the to en-US. Then uncomment
25 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
26 | //the line below to match the UICulture setting in the project file.
27 |
28 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
29 |
30 | // Version information for an assembly consists of the following four values:
31 | //
32 | // Major Version
33 | // Minor Version
34 | // Build Number
35 | // Revision
36 | //
37 | // You can specify all the values or you can default the Build and Revision Numbers
38 | // by using the '*' as shown below:
39 | // [assembly: AssemblyVersion("1.0.*")]
40 | [assembly: AssemblyVersion("0.6.*")]
41 | [assembly: AssemblyFileVersion("0.6.*")]
42 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | Changelog
2 | =========
3 |
4 | For next release
5 | ----------------
6 |
7 |
8 | 2012-11-03: Version 0.5 (Alpha release)
9 | ---------------------------------------
10 | * Support for creating new queues
11 | * Support for deleting queues
12 | * FIX: Handle situations where the user does not have access to a queue (queue name was set to empty value and exception was thrown)
13 |
14 | 2012-04-01: Version 0.4 (Alpha release)
15 | ---------------------------------------
16 | * Support for transactional queues
17 | * Use Delete key in grid view to delete one or more selected message(s)
18 | * Added accelerator keys for buttons and set default focused text box in dialogs
19 | * Made gridview panel resizable
20 | * Added button for auto refresh of messages in open queues and of message count and queue names in tree view
21 | * Switched to WIX installer (old installer no longer works in Visual Studio 11)
22 | * Changed installer to support upgrade of previously installed version
23 |
24 | 2011-12-18: Version 0.3 (Alpha release)
25 | ---------------------------------------
26 | * Insert new message to queue (body serialized as text/xml only)
27 | * Copying message to file
28 | * Importing message from file
29 | * Connect to remote queues
30 | * Context menu option for delete messages in grid view
31 |
32 | 2011-10-09: Version 0.2 (Alpha release)
33 | ---------------------------------------
34 | * View journal queue as child nodes in queue tree view
35 | * View Number of messages in queueu behind queue name in tree view
36 | * Switch journaling on/off
37 | * Purge messages in queue
38 |
39 | 2011-09-25: Version 0.1 (Alpha release)
40 | ---------------------------------------
41 | * View private queues on local computer
42 | * View messages in queues
43 | * View properties for a selected message
44 | * View message body (only text deserialization is supported for now)
--------------------------------------------------------------------------------
/GithubHistory/HISTORY.md:
--------------------------------------------------------------------------------
1 |
2 | ### v0.6
3 |
4 | [#14](https://github.com/sverrehundeide/MSMQCommander/issues/14) Fix exception while deleting message from transactional queue [Bug]
5 | [#13](https://github.com/sverrehundeide/MSMQCommander/issues/13) Show extension data for message in the message details view [Feature]
6 | [#12](https://github.com/sverrehundeide/MSMQCommander/issues/12) Move messages from one queue to another [Feature]
7 | [#9](https://github.com/sverrehundeide/MSMQCommander/issues/9) Exception when purging journal queue [Bug]
8 | [#1](https://github.com/sverrehundeide/MSMQCommander/issues/1) Show extension data for message in the message details view [Feature]
9 |
--------------------------------------------------------------------------------
/GithubHistory/HISTORY.md.js:
--------------------------------------------------------------------------------
1 | /**
2 | Build HISTORY.md from your GitHub Tags and Milestones.
3 | Note: Tag and Milestone name/title MUST MATCH!
4 |
5 | **/
6 |
7 | var
8 | GitHubApi = require('github'),
9 | async = require('async'),
10 | fs = require('fs'),
11 | _ = require('underscore');
12 |
13 | var github = new GitHubApi({
14 | // required
15 | version: '3.0.0',
16 | // optional
17 | timeout: 5000
18 | });
19 |
20 | var REPO = 'MSMQCommander';
21 | var USER = 'sverrehundeide';
22 |
23 | /*
24 | --optional
25 | github.authenticate({
26 | type: 'oauth',
27 | token: 'yourtoken'
28 | });
29 | */
30 |
31 | var MDContent = '';
32 | var calls = [];
33 | github.repos.getTags({user: USER, repo: REPO}, function (err, tags) {
34 | if (err)
35 | throw err;
36 |
37 | github.issues.getAllMilestones({user: USER, repo: REPO, state: 'closed'}, function (err, milestones) {
38 | if (err)
39 | throw err;
40 | tags.forEach(function (tag) {
41 | var milestone = _.find(milestones, function (m) {
42 | return m.title === tag.name;
43 | });
44 | if (milestone) {
45 | var call = function (callback) {
46 | github.issues.repoIssues({user: USER, repo: REPO, state: 'closed', milestone: milestone.number}, function (err, issues) {
47 | if (err)
48 | throw err;
49 | if (issues.length == 0)
50 | return callback(null);
51 |
52 | MDContent += '\r\n### ' + issues[0].milestone.title + '\r\n\r\n';
53 | issues = _.sortBy(issues, function (issue) {
54 | return issue.closed_at;
55 | });
56 | issues.reverse();
57 | issues.forEach(function (issue) {
58 | var labels = '';
59 | if (issue.html_url.indexOf('/pull/') === -1) {
60 | if (issue.labels.length > 0) {
61 | issue.labels.forEach(function (lbl) {
62 | labels += lbl.name + ', ';
63 | });
64 | }
65 | if (labels) {
66 | labels = labels.substring(0, labels.length - 2);
67 | MDContent += '[#' + issue.number + '](' + issue.html_url + ') ' + issue.title + ' [' + labels + '] \r\n';
68 | }
69 | else
70 | MDContent += '[#' + issue.number + '](' + issue.html_url + ') ' + issue.title + ' \r\n';
71 | }
72 | });
73 | return callback(null);
74 | });
75 | };
76 | calls.push(call);
77 | }
78 | });
79 | async.series(calls, function (err) {
80 | console.log(MDContent);
81 | fs.writeFileSync('./HISTORY.md', MDContent);
82 | });
83 | });
84 | });
85 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/async/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.10"
4 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/async/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010-2014 Caolan McMahon
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/async/component.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "async",
3 | "repo": "caolan/async",
4 | "description": "Higher-order functions and common patterns for asynchronous code",
5 | "version": "0.1.23",
6 | "keywords": [],
7 | "dependencies": {},
8 | "development": {},
9 | "main": "lib/async.js",
10 | "scripts": [ "lib/async.js" ]
11 | }
12 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/async/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "async",
3 | "description": "Higher-order functions and common patterns for asynchronous code",
4 | "main": "./lib/async",
5 | "author": {
6 | "name": "Caolan McMahon"
7 | },
8 | "version": "0.9.0",
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/caolan/async.git"
12 | },
13 | "bugs": {
14 | "url": "https://github.com/caolan/async/issues"
15 | },
16 | "licenses": [
17 | {
18 | "type": "MIT",
19 | "url": "https://github.com/caolan/async/raw/master/LICENSE"
20 | }
21 | ],
22 | "devDependencies": {
23 | "nodeunit": ">0.0.0",
24 | "uglify-js": "1.2.x",
25 | "nodelint": ">0.0.0"
26 | },
27 | "jam": {
28 | "main": "lib/async.js",
29 | "include": [
30 | "lib/async.js",
31 | "README.md",
32 | "LICENSE"
33 | ]
34 | },
35 | "scripts": {
36 | "test": "nodeunit test/test-async.js"
37 | },
38 | "homepage": "https://github.com/caolan/async",
39 | "_id": "async@0.9.0",
40 | "dist": {
41 | "shasum": "ac3613b1da9bed1b47510bb4651b8931e47146c7",
42 | "tarball": "http://registry.npmjs.org/async/-/async-0.9.0.tgz"
43 | },
44 | "_from": "async@",
45 | "_npmVersion": "1.4.3",
46 | "_npmUser": {
47 | "name": "caolan",
48 | "email": "caolan.mcmahon@gmail.com"
49 | },
50 | "maintainers": [
51 | {
52 | "name": "caolan",
53 | "email": "caolan@caolanmcmahon.com"
54 | }
55 | ],
56 | "directories": {},
57 | "_shasum": "ac3613b1da9bed1b47510bb4651b8931e47146c7",
58 | "_resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz",
59 | "readme": "ERROR: No README data found!"
60 | }
61 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/.npmignore:
--------------------------------------------------------------------------------
1 | .settings.xml
2 | .settings
3 | .c9revisions
4 | doc/
5 | node_modules/
6 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2012 Cloud9 IDE, Inc. (Mike de Boer)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v2.0.0/routes.json:
--------------------------------------------------------------------------------
1 | {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/gitignore.js:
--------------------------------------------------------------------------------
1 | /**
2 | * mixin gitignore
3 | *
4 | * Copyright 2012 Cloud9 IDE, Inc.
5 | *
6 | * This product includes software developed by
7 | * Cloud9 IDE, Inc (http://c9.io).
8 | *
9 | * Author: Mike de Boer
10 | **/
11 |
12 | "use strict";
13 |
14 | var error = require("./../../error");
15 | var Util = require("./../../util");
16 |
17 | var gitignore = module.exports = {
18 | gitignore: {}
19 | };
20 |
21 | (function() {
22 | /** section: github
23 | * gitignore#templates(msg, callback) -> null
24 | * - msg (Object): Object that contains the parameters and their values to be sent to the server.
25 | * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
26 | *
27 | * ##### Params on the `msg` object:
28 | *
29 | * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
30 | * No other params, simply pass an empty Object literal `{}`
31 | **/
32 | this.templates = function(msg, block, callback) {
33 | var self = this;
34 | this.client.httpSend(msg, block, function(err, res) {
35 | if (err)
36 | return self.sendError(err, null, msg, callback);
37 |
38 | var ret;
39 | try {
40 | ret = res.data && JSON.parse(res.data);
41 | }
42 | catch (ex) {
43 | if (callback)
44 | callback(new error.InternalServerError(ex.message), res);
45 | return;
46 | }
47 |
48 | if (!ret)
49 | ret = {};
50 | if (!ret.meta)
51 | ret.meta = {};
52 | ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
53 | if (res.headers[header])
54 | ret.meta[header] = res.headers[header];
55 | });
56 |
57 | if (callback)
58 | callback(null, ret);
59 | });
60 | };
61 |
62 | /** section: github
63 | * gitignore#template(msg, callback) -> null
64 | * - msg (Object): Object that contains the parameters and their values to be sent to the server.
65 | * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
66 | *
67 | * ##### Params on the `msg` object:
68 | *
69 | * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
70 | * - name (String): Required. The name of the .gitignore template to get
71 | **/
72 | this.template = function(msg, block, callback) {
73 | var self = this;
74 | this.client.httpSend(msg, block, function(err, res) {
75 | if (err)
76 | return self.sendError(err, null, msg, callback);
77 |
78 | var ret;
79 | try {
80 | ret = res.data && JSON.parse(res.data);
81 | }
82 | catch (ex) {
83 | if (callback)
84 | callback(new error.InternalServerError(ex.message), res);
85 | return;
86 | }
87 |
88 | if (!ret)
89 | ret = {};
90 | if (!ret.meta)
91 | ret.meta = {};
92 | ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
93 | if (res.headers[header])
94 | ret.meta[header] = res.headers[header];
95 | });
96 |
97 | if (callback)
98 | callback(null, ret);
99 | });
100 | };
101 |
102 | }).call(gitignore.gitignore);
103 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/gitignoreTest.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 Cloud9 IDE, Inc.
3 | *
4 | * This product includes software developed by
5 | * Cloud9 IDE, Inc (http://c9.io).
6 | *
7 | * Author: Mike de Boer
8 | */
9 |
10 | "use strict";
11 |
12 | var Assert = require("assert");
13 | var Client = require("./../../index");
14 |
15 | describe("[gitignore]", function() {
16 | var client;
17 |
18 | beforeEach(function() {
19 | client = new Client({
20 | version: "3.0.0"
21 | });
22 | });
23 |
24 | it("should successfully execute GET /gitignore/templates (templates)", function(next) {
25 | client.gitignore.templates(
26 | {},
27 | function(err, res) {
28 | Assert.equal(err, null);
29 | // other assertions go here
30 | Assert.ifError(err);
31 | Assert(Array.isArray(res));
32 | Assert(res.length > 10);
33 | next();
34 | }
35 | );
36 | });
37 |
38 | it("should successfully execute GET /gitignore/templates/:name (template)", function(next) {
39 | client.gitignore.template(
40 | {
41 | name: "C"
42 | },
43 | function(err, res) {
44 | Assert.equal(err, null);
45 | // other assertions go here
46 | Assert.ifError(err);
47 | Assert('name' in res);
48 | Assert('source' in res);
49 | Assert(typeof res.source === 'string');
50 | next();
51 | }
52 | );
53 | });
54 | });
55 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * class Github
3 | *
4 | * A Node.JS module, which provides an object oriented wrapper for the GitHub v3 API.
5 | *
6 | * Copyright 2012 Cloud9 IDE, Inc.
7 | *
8 | * This product includes software developed by
9 | * Cloud9 IDE, Inc (http://c9.io).
10 | *
11 | * Author: Mike de Boer
12 | **/
13 |
14 | "use strict";
15 |
16 | var Fs = require("fs");
17 | var Util = require("./../../util");
18 | var error = require("./../../error");
19 |
20 | var GithubHandler = module.exports = function(client) {
21 | this.client = client;
22 | this.routes = JSON.parse(Fs.readFileSync(__dirname + "/routes.json", "utf8"));
23 | };
24 |
25 | var proto = {
26 | sendError: function(err, block, msg, callback) {
27 | if (this.client.debug)
28 | Util.log(err, block, msg.user, "error");
29 | if (typeof err == "string")
30 | err = new error.InternalServerError(err);
31 | if (callback)
32 | callback(err);
33 | }
34 | };
35 |
36 | ["gists", "gitdata", "issues", "authorization", "orgs", "statuses", "pullRequests", "repos", "user", "events", "releases", "search", "markdown", "gitignore", "misc"].forEach(function(api) {
37 | Util.extend(proto, require("./" + api));
38 | });
39 |
40 | GithubHandler.prototype = proto;
41 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/markdown.js:
--------------------------------------------------------------------------------
1 | /**
2 | * mixin markdown
3 | *
4 | * Copyright 2012 Cloud9 IDE, Inc.
5 | *
6 | * This product includes software developed by
7 | * Cloud9 IDE, Inc (http://c9.io).
8 | *
9 | * Author: Mike de Boer
10 | **/
11 |
12 | "use strict";
13 |
14 | var error = require("./../../error");
15 | var Util = require("./../../util");
16 |
17 | var markdown = module.exports = {
18 | markdown: {}
19 | };
20 |
21 | (function() {
22 | /** section: github
23 | * markdown#render(msg, callback) -> null
24 | * - msg (Object): Object that contains the parameters and their values to be sent to the server.
25 | * - callback (Function): function to call when the request is finished with an error as first argument and result data as second argument.
26 | *
27 | * ##### Params on the `msg` object:
28 | *
29 | * - headers (Object): Optional. Key/ value pair of request headers to pass along with the HTTP request. Valid headers are: 'If-Modified-Since', 'If-None-Match', 'Cookie', 'User-Agent', 'Accept', 'X-GitHub-OTP'.
30 | * - text (String): Required. The Markdown text to render
31 | * - mode (String): Optional. The rendering mode, `markdown` to render a document as plain Markdown, just like README files are rendered. `gfm` to render a document as user-content, e.g. like user comments or issues are rendered. In GFM mode, hard line breaks are always taken into account, and issue and user mentions are linked accordingly. Validation rule: ` ^(markdown|gfm)$ `.
32 | * - context (String): Optional. The repository context, only taken into account when rendering as `gfm`
33 | **/
34 | this.render = function(msg, block, callback) {
35 | var self = this;
36 | this.client.httpSend(msg, block, function(err, res) {
37 | if (err)
38 | return self.sendError(err, null, msg, callback);
39 |
40 | var ret;
41 | try {
42 | ret = res.data && JSON.parse(res.data);
43 | }
44 | catch (ex) {
45 | if (callback)
46 | callback(new error.InternalServerError(ex.message), res);
47 | return;
48 | }
49 |
50 | if (!ret)
51 | ret = {};
52 | if (!ret.meta)
53 | ret.meta = {};
54 | ["x-ratelimit-limit", "x-ratelimit-remaining", "x-ratelimit-reset", "x-oauth-scopes", "link", "location", "last-modified", "etag", "status"].forEach(function(header) {
55 | if (res.headers[header])
56 | ret.meta[header] = res.headers[header];
57 | });
58 |
59 | if (callback)
60 | callback(null, ret);
61 | });
62 | };
63 |
64 | }).call(markdown.markdown);
65 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/markdownTest.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 Cloud9 IDE, Inc.
3 | *
4 | * This product includes software developed by
5 | * Cloud9 IDE, Inc (http://c9.io).
6 | *
7 | * Author: Mike de Boer
8 | */
9 |
10 | "use strict";
11 |
12 | var Assert = require("assert");
13 | var Client = require("./../../index");
14 |
15 | describe("[markdown]", function() {
16 | var client;
17 | var token = "c286e38330e15246a640c2cf32a45ea45d93b2ba";
18 |
19 | beforeEach(function() {
20 | client = new Client({
21 | version: "3.0.0"
22 | });
23 | /*client.authenticate({
24 | type: "oauth",
25 | token: token
26 | });*/
27 | });
28 |
29 | it("should successfully execute POST /markdown (render)", function(next) {
30 | client.markdown.render(
31 | {
32 | text: "Hello world github/linguist#1 **cool**, and #1!",
33 | mode: "gfm",
34 | context: "github/gollem"
35 | },
36 | function(err, res) {
37 | Assert.equal(err, null);
38 | console.log(res);
39 | next();
40 | }
41 | );
42 | });
43 | });
44 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/miscTest.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 Cloud9 IDE, Inc.
3 | *
4 | * This product includes software developed by
5 | * Cloud9 IDE, Inc (http://c9.io).
6 | *
7 | * Author: Mike de Boer
8 | */
9 |
10 | "use strict";
11 |
12 | var Assert = require("assert");
13 | var Client = require("./../../index");
14 |
15 | describe("[misc]", function() {
16 | var client;
17 |
18 | beforeEach(function() {
19 | client = new Client({
20 | version: "3.0.0"
21 | });
22 | });
23 |
24 | it("should successfully execute GET /emojis (emojis)", function(next) {
25 | client.misc.emojis(
26 | {},
27 | function(err, res) {
28 | Assert.equal(err, null);
29 | // other assertions go here
30 | Assert.ifError(err);
31 | // A common emoji on github
32 | Assert('shipit' in res);
33 | next();
34 | }
35 | );
36 | });
37 |
38 | it("should successfully execute GET /meta (meta)", function(next) {
39 | client.misc.meta(
40 | {},
41 | function(err, res) {
42 | Assert.equal(err, null);
43 | // other assertions go here
44 | Assert('hooks' in res);
45 | Assert('git' in res);
46 | next();
47 | }
48 | );
49 | });
50 |
51 | it("should successfully execute GET /rate_limit (rateLimit)", function(next) {
52 | client.misc.rateLimit(
53 | {},
54 | function(err, res) {
55 | Assert.equal(err, null);
56 | Assert('resources' in res);
57 | Assert('core' in res.resources);
58 | Assert(typeof res.resources.core.limit === 'number');
59 | Assert(typeof res.resources.core.remaining === 'number');
60 | Assert(typeof res.resources.core.reset === 'number');
61 | Assert('search' in res.resources);
62 | Assert(typeof res.resources.search.limit === 'number');
63 | Assert(typeof res.resources.search.remaining === 'number');
64 | Assert(typeof res.resources.search.reset === 'number');
65 | next();
66 | }
67 | );
68 | });
69 | });
70 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/searchTest.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 Cloud9 IDE, Inc.
3 | *
4 | * This product includes software developed by
5 | * Cloud9 IDE, Inc (http://c9.io).
6 | *
7 | * Author: Mike de Boer
8 | */
9 |
10 | "use strict";
11 |
12 | var Assert = require("assert");
13 | var Client = require("./../../index");
14 |
15 | describe("[search]", function() {
16 | var client;
17 | var token = "c286e38330e15246a640c2cf32a45ea45d93b2ba";
18 |
19 | beforeEach(function() {
20 | client = new Client({
21 | version: "3.0.0"
22 | });
23 | /*client.authenticate({
24 | type: "oauth",
25 | token: token
26 | });*/
27 | });
28 |
29 | it("should successfully execute GET /search/issues/:q (issues)", function(next) {
30 | client.search.issues(
31 | {
32 | q: ['macaroni', 'repo:mikedeboertest/node_chat', 'state:open'].join('+')
33 | },
34 | function(err, res) {
35 | Assert.equal(err, null);
36 | Assert.equal(res.items.length, 1);
37 | var issue = res.items[0];
38 | Assert.equal(issue.title, "My First Issue");
39 | Assert.equal(issue.state, "open");
40 |
41 | next();
42 | }
43 | );
44 | });
45 |
46 | it("should successfully execute GET /search/repositories/:q (repos)", function(next) {
47 | client.search.repos(
48 | {
49 | q: ['pasta', 'language:JavaScript'].join('+')
50 | },
51 | function(err, res) {
52 | Assert.equal(err, null);
53 | Assert.ok(res.items.length > 0);
54 | Assert.equal(res.items[0].language, "JavaScript");
55 |
56 | next();
57 | }
58 | );
59 | });
60 |
61 | it("should successfully execute GET /search/users/:q (users)", function(next) {
62 | client.search.users(
63 | {
64 | q: "mikedeboer"
65 | },
66 | function(err, res) {
67 | Assert.equal(err, null);
68 | Assert.equal(res.items.length, 2);
69 | var user = res.items[0];
70 | Assert.equal(user.login, "mikedeboer");
71 |
72 | client.search.users(
73 | {
74 | q: "location:Jyväskylä"
75 | },
76 | function(err, res) {
77 | Assert.equal(err, null);
78 | //XXX: this is likely to change often. I added this for
79 | // issue #159.
80 | Assert.equal(res.items.length, 30);
81 | var user = res.items[0];
82 | Assert.equal(user.login, "bebraw");
83 |
84 | next();
85 | }
86 | );
87 | }
88 | );
89 | });
90 |
91 | /*it("should successfully execute GET /search/user/email/:email (email)", function(next) {
92 | client.search.email(
93 | {
94 | email: "String"
95 | },
96 | function(err, res) {
97 | Assert.equal(err, null);
98 | // other assertions go here
99 | next();
100 | }
101 | );
102 | });*/
103 | });
104 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/api/v3.0.0/statusesTest.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 Cloud9 IDE, Inc.
3 | *
4 | * This product includes software developed by
5 | * Cloud9 IDE, Inc (http://c9.io).
6 | *
7 | * Author: Mike de Boer
8 | */
9 |
10 | "use strict";
11 |
12 | var Assert = require("assert");
13 | var Client = require("./../../index");
14 |
15 | describe("[statuses]", function() {
16 | var client;
17 | var token = "c286e38330e15246a640c2cf32a45ea45d93b2ba";
18 |
19 | beforeEach(function() {
20 | client = new Client({
21 | version: "3.0.0"
22 | });
23 | client.authenticate({
24 | type: "oauth",
25 | token: token
26 | });
27 | });
28 |
29 | it("should successfully execute GET /repos/:user/:repo/statuses/:sha (get)", function(next) {
30 | client.statuses.get(
31 | {
32 | user: "mikedeboer",
33 | repo: "node-github",
34 | sha: "30d607d8fd8002427b61273f25d442c233cbf631"
35 | },
36 | function(err, res) {
37 | Assert.equal(err, null);
38 | // other assertions go here
39 | next();
40 | }
41 | );
42 | });
43 |
44 | it("should successfully execute POST /repos/:user/:repo/statuses/:sha (create)", function(next) {
45 | client.statuses.create(
46 | {
47 | user: "String",
48 | repo: "String",
49 | sha: "String",
50 | state: "String",
51 | target_url: "String",
52 | description: "String"
53 | },
54 | function(err, res) {
55 | Assert.equal(err, null);
56 | // other assertions go here
57 | next();
58 | }
59 | );
60 | });
61 | });
62 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/error.js:
--------------------------------------------------------------------------------
1 | /** section: github
2 | * class HttpError
3 | *
4 | * Copyright 2012 Cloud9 IDE, Inc.
5 | *
6 | * This product includes software developed by
7 | * Cloud9 IDE, Inc (http://c9.io).
8 | *
9 | * Author: Mike de Boer
10 | **/
11 |
12 | var Util = require("util");
13 |
14 | exports.HttpError = function(message, code) {
15 | Error.call(this, message);
16 | //Error.captureStackTrace(this, arguments.callee);
17 | this.message = message;
18 | this.code = code;
19 | };
20 | Util.inherits(exports.HttpError, Error);
21 |
22 | (function() {
23 | /**
24 | * HttpError#toString() -> String
25 | *
26 | * Returns the stringified version of the error (i.e. the message).
27 | **/
28 | this.toString = function() {
29 | return this.message;
30 | };
31 |
32 | /**
33 | * HttpError#toJSON() -> Object
34 | *
35 | * Returns a JSON object representation of the error.
36 | **/
37 | this.toJSON = function() {
38 | return {
39 | code: this.code,
40 | status: this.defaultMessage,
41 | message: this.message
42 | };
43 | };
44 |
45 | }).call(exports.HttpError.prototype);
46 |
47 |
48 | var statusCodes = {
49 | 400: "Bad Request",
50 | 401: "Unauthorized",
51 | 402: "Payment Required",
52 | 403: "Forbidden",
53 | 404: "Not Found",
54 | 405: "Method Not Allowed",
55 | 406: "Not Acceptable",
56 | 407: "Proxy Authentication Required",
57 | 408: "Request Timeout",
58 | 409: "Conflict",
59 | 410: "Gone",
60 | 411: "Length Required",
61 | 412: "Precondition Failed",
62 | 413: "Request Entity Too Large",
63 | 414: "Request-URI Too Long",
64 | 415: "Unsupported Media Type",
65 | 416: "Requested Range Not Satisfiable",
66 | 417: "Expectation Failed",
67 | 420: "Enhance Your Calm",
68 | 422: "Unprocessable Entity",
69 | 423: "Locked",
70 | 424: "Failed Dependency",
71 | 425: "Unordered Collection",
72 | 426: "Upgrade Required",
73 | 428: "Precondition Required",
74 | 429: "Too Many Requests",
75 | 431: "Request Header Fields Too Large",
76 | 444: "No Response",
77 | 449: "Retry With",
78 | 499: "Client Closed Request",
79 | 500: "Internal Server Error",
80 | 501: "Not Implemented",
81 | 502: "Bad Gateway",
82 | 503: "Service Unavailable",
83 | 504: "Gateway Timeout",
84 | 505: "HTTP Version Not Supported",
85 | 506: "Variant Also Negotiates",
86 | 507: "Insufficient Storage",
87 | 508: "Loop Detected",
88 | 509: "Bandwidth Limit Exceeded",
89 | 510: "Not Extended",
90 | 511: "Network Authentication Required"
91 | };
92 |
93 | for (var status in statusCodes) {
94 | var defaultMsg = statusCodes[status];
95 |
96 | var error = (function(defaultMsg, status) {
97 | return function(msg) {
98 | this.defaultMessage = defaultMsg;
99 | exports.HttpError.call(this, msg || status + ": " + defaultMsg, status);
100 |
101 | if (status >= 500)
102 | Error.captureStackTrace(this, arguments.callee);
103 | };
104 | })(defaultMsg, status);
105 |
106 | Util.inherits(error, exports.HttpError);
107 |
108 | var className = toCamelCase(defaultMsg);
109 | exports[className] = error;
110 | exports[status] = error;
111 | }
112 |
113 | function toCamelCase(str) {
114 | return str.toLowerCase().replace(/(?:(^.)|(\s+.))/g, function(match) {
115 | return match.charAt(match.length-1).toUpperCase();
116 | });
117 | }
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "github",
3 | "version": "0.2.2",
4 | "description": "NodeJS wrapper for the GitHub API",
5 | "author": {
6 | "name": "Mike de Boer",
7 | "email": "info@mikedeboer.nl"
8 | },
9 | "contributors": [
10 | {
11 | "name": "Mike de Boer",
12 | "email": "info@mikedeboer.nl"
13 | },
14 | {
15 | "name": "Fabian Jakobs",
16 | "email": "fabian@c9.io"
17 | }
18 | ],
19 | "homepage": "http://github.com/mikedeboer/node-github",
20 | "repository": {
21 | "type": "git",
22 | "url": "http://github.com/mikedeboer/node-github.git"
23 | },
24 | "engine": {
25 | "node": ">=0.4.0"
26 | },
27 | "devDependencies": {
28 | "oauth": "~0.9.7",
29 | "optimist": "~0.6.0",
30 | "mocha": "~1.13.0"
31 | },
32 | "main": ".",
33 | "scripts": {
34 | "test": "node ./test/all.js"
35 | },
36 | "licenses": [
37 | {
38 | "type": "The MIT License",
39 | "url": "http://www.opensource.org/licenses/mit-license.php"
40 | }
41 | ],
42 | "gitHead": "5480e5c13c88a8c64b3f1bf16830ea30358c3352",
43 | "bugs": {
44 | "url": "https://github.com/mikedeboer/node-github/issues"
45 | },
46 | "_id": "github@0.2.2",
47 | "_shasum": "6b76cbba0364e07bd49e538adba814659e23b42a",
48 | "_from": "github@",
49 | "_npmVersion": "1.4.21",
50 | "_npmUser": {
51 | "name": "mikedeboer",
52 | "email": "info@mikedeboer.nl"
53 | },
54 | "maintainers": [
55 | {
56 | "name": "mikedeboer",
57 | "email": "info@mikedeboer.nl"
58 | }
59 | ],
60 | "dist": {
61 | "shasum": "6b76cbba0364e07bd49e538adba814659e23b42a",
62 | "tarball": "http://registry.npmjs.org/github/-/github-0.2.2.tgz"
63 | },
64 | "directories": {},
65 | "_resolved": "https://registry.npmjs.org/github/-/github-0.2.2.tgz"
66 | }
67 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/seed.yml:
--------------------------------------------------------------------------------
1 | ---
2 | name: node-github
3 | description: NodeJS wrapper for the GitHub API
4 | tags: git github web
5 | version: 0.2.2
6 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/templates/after_request.js.tpl:
--------------------------------------------------------------------------------
1 |
2 | if (!ret)
3 | ret = {};
4 | if (!ret.meta)
5 | ret.meta = {};
6 | [<%headers%>].forEach(function(header) {
7 | if (res.headers[header])
8 | ret.meta[header] = res.headers[header];
9 | });
10 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/templates/handler.js.tpl:
--------------------------------------------------------------------------------
1 | <%comment%>
2 | this.<%funcName%> = function(msg, block, callback) {
3 | var self = this;
4 | this.client.httpSend(msg, block, function(err, res) {
5 | if (err)
6 | return self.sendError(err, null, msg, callback);
7 |
8 | var ret;
9 | try {
10 | ret = res.data && JSON.parse(res.data);
11 | }
12 | catch (ex) {
13 | if (callback)
14 | callback(new error.InternalServerError(ex.message), res);
15 | return;
16 | }
17 | <%afterRequest%>
18 | if (callback)
19 | callback(null, ret);
20 | });
21 | };
22 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/templates/index.js.tpl:
--------------------------------------------------------------------------------
1 | /**
2 | * class <%name%>
3 | *
4 | * <%description%>
5 | *
6 | * Copyright 2012 Cloud9 IDE, Inc.
7 | *
8 | * This product includes software developed by
9 | * Cloud9 IDE, Inc (http://c9.io).
10 | *
11 | * Author: Mike de Boer
12 | **/
13 |
14 | "use strict";
15 |
16 | var Fs = require("fs");
17 | var Util = require("./../../util");
18 | var error = require("./../../error");
19 |
20 | var GithubHandler = module.exports = function(client) {
21 | this.client = client;
22 | this.routes = JSON.parse(Fs.readFileSync(__dirname + "/routes.json", "utf8"));
23 | };
24 |
25 | var proto = {
26 | sendError: function(err, block, msg, callback) {
27 | if (this.client.debug)
28 | Util.log(err, block, msg.user, "error");
29 | if (typeof err == "string")
30 | err = new error.InternalServerError(err);
31 | if (callback)
32 | callback(err);
33 | }
34 | };
35 |
36 | [<%scripts%>].forEach(function(api) {
37 | Util.extend(proto, require("./" + api));
38 | });
39 |
40 | GithubHandler.prototype = proto;
41 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/templates/section.js.tpl:
--------------------------------------------------------------------------------
1 | /**
2 | * mixin <%sectionName%>
3 | *
4 | * Copyright 2012 Cloud9 IDE, Inc.
5 | *
6 | * This product includes software developed by
7 | * Cloud9 IDE, Inc (http://c9.io).
8 | *
9 | * Author: Mike de Boer
10 | **/
11 |
12 | "use strict";
13 |
14 | var error = require("./../../error");
15 | var Util = require("./../../util");
16 |
17 | var <%sectionName%> = module.exports = {
18 | <%sectionName%>: {}
19 | };
20 |
21 | (function() {
22 | <%sectionBody%>
23 | }).call(<%sectionName%>.<%sectionName%>);
24 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/templates/test_handler.js.tpl:
--------------------------------------------------------------------------------
1 | it("should successfully execute <%name%>", function(next) {
2 | client.<%funcName%>(
3 | <%params%>,
4 | function(err, res) {
5 | Assert.equal(err, null);
6 | // other assertions go here
7 | next();
8 | }
9 | );
10 | });
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/templates/test_section.js.tpl:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 Cloud9 IDE, Inc.
3 | *
4 | * This product includes software developed by
5 | * Cloud9 IDE, Inc (http://c9.io).
6 | *
7 | * Author: Mike de Boer
8 | */
9 |
10 | "use strict";
11 |
12 | var Assert = require("assert");
13 | var Client = require("./../../index");
14 |
15 | describe("[<%sectionName%>]", function() {
16 | var client;
17 | var token = "c286e38330e15246a640c2cf32a45ea45d93b2ba";
18 |
19 | beforeEach(function() {
20 | client = new Client({
21 | version: "<%version%>"
22 | });
23 | client.authenticate({
24 | type: "oauth",
25 | token: token
26 | });
27 | });
28 |
29 | <%testBody%>
30 | });
31 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/test/client_test.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 Cloud9 IDE, Inc.
3 | *
4 | * This product includes software developed by
5 | * Cloud9 IDE, Inc (http://c9.io).
6 | *
7 | * Author: Mike de Boer
8 | */
9 |
10 | "use strict";
11 |
12 | var Assert = require("assert");
13 | var Client = require("./../index");
14 |
15 | describe("[client]", function() {
16 | var client;
17 | var token = "e5a4a27487c26e571892846366de023349321a73";
18 |
19 | beforeEach(function() {
20 | client = new Client({
21 | version: "3.0.0"
22 | });
23 | /*client.authenticate({
24 | type: "oauth",
25 | token: token
26 | });*/
27 | });
28 |
29 | it("should successfully execute GET /authorizations (getAll)", function(next) {
30 | // `aseemk` has two pages of followers right now.
31 | client.user.getFollowers(
32 | {
33 | user: "aseemk"
34 | },
35 | function(err, res) {
36 | Assert.equal(err, null);
37 |
38 | Assert.ok(!!client.hasNextPage(res));
39 | Assert.ok(!!client.hasLastPage(res));
40 | Assert.ok(!client.hasPreviousPage(res));
41 |
42 | client.getNextPage(res, function(err, res) {
43 | Assert.equal(err, null);
44 |
45 | Assert.ok(!!client.hasPreviousPage(res));
46 | Assert.ok(!!client.hasFirstPage(res));
47 | Assert.ok(!client.hasNextPage(res));
48 | Assert.ok(!client.hasLastPage(res));
49 |
50 | client.getPreviousPage(res.meta.link, function(err, res) {
51 | Assert.equal(err, null);
52 |
53 | Assert.ok(!!client.hasNextPage(res));
54 | Assert.ok(!!client.hasLastPage(res));
55 | Assert.ok(!client.hasPreviousPage(res));
56 | next();
57 | });
58 | });
59 | }
60 | );
61 | });
62 | });
63 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/test/example.js:
--------------------------------------------------------------------------------
1 | /** section: github, internal
2 | * Example
3 | *
4 | * Github API usage example.
5 | *
6 | * Copyright 2012 Cloud9 IDE, Inc.
7 | *
8 | * This product includes software developed by
9 | * Cloud9 IDE, Inc (http://c9.io).
10 | *
11 | * Author: Mike de Boer
12 | **/
13 |
14 | "use strict";
15 |
16 | var Client = require("./../index");
17 |
18 | var github = new Client({
19 | debug: true,
20 | version: "3.0.0"
21 | });
22 |
23 | github.authenticate({
24 | type: "basic",
25 | username: "mikedeboer",
26 | password: "mysecretpass"
27 | });
28 |
29 | github.user.get({}, function(err, res) {
30 | console.log("GOT ERR?", err);
31 | console.log("GOT RES?", res);
32 |
33 | github.repos.getAll({}, function(err, res) {
34 | console.log("GOT ERR?", err);
35 | console.log("GOT RES?", res);
36 | });
37 | });
38 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/test/oauth.js:
--------------------------------------------------------------------------------
1 | /** section: github, internal
2 | * OAuth
3 | *
4 | * OAuth usage example.
5 | *
6 | * Copyright 2012 Cloud9 IDE, Inc.
7 | *
8 | * This product includes software developed by
9 | * Cloud9 IDE, Inc (http://c9.io).
10 | *
11 | * Author: Mike de Boer
12 | **/
13 |
14 | var http = require("http");
15 | var Url = require("url");
16 | var querystring = require("querystring");
17 |
18 | var Client = require("../index");
19 | var OAuth2 = require("oauth").OAuth2;
20 |
21 | var github = new Client({
22 | version: "3.0.0"
23 | });
24 |
25 | var clientId = "e8c434a1c92e9de7ff8d";
26 | var secret = "1d0fcbb060e1dd86a0aa3d12265419c9bb19a333";
27 | var oauth = new OAuth2(clientId, secret, "https://github.com/", "login/oauth/authorize", "login/oauth/access_token");
28 |
29 | // for demo purposes use one global access token
30 | // in production this has to be stored in a user session
31 | var accessToken = "";
32 |
33 | http.createServer(function(req, res) {
34 | var url = Url.parse(req.url);
35 | var path = url.pathname;
36 | var query = querystring.parse(url.query);
37 |
38 | if (path == "/" || path.match(/^\/user\/?$/)) {
39 | // redirect to github if there is no access token
40 | if (!accessToken) {
41 | res.writeHead(303, {
42 | Location: oauth.getAuthorizeUrl({
43 | redirect_uri: 'http://localhost:7878/github-callback',
44 | scope: "user,repo,gist"
45 | })
46 | });
47 | res.end();
48 | return;
49 | }
50 |
51 | // use github API
52 | github.user.get({}, function(err, user) {
53 | if (err) {
54 | res.writeHead(err.code);
55 | res.end(err + "");
56 | return;
57 | }
58 | res.writeHead(200);
59 | res.end(JSON.stringify(user));
60 | });
61 | return;
62 | }
63 | // URL called by github after authenticating
64 | else if (path.match(/^\/github-callback\/?$/)) {
65 | // upgrade the code to an access token
66 | oauth.getOAuthAccessToken(query.code, {}, function (err, access_token, refresh_token) {
67 | if (err) {
68 | console.log(err);
69 | res.writeHead(500);
70 | res.end(err + "");
71 | return;
72 | }
73 |
74 | accessToken = access_token;
75 |
76 | // authenticate github API
77 | github.authenticate({
78 | type: "oauth",
79 | token: accessToken
80 | });
81 |
82 | //redirect back
83 | res.writeHead(303, {
84 | Location: "/"
85 | });
86 | res.end();
87 | });
88 | return;
89 | }
90 |
91 | res.writeHead(404);
92 | res.end("404 - Not found");
93 | }).listen(7878);
94 |
95 | console.log("listening at http://localhost:7878");
96 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/github/test/oauth_server.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var GitHubApi = require("./../index");
4 |
5 | var github = new GitHubApi({
6 | version: "3.0.0"
7 | });
8 |
9 | /*
10 | !!!UNCOMMENT THE FOLLOWING TO MAKE THIS SCRIPT WORK, BUT CHANGE THE CREDENTIALS TO YOUR OWN!!!
11 | github.authenticate({
12 | type: "basic",
13 | username: "mikedeboertest",
14 | password: "test1324"
15 | });
16 | */
17 |
18 | github.authorization.getAll({}, function(err, res) {
19 | if (err)
20 | throw err;
21 |
22 | var ids = res.map(function(app) { return app.id; });
23 |
24 | function next(id) {
25 | github.authorization["delete"]({
26 | id: id
27 | }, function(err, res) {
28 | if (err)
29 | throw err;
30 | if (ids.length)
31 | next(ids.shift());
32 | else
33 | allRemoved();
34 | });
35 | }
36 |
37 | next(ids.shift());
38 |
39 | function allRemoved() {
40 | github.authorization.create({
41 | scopes: ["user", "public_repo", "repo", "repo:status", "delete_repo", "gist"],
42 | note: "Authorization created to create unit tests",
43 | note_url: "https://github.com/ajaxorg/node-github"
44 | }, function(err, res) {
45 | if (err)
46 | throw err;
47 |
48 | // you can use the token within server-side apps.
49 | // use it by doing:
50 | // github.authenticate({
51 | // type: "oauth",
52 | // token: e5a4a27487c26e571892846366de023349321a73
53 | // });
54 | console.log("TOKEN:", res.token);
55 | console.log(res);
56 | });
57 | }
58 |
59 | });
--------------------------------------------------------------------------------
/GithubHistory/node_modules/underscore/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative
2 | Reporters & Editors
3 |
4 | Permission is hereby granted, free of charge, to any person
5 | obtaining a copy of this software and associated documentation
6 | files (the "Software"), to deal in the Software without
7 | restriction, including without limitation the rights to use,
8 | copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the
10 | Software is furnished to do so, subject to the following
11 | conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23 | OTHER DEALINGS IN THE SOFTWARE.
24 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/underscore/README.md:
--------------------------------------------------------------------------------
1 | __
2 | /\ \ __
3 | __ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____
4 | /\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\
5 | \ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\
6 | \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
7 | \/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/
8 | \ \____/
9 | \/___/
10 |
11 | Underscore.js is a utility-belt library for JavaScript that provides
12 | support for the usual functional suspects (each, map, reduce, filter...)
13 | without extending any core JavaScript objects.
14 |
15 | For Docs, License, Tests, and pre-packed downloads, see:
16 | http://underscorejs.org
17 |
18 | Underscore is an open-sourced component of DocumentCloud:
19 | https://github.com/documentcloud
20 |
21 | Many thanks to our contributors:
22 | https://github.com/jashkenas/underscore/contributors
23 |
--------------------------------------------------------------------------------
/GithubHistory/node_modules/underscore/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "underscore",
3 | "description": "JavaScript's functional programming helper library.",
4 | "homepage": "http://underscorejs.org",
5 | "keywords": [
6 | "util",
7 | "functional",
8 | "server",
9 | "client",
10 | "browser"
11 | ],
12 | "author": {
13 | "name": "Jeremy Ashkenas",
14 | "email": "jeremy@documentcloud.org"
15 | },
16 | "repository": {
17 | "type": "git",
18 | "url": "git://github.com/jashkenas/underscore.git"
19 | },
20 | "main": "underscore.js",
21 | "version": "1.7.0",
22 | "devDependencies": {
23 | "docco": "0.6.x",
24 | "phantomjs": "1.9.7-1",
25 | "uglify-js": "2.4.x",
26 | "eslint": "0.6.x"
27 | },
28 | "scripts": {
29 | "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true && eslint underscore.js test/*.js test/vendor/runner.js",
30 | "build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m --source-map underscore-min.map -o underscore-min.js",
31 | "doc": "docco underscore.js"
32 | },
33 | "licenses": [
34 | {
35 | "type": "MIT",
36 | "url": "https://raw.github.com/jashkenas/underscore/master/LICENSE"
37 | }
38 | ],
39 | "files": [
40 | "underscore.js",
41 | "underscore-min.js",
42 | "LICENSE"
43 | ],
44 | "gitHead": "da996e665deb0b69b257e80e3e257c04fde4191c",
45 | "bugs": {
46 | "url": "https://github.com/jashkenas/underscore/issues"
47 | },
48 | "_id": "underscore@1.7.0",
49 | "_shasum": "6bbaf0877500d36be34ecaa584e0db9fef035209",
50 | "_from": "underscore@",
51 | "_npmVersion": "1.4.24",
52 | "_npmUser": {
53 | "name": "jashkenas",
54 | "email": "jashkenas@gmail.com"
55 | },
56 | "maintainers": [
57 | {
58 | "name": "jashkenas",
59 | "email": "jashkenas@gmail.com"
60 | }
61 | ],
62 | "dist": {
63 | "shasum": "6bbaf0877500d36be34ecaa584e0db9fef035209",
64 | "tarball": "http://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz"
65 | },
66 | "directories": {},
67 | "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz"
68 | }
69 |
--------------------------------------------------------------------------------
/License.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1044{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
2 | {\*\generator Riched20 6.2.8250}\viewkind4\uc1
3 | \pard\sa200\sl276\slmult1\f0\fs22\lang20 Microsoft Reciprocal License (MS-RL)\par
4 | [OSI Approved License]\par
5 | This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.\par
6 | 1. Definitions\par
7 | The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.\par
8 | A "contribution" is the original software, or any additions or changes to the software.\par
9 | A "contributor" is any person that distributes its contribution under this license.\par
10 | "Licensed patents" are a contributor's patent claims that read directly on its contribution.\par
11 | 2. Grant of Rights\par
12 | (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.\par
13 | (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.\par
14 | 3. Conditions and Limitations\par
15 | (A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.\par
16 | (B) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.\par
17 | (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.\par
18 | (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.\par
19 | (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.\par
20 | (F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.\par
21 | }
22 |
--------------------------------------------------------------------------------
/MSMQCommander/App.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/MSMQCommander/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Windows;
7 |
8 | namespace MSMQCommander
9 | {
10 | ///
11 | /// Interaction logic for App.xaml
12 | ///
13 | public partial class App : Application
14 | {
15 | public App()
16 | {
17 | InitializeComponent();
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/MSMQCommander/AppBootstrapper.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 | using System.Windows;
3 | using Autofac;
4 | using MSMQCommander.Contex;
5 | using MSMQCommander.Dialogs;
6 | using MsmqLib;
7 |
8 | namespace MSMQCommander
9 | {
10 | using System;
11 | using System.Collections.Generic;
12 | using System.Linq;
13 | using Caliburn.Micro;
14 |
15 | public class AppBootstrapper : Bootstrapper
16 | {
17 | private Autofac.IContainer _container;
18 |
19 | protected override void Configure()
20 | {
21 | var builder = new ContainerBuilder();
22 |
23 | builder.RegisterAssemblyTypes(AssemblySource.Instance.ToArray())
24 | .Where(type => type.Name.EndsWith("ViewModel"))
25 | .Where(type => type.GetInterface(typeof (INotifyPropertyChanged).Name) != null)
26 | .AsSelf()
27 | .InstancePerDependency();
28 |
29 | builder.RegisterAssemblyTypes(AssemblySource.Instance.ToArray())
30 | .Where(type => type.Name.EndsWith("View"))
31 | .AsSelf()
32 | .InstancePerDependency();
33 |
34 | builder.RegisterType().As();
35 |
36 | builder.Register(c => new WindowManager())
37 | .InstancePerLifetimeScope();
38 |
39 | builder.Register(c => new EventAggregator())
40 | .InstancePerLifetimeScope();
41 |
42 | builder.RegisterType()
43 | .AsSelf()
44 | .InstancePerLifetimeScope();
45 |
46 | builder.RegisterType().As();
47 | builder.RegisterType().As();
48 |
49 | builder.RegisterType()
50 | .AsSelf()
51 | .InstancePerLifetimeScope();
52 |
53 | _container = builder.Build();
54 | }
55 |
56 | protected override object GetInstance(Type serviceType, string key)
57 | {
58 | if (string.IsNullOrWhiteSpace(key))
59 | {
60 | if (_container.IsRegistered(serviceType))
61 | return _container.Resolve(serviceType);
62 | }
63 | else
64 | {
65 | var type = Type.GetType(key);
66 | if (_container.IsRegistered(type))
67 | return _container.Resolve(type);
68 | }
69 | throw new Exception(string.Format("Could not locate any instances for type {0}.", serviceType));
70 | }
71 |
72 | protected override IEnumerable