typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
1,049 lines (985 loc) • 38.2 kB
text/typescript
/// <reference path="microsoft-live-connect.d.ts" />
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550838.aspx
*/
function createFolder_onClick() {
var login_props: Microsoft.Live.ILoginProperties = {
scope: "wl.skydrive_update"
};
WL.login(login_props).then(
function (response) {
var newFolder: Microsoft.Live.INewFolder = {
"name": "This is a new folder",
"description": "A new folder"
}, api_properties: Microsoft.Live.IAPIProperties = {
path: "me/skydrive",
method: "POST",
body: newFolder
};
WL.api<Microsoft.Live.IFolder>(api_properties).then(
function (response) {
document.getElementById("infoArea").innerText =
"Created folder. Name: " + response.name + ", ID: " + response.id;
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("infoArea").innerText =
"Error calling API: " + responseFailed.error.message;
}
);
},
function (responseFailed: Microsoft.Live.IJSError) {
document.getElementById("infoArea").innerText =
"Error signing in: " + responseFailed.error_description;
}
);
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/jj219386.aspx
*/
function downloadFile_onClick() {
var picker = setupSavePicker();
picker.pickSaveFileAsync().then(
function (file) {
if (file && (file instanceof Windows.Storage.StorageFile)) {
WL.login({
scope: "wl.skydrive"
}).then(
function (response) {
WL.backgroundDownload({
path: "file.8c8ce076ca27823f.8C8CE076CA27823F!129/picture?type=thumbnail",
file_output: file
}).then(
function (response) {
document.getElementById("infoLabel").innerText = "Downloaded file.";
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("infoLabel").innerText =
"Error calling API: " + responseFailed.error.message;
}
);
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("infoLabel").innerText =
"Error signing in: " + responseFailed.error.message;
}
);
}
else {
document.getElementById("infoLabel").innerText = "Cannot download file.";
}
},
function (fileFailed) {
document.getElementById("infoLabel").innerText = "Cannot download file.";
}
);
}
function setupSavePicker() {
var savepicker = new Windows.Storage.Pickers.FileSavePicker();
savepicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;
// XXX: Type hack for other typings. Apparently string[] isn't an IVector.
(<any>savepicker.fileTypeChoices).insert("Picture", [".jpg"]);
return savepicker;
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/jj219387.aspx
*/
function uploadFile_onClick() {
var picker = setupOpenPicker();
var filePickOp = picker.pickSingleFileAsync().then(
function (file) {
WL.login({
scope: "wl.skydrive_update"
}).then(
function (response) {
WL.backgroundUpload({
path: "me/skydrive",
file_name: file.name,
file_input: file,
overwrite: "rename"
}).then(
function (response) {
document.getElementById("infoLabel").innerText = "Uploaded file.";
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("infoLabel").innerText =
"Error calling API: " + responseFailed.error.message;
}
);
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("infoLabel").innerText =
"Error signing in: " + responseFailed.error.message;
}
);
},
function (fileFailed) {
document.getElementById("infoLabel").innerText = "Cannot upload file.";
}
);
}
function setupOpenPicker() {
var openpicker = new Windows.Storage.Pickers.FileOpenPicker();
openpicker.fileTypeFilter.replaceAll(["*"]);
return openpicker;
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550839.aspx
*/
function downloadFile() {
WL.login({
scope: "wl.skydrive"
}).then(
function (response) {
WL.download({
path: "file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!131/content"
}).then(
function (response) {
// Will not be called for web apps.
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error downloading file: " + responseFailed.error.message;
}
);
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error signing in: " + responseFailed.error.message;
}
);
}
WL.Event.subscribe("auth.login", function () { });
WL.Event.unsubscribe("auth.logout");
/**
* From: http://msdn.microsoft.com/en-us/library/live/jj219389.aspx
*/
function uploadFile_fileDialog() {
WL.fileDialog({
mode: "save"
}).then(
function (response) {
WL.upload({
path: response.data.folders[0].id,
element: "file",
overwrite: "rename"
}).then(
function (response) {
document.getElementById("info").innerText =
"File uploaded.";
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error uploading file: " + responseFailed.error.message;
}
);
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error getting folder info: " + responseFailed.error.message;
}
);
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550842.aspx
*/
function loginStatus() {
WL.getLoginStatus(function (response) { alert("Your status is: " + response.status) });
}
/**
* From http://msdn.microsoft.com/en-us/library/live/hh550843.aspx
*/
function onSessionChange() {
var session = WL.getSession();
if (session) {
document.getElementById("infoLabel").innerText =
"Something about the session changed.";
}
else {
document.getElementById("infoLabel").innerText =
"Signed out or session error.";
}
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550844.aspx
*/
WL.init({
client_id: "APP_CLIENT_ID",
redirect_uri: "REDIRECT_URL",
scope: "wl.signin",
response_type: "token"
});
WL.init({ scope: "wl.signin" });
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550845.aspx
*/
function streamlineAccountReg_onClick() {
WL.login({
scope: ["wl.signin", "wl.basic", "wl.birthday", "wl.emails"]
}).then(
function (response) {
WL.api<Microsoft.Live.IUser>({
path: "me",
method: "GET"
}).then(
function (response) {
document.getElementById("first_name").innerText = response.first_name;
document.getElementById("last_name").innerText = response.last_name;
document.getElementById("email").innerText = response.emails.preferred;
document.getElementById("gender").innerText = response.gender;
document.getElementById("birthday").innerText =
response.birth_month + " " + response.birth_day + " " + response.birth_year;
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("infoArea").innerText =
"Error calling API: " + responseFailed.error.message;
}
);
},
function (responseFailed: Microsoft.Live.IJSError) {
document.getElementById("infoArea").innerText =
"Error signing in: " + responseFailed.error_description;
}
);
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550846.aspx
*/
function signUserOut() {
WL.logout();
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550847.aspx
*/
var signInProps: Microsoft.Live.ISignInProperties = {
name: "signin",
element: "signin"
};
WL.ui(signInProps);
var skyDriveProps: Microsoft.Live.ISkyDrivePickerProperies = {
name: "skydrivepicker",
element: "uploadFile_div",
mode: "save",
onselected: onUploadFileCompleted,
onerror: onUploadFileError
};
WL.ui(skyDriveProps);
function onUploadFileCompleted(response: Microsoft.Live.IFilePickerResult) {
WL.upload({
path: response.data.folders[0].id,
element: "file",
overwrite: "rename"
}).then(
function (response) {
document.getElementById("info").innerText =
"File uploaded.";
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error uploading file: " + responseFailed.error.message;
}
);
};
function onUploadFileError(response: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error getting folder info: " + response.error.message;
}
skyDriveProps = {
name: "skydrivepicker",
element: "downloadFile_div",
mode: "open",
select: "multi",
onselected: onDownloadFileCompleted,
onerror: onDownloadFileError
};
WL.ui(skyDriveProps);
function onDownloadFileCompleted(response: Microsoft.Live.IFilePickerResult) {
var msg = "", folder: number, file: number;
// For each folder selected...
if (response.data.folders.length > 0) {
for (folder = 0; folder < response.data.folders.length; folder++) {
// Use folder IDs to iterate through child folders and files as needed.
msg += "\n" + response.data.folders[folder].id;
}
}
// For each file selected...
if (response.data.files.length > 0) {
for (file = 0; file < response.data.files.length; file++) {
// Use file IDs to iterate through files as needed.
msg += "\n" + response.data.files[file].id;
}
}
document.getElementById("info").innerText =
"Selected folders/files:" + msg;
};
function onDownloadFileError(responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error getting folder/file info: " + responseFailed.error.message;
}
/**
* From: http://msdn.microsoft.com/en-us/library/live/hh550848.aspx
*/
function uploadFile() {
WL.login({
scope: "wl.skydrive_update"
}).then(
function (response) {
WL.upload({
path: "folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!170",
element: "file",
overwrite: "rename"
}).then(
function (response) {
document.getElementById("info").innerText =
"File uploaded.";
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error uploading file: " + responseFailed.error.message;
}
);
},
function (responseFailed: Microsoft.Live.IError) {
document.getElementById("info").innerText =
"Error signing in: " + responseFailed.error.message;
}
);
}
//#region From: http://msdn.microsoft.com/en-us/library/live/hh243648.aspx
/**
* This region contains REST object examples, and verifies that they pass
* type checking.
*/
var albumCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IAlbum> = {
"data": [
{
"id": "album.8c8ce076ca27823f.8C8CE076CA27823F!126",
"from": {
"name": "Roberto Tamburello",
"id": "8c8ce076ca27823f"
},
"name": "My Sample Album 1",
"description": "",
"parent_id": "folder.de57f4126ed7e411",
"upload_location": "https://apis.live.net/v5.0/folder.de57f4126ed7e411.DE57F4126ED7E411!126/files/",
"is_embeddable": true,
"count": 4,
"link": "https://cid-8c8ce076ca27823f.skydrive.live.com/redir.aspx?page\u003dself\u0026resid\u003d8C8CE076CA27823F!126\u0026type\u003d5",
"type": "album",
"shared_with": {
"access": "Everyone (public)"
},
"created_time": "2011-04-21T23:19:47+0000",
"updated_time": "2011-04-22T19:18:12+0000",
// XXX: The API example documentation missed this property, but it has been wrong in the past...
"client_updated_time": "2011-04-22T19:18:12+0000",
}
]
};
var newAlbum: Microsoft.Live.INewAlbum = {
"name": "Vacation 2011",
"description": "Photos from our fun vacation."
};
var audioCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IAudio> = {
"data": [
{
"id": "file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!144",
"from": {
"name": "Stig Struve-Christensen",
"id": "a6b2a7e8f2515e5e"
},
"name": "SampleAudio.mp3",
"description": null,
"parent_id": "folder.a6b2a7e8f2515e5e",
"size": 8414449,
"upload_location": "https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!144/content/",
"comments_count": 0,
"comments_enabled": false,
"is_embeddable": false,
"source": "http://storage.live.com/s1p60U8Xs4UzIXTScrTioalE-ZaVFiDQBA15MS2BwcsuNjfG64Z2fw-DAjXnPuqC47YR40_xAoPD8aRGhtna9ZFZ9_oO4BTz4CWF973DTXMxc5U3TntcQ9qEA/SampleAudio.mp3:Binary",
"link": "https://skydrive.live.com/redir.aspx?cid\u003d22688711f5410e6c\u0026page\u003dview\u0026resid\u003d22688711F5410E6C!582\u0026parid\u003d22688711F5410E6C!581",
"type": "audio",
"title": "My Sample Audio",
"artist": "My Favorite Artist",
"album": "My Favorite Album",
"album_artist": "My Favorite Artist",
"genre": "Easy Listening",
"duration": 225000,
"picture": "https://storage.live.com/items/A6B2A7E8F2515E5E!144:MobileReady/SampleAudio.mp3?psid=1&ck=0&ex=720",
"shared_with": {
"access": "Just me"
},
"created_time": "2012-09-23T22:00:57+0000",
"updated_time": "2012-09-03T22:00:57+0000"
}
]
};
var newAudioResponse: Microsoft.Live.INewFileResponse = {
"id": "ID of the new audio",
"name": "The file's name and file extension",
"source": "URL where the audio can be downloaded from"
};
var newAudio: Microsoft.Live.INewAudio = {
"name": "SampleAudioChanged.wav",
"description": "Holiday Concert"
};
var calendarCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.ICalendar> = {
"data": [
{
"id": "calendar.42d4dbc866f94c83849c88c6eb9985bc",
"name": "Birthday calendar",
"description": "If you have birthdays listed for your contacts, they'll appear on this calendar. You can add more birthdays, but you can't add other types of events.",
"created_time": "2011-08-05T19:41:04+0000",
"updated_time": "2011-08-05T19:41:04+0000",
"from": {
"name": null,
"id": null
},
"is_default": false,
"subscription_location": null,
"permissions": "read"
}
]
};
var newCalendar: Microsoft.Live.INewCalendar = {
"name": "Summer Events",
"summary": "Things we are doing this summer."
};
var newCalendarSub: Microsoft.Live.INewCalendarSubscription = {
"name": "Soccer League",
"subscription_location": "ical.sharedcalendars.com/98754auv"
};
var commentCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IComment> = {
"data": [
{
"id": "comment.22688711f5410e6c.22688711f0410e6c!818.22688711F5410E6C!979",
"from": {
"name": "Roberto Tamburello",
"id": "8c8ce076ca27823f"
},
"message": "A lighthouse built on some rocks.",
"created_time": "2011-04-21T23:21:28+0000"
}
]
};
var newContact: Microsoft.Live.INewContact = {
"first_name": "",
"last_name": "",
"emails": {
"preferred": "",
"personal": "",
"business": "",
"other": ""
},
"work": [
{
"employer": {
"name": ""
}
}
]
};
var contactCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IContact> = {
"data": [
{
"id": "contact.b4466224b2ca42798c3d4ea90c75aa56",
"first_name": "Henrik",
"last_name": "Jensen",
"name": "Henrik Jensen",
"is_friend": false,
"is_favorite": false,
"user_id": null,
"email_hashes": [
"9ecdb19f4eb8e04304c5d1280368c42e85b6e4fe39f08b0c837ec592b905a620",
"fc05492f50da6488aa14dcf221d395bcb29a4e43b43b250d60c68df4f831cad3"
],
"updated_time": "2011-04-22T00:11:13+0000",
"birth_day": 29,
"birth_month": 3
}
]
};
var errorObj: Microsoft.Live.IError = {
"error": {
"code": "request_token_expired",
"message": "The provided access token has expired."
}
};
var eventI: Microsoft.Live.IEvent = {
"id": "event.611afb17fa9448f28cdb8277e8ffeb77.e9f015000d0249ce847c5306a25d7d75",
"name": "Global Project Risk Management Meeting",
"description": "Generate and assess risks for the project",
"calendar_id": "calendar.611afb17fa9448f28cdb8277e8ffeb77",
"from": {
"name": "William Flash",
"id": "de57f4126ed7e411"
},
"start_time": "2011-04-20T01:00:00+0000",
"end_time": "2011-04-20T02:00:00+0000",
"location": "Building 81, Room 9981, 123 Anywhere St., Redmond WA 19599",
"is_all_day_event": false,
"is_recurrent": false,
"recurrence": null,
"reminder_time": null,
"availability": "busy",
"visibility": "public",
"created_time": "2011-03-14T23:01:31+0000",
"updated_time": "2011-04-19T20:23:03+0000"
};
var newEvent: Microsoft.Live.INewEvent = {
"name": "Global Project Risk Management Meeting",
"description": "Generate and assess risks for the project",
"start_time": "2011-04-20T01:00:00-07:00",
"end_time": "2011-04-20T02:00:00-07:00",
"location": "Building 81, Room 9981, 123 Anywhere St., Redmond WA 19599",
"is_all_day_event": false,
"availability": "busy",
"visibility": "public"
};
var eventResponse: Microsoft.Live.INewEventResponse = {
"name": "Global Project Risk Management Meeting",
"description": "Generate and assess risks for the project",
"start_time": "2011-04-20T01:00:00+0000",
"end_time": "2011-04-20T02:00:00+0000",
"location": "Building 81, Room 9981, 123 Anywhere St., Redmond WA 19599",
"is_all_day_event": false,
"is_recurrent": false,
"recurrence": null,
"reminder_time": null,
"availability": "busy",
"visibility": "public",
"updated_time": "2011-04-19T20:23:03+0000"
};
var file: Microsoft.Live.IObjectCollection<Microsoft.Live.IFile> = {
"data": [
{
"id": "file.22688711f5410e6c.22688711F5410E6C!942",
"from": {
"name": "William Flash",
"id": "22688711f5410e6c"
},
"name": "Processing.docx",
"description": null,
"parent_id": "folder.22688711f5410e6c.22688711F5410E6C!479",
"size": 12692,
"upload_location": "https://apis.live.net/v5.0/file.22688711f5410e6c.22688711F5410E6C!942/content/",
"comments_count": 0,
"comments_enabled": true,
"is_embeddable": false,
"source": "http://storage.live.com/s1pEwo9qzyT4_BJZqMNm-aVzgLo-WRsQGzjzFsXjyREuQG5pDYr237vKz3i2pmqFuniYPzsuIZAOCUMB_gdfKCUpLpVcaAMXGrk4T7jOWenRniCv9vex7GWfSvy-XCVBVnU/Processing.docx:Binary",
"link": "https://skydrive-df.live.com/redir.aspx?cid\u003d22688711f5410e6c\u0026page\u003dview\u0026resid\u003d22688711F5410E6C!942\u0026parid\u003d22688711F5410E6C!479",
"type": "file",
"shared_with": {
"access": "Everyone (public)"
},
"created_time": "2011-10-12T23:18:23+0000",
"updated_time": "2011-10-12T23:18:23+0000",
// XXX: Not specified in example. Could be a bug in documentation, or maybe these are optional fields.
"client_updated_time": "2011-10-12T23:18:23+0000",
"sort_by": null
}
]
};
var fileDownload: Microsoft.Live.IFileDownloadLink = {
"location": "..."
};
var newFileResponse: Microsoft.Live.INewFileResponse = {
"id": "file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!184",
"name":"MyNewFile.txt",
"source": "http://storage.live.com/s1pasGKzgXFvuEQCbxGtOyIpboUVH1OCHoRzUJNDDwL0zVoidb0RRrNVk88hUrOEve5OMT7eCkuxPbop7dV9tMJQ-eE8SCQ28vFv9ZgPnDGwQMRm-0FeG3-KEY4HL9dQSw9/MyNewFile.txt:Binary,Default/MyNewFile.txt"
};
var folderCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IFolder> = {
"data": [
{
"id": "folder.8c8ce076ca27823f.8C8CE076CA27823F!142",
"from": {
"name": "Roberto Tamburello",
"id": "8c8ce076ca27823f"
},
"name": "My Sample Folder in Album 1",
"description": "",
"parent_id": "folder.de57f4126ed7e411",
"upload_location": "https://apis.live.net/v5.0/folder.de57f4126ed7e411.DE57F4126ED7E411!126/files/",
"is_embeddable": true,
"count": 3,
"link": "https://cid-8c8ce076ca27823f.skydrive.live.com/redir.aspx?page\u003dself\u0026resid\u003d8C8CE076CA27823F!142\u0026parid\u003d8C8CE076CA27823F!126\u0026type\u003d5",
"type": "folder",
"shared_with": {
"access": "Just me"
},
"created_time": "2011-04-22T00:36:30+0000",
"updated_time": "2011-04-22T19:18:12+0000",
// XXX: Omitted in the example.
"client_updated_time": "???",
"sort_by": "???"
}
]
};
var newFolder: Microsoft.Live.INewFolder = {
"name": "Informative Spreadsheets",
"description": "A folder full of useful data visualizations."
};
var friendCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IFriend> = {
"data": [
{
"id": "d09ea18fafc39a0c",
"name": "Henrik Jensen"
}
]
};
var permissionsCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IPermissions> = {
"data": [
{
"wl.basic": 1,
"wl.offline_access": 1,
"wl.signin": 1
}
]
};
var photoCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IPhoto> = {
"data": [
{
"id": "file.de57f4126ed7e411.DE57F4126ED7E411!128",
"from": {
"name": "Nuno Bento",
"id": "de57f4126ed7e411"
},
"name": "Maui-2012_0034.JPG",
"description": null,
"parent_id": "folder.de57f4126ed7e411.DE57F4126ED7E411!126",
"size": 561683,
"comments_count": 1,
"comments_enabled": true,
"tags_count": 0,
"tags_enabled": true,
"is_embeddable": true,
"picture": "http://storage.live.com/s1pKk5vzd-gdPanbzKYhB0nQGn8wGq5DSgqvrgIHU1NTXA4e2-spGkAhQjW1d9pcgKAGLB4NsEsSvDoREmdx5w-JiFrinEJJuEoz08Ws_IFupkX2bPSvy5qmths9ijwvDrXi1OBCWk9GW9Kt-qNNOAA9g/Maui09_0034.JPG:Thumbnail",
"source": "http://storage.live.com/s1pKk5vzd-gdPanbzKYhB0nQGn8wGq5DSgqvrgIHU1NTXA4e2-spGkAhQjW1d9pcgKAGLB4NsEsSvDoREmdx5w-JiFrinEJJuEoz08Ws_IFupkX2bPSvy5qmths9ijwvDrXi1OBCWk9GW9Kt-qNNOAA9g/Maui09_0034.JPG:HighRes",
"upload_location": "https://apis.live.net/v5.0/file.de57f4126ed7e411.DE57F4126ED7E411!128/content/",
"images": [
{
"height": 450,
"width": 600,
"source": "http://storage.live.com/s1pKk5vzd-gdPanbzKYhB0nQGn8wGq5DSgqvrgIHU1NTXA4e2-spGkAhQjW1d9pcgKAGLB4NsEsSvDoREmdx5w-JiFrinEJJuEoz08Ws_IFupkX2bPSvy5qmths9ijwvDrXi1OBCWk9GW9Kt-qNNOAA9g/Maui09_0034.JPG:WebReady",
"type": "normal"
}, {
"height": 132,
"width": 176,
"source": "http://storage.live.com/s1pKk5vzd-gdPanbzKYhB0nQGn8wGq5DSgqvrgIHU1NTXA4e2-spGkAhQjW1d9pcgKAGLB4NsEsSvDoREmdx5w-JiFrinEJJuEoz08Ws_IFupkX2bPSvy5qmths9ijwvDrXi1OBCWk9GW9Kt-qNNOAA9g/Maui09_0034.JPG:MobileReady",
"type": "album"
}, {
"height": 72,
"width": 96,
"source": "http://storage.live.com/s1pKk5vzd-gdPanbzKYhB0nQGn8wGq5DSgqvrgIHU1NTXA4e2-spGkAhQjW1d9pcgKAGLB4NsEsSvDoREmdx5w-JiFrinEJJuEoz08Ws_IFupkX2bPSvy5qmths9ijwvDrXi1OBCWk9GW9Kt-qNNOAA9g/Maui09_0034.JPG:Thumbnail",
"type": "thumbnail"
}, {
"height": 1200,
"width": 1600,
"source": "http://storage.live.com/s1pKk5vzd-gdPanbzKYhB0nQGn8wGq5DSgqvrgIHU1NTXA4e2-spGkAhQjW1d9pcgKAGLB4NsEsSvDoREmdx5w-JiFrinEJJuEoz08Ws_IFupkX2bPSvy5qmths9ijwvDrXi1OBCWk9GW9Kt-qNNOAA9g/Maui09_0034.JPG:HighRes",
"type": "full"
}
],
"link": "https://skydrive.live.com/redir.aspx?cid\u003dde57f4126ed7e411\u0026page\u003dview\u0026resid\u003dDE57F4126ED7E411!128\u0026parid\u003dDE57F4126ED7E411!126",
"when_taken": "2008-03-24T23:41:53+0000",
"height": 1200,
"width": 1600,
"type": "photo",
"location": {
"latitude": 47.65316,
"longitude": -122.135911,
"altitude": 43
},
"camera_make": "MyManufacturer",
"camera_model": "MyModel",
"focal_ratio": 2.8,
"focal_length": 3.85,
"exposure_numerator": 1,
"exposure_denominator": 15,
"shared_with": {
"access": "Everyone (public)"
},
"created_time": "2012-12-03T18:14:03+0000",
"updated_time": "2012-12-03T18:31:01+0000"
}
]
};
var tag: Microsoft.Live.ITag = {
"id": "tag.22688711f5410e6c.22688711f5410e6c!767.PRaXZrdHI1uYGQYi9CU0StrzHak",
"user": {
"name": "Roberto Tamburello",
"id": "8c8ce076ca27823f"
},
"x": 43.8986,
"y": 54.4138,
"created_time": "2011-04-22T01:17:00+0000"
};
var user: Microsoft.Live.IUser = {
"id": "8c8ce076ca27823f",
"name": "Roberto Tamburello",
"first_name": "Roberto",
"last_name": "Tamburello",
// XXX: Not in the REST API example, but is included in the WL.ui example.
"gender": null,
"link": "http://cid-8c8ce076ca27823f.profile.live.com/",
"birth_day": 20,
"birth_month": 4,
"birth_year": 2010,
"work": [
{
"employer": {
"name": "Microsoft Corporation"
},
"position": {
"name": "Software Development Engineer"
}
}
],
"emails": {
"preferred": "Roberto@contoso.com",
"account": "Roberto@contoso.com",
"personal": "Roberto@fabrikam.com",
"business": "Robert@adatum.com",
"other": "Roberto@adventure-works.com"
},
"addresses": {
"personal": {
"street": "123 Main St.",
"street_2": "Apt. A",
"city": "Redmond",
"state": "WA",
"postal_code": "12990",
"region": "United States"
},
"business": {
"street": "456 Anywhere St.",
"street_2": "Suite 1",
"city": "Redmond",
"state": "WA",
"postal_code": "12399",
"region": "United States"
}
},
"phones": {
"personal": "(555) 555-1212",
"business": "(555) 111-1212",
"mobile": null
},
"locale": "en_US",
"updated_time": "2011-04-21T23:55:34+0000"
};
var videoCollection: Microsoft.Live.IObjectCollection<Microsoft.Live.IVideo> = {
"data": [
{
"id": "file.de57f4126ed7e411.DE57F4126ED7E411!135",
"from": {
"name": "Nuno Bento",
"id": "de57f4126ed7e411"
},
"name": "Wildlife.wmv",
"description": null,
"parent_id": "folder.de57f4126ed7e411.DE57F4126ED7E411!126",
"size": 26246026,
"comments_count": 0,
"comments_enabled": true,
"tags_count": 0,
"tags_enabled": true,
"is_embeddable": true,
"picture": "http://storage.live.com/s1pKk5vzd-gdPaJ5Q1MKN34itsyRlUkAYzD_zsr0Dg-5r4bH8Qo8XRgsunA0M-V4G-XPpu1spowx4xwfjCuDcWQVa7aWld2WCdfeWjBK_coPqaQqzoE26BJP3OZAITB5i_DRPK8jK3ZLilSbNJd-onrOA/Wildlife.wmv:Thumbnail",
"source": "http://storage.live.com/s1pKk5vzd-gdPaJ5Q1MKN34itsyRlUkAYzD_zsr0Dg-5r4bH8Qo8XRgsunA0M-V4G-XPpu1spowx4xwfjCuDcWQVa7aWld2WCdfeWjBK_coPqaQqzoE26BJP3OZAITB5i_DRPK8jK3ZLilSbNJd-onrOA/Wildlife.wmv:VideoMain",
"upload_location": "https://apis.live.net/v5.0/file.de57f4126ed7e411.DE57F4126ED7E411!135/content/",
"link": "https://skydrive.live.com/redir.aspx?cid\u003dde57f4126ed7e411\u0026page\u003dview\u0026resid\u003dDE57F4126ED7E411!135\u0026parid\u003dDE57F4126ED7E411!126",
"height": 720,
"width": 1280,
"duration": 30093,
"bitrate": 5942130,
"type": "video",
"shared_with": {
"access": "Everyone (public)"
},
"created_time": "2011-08-23T23:41:18+0000",
"updated_time": "2011-08-23T23:41:32+0000"
}
]
};
//#endregion From: http://msdn.microsoft.com/en-us/library/live/hh243648.aspx
//#region From http://isdk.dev.live.com/dev/isdk/Default.aspx
/**
* The following code snippets were lifted from the Interactive Live SDK
* sandbox. We only include snippets that exercise portions of the API not
* already exercised above.
*/
function log(message: string) {
var child = document.createTextNode(message);
var parent = document.getElementById('JsOutputDiv') || document.body;
parent.appendChild(child);
parent.appendChild(document.createElement("br"));
}
function openFromSkyDrive() {
WL.fileDialog({
mode: 'open',
select: 'single'
}).then(
function (response) {
log("The following file is being downloaded:");
log("");
var files = response.data.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
log(file.name);
WL.download({ "path": file.id + "/content" });
}
},
function (errorResponse) {
log("WL.fileDialog errorResponse = " + JSON.stringify(errorResponse));
}
);
}
function saveToSkyDrive() {
WL.fileDialog({ mode: 'save' }).then(
function (response) {
var folder = response.data.folders[0];
WL.upload<Microsoft.Live.IFile>({
path: folder.id,
element: 'save-to-skydrive-file-input',
overwrite: 'rename'
}).then(
function (response) {
log("You saved to " + response.source + ". " +
"Below is the result of the upload.");
log("");
log(JSON.stringify(response));
},
function (errorResponse) {
log("WL.upload errorResponse = " + JSON.stringify(errorResponse));
},
function (progress) {
// progress events for the upload are raised here
}
);
}, function (errorResponse) {
log("WL.fileDialog errorResponse = " + JSON.stringify(errorResponse));
}
);
}
function getFiles() {
var files_path = "/me/skydrive/files";
WL.api<Microsoft.Live.IObjectCollection<Microsoft.Live.IObject>>({ path: files_path, method: "GET" }).then(
onGetFilesComplete,
function (response) {
log("Cannot get files and folders: " +
JSON.stringify(response.error).replace(/,/g, ",\n"));
}
);
}
// should have an interface that captures the fact that it only has type.
function onGetFilesComplete(response: Microsoft.Live.IObjectCollection<Microsoft.Live.IObject>) {
var items = response.data;
var foundFolder = 0;
for (var i = 0; i < items.length; i++) {
if (items[i].type === "folder") {
log("Found a folder with the following information: " +
JSON.stringify(items[i]).replace(/,/g, ",\n"));
foundFolder = 1;
break;
}
}
if (foundFolder == 0) {
log("Unable to find any folders");
}
}
function registerUser() {
WL.api<Microsoft.Live.IUser>({ path: "/me", method: "GET" }).then(
function (response) {
fillRegistrationForm(response);
},
function (response) {
log("API call failed: " + JSON.stringify(response.error).replace(/,/g, "\n"));
}
);
}
function fillRegistrationForm(user: Microsoft.Live.IUser) {
// NOTE: Assign these values to your form elements to streamline registration.
log("First name: " + user.first_name);
log("Last name: " + user.last_name);
log("Preferred email: " + user.emails.preferred);
log("Gender: " + user.gender);
log("Birthday: " + user.birth_month + "/" + user.birth_day + "/" + user.birth_year);
}
function showUserContactInfo() {
WL.api<Microsoft.Live.IUser>({ path: "/me", method: "GET" }).then(
function (response) {
log("Addresses: " + JSON.stringify(response.addresses).replace(/,/g, "\n"));
log("Phone Numbers: " + JSON.stringify(response.phones).replace(/,/g, "\n"));
log("Email Addresses: " + JSON.stringify(response.emails).replace(/,/g, "\n"));
},
function (response) {
log("API call failed: " + JSON.stringify(response.error).replace(/,/g, "\n"));
}
);
}
function enablePurchase() {
var date = new Date();
var year = date.getFullYear();
WL.api<Microsoft.Live.IUser>({ path: "/me", method: "GET" }).then(
function (response) {
var user = response;
if (year - user.birth_year >= 18) {
log("Purchase enabled.");
} else {
log("Purchase disabled. You are only " + user.birth_year + " year(s) old.");
}
},
function (response) {
log("API call failed: " + JSON.stringify(response.error).replace(/,/g, "\n"));
}
);
}
function createContact() {
var contact: Microsoft.Live.INewContact = {
first_name: "William",
last_name: "Flash"
};
WL.api({
path: "/me/contacts",
method: "POST",
body: contact
}).then(
function (response) {
log(JSON.stringify(response).replace(/,/g, ",\n"));
},
function (response) {
log("Cannot create contact: " +
JSON.stringify(response.error).replace(/,/g, ",\n"));
}
);
}
function createEvent() {
var startTime = new Date();
var endTime = new Date(startTime.getTime() + (60 * 60 * 1000));
log("Start time: " + startTime);
log("End time: " + endTime);
var newEvent: Microsoft.Live.INewEvent = {
name: "Family Dinner",
description: "Dinner with Cynthia's family",
start_time: startTime,
end_time: endTime,
location: "Coho Vineyard and Winery, 123 Main St., Redmond WA 98052",
is_all_day_event: false,
availability: "busy",
visibility: "public"
};
WL.api({
path: "/me/events",
method: "POST",
body: newEvent
}).then(
function (response) {
log("Successfully created event. Response: " +
JSON.stringify(response).replace(/,/g, "\n"));
},
function (response) {
log("Could not create event: " +
JSON.stringify(response.error).replace(/,/g, "\n"));
}
);
}
//#endregion From http://isdk.dev.live.com/dev/isdk/Default.aspx