├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE ├── README.md ├── examples ├── common │ ├── basic.js │ ├── listitems_crud.js │ ├── package.json │ ├── taxonomy_examples.js │ └── userprofile_examples.js ├── settings.js ├── todoapp │ ├── README.md │ ├── package.json │ ├── server.js │ ├── sharepoint.js │ └── todos.js └── typescript │ ├── .vscode │ └── launch.json │ ├── main.ts │ ├── package-lock.json │ ├── package.json │ └── tsconfig.json ├── lib ├── auth │ ├── SAML.xml │ └── authentication-context.js ├── csom-dependencies.js ├── csom-loader.js ├── csom-settings.js ├── request-utilities.js ├── sp_modules │ ├── 1033 │ │ └── initstrings.debug.js │ ├── ext_msajax_patch.js │ ├── init.debug.js │ ├── msajaxbundle.debug.js │ ├── sp.DEBUG.js │ ├── sp.core.debug.js │ ├── sp.extensions.js │ ├── sp.policy.debug.js │ ├── sp.publishing.debug.js │ ├── sp.runtime.debug.js │ ├── sp.taxonomy.debug.js │ └── sp.userprofiles.debug.js ├── xml-parser.js └── xmlhttprequest-proxy.js ├── package.json ├── test └── web.test.js └── updater ├── index.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 18 | .grunt 19 | 20 | # node-waf configuration 21 | .lock-wscript 22 | 23 | # Compiled binary addons (http://nodejs.org/api/addons.html) 24 | build/Release 25 | 26 | # Dependency directory 27 | # https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git 28 | node_modules 29 | 30 | # Optional npm cache directory 31 | .npm 32 | 33 | # Optional REPL history 34 | .node_repl_history 35 | 36 | 37 | # JetBrains IDE based files 38 | .idea 39 | .vscode/* 40 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 18 | .grunt 19 | 20 | # node-waf configuration 21 | .lock-wscript 22 | 23 | # Compiled binary addons (http://nodejs.org/api/addons.html) 24 | build/Release 25 | 26 | # Dependency directory 27 | # https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git 28 | node_modules 29 | 30 | # Optional npm cache directory 31 | .npm 32 | 33 | # Optional REPL history 34 | .node_repl_history 35 | 36 | 37 | #VS specific dependencies 38 | CSOMNode.Examples.njsproj 39 | CSOMNode.sln 40 | .ntvs_analysis.dat 41 | obj 42 | bin 43 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - stable 4 | install: 5 | - npm install 6 | script: 7 | - npm test 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Vadim Gremyachev 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SharePoint Client Object Model (CSOM) API for Node.js 2 | 3 | The library provides a SharePoint Client Object Model (CSOM) API for Node.js applications. 4 | 5 | The current version supports SharePoint Online CSOM library (v 16) The remote authentication is performed via Claims-Based Authentication. 6 | 7 | 8 | [![NPM](https://nodei.co/npm/csom-node.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/csom-node/) 9 | 10 | 11 | ### Installation 12 | 13 | `$ npm install csom-node` 14 | 15 | 16 | ### API 17 | 18 | 19 | - CSOM API - currently only [Core object library for JavaScript](https://msdn.microsoft.com/en-us/library/office/jj193050.aspx) is supported plus some additional packages listed below 20 | 21 | - `AuthenticationContext` - represents an object that provides credentials to access SharePoint Online resources. 22 | 23 | 24 | **The list of supported CSOM API packages** 25 | 26 | - [core](https://msdn.microsoft.com/en-us/library/office/jj193050.aspx) 27 | 28 | - [taxonomy](https://msdn.microsoft.com/en-us/library/office/jj857114.aspx) 29 | 30 | - [userprofile](https://msdn.microsoft.com/en-us/library/office/jj628683.aspx) 31 | 32 | - policy 33 | 34 | # Usage 35 | 36 | **Authentication** 37 | 38 | Authenticate with _user credentials_ 39 | 40 | 41 | ```` 42 | var csomapi = require('csom-node'); 43 | 44 | var settings = { 45 | url: "https://contoso.sharepoint.com/", 46 | username: "jdoe@contoso.onmicrosoft.com", 47 | password: "password" 48 | }; 49 | 50 | csomapi.setLoaderOptions({url: settings.url}); //set CSOM library settings 51 | 52 | var authCtx = new AuthenticationContext(settings.url); 53 | authCtx.acquireTokenForUser(settings.username, settings.password, function (err, data) { 54 | 55 | var ctx = new SP.ClientContext("/"); //set root web 56 | authCtx.setAuthenticationCookie(ctx); //authenticate 57 | 58 | //retrieve SP.Web client object 59 | var web = ctx.get_web(); 60 | ctx.load(web); 61 | ctx.executeQueryAsync(function () { 62 | console.log(web.get_title()); 63 | }, 64 | function (sender, args) { 65 | console.log('An error occured: ' + args.get_message()); 66 | }); 67 | 68 | }); 69 | 70 | ```` 71 | 72 | Authenticate with _app principal_ credentials (client id & client secret) 73 | 74 | ```` 75 | var csomapi = require("csom-node"); 76 | 77 | var settings = { 78 | url: "https://contoso.sharepoint.com/", 79 | clientId: "YOUR-GUID-GOES-HERE", 80 | clientSecret: "YOUR-CLIENT-SECRET-GOES-HERE" 81 | }; 82 | 83 | csomapi.setLoaderOptions({url: settings.url}); //set CSOM library settings 84 | 85 | var authCtx = new AuthenticationContext(settings.url); 86 | authCtx.acquireTokenForApp(settings.clientId, settings.clientSecret, function (err, data) { 87 | 88 | var ctx = new SP.ClientContext("/"); //set root web 89 | authCtx.setAuthenticationCookie(ctx); //authenticate 90 | 91 | //retrieve SP.Web client object 92 | var web = ctx.get_web(); 93 | ctx.load(web); 94 | ctx.executeQueryAsync(function () { 95 | console.log(web.get_title()); 96 | }, 97 | function (sender, args) { 98 | console.log('An error occured: ' + args.get_message()); 99 | }); 100 | 101 | }); 102 | 103 | ```` 104 | 105 | **Working with List Items** 106 | 107 | The following example demonstrates how to perform CRUD operations against list items: 108 | 109 | 110 | ```` 111 | 112 | var csomapi = require('csom-node'); 113 | 114 | var settings = { 115 | url: "https://contoso.sharepoint.com/", 116 | username: "jdoe@contoso.onmicrosoft.com", 117 | password: "password" 118 | }; 119 | 120 | csomapi.setLoaderOptions({ url: settings.url, serverType: 'local', packages: [] }); 121 | 122 | 123 | var authCtx = new AuthenticationContext(settings.url); 124 | authCtx.acquireTokenForUser(settings.username, settings.password, function(err, data) { 125 | 126 | var ctx = new SP.ClientContext("/"); 127 | authCtx.setAuthenticationCookie(ctx); //authenticate 128 | 129 | var web = ctx.get_web(); 130 | console.log("1. Read list items"); 131 | readListItems(web, "Tasks", function(items) { 132 | items.get_data().forEach(function(item) { 133 | console.log(item.get_fieldValues().Title); 134 | }); 135 | console.log('Tasks have been read successfully'); 136 | console.log("2. Create list item"); 137 | createListItem(web, "Tasks", function(item) { 138 | 139 | console.log(String.format('Task {0} has been created successfully', item.get_item('Title'))); 140 | console.log("3. Update list item"); 141 | updateListItem(item,function(item) { 142 | console.log(String.format('Task {0} has been updated successfully', item.get_item('Title'))); 143 | console.log("4. Delete list item"); 144 | deleteListItem(item,function() { 145 | console.log('Task has been deleted successfully'); 146 | },logError); 147 | 148 | },logError); 149 | 150 | }, logError); 151 | 152 | }, logError); 153 | 154 | }); 155 | 156 | 157 | function logError(sender, args) { 158 | console.log('An error occured: ' + args.get_message()); 159 | } 160 | 161 | 162 | function readListItems(web, listTitle, success, error) { 163 | var ctx = web.get_context(); 164 | var list = web.get_lists().getByTitle(listTitle); 165 | var items = list.getItems(SP.CamlQuery.createAllItemsQuery()); 166 | ctx.load(items); 167 | ctx.executeQueryAsync(function() { 168 | success(items); 169 | }, 170 | error); 171 | } 172 | 173 | function createListItem(web, listTitle,success,error) { 174 | var ctx = web.get_context(); 175 | var list = web.get_lists().getByTitle(listTitle); 176 | var creationInfo = new SP.ListItemCreationInformation(); 177 | var listItem = list.addItem(creationInfo); 178 | listItem.set_item('Title', 'New Task'); 179 | listItem.update(); 180 | ctx.load(listItem); 181 | ctx.executeQueryAsync(function () { 182 | success(listItem); 183 | }, 184 | error); 185 | } 186 | 187 | 188 | function updateListItem(listItem,success,error) { 189 | var ctx = listItem.get_context(); 190 | listItem.set_item('Title', 'New Task (updated)'); 191 | listItem.update(); 192 | ctx.load(listItem); 193 | ctx.executeQueryAsync(function () { 194 | success(listItem); 195 | }, 196 | error); 197 | } 198 | 199 | function deleteListItem(listItem, success, error) { 200 | var ctx = listItem.get_context(); 201 | listItem.deleteObject(); 202 | ctx.executeQueryAsync(function () { 203 | success(); 204 | }, 205 | error); 206 | } 207 | 208 | ```` 209 | 210 | 211 | Visual Studio Code screenshot 212 | 213 | ![alt tag](https://vgrem.files.wordpress.com/2016/01/csomnode_vscode.png) 214 | -------------------------------------------------------------------------------- /examples/common/basic.js: -------------------------------------------------------------------------------- 1 | const csomapi = require('csom-node'); 2 | const AuthenticationContext = require('csom-node').AuthenticationContext; 3 | const settings = require('../settings.js').settings; 4 | 5 | 6 | csomapi.setLoaderOptions({url: settings.siteUrl}); 7 | const authCtx = new AuthenticationContext(settings.siteUrl); 8 | authCtx.acquireTokenForUser(settings.username, settings.password, function (err, data) { 9 | 10 | const ctx = new SP.ClientContext(authCtx.path); 11 | authCtx.setAuthenticationCookie(ctx); 12 | 13 | const web = ctx.get_web(); 14 | ctx.load(web); 15 | ctx.executeQueryAsync(function () { 16 | console.log(web.get_title()); 17 | }, 18 | function (sender, args) { 19 | console.log('An error occured: ' + args.get_message()); 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /examples/common/listitems_crud.js: -------------------------------------------------------------------------------- 1 | const {executeQuery, getAuthenticatedContext} = require('./extensions'); 2 | const settings = require('../settings.js').settings; 3 | 4 | function logError(sender,args) { 5 | console.log('An error occured: ' + args.get_message()); 6 | } 7 | 8 | 9 | 10 | async function readListItems(web, listTitle) { 11 | const ctx = web.get_context(); 12 | const list = web.get_lists().getByTitle(listTitle); 13 | const items = list.getItems(SP.CamlQuery.createAllItemsQuery()); 14 | ctx.load(items); 15 | await executeQuery(ctx); 16 | return items; 17 | } 18 | 19 | async function createListItem(web, listTitle) { 20 | const ctx = web.get_context(); 21 | const list = web.get_lists().getByTitle(listTitle); 22 | const creationInfo = new SP.ListItemCreationInformation(); 23 | const listItem = list.addItem(creationInfo); 24 | listItem.set_item('Title', 'New Task'); 25 | listItem.update(); 26 | ctx.load(listItem); 27 | await executeQuery(ctx); 28 | return listItem; 29 | } 30 | 31 | 32 | async function updateListItem(listItem) { 33 | const ctx = listItem.get_context(); 34 | listItem.set_item('Title', 'New Task (updated)'); 35 | listItem.update(); 36 | ctx.load(listItem); 37 | await executeQuery(ctx); 38 | return listItem; 39 | } 40 | 41 | async function deleteListItem(listItem, success, error) { 42 | const ctx = listItem.get_context(); 43 | listItem.deleteObject(); 44 | await executeQuery(ctx); 45 | } 46 | 47 | 48 | (async () => { 49 | 50 | const ctx = await getAuthenticatedContext(settings.siteUrl,settings.username, settings.password); 51 | const web = ctx.get_web(); 52 | 53 | console.log("1. Create list item"); 54 | const targetItem = await createListItem(web, "Tasks") 55 | console.log(String.format('Task {0} has been created successfully', targetItem.get_item('Title'))); 56 | 57 | console.log("2. Read list items"); 58 | const items = await readListItems(web, "Tasks"); 59 | items.get_data().forEach(function(item) { 60 | console.log(item.get_fieldValues().Title); 61 | }); 62 | 63 | console.log("3. Update list item"); 64 | await updateListItem(targetItem); 65 | console.log(String.format('Task {0} has been updated successfully', targetItem.get_item('Title'))); 66 | 67 | console.log("4. Delete list item"); 68 | await deleteListItem(targetItem); 69 | console.log('Task has been deleted successfully'); 70 | 71 | })().catch(logError); 72 | -------------------------------------------------------------------------------- /examples/common/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "csom-node-example", 3 | "version": "0.0.1", 4 | "description": "Examples for csom-node", 5 | "main": "csom-loader.js", 6 | "author": { 7 | "name": "Vadim Gremyachev", 8 | "email": "vvgrem@gmail.com" 9 | }, 10 | "dependencies": { 11 | "csom-node": "^0.1.7" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/common/taxonomy_examples.js: -------------------------------------------------------------------------------- 1 | const settings = require('../settings.js').settings; 2 | const csomapi = require("../../lib/csom-loader"); 3 | 4 | csomapi.setLoaderOptions({url: settings.siteUrl, packages: ['taxonomy']}); 5 | 6 | (async () => { 7 | const ctx = await SP.ClientContext.connectWithUserCredentials(settings.username, settings.password); 8 | const groups = await loadTermSets(ctx); 9 | for(let group of groups.get_data()){ 10 | console.log(String.format('Group: {0}', group.get_name())); 11 | group.get_termSets().get_data().forEach((ts) => { 12 | console.log(String.format('\tTerm Set: {0}', ts.get_name())); 13 | }); 14 | } 15 | 16 | })().catch(logError); 17 | 18 | 19 | async function loadTermSets(ctx) { 20 | const taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(ctx); 21 | const termStore = taxSession.getDefaultSiteCollectionTermStore(); 22 | const groups = termStore.get_groups(); 23 | ctx.load(groups,'Include(Name,TermSets)'); 24 | await ctx.executeQuery(); 25 | return groups; 26 | } 27 | 28 | function logError(sender, args) { 29 | console.log('An error occured: ' + args.get_message()); 30 | } 31 | -------------------------------------------------------------------------------- /examples/common/userprofile_examples.js: -------------------------------------------------------------------------------- 1 | const csomapi = require("../../lib/csom-loader"); 2 | const settings = require('../settings.js').settings; 3 | 4 | csomapi.setLoaderOptions({url: settings.siteUrl, packages: ['userprofile','publishing']}); 5 | 6 | (async () => { 7 | try{ 8 | const ctx = await SP.ClientContext.connectWithUserCredentials(settings.username, settings.password); 9 | const users = await loadSiteUsers(ctx); 10 | const peopleManager = new SP.UserProfiles.PeopleManager(ctx); 11 | for(let user of users.get_data()){ 12 | const property = peopleManager.getUserProfilePropertyFor(user.get_loginName(), 'WorkEmail'); 13 | await ctx.executeQuery(); 14 | console.log(String.format("Login: {0} \t Work email: {1}", user.get_loginName(), property.get_value())); 15 | } 16 | 17 | } 18 | catch (e) { 19 | console.log(String.format("An error occured while getting site users: {0}", e.get_message())); 20 | } 21 | 22 | })().catch(logError); 23 | 24 | 25 | function logError(sender, args) { 26 | console.log('An error occured: ' + args.get_message()); 27 | } 28 | 29 | 30 | async function loadSiteUsers(ctx, callback) { 31 | const web = ctx.get_web(); 32 | const users = web.get_siteUsers(); 33 | ctx.load(users); 34 | await ctx.executeQuery(); 35 | return users; 36 | } 37 | -------------------------------------------------------------------------------- /examples/settings.js: -------------------------------------------------------------------------------- 1 | const user_credentials = process.env.CSOMNode_usercredentials.split(';'); 2 | const settings = { 3 | siteUrl: "https://mediadev8.sharepoint.com/", 4 | username: user_credentials[0], 5 | password: user_credentials[1] 6 | }; 7 | 8 | exports.settings = settings; 9 | -------------------------------------------------------------------------------- /examples/todoapp/README.md: -------------------------------------------------------------------------------- 1 | # TodoMVC backend to Office 365 2 | 3 | TodoMVC backend that demonstrates how to store data in SharePoint Online (Office 365) 4 | 5 | 6 | 7 | **TodoMVC backend** 8 | 9 | ![alt tag](https://vgrem.files.wordpress.com/2016/01/todomvc_backend.png) 10 | 11 | 12 | **Office 365 storage** 13 | 14 | All the TodoMVC data is stored in SharePoint List 15 | 16 | ![alt tag](https://vgrem.files.wordpress.com/2016/01/todomvc_sharepointlist.png) 17 | 18 | 19 | # Running 20 | 21 | **Locally** 22 | 23 | ``` 24 | # Set your Office 365 settings such as site Url and credentials in `settings.js` file 25 | 26 | # Install the dependencies 27 | $ npm install 28 | 29 | # Start the server 30 | $ npm start 31 | 32 | #Navigate to http://localhost:3000/ 33 | ``` 34 | 35 | # Resources 36 | -------------------------------------------------------------------------------- /examples/todoapp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "todo", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./server.js" 7 | }, 8 | "dependencies": { 9 | "body-parser": "^1.18.3", 10 | "cookie-parser": "^1.4.3", 11 | "debug": "^3.1.0", 12 | "express": "^4.16.3", 13 | "jade": "~1.11.0", 14 | "morgan": "^1.9.0", 15 | "serve-favicon": "^2.5.0", 16 | "todomvc": "^0.1.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/todoapp/server.js: -------------------------------------------------------------------------------- 1 | var bodyParser = require('body-parser'); 2 | var express = require('express'); 3 | var todomvc = require('todomvc'); 4 | var todos = require('./todos.js'); 5 | var sharepoint = require('./sharepoint.js'); 6 | 7 | 8 | 9 | var app = module.exports.app = express(); 10 | var api = module.exports.api = express(); 11 | api.use(bodyParser.json()); 12 | app.use('/api', [api]); 13 | 14 | //app.use(function(callback) { 15 | // callback(null /* error */, result); 16 | //}); 17 | //app.use(sharepoint.authenticate); 18 | 19 | // Declare the root route *before* inserting TodoMVC as middleware to prevent 20 | // the TodoMVC app from overriding it. 21 | app.get('/', function (req, res) { 22 | res.redirect('/examples/angularjs'); 23 | }); 24 | app.use(todomvc); 25 | 26 | 27 | 28 | // API Routes. 29 | api.get('/', function(req, res, next) { 30 | sharepoint.authenticate(function (err, authCtx) { 31 | todos.authenticate(authCtx); 32 | res.status(200) 33 | .set('Content-Type', 'text/plain') 34 | .send(''); 35 | }); 36 | }); 37 | 38 | api.get('/todos', function (req, res) { 39 | todos.getAll(_handleApiResponse(res)); 40 | }); 41 | 42 | api.get('/todos/:id', function (req, res) { 43 | todos.get(req.param('id'), _handleApiResponse(res)); 44 | }); 45 | 46 | api.post('/todos', function (req, res) { 47 | todos.insert(req.body, _handleApiResponse(res, 201)); 48 | }); 49 | 50 | api.put('/todos/:id', function (req, res) { 51 | todos.update(req.param('id'), req.body, _handleApiResponse(res)); 52 | }); 53 | 54 | api.delete('/todos', function (req, res) { 55 | todos.deleteCompleted(_handleApiResponse(res, 204)); 56 | }); 57 | 58 | api.delete('/todos/:id', function (req, res) { 59 | todos.delete(req.param('id'), _handleApiResponse(res, 204)); 60 | }); 61 | 62 | function _handleApiResponse(res, successStatus) { 63 | return function (err, payload) { 64 | if (err) { 65 | console.error(err); 66 | res.status(err.code).send(err.message); 67 | return; 68 | } 69 | if (successStatus) { 70 | res.status(successStatus); 71 | } 72 | res.json(payload); 73 | }; 74 | } 75 | 76 | 77 | // Configure the sidebar to display relevant links for our hosted version of TodoMVC. 78 | todomvc.learnJson = { 79 | name: 'TodoMVC backend using csom-node.', 80 | description: 'TodoMVC backend that demonstrates how to store data in SharePoint Online', 81 | homepage: 'http://cloud.google.com/solutions/nodejs', 82 | examples: [ 83 | { 84 | name: 'csom-node TodoMVC example', 85 | url: 'https://github.com/vgrem/CSOMNode/tree/master/examples/todo' 86 | } 87 | ], 88 | link_groups: [ 89 | { 90 | heading: 'Official Resources', 91 | links: [ 92 | { 93 | name: 'csom-node', 94 | url: 'https://github.com/vgrem/CSOMNode' 95 | } 96 | ] 97 | } 98 | ] 99 | }; 100 | 101 | 102 | app.listen(3000); -------------------------------------------------------------------------------- /examples/todoapp/sharepoint.js: -------------------------------------------------------------------------------- 1 | var csomapi = require('csom-node'), 2 | settings = require('../settings.js').settings; 3 | 4 | var webAbsoluteUrl = settings.tenantUrl + settings.webUrl; 5 | csomapi.setLoaderOptions({ url: webAbsoluteUrl }); 6 | 7 | 8 | module.exports = { 9 | authenticate: function(callback) { 10 | var authCtx = new AuthenticationContext(webAbsoluteUrl); 11 | authCtx.acquireTokenForUser(settings.username, settings.password, function(err, data) { 12 | if (err) throw err; 13 | callback(null, authCtx); 14 | }); 15 | }, 16 | getListItems: function(list,qry, callback) { 17 | var ctx = list.get_context(); 18 | var items = list.getItems(SP.CamlQuery.createAllItemsQuery()); 19 | ctx.load(items); 20 | ctx.executeQueryAsync(function() { 21 | callback(null, items.get_data()); 22 | }, 23 | function(sender, args) { 24 | callback(args); 25 | }); 26 | }, 27 | addListItem: function(list, properties, callback) { 28 | var ctx = list.get_context(); 29 | var creationInfo = new SP.ListItemCreationInformation(); 30 | var listItem = list.addItem(creationInfo); 31 | listItem.set_item('Title', properties.title); 32 | listItem.update(); 33 | ctx.load(listItem); 34 | ctx.executeQueryAsync(function() { 35 | callback(null, listItem); 36 | }, 37 | function(sender, args) { 38 | callback(args); 39 | }); 40 | }, 41 | updateListItem: function(list, itemId, properties, callback) { 42 | var ctx = list.get_context(); 43 | var listItem = list.getItemById(itemId); 44 | listItem.set_item('Title', properties.title); 45 | listItem.update(); 46 | ctx.load(listItem); 47 | ctx.executeQueryAsync(function() { 48 | callback(null, listItem); 49 | }, 50 | function(sender, args) { 51 | callback(args); 52 | }); 53 | }, 54 | deleteListItem: function(list,itemId, callback) { 55 | var ctx = list.get_context(); 56 | var listItem = list.getItemById(itemId); 57 | listItem.deleteObject(); 58 | ctx.executeQueryAsync(function() { 59 | callback(null,{}); 60 | }, 61 | function(sender, args) { 62 | callback(args); 63 | }); 64 | }, 65 | getListItem: function (list,itemId, callback) { 66 | var ctx = list.get_context(); 67 | var item = list.getItemById(itemId); 68 | ctx.load(item); 69 | ctx.executeQueryAsync(function () { 70 | callback(null, item); 71 | }, 72 | function (sender, args) { 73 | callback(args); 74 | }); 75 | }, 76 | webUrl: settings.tenantUrl + settings.webUrl 77 | }; 78 | 79 | 80 | -------------------------------------------------------------------------------- /examples/todoapp/todos.js: -------------------------------------------------------------------------------- 1 | var sharepoint = require('./sharepoint.js'); 2 | 3 | var listTitle = "Tasks"; 4 | var ctx = new SP.ClientContext(sharepoint.webUrl); 5 | var list = ctx.get_web().get_lists().getByTitle(listTitle); 6 | 7 | function entityToTodo(item) { 8 | //var todo = item.get_fieldValues(); 9 | var todo = {}; 10 | todo.title = item.get_item('Title'); 11 | todo.completed = false; 12 | todo.id = item.get_id(); 13 | return todo; 14 | } 15 | 16 | module.exports = { 17 | authenticate: function(authCtx) { 18 | authCtx.setAuthenticationCookie(ctx); //authenticate 19 | }, 20 | 21 | delete: function(id, callback) { 22 | sharepoint.deleteListItem(list, id, function(err) { 23 | callback(err || null); 24 | }); 25 | }, 26 | 27 | deleteCompleted: function(callback) { 28 | var qry = new SP.CamlQuery(); 29 | sharepoint.getListItems(list, qry, function(err, items) { 30 | if (err) { 31 | callback(err); 32 | return; 33 | } 34 | var ctx = list.get_context(); 35 | items.forEach(function(item) { 36 | var listItem = list.getItemById(item.get_id()); 37 | listItem.deleteObject(); 38 | }); 39 | 40 | ctx.executeQueryAsync(function() { 41 | callback(null); 42 | }, 43 | function(sender, args) { 44 | callback(args); 45 | }); 46 | }); 47 | }, 48 | 49 | get: function(id, callback) { 50 | sharepoint.getListItem(list, id, function(err, item) { 51 | if (err) { 52 | callback(err); 53 | return; 54 | } 55 | if (!item) { 56 | callback({ 57 | code: 404, 58 | message: 'No matching list item was found.' 59 | }); 60 | return; 61 | } 62 | callback(null, entityToTodo(item)); 63 | }); 64 | }, 65 | 66 | getAll: function(callback) { 67 | sharepoint.getListItems(list, null, function(err, items) { 68 | if (err) { 69 | callback(err); 70 | return; 71 | } 72 | callback(null, items.map(entityToTodo)); 73 | }); 74 | }, 75 | 76 | insert: function(data, callback) { 77 | data.completed = false; 78 | sharepoint.addListItem(list, data, function(err, item) { 79 | if (err) { 80 | callback(err); 81 | return; 82 | } 83 | data.id = item.get_id(); 84 | callback(null, data); 85 | }); 86 | }, 87 | 88 | update: function(id, data, callback) { 89 | sharepoint.updateListItem(list, id, data, function(err, item) { 90 | if (err) { 91 | callback(err); 92 | return; 93 | } 94 | data.id = id; 95 | callback(null, data); 96 | }); 97 | } 98 | }; -------------------------------------------------------------------------------- /examples/typescript/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "TypeScript example", 11 | "runtimeArgs": [ 12 | "-r", 13 | "ts-node/register" 14 | ], 15 | "args": [ 16 | "${workspaceFolder}/main.ts" 17 | ] 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /examples/typescript/main.ts: -------------------------------------------------------------------------------- 1 | const jsom = require("csom-node"); 2 | const settings = require("../settings.js").settings; 3 | const AuthenticationContext = jsom.AuthenticationContext; 4 | export interface ICredentials {} 5 | 6 | export class UserCredentials implements ICredentials { 7 | username: string; 8 | password: string; 9 | constructor(username: string, password: string) { 10 | this.username = username; 11 | this.password = password; 12 | } 13 | } 14 | 15 | export class ClientCredentials implements ICredentials { 16 | clientId: string; 17 | secretKey: string; 18 | constructor(clientId: string, password: string) { 19 | this.clientId = clientId; 20 | this.secretKey = password; 21 | } 22 | } 23 | 24 | export async function executeQuery( 25 | context: SP.ClientContext 26 | ): Promise { 27 | return new Promise((resolve, reject) => { 28 | context.executeQueryAsync( 29 | () => { 30 | resolve(); 31 | }, 32 | (sender, args) => { 33 | reject(args); 34 | } 35 | ); 36 | }); 37 | } 38 | 39 | export async function getAuthenticatedContext( 40 | url: string, 41 | credentials: UserCredentials | ClientCredentials 42 | ): Promise { 43 | jsom.setLoaderOptions({ url: url, packages: ["core", "taxonomy"] }); 44 | const authCtx = new AuthenticationContext(url); 45 | 46 | return new Promise((resolve, reject) => { 47 | if (credentials instanceof UserCredentials) { 48 | authCtx.acquireTokenForUser( 49 | credentials.username, 50 | credentials.password, 51 | (err: any, resp: any) => { 52 | if (err) { 53 | reject(err); 54 | return; 55 | } 56 | const ctx = new SP.ClientContext(authCtx.path); 57 | authCtx.setAuthenticationCookie(ctx); 58 | resolve(ctx); 59 | } 60 | ); 61 | } else { 62 | authCtx.acquireTokenForApp( 63 | credentials.clientId, 64 | encodeURIComponent(credentials.secretKey), 65 | (err: any, resp: any) => { 66 | if (err) { 67 | reject(err); 68 | return; 69 | } 70 | const ctx = new SP.ClientContext(authCtx.path); 71 | authCtx.setAuthenticationCookie(ctx); 72 | resolve(ctx); 73 | } 74 | ); 75 | } 76 | }); 77 | } 78 | 79 | (async () => { 80 | const credentials = new UserCredentials(settings.username, settings.password); 81 | const ctx = await getAuthenticatedContext(settings.siteUrl, credentials); 82 | const web = ctx.get_web(); 83 | ctx.load(web); 84 | await executeQuery(ctx); 85 | console.log(web.get_title()); 86 | })(); 87 | -------------------------------------------------------------------------------- /examples/typescript/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Updater", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/microsoft-ajax": { 8 | "version": "0.0.35", 9 | "resolved": "https://registry.npmjs.org/@types/microsoft-ajax/-/microsoft-ajax-0.0.35.tgz", 10 | "integrity": "sha512-uM+VKi5q/EjhsCSfH/raPPB5qxuSuOIgmn03LEpDrvDKgsFxvTFeeaRIgib2imNAm7GOQ4MhgsNWiIRGK/YxcQ==", 11 | "dev": true 12 | }, 13 | "@types/node": { 14 | "version": "10.17.17", 15 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz", 16 | "integrity": "sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q==", 17 | "dev": true 18 | }, 19 | "@types/sharepoint": { 20 | "version": "2016.1.8", 21 | "resolved": "https://registry.npmjs.org/@types/sharepoint/-/sharepoint-2016.1.8.tgz", 22 | "integrity": "sha512-Iajw6IVBL+Y7gEBLIu8hphYf2FyCXwRn7ipUxZO52DIuE0JTi+xgGOJ9AgWjjug7x1HJ0sI+JdwCzGPwacYKOQ==", 23 | "dev": true, 24 | "requires": { 25 | "@types/microsoft-ajax": "*" 26 | } 27 | }, 28 | "arg": { 29 | "version": "4.1.3", 30 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", 31 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", 32 | "dev": true 33 | }, 34 | "buffer-from": { 35 | "version": "1.1.1", 36 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 37 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 38 | "dev": true 39 | }, 40 | "csom-node": { 41 | "version": "0.1.6", 42 | "resolved": "https://registry.npmjs.org/csom-node/-/csom-node-0.1.6.tgz", 43 | "integrity": "sha1-3O0Cxd1aPQLqqtUWxhtX2FrIEKc=", 44 | "requires": { 45 | "xml2js": "^0.4.15", 46 | "xmlhttprequest": "^1.8.0" 47 | } 48 | }, 49 | "diff": { 50 | "version": "4.0.2", 51 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 52 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 53 | "dev": true 54 | }, 55 | "make-error": { 56 | "version": "1.3.6", 57 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", 58 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", 59 | "dev": true 60 | }, 61 | "sax": { 62 | "version": "1.2.4", 63 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 64 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 65 | }, 66 | "source-map": { 67 | "version": "0.6.1", 68 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 69 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 70 | "dev": true 71 | }, 72 | "source-map-support": { 73 | "version": "0.5.16", 74 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", 75 | "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", 76 | "dev": true, 77 | "requires": { 78 | "buffer-from": "^1.0.0", 79 | "source-map": "^0.6.0" 80 | } 81 | }, 82 | "ts-node": { 83 | "version": "8.8.1", 84 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.8.1.tgz", 85 | "integrity": "sha512-10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg==", 86 | "dev": true, 87 | "requires": { 88 | "arg": "^4.1.0", 89 | "diff": "^4.0.1", 90 | "make-error": "^1.1.1", 91 | "source-map-support": "^0.5.6", 92 | "yn": "3.1.1" 93 | } 94 | }, 95 | "typescript": { 96 | "version": "3.8.3", 97 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", 98 | "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", 99 | "dev": true 100 | }, 101 | "xml2js": { 102 | "version": "0.4.19", 103 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", 104 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", 105 | "requires": { 106 | "sax": ">=0.6.0", 107 | "xmlbuilder": "~9.0.1" 108 | } 109 | }, 110 | "xmlbuilder": { 111 | "version": "9.0.7", 112 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", 113 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" 114 | }, 115 | "xmlhttprequest": { 116 | "version": "1.8.0", 117 | "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", 118 | "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" 119 | }, 120 | "yn": { 121 | "version": "3.1.1", 122 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", 123 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", 124 | "dev": true 125 | } 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /examples/typescript/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Updater", 3 | "version": "1.0.0", 4 | "description": "TypeScript example", 5 | "main": "main.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": { 10 | "name": "Vadim Gremyachev", 11 | "email": "vvgrem@gmail.com" 12 | }, 13 | "homepage": "https://github.com/vgrem/CSOMNode", 14 | "repository": { 15 | "type": "git", 16 | "url": "git@github.com:vgrem/CSOMNode.git" 17 | }, 18 | "bugs": { 19 | "url": "https://github.com/vgrem/CSOMNode/issues" 20 | }, 21 | "dependencies": { 22 | "csom-node": "^0.1.6" 23 | }, 24 | "devDependencies": { 25 | "@types/node": "^10.17.17", 26 | "@types/sharepoint": "^2016.1.8", 27 | "ts-node": "^8.8.1", 28 | "typescript": "^3.8.3" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/typescript/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ 4 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ 5 | "strict": true, /* Enable all strict type-checking options. */ 6 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /lib/auth/SAML.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue 4 | 5 | http://www.w3.org/2005/08/addressing/anonymous 6 | 7 | https://login.microsoftonline.com/extSTS.srf 8 | 9 | 10 | [username] 11 | [password] 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | [endpoint] 20 | 21 | 22 | http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey 23 | http://schemas.xmlsoap.org/ws/2005/02/trust/Issue 24 | urn:oasis:names:tc:SAML:1.0:assertion 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /lib/auth/authentication-context.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'), 2 | qs = require('querystring'), 3 | xml2js = require('xml2js'), 4 | http = require('http'), 5 | https = require('https'), 6 | urlparse = require('url').parse, 7 | parseXml = require('../xml-parser.js').parseXml, 8 | response = require('../request-utilities.js').response, 9 | request = require('../request-utilities.js').request, 10 | XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 11 | 12 | 13 | 14 | var prepareSamlMessage = function (params) { 15 | var key; 16 | var saml = fs.readFileSync(__dirname + '/SAML.xml', 'utf8'); 17 | for (key in params) { 18 | saml = saml.replace('[' + key + ']', params[key]); 19 | } 20 | return saml; 21 | } 22 | 23 | 24 | 25 | 26 | 27 | function getServiceToken(params, callback) { 28 | var samlMessage = prepareSamlMessage({ 29 | username: params.username, 30 | password: params.password, 31 | endpoint: params.endpoint 32 | }); 33 | 34 | request.post(params.sts.host, params.sts.path, null, samlMessage, function (res, data) { 35 | 36 | parseXml(data, function (json) { 37 | 38 | // check for errors 39 | if (json['S:Envelope']['S:Body']['S:Fault']) { 40 | var error = json['S:Envelope']['S:Body']['S:Fault']['S:Detail']['psf:error']['psf:internalerror']['psf:text']; 41 | callback(error); 42 | return; 43 | } 44 | 45 | // extract token 46 | var token = json['S:Envelope']['S:Body']['wst:RequestSecurityTokenResponse']['wst:RequestedSecurityToken']['wsse:BinarySecurityToken']['_']; 47 | callback(null, { securitytoken: token }); 48 | }); 49 | }); 50 | } 51 | 52 | 53 | function setAuthenticationCookie(clientContext) { 54 | var self = this; 55 | clientContext.add_executingWebRequest(function (sender, e) { 56 | var headers = e.get_webRequest().get_headers(); 57 | if (self.FedAuth) { 58 | var authCookie = 'FedAuth=' + self.FedAuth + '; rtFa=' + self.rtFa; 59 | headers['Cookie'] = authCookie; 60 | } else { 61 | headers['Authorization'] = "Bearer " + self.appAccessToken; 62 | } 63 | }); 64 | } 65 | 66 | 67 | 68 | function getAuthenticationCookie(params, callback) { 69 | var token = params.token, 70 | url = urlparse(params.endpoint); 71 | 72 | request.post(url.hostname, url.path, null, token, function (res, data) { 73 | var cookies = response.parseCookies(res); 74 | 75 | callback(null, { 76 | FedAuth: cookies.FedAuth, 77 | rtFa: cookies.rtFa 78 | }); 79 | }); 80 | } 81 | 82 | 83 | 84 | 85 | function acquireTokenForUser(username, password, callback) { 86 | var self = this; 87 | 88 | var options = { 89 | username: username, 90 | password: password, 91 | sts: self.sts, 92 | endpoint: self.url.protocol + '//' + self.url.hostname + self.login 93 | } 94 | 95 | getServiceToken(options, function (err, data) { 96 | 97 | if (err) { 98 | callback(err); 99 | return; 100 | } 101 | 102 | options.token = data.securitytoken; 103 | getAuthenticationCookie(options, function (err, data) { 104 | self.FedAuth = data.FedAuth; 105 | self.rtFa = data.rtFa; 106 | callback(null, {}); 107 | }); 108 | }); 109 | } 110 | 111 | function acquireTokenForApp(clientId, clientSecret, callback) { 112 | var self = this; 113 | 114 | getRealm(self, (err, realm) => { 115 | if (err) { 116 | callback(err); 117 | return; 118 | } 119 | 120 | authenticateApp(self, realm, clientId, clientSecret, (err, access_token) => { 121 | if (err) { 122 | callback(err); 123 | return; 124 | } 125 | 126 | self.appAccessToken = access_token; 127 | callback(null, {}); 128 | }); 129 | }); 130 | } 131 | 132 | function getRealm(self, callback) { 133 | 134 | //ajaxPost(self.url.href + "_vti_bin/client.svc", { "Authorization": "Bearer " }, "").then(xmlhttp => { 135 | //added slash before '_vtin_bin' as if url does not contains trailing slash, url was forming incorrect 136 | //and it was returing 404 file not found 137 | ajaxPost(self.url.href + "/_vti_bin/client.svc", { "Authorization": "Bearer " }, "").then(xmlhttp => { 138 | var wwwAuthHeader = xmlhttp.getResponseHeader("WWW-Authenticate"); 139 | if (!wwwAuthHeader) 140 | callback("Error retrieving realm: " + xmlhttp.responseText, null); 141 | else { 142 | var realm = wwwAuthHeader.split(",")[0].split("=")[1].slice(1, -1); 143 | callback(null, realm); 144 | } 145 | }); 146 | } 147 | 148 | function authenticateApp(self, realm, clientId, clientSecret, callback) { 149 | var oauthUrl = "https://accounts.accesscontrol.windows.net/" + realm + "/tokens/OAuth/2"; 150 | var redirecturi = "https://localhost" 151 | var appResource = "00000003-0000-0ff1-ce00-000000000000" 152 | 153 | var body = "grant_type=client_credentials"; 154 | body += "&client_id=" + clientId + "@" + realm; 155 | body += "&client_secret=" + clientSecret; 156 | body += "&redirect_uri=" + redirecturi; 157 | body += "&resource=" + appResource + "/" + self.url.hostname + "@" + realm; 158 | 159 | var headers = { "Content-Type": "application/x-www-form-urlencoded" }; 160 | 161 | ajaxPost(oauthUrl, headers, body).then(xmlhttp => { 162 | var access_token = JSON.parse(xmlhttp.responseText).access_token; 163 | callback(access_token ? null : xmlhttp.responseText, access_token) 164 | }); 165 | } 166 | 167 | function ajaxPost(url, headers, body) { 168 | return new Promise((resolve, reject) => { 169 | var xmlhttp = new XMLHttpRequest(); 170 | xmlhttp.onreadystatechange = function() { 171 | if (xmlhttp.readyState == 4 ) { 172 | resolve(xmlhttp); 173 | } 174 | }; 175 | xmlhttp.open("POST", url, true); 176 | for (var k in headers) 177 | xmlhttp.setRequestHeader(k, headers[k]); 178 | xmlhttp.send(body); 179 | }); 180 | } 181 | 182 | 183 | function requestFormDigest(username, password, callback) { 184 | throw new Error('requestFormDigest function is not implemented'); 185 | } 186 | 187 | 188 | 189 | 190 | 191 | 192 | /** 193 | * Creates a new AuthenticationContext object. 194 | * @constructor 195 | * @param {string} url A URL that identifies a web site. 196 | * 197 | */ 198 | AuthenticationContext = function (url) { 199 | this.url = urlparse(url); 200 | this.host = this.url.host; 201 | this.path = this.url.path; 202 | this.protocol = this.url.protocol; 203 | 204 | 205 | // External Security Token Service for SPO 206 | this.sts = { 207 | host: 'login.microsoftonline.com', 208 | path: '/extSTS.srf' 209 | }; 210 | 211 | // Sign in page url 212 | this.login = '/_forms/default.aspx?wa=wsignin1.0'; 213 | }; 214 | 215 | AuthenticationContext.prototype = { 216 | acquireTokenForUser: acquireTokenForUser, 217 | acquireTokenForApp: acquireTokenForApp, 218 | setAuthenticationCookie: setAuthenticationCookie, 219 | requestFormDigest : requestFormDigest 220 | }; 221 | 222 | 223 | module.exports = AuthenticationContext; 224 | -------------------------------------------------------------------------------- /lib/csom-dependencies.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dependencies for SharePoint CSOM API. 3 | */ 4 | 5 | var Dependencies = { 6 | 7 | register: function () { 8 | 9 | global.navigator = { 10 | userAgent: "Node" 11 | }; 12 | 13 | 14 | global.document = { 15 | documentElement: {}, 16 | URL: '', 17 | getElementsByTagName: function (name) { 18 | return []; 19 | } 20 | }; 21 | 22 | global.window = { 23 | location: { 24 | href: '', 25 | pathname: '' 26 | }, 27 | document: { 28 | cookie: '' 29 | }, 30 | setTimeout: global.setTimeout, 31 | clearTimeout: global.clearTimeout, 32 | attachEvent: function () { } 33 | }; 34 | 35 | global.NotifyScriptLoadedAndExecuteWaitingJobs = function(scriptFileName) {}; 36 | global.Type = Function; 37 | this.registerNamespace("Sys"); 38 | this.registerNamespace("SP.UI"); 39 | this.registerNamespace("Microsoft.SharePoint.Packaging"); 40 | 41 | global.RegisterModuleInit = function() {}; 42 | }, 43 | 44 | 45 | registerNamespace : function(nsString) { 46 | var curNs = global; 47 | nsString.split(".").forEach(function(nsName) { 48 | if (typeof curNs[nsName] == "undefined") { 49 | curNs[nsName] = {}; 50 | } 51 | curNs = curNs[nsName]; 52 | curNs.__namespace = true; 53 | }); 54 | var nsName = nsString.split(".")[0]; 55 | global.window[nsName] = global[nsName]; 56 | }, 57 | 58 | 59 | setDocumentProperty : function (name, value) { 60 | global.document[name] = value; 61 | }, 62 | 63 | getDocumentProperty : function (name) { 64 | return global.document[name]; 65 | } 66 | }; 67 | 68 | exports.Dependencies = Dependencies; 69 | -------------------------------------------------------------------------------- /lib/csom-loader.js: -------------------------------------------------------------------------------- 1 | const vm = require('vm'), 2 | request = require('./request-utilities.js').request, 3 | Settings = require('./csom-settings.js').Settings, 4 | Dependencies = require('./csom-dependencies.js').Dependencies, 5 | proxy = require('./xmlhttprequest-proxy.js'), 6 | AuthenticationContext = require('./auth/authentication-context.js'); 7 | 8 | 9 | const Loader = { 10 | 11 | LocalSettings: { 12 | path: "./sp_modules/" 13 | }, 14 | 15 | resolvePath: function (basePath, module) { 16 | let path = basePath; 17 | if (module.lcid) 18 | path += module.lcid + "/"; 19 | path += module.filename; 20 | return path; 21 | }, 22 | 23 | 24 | loadFromPath: function (packages) { 25 | const self = this; 26 | packages.forEach(function (packageName) { 27 | Settings.packages[packageName].forEach(function (file) { 28 | const filePath = self.resolvePath(self.LocalSettings.path, file); 29 | const spm = require(filePath); 30 | }); 31 | }); 32 | } 33 | }; 34 | 35 | module.exports = { 36 | setLoaderOptions: function (options) { 37 | const packages = options.packages || ['core']; 38 | if (packages.indexOf('core') === -1) packages.splice(0, 0, 'core'); 39 | Dependencies.register(); 40 | Loader.loadFromPath(packages); 41 | Dependencies.setDocumentProperty('URL', options.url); 42 | }, 43 | getLoaderOptions : function (){ 44 | return {url : Dependencies.getDocumentProperty('URL')} 45 | }, 46 | AuthenticationContext: AuthenticationContext 47 | }; 48 | -------------------------------------------------------------------------------- /lib/csom-settings.js: -------------------------------------------------------------------------------- 1 | var Settings = { 2 | 3 | version: "16.0.19918.12024", 4 | 5 | minimizedScripts: false, 6 | 7 | scriptsFromLocal : true, 8 | 9 | packages : { 10 | 'core' : [ 11 | { 12 | filename: 'initstrings.debug.js', 13 | lcid: 1033 14 | }, 15 | { 16 | filename: 'init.debug.js' 17 | }, 18 | { 19 | filename: 'msajaxbundle.debug.js' 20 | }, 21 | { 22 | filename: 'ext_msajax_patch.js', 23 | external: true 24 | }, 25 | { 26 | filename: 'sp.core.debug.js' 27 | }, 28 | { 29 | filename: 'sp.runtime.debug.js' 30 | }, 31 | { 32 | filename: 'sp.DEBUG.js' 33 | }, 34 | { 35 | filename: 'sp.extensions.js', 36 | external: true 37 | } 38 | ], 39 | 'taxonomy' : [ 40 | { 41 | name: 'taxonomy', 42 | filename: 'sp.taxonomy.debug.js' 43 | } 44 | ], 45 | 'userprofile' : [ 46 | { 47 | name: 'userprofile', 48 | filename: 'sp.userprofiles.debug.js' 49 | } 50 | ], 51 | 'publishing' : [ 52 | { 53 | name: 'publishing', 54 | filename: 'sp.publishing.debug.js' 55 | } 56 | ], 57 | 'policy' : [ 58 | { 59 | name: 'policy', 60 | filename: 'sp.policy.debug.js' 61 | } 62 | ] 63 | } 64 | 65 | 66 | }; 67 | 68 | exports.Settings = Settings; 69 | -------------------------------------------------------------------------------- /lib/request-utilities.js: -------------------------------------------------------------------------------- 1 | var http = require('http'), 2 | https = require('https'); 3 | 4 | 5 | 6 | function getRequest(host, path, headers, callback) { 7 | var options = { 8 | host: host, 9 | path: path, 10 | method: 'GET', 11 | headers: headers 12 | }; 13 | 14 | https.get(options, function (response) { 15 | var body = ""; 16 | response.on('data', function (d) { 17 | body += d; 18 | }); 19 | response.on('end', function () { 20 | callback(body); 21 | }); 22 | response.on('error', function (e) { 23 | callback(null); 24 | }); 25 | }); 26 | } 27 | 28 | function postRequest(host, path, headers, postData, callback) { 29 | //var protocol = (ssl ? https : http); 30 | var options = { 31 | method: 'POST', 32 | host: host, 33 | path: path, 34 | headers: { 35 | 'Content-Length': postData.length 36 | } 37 | }; 38 | 39 | 40 | var post = https.request(options, function (res) { 41 | var data = ''; 42 | res.setEncoding('utf8'); 43 | res.on('data', function(chunk) { 44 | data += chunk; 45 | }); 46 | 47 | res.on('end', function() { 48 | callback(res,data); 49 | }); 50 | }); 51 | post.end(postData); 52 | } 53 | 54 | 55 | function parseCookies(response) { 56 | var allCookies = {}; 57 | response.headers['set-cookie'].forEach(function (items) { 58 | items.split('; ').forEach(function (item) { 59 | var parts = item.split('='); 60 | allCookies[parts.shift().trim()] = decodeURI(parts.join('=')); 61 | }); 62 | }); 63 | return allCookies; 64 | } 65 | 66 | exports.request = { 67 | post: postRequest, 68 | get: getRequest 69 | }; 70 | 71 | exports.response = { 72 | parseCookies: parseCookies 73 | }; 74 | -------------------------------------------------------------------------------- /lib/sp_modules/1033/initstrings.debug.js: -------------------------------------------------------------------------------- 1 | //WARNING! This file is automatically generated by the system. Do not edit. 2 | 3 | var Strings; if (Strings === undefined) { Strings=new Object(); } 4 | Strings.STS=function(){}; 5 | Strings.STS.L_NewTab='New tab'; 6 | Strings.STS.L_CalloutLastEditedNameAndDate='Changed by ^1 on ^2'; 7 | Strings.STS.L_CalloutSourceUrlHeader='Location'; 8 | Strings.STS.L_SPDiscBestUndo='Remove best reply'; 9 | Strings.STS.L_SPClientManage='manage'; 10 | Strings.STS.L_SPAddNewWiki='new Wiki page'; 11 | Strings.STS.L_SPCategorySortRecent='Recent'; 12 | Strings.STS.L_ViewSelectorTitle='Change View'; 13 | Strings.STS.L_SPDiscNumberOfLikes='{0} likes||{0} like||{0} likes'; 14 | Strings.STS.L_Timeline_DfltViewName='Timeline'; 15 | Strings.STS.L_TimelineToday='Today'; 16 | Strings.STS.L_SPDiscNoPreviewAvailable='No preview available for this reply'; 17 | Strings.STS.L_NODOCView='There are no documents in this view.'; 18 | Strings.STS.L_SPBlogPostAuthorCategories='by {0} in {1}'; 19 | Strings.STS.L_SPBlogsNoItemsInCategory='There are no posts in this category.'; 20 | Strings.STS.L_QRCodeDescription='Scan this QR code with your phone or tablet to open {0}'; 21 | Strings.STS.L_RelativeDateTime_Yesterday='Yesterday'; 22 | Strings.STS.L_SPSelected='Selected'; 23 | Strings.STS.L_Shortcut_Processing='Shortcut is being processed, try again at a later time to get shortcut target'; 24 | Strings.STS.L_Status_Text=' Status'; 25 | Strings.STS.L_SPBlogPostOn='posted on {0} at {1}'; 26 | Strings.STS.L_FieldType_File_OneNote='OneNote notebook'; 27 | Strings.STS.L_NewDocumentFolderImgAlt='Create a new folder'; 28 | Strings.STS.L_SPDiscSaveChangesButton='Save Changes'; 29 | Strings.STS.L_SPDiscDeleteConfirm='Are you sure you want to delete this post?'; 30 | Strings.STS.L_BusinessDataField_ActionMenuAltText='Actions Menu'; 31 | Strings.STS.L_SPMax='Maximum'; 32 | Strings.STS.L_GSCallout='The Getting Started tasks are available from the Settings menu at any time.'; 33 | Strings.STS.L_Timeline_BlankTLHelpfulText='Add tasks with dates to the timeline'; 34 | Strings.STS.L_UserFieldInlineMore='^1, ^2, ^3, and ^4^5 more^6'; 35 | Strings.STS.L_SPStdev='Std Deviation'; 36 | Strings.STS.L_SPCalloutAction_ellipsis='More actions'; 37 | Strings.STS.L_SPDiscNumberOfRepliesIntervals='0||1||2-'; 38 | Strings.STS.L_SPDiscLastPostAdded='Most recent post {0}'; 39 | Strings.STS.L_SPDiscSubmitReplyButton='Reply'; 40 | Strings.STS.L_ShowFewerItems='Show fewer'; 41 | Strings.STS.L_SPAddNewDocument='new document'; 42 | Strings.STS.L_AccRqEmptyView='You are all up to date! There are no requests pending.'; 43 | Strings.STS.L_RelativeDateTime_Format_DateTimeFormattingString_Override=''; 44 | Strings.STS.L_SPClientAddToOneDrive_OnPrem='add to my personal files'; 45 | Strings.STS.L_SPCategorySortPopular='What\'s hot'; 46 | Strings.STS.L_ClientPivotControlOverflowMenuAlt='Click to open to customize or create views.'; 47 | Strings.STS.L_SPDiscReportAbuseDialogTitle='Report offensive content'; 48 | Strings.STS.L_BlogPostFolder='Posts'; 49 | Strings.STS.L_SPClientEditTooltip='Open a selected document for editing.'; 50 | Strings.STS.L_select_deselect_all_alt_checked='All items selected'; 51 | Strings.STS.L_SPDiscLike='Like'; 52 | Strings.STS.L_MySite_DocTitle='{0}\'s documents'; 53 | Strings.STS.L_viewedit_onetidSortAsc='Sort Ascending'; 54 | Strings.STS.L_NewDocumentFolder='New folder'; 55 | Strings.STS.L_SPDiscSortNewest='Newest'; 56 | Strings.STS.L_SPDiscMetaLineCategory='In {0}'; 57 | Strings.STS.L_SPReputationScore='reputation score'; 58 | Strings.STS.L_Prev='Previous'; 59 | Strings.STS.L_SPClientNewAK='n'; 60 | Strings.STS.L_CalloutCreateSubtask='Create Subtask'; 61 | Strings.STS.L_SPDiscCategoryPage='Category'; 62 | Strings.STS.L_NewDocumentUploadFile='Upload existing file'; 63 | Strings.STS.L_StatusBarYellow_Text='Important'; 64 | Strings.STS.L_TimelineDisplaySummaryInfoOneDate='Title: {0}
Date: {1}
'; 65 | Strings.STS.L_SPCommentsAddButton='Post'; 66 | Strings.STS.L_SPAddNewDevApp='new app to deploy'; 67 | Strings.STS.L_SPDiscMarkAsFeaturedTooltip='Mark the selected discussions as Featured. Featured discussions show up at the top of their category.'; 68 | Strings.STS.L_QRCodeBigger='Larger'; 69 | Strings.STS.L_SPClientNewTooltip='Create a new document or folder in this library.'; 70 | Strings.STS.L_BusinessDataField_ActionMenuLoadingMessage='Loading...'; 71 | Strings.STS.L_ColumnHeadClickSortByAriaLabel='Click to sort by'; 72 | Strings.STS.L_RelativeDateTime_XMinutesFuture='In {0} minute||In {0} minutes'; 73 | Strings.STS.L_Dialog='Dialog'; 74 | Strings.STS.L_FieldType_Folder_OneNote='OneNote'; 75 | Strings.STS.L_SPDiscTopicPage='Topic'; 76 | Strings.STS.L_SPBlogsShareCommand='Email a link'; 77 | Strings.STS.L_SPSelection_Checkbox='Selection Checkbox'; 78 | Strings.STS.L_SPQCB_More_Text='More'; 79 | Strings.STS.L_SuiteNav_Help_Title_Text='Open the Help menu to access help documentation, and legal and privacy information from Microsoft'; 80 | Strings.STS.L_SPCategorySortAlphaRev='Z-A'; 81 | Strings.STS.L_OkButtonCaption='OK'; 82 | Strings.STS.L_SuiteNav_Help_Link_Text='Help'; 83 | Strings.STS.L_SPDiscUnmarkAsFeaturedTooltip='Remove this discussion from featured discussions.'; 84 | Strings.STS.L_SPAvg='Average'; 85 | Strings.STS.L_SPClientNoComments='There are no comments for this post.'; 86 | Strings.STS.L_MyDocsSharedWithUsNoDocuments='No one is sharing a document with this group at this time.'; 87 | Strings.STS.L_Next='Next'; 88 | Strings.STS.L_TimelineDisplaySummaryInfoTwoDates='Title: {0}
Start Date: {1}
End Date: {2}
'; 89 | Strings.STS.L_NewDocumentVisio='Visio drawing'; 90 | Strings.STS.L_SPRatingsCountAltText='{0} people rated this.||{0} person rated this.||{0} people rated this.'; 91 | Strings.STS.L_SPDiscSortMostLiked='Most liked'; 92 | Strings.STS.L_SPQCB_SPClientAddToOneDrive='Add to my OneDrive'; 93 | Strings.STS.L_SPBlogPostAuthorTimeCategories='by {0} at {1} in {2}'; 94 | Strings.STS.L_SPDiscEdit='Edit'; 95 | Strings.STS.L_SPClientEdit='edit'; 96 | Strings.STS.L_DocLibNewLookHeading='Document Libraries are getting a new look!'; 97 | Strings.STS.L_SuiteNav_NavMenu_Title_Text='Open the app launcher to access your SharePoint apps'; 98 | Strings.STS.L_SharedWithDialogTitle='Shared With'; 99 | Strings.STS.L_SlideShowPrevButton_Text='Previous'; 100 | Strings.STS.L_SPClientAddToOneDriveAK='a'; 101 | Strings.STS.L_QRCodeSmaller='Smaller'; 102 | Strings.STS.L_SPDiscReportAbuseDialogText2='Let us know what the problem is and we\'ll look into it.'; 103 | Strings.STS.L_SPDiscHomePage='Community Home'; 104 | Strings.STS.L_FieldType_File='File'; 105 | Strings.STS.L_SharingHintShared_Short='Shared'; 106 | Strings.STS.L_SPClientNumComments='Number of Comment(s)'; 107 | Strings.STS.L_select_deselect_all='Select and deselect all items'; 108 | Strings.STS.L_SPDiscSortDatePosted='Oldest'; 109 | Strings.STS.L_SPDiscFilterFeatured='Featured'; 110 | Strings.STS.L_SPCalloutEdit_URL='URL of the current item.'; 111 | Strings.STS.L_SPDiscReported='Reported'; 112 | Strings.STS.L_MyDocsHighlightsNoDocuments='There are no documents highlights at this point.'; 113 | Strings.STS.L_RelativeDateTime_AboutAMinute='About a minute ago'; 114 | Strings.STS.L_SPDiscNumberOfBestResponsesIntervals='0||1||2-'; 115 | Strings.STS.L_QRCodeFontSizeStyleAttr='1.46em'; 116 | Strings.STS.L_SPBlogsNoItemsInMonth='There are no posts in this month.'; 117 | Strings.STS.L_SPDiscSubmitReportButton='Report'; 118 | Strings.STS.L_FieldType_File_workbook='Excel workbook'; 119 | Strings.STS.L_NewDocumentWordImgAlt='Create a new Word document'; 120 | Strings.STS.L_RelativeDateTime_XHoursFuture='In {0} hour||In {0} hours'; 121 | Strings.STS.L_OpenMenuECB='More options'; 122 | Strings.STS.L_SuiteNav_NavMenu_MyApps_Text='My apps'; 123 | Strings.STS.L_SuiteNav_App_Provision_Text='Setting up...'; 124 | Strings.STS.L_RelativeDateTime_AFewSecondsFuture='In a few seconds'; 125 | Strings.STS.L_Fld_SortFilterOpt_Alt='Press enter key to choose sort or filter options'; 126 | Strings.STS.L_RelativeDateTime_Today='Today'; 127 | Strings.STS.L_Subscribe_Text='Alert me'; 128 | Strings.STS.L_select_deselect_item_alt_unchecked='item deselected'; 129 | Strings.STS.L_SPMemberNotActive='This user is no longer a member of this community'; 130 | Strings.STS.L_MyFoldersSharedWithMeNoItem='When someone shares a folder with you it will appear here.'; 131 | Strings.STS.L_RelativeDateTime_AboutAMinuteFuture='In about a minute'; 132 | Strings.STS.L_SPMembersNewHeader='New members'; 133 | Strings.STS.L_SPMin='Minimum'; 134 | Strings.STS.L_SPClientUpload='upload'; 135 | Strings.STS.L_SPQCB_Sync_Text='Sync'; 136 | Strings.STS.L_SPQCB_EditList_Text='Edit List'; 137 | Strings.STS.L_SPDiscPopularityBestResponse='best reply'; 138 | Strings.STS.L_ViewPivots_View_alt='View'; 139 | Strings.STS.L_SPDiscSortMyPosts='My discussions'; 140 | Strings.STS.L_MyDocsSharedWithMeNoDocuments='No one is sharing a document with you at this time.'; 141 | Strings.STS.L_SPClientNew='new'; 142 | Strings.STS.L_OldPanel_CloseText='Close panel'; 143 | Strings.STS.L_SPClientAddToOneDrive='add to my OneDrive'; 144 | Strings.STS.L_Loading_Text='Working on it...'; 145 | Strings.STS.L_SaveThisViewButton='Save This View'; 146 | Strings.STS.L_RelativeDateTime_XMinutesFutureIntervals='1||2-'; 147 | Strings.STS.L_OpenMenuAriaLabel='Open Menu dialog for selected item'; 148 | Strings.STS.L_CalloutDeleteAction='Delete'; 149 | Strings.STS.L_ListNewLookHeading='Lists are getting a new look!'; 150 | Strings.STS.L_ABOUT_USER='About {0}'; 151 | Strings.STS.L_SharedWithNone_Short='Only you'; 152 | Strings.STS.L_NODOCSEARCH='Your search returned no results.'; 153 | Strings.STS.L_SPCalloutAction_POST='Share file or folder on Yammer'; 154 | Strings.STS.L_RelativeDateTime_XHoursFutureIntervals='1||2-'; 155 | Strings.STS.L_SPView_Response='View Response'; 156 | Strings.STS.L_SPGroupBoardTimeCardSettingsNotFlex='Normal'; 157 | Strings.STS.L_SPDiscPostTimestampEdited='{0}, edited {1}'; 158 | Strings.STS.L_SPQCB_StopEditList_Tooltip='Stop editing the list and save changes'; 159 | Strings.STS.L_SPDiscNumberOfRatings='{0} ratings||{0} rating||{0} ratings'; 160 | Strings.STS.L_TimelineStart='Start'; 161 | Strings.STS.L_SPDiscCancelReplyButton='Cancel'; 162 | Strings.STS.L_SPDiscUnmarkAsFeatured='Unmark as featured'; 163 | Strings.STS.L_NewDocumentExcel='Excel workbook'; 164 | Strings.STS.L_AddCategory='Add Category'; 165 | Strings.STS.L_idPresEnabled='Presence enabled for this column'; 166 | Strings.STS.L_SPClientAddToOneDriveTooltip_OnPrem='Create a link in your personal files'; 167 | Strings.STS.L_CalloutLastEditedHeader='Last edited by'; 168 | Strings.STS.L_SPAddNewItem='new item'; 169 | Strings.STS.L_FieldType_File_img='Image file'; 170 | Strings.STS.L_DocLibCalloutSize='300'; 171 | Strings.STS.L_SPStopEditingTitle='Stop editing and save changes.'; 172 | Strings.STS.L_DocLibNewLookBody='Check it out and let us know what you think.'; 173 | Strings.STS.L_NODOC='There are no files in the view \"%0\".'; 174 | Strings.STS.L_ViewPivots_View_Selected_alt='Selected'; 175 | Strings.STS.L_RequiredField_Text='Required Field'; 176 | Strings.STS.L_BlogCategoriesFolder='Categories'; 177 | Strings.STS.L_SPAddNewAndDrag='{0} or drag files here'; 178 | Strings.STS.L_SlideShowNextButton_Text='Next'; 179 | Strings.STS.L_Tag_Callout_BlockDeleteItem='Editing this item is blocked by a policy in your organization.'; 180 | Strings.STS.L_select_deselect_all_alt='Press space key to select all items on this list'; 181 | Strings.STS.L_NewDocumentVisioImgAlt='Create a new Visio drawing'; 182 | Strings.STS.L_UserFieldInlineAndMore='^1 and ^2 more'; 183 | Strings.STS.L_SPClientShareAK='s'; 184 | Strings.STS.L_SPQCB_New_Text='New'; 185 | Strings.STS.L_SPMembersReputedHeader='Top contributors'; 186 | Strings.STS.L_SPMemberSince='Joined {0}'; 187 | Strings.STS.L_SPBlogsEditCommand='Edit'; 188 | Strings.STS.L_SPDiscReplyPlaceholder='Add a reply'; 189 | Strings.STS.L_SPCalloutAction_EDIT='Open the document in Office Client or open a folder'; 190 | Strings.STS.L_SPAddNewEvent='new event'; 191 | Strings.STS.L_HideThisTooltip='Remove these tiles from the page and access them later from the Site menu.'; 192 | Strings.STS.L_NewBlogPostFailed_Text='Unable to connect to the blog program because it may be busy or missing. Check the program, and then try again.'; 193 | Strings.STS.L_ListFieldAttachments='Attachments'; 194 | Strings.STS.L_Categories='Categories'; 195 | Strings.STS.L_SPRepliesToReachNextLevelIntervals='0||1||2-'; 196 | Strings.STS.L_select_deselect_item_alt='Select or deselect an item'; 197 | Strings.STS.L_SPDiscDelete='Delete'; 198 | Strings.STS.L_SPClientSync='sync'; 199 | Strings.STS.L_DeleteList_Text='Delete list'; 200 | Strings.STS.L_SPClientNext='Next'; 201 | Strings.STS.L_SPCalloutAction_SHARE='Share file or folder with other person or group'; 202 | Strings.STS.L_MyFoldersSharedWithMeRenderListFailed='Sorry, we need a little more time to get your shared folders. Check back soon.'; 203 | Strings.STS.L_SPDiscNumberOfReplies='{0} replies||{0} reply||{0} replies'; 204 | Strings.STS.L_SPQCB_Upload_Text='Upload'; 205 | Strings.STS.L_RelativeDateTime_XHours='{0} hour ago||{0} hours ago'; 206 | Strings.STS.L_SPClientNumCommentsTemplate='{0} comments||{0} comment||{0} comments'; 207 | Strings.STS.L_SPDiscNumberOfDiscussionsIntervals='0||1||2-'; 208 | Strings.STS.L_SPAddNewLink='new link'; 209 | Strings.STS.L_SPClientEditAK='e'; 210 | Strings.STS.L_RelativeDateTime_XMinutesIntervals='1||2-'; 211 | Strings.STS.L_CalloutTargetAltTag='Callout'; 212 | Strings.STS.L_CSR_NoSortFilter='This column type can\'t be sorted or filtered.'; 213 | Strings.STS.L_SPDiscBestHeader='Best reply'; 214 | Strings.STS.L_SharingHintShared='Shared with some people'; 215 | Strings.STS.L_SPQCB_ListSettings_Tooltip='Modify settings for the list'; 216 | Strings.STS.L_SPDiscBest='Best reply'; 217 | Strings.STS.L_SPDiscFeaturedHeader='Featured discussions'; 218 | Strings.STS.L_SPClientShare='share'; 219 | Strings.STS.L_SPDiscReportAbuseSuccessNotification='Thank you! Administrators will soon look into your report.'; 220 | Strings.STS.L_CalloutDispBarsAction='Display as bar'; 221 | Strings.STS.L_DLP_Callout_PolicyTip='This item conflicts with a policy in your organization.'; 222 | Strings.STS.L_RelativeDateTime_DayAndTime='{0} at {1}'; 223 | Strings.STS.L_NewDocumentPowerPoint='PowerPoint presentation'; 224 | Strings.STS.L_SPDiscNumberOfLikesIntervals='0||1||2-'; 225 | Strings.STS.L_SPDiscInitialPost='By {0}'; 226 | Strings.STS.L_CalloutOpenAction='Open'; 227 | Strings.STS.L_SPClientNoTitle='No Title'; 228 | Strings.STS.L_DLP_Callout_BlockedItem='Access to this item is blocked. It conflicts with a policy in your organization.'; 229 | Strings.STS.L_select_deselect_all_alt_unchecked='All items deselected'; 230 | Strings.STS.L_SPClientUploadAK='u'; 231 | Strings.STS.L_SPDiscSubmitEditButton='Save'; 232 | Strings.STS.L_FieldType_File_Document='Word document'; 233 | Strings.STS.L_SPClientShareTooltip='Invite people to a selected document or folder.'; 234 | Strings.STS.L_FieldType_SharedFolder='Type Shared folder'; 235 | Strings.STS.L_SPCollapse='collapse'; 236 | Strings.STS.L_Mybrary_Branding_Text2_OnPrem='Files'; 237 | Strings.STS.L_SPVar='Variance'; 238 | Strings.STS.L_SPRepliesToReachNextLevel='Earn {0} more points to move to the next level||Earn {0} more point to move to the next level||Earn {0} more points to move to the next level'; 239 | Strings.STS.L_ImgAlt_Text='Picture'; 240 | Strings.STS.L_SPRatingsRatedAltText='You rated this as {0} stars. To modify, click on the stars.||You rated this as {0} star. To modify, click on the stars.||You rated this as {0} stars. To modify, click on the stars.'; 241 | Strings.STS.L_SPClientNumCommentsTemplateIntervals='0||1||2-'; 242 | Strings.STS.L_SPDiscSortMostRecent='Recent'; 243 | Strings.STS.L_OpenInWebViewer_Text='Open in web viewer: ^1'; 244 | Strings.STS.L_SPDiscSortUnanswered='Unanswered questions'; 245 | Strings.STS.L_OpenMenu='Open Menu'; 246 | Strings.STS.L_DeleteList_Confirmation='Are you sure you want to send the list to the site Recycle Bin?'; 247 | Strings.STS.L_SPDiscMembersPage='Members'; 248 | Strings.STS.L_SPEmailPostLink='Email Post Link'; 249 | Strings.STS.L_SPDiscLastReply='Latest reply by {0}'; 250 | Strings.STS.L_UserFieldInlineThree='^1, ^2, and ^3'; 251 | Strings.STS.L_NewDocumentCalloutSize='280'; 252 | Strings.STS.L_MyDocsSharedWithMeAuthorColumnTitle='Shared By'; 253 | Strings.STS.L_ShowMoreItems='Show more'; 254 | Strings.STS.L_NewBlogPost_Text='Unable to find a SharePoint compatible application.'; 255 | Strings.STS.L_SPRatingsNotRatedAltTextIntervals='0||1||2-'; 256 | Strings.STS.L_ListsFolder='Lists'; 257 | Strings.STS.L_SPDiscLastActivity='Last active on {0}'; 258 | Strings.STS.L_SPClientAddToOneDriveTooltip='Create a link in your OneDrive'; 259 | Strings.STS.L_RelativeDateTime_TomorrowAndTime='Tomorrow at {0}'; 260 | Strings.STS.L_OpenFilterMenu='Open {0} sort and filter menu'; 261 | Strings.STS.L_DocLibNewLookCheckItOutButton='Check it out'; 262 | Strings.STS.L_SPBlogsEnumSeparator=', '; 263 | Strings.STS.L_SPDiscMarkAsFeatured='Mark as featured'; 264 | Strings.STS.L_ViewSelectorCurrentView='Current View'; 265 | Strings.STS.L_SPBlogsCommentCommand='Comment'; 266 | Strings.STS.L_StatusBarBlue_Text='Information'; 267 | Strings.STS.L_SPAddNewAndEdit='{0} or {1}edit{2} this list'; 268 | Strings.STS.L_SPQCB_SPClientAddToOneDrive_OnPrem='Add to my personal files'; 269 | Strings.STS.L_BusinessDataField_Blank='(Blank)'; 270 | Strings.STS.L_Mybrary_Branding_Text2='OneDrive for Business'; 271 | Strings.STS.L_SPEditList='{0}edit{1} this list'; 272 | Strings.STS.L_MruDocs_WebpartTitle='Recent Documents'; 273 | Strings.STS.L_viewedit_onetidSortDesc='Sort Descending'; 274 | Strings.STS.L_SPDiscReportAbuse='Report to moderator'; 275 | Strings.STS.L_CalloutEditDatesAction='Edit date range'; 276 | Strings.STS.L_RelativeDateTime_XHoursIntervals='1||2-'; 277 | Strings.STS.L_SPThrottleErrorTitle='Something\'s not right'; 278 | Strings.STS.L_SuiteNav_ContextualTitleFormat_Text='{0} settings'; 279 | Strings.STS.L_SPAddNewAnnouncement='new announcement'; 280 | Strings.STS.L_RelativeDateTime_AFewSeconds='A few seconds ago'; 281 | Strings.STS.L_SPThrottleErrorText='The page you requested is temporarily unavailable. We apologize for the inconvenience, please check back in a few minutes.'; 282 | Strings.STS.L_SPDiscRepliedToLink='{0}\'s post'; 283 | Strings.STS.L_SPRatingsCountAltTextIntervals='0||1||2-'; 284 | Strings.STS.L_NewDocumentExcelImgAlt='Create a new Excel workbook'; 285 | Strings.STS.L_RelativeDateTime_XDaysFutureIntervals='1||2-'; 286 | Strings.STS.L_NoTitle='No Title'; 287 | Strings.STS.L_FieldType_File_PPT='Powerpoint presentation'; 288 | Strings.STS.L_SPDiscExpandPostAltText='Expand post'; 289 | Strings.STS.L_SPDiscPostImageIndicatorAltText='This post contains an image.'; 290 | Strings.STS.L_SPCategoryEmptyFillerText='What do you want to talk about? Add some {0}.'; 291 | Strings.STS.L_SPMeetingWorkSpace='Meeting Workspace'; 292 | Strings.STS.L_AddColumnMenuTitle='Add Column'; 293 | Strings.STS.L_RelativeDateTime_Tomorrow='Tomorrow'; 294 | Strings.STS.L_CalloutShareAction='Share'; 295 | Strings.STS.L_SPClientSyncTooltip='Create a synchronized copy of this library on your computer.'; 296 | Strings.STS.L_SharedWithNone='Only shared with you'; 297 | Strings.STS.L_SPCategorySortAlpha='A-Z'; 298 | Strings.STS.L_BusinessDataField_UpdateImageAlt='Refresh External Data'; 299 | Strings.STS.L_SPEllipsis='...'; 300 | Strings.STS.L_RelativeDateTime_XDaysFuture='{0} day from now||{0} days from now'; 301 | Strings.STS.L_SPDiscHeroLinkFormat='new discussion'; 302 | Strings.STS.L_SPQCB_StopEditListAK='s'; 303 | Strings.STS.L_FieldType_Folder='Folder'; 304 | Strings.STS.L_SPNo='No'; 305 | Strings.STS.L_SPBlogPostAuthor='by {0}'; 306 | Strings.STS.L_SPBlogsNoItems='There are no posts in this blog.'; 307 | Strings.STS.L_SPQCB_ListSettings_Text='List Settings'; 308 | Strings.STS.L_TimelineDateRangeFormat='{0} - {1}'; 309 | Strings.STS.L_SPDiscCollapsePostAltText='Collapse post'; 310 | Strings.STS.L_select_deselect_item_alt_checked='item selected'; 311 | Strings.STS.L_SPStopEditingList='{0}Stop{1} editing this list'; 312 | Strings.STS.L_NewDocumentExcelFormImgAlt='Create a new Excel survey'; 313 | Strings.STS.L_EmptyList='The list is empty. Add tiles from the {0} view.'; 314 | Strings.STS.L_SPDiscUnlike='Unlike'; 315 | Strings.STS.L_NewDocumentPowerPointImgAlt='Create a new PowerPoint presentation'; 316 | Strings.STS.L_UserFieldInlineTwo='^1 and ^2'; 317 | Strings.STS.L_SPDiscRepliedToLabel='In response to {0}'; 318 | Strings.STS.L_SPAddNewItemTitle='Add a new item to this list or library.'; 319 | Strings.STS.L_NewDocumentExcelForm='Excel survey'; 320 | Strings.STS.L_OpenMenuKeyAccessible='Click to sort column'; 321 | Strings.STS.L_SPAddNewPicture='new picture'; 322 | Strings.STS.L_SPDiscAllRepliesLabel='All replies'; 323 | Strings.STS.L_NewDocumentCalloutTitle='Create a new file'; 324 | Strings.STS.L_Copy_Text='Copy'; 325 | Strings.STS.L_SPMembersTopContributorsHeader='Top contributors'; 326 | Strings.STS.L_SPDiscHeroLinkAltText='add new discussion'; 327 | Strings.STS.L_SPClientPrevious='Previous'; 328 | Strings.STS.L_ViewPivots_alt='All Documents'; 329 | Strings.STS.L_SPQCB_EditListAK='e'; 330 | Strings.STS.L_StatusBarGreen_Text='Success'; 331 | Strings.STS.L_SPYes='Yes'; 332 | Strings.STS.L_HideThis='Remove this'; 333 | Strings.STS.L_RelativeDateTime_Format_DateTimeFormattingString='{0}, {1}'; 334 | Strings.STS.L_OpenMenu_Text='Open Menu'; 335 | Strings.STS.L_SPMerge='Merge'; 336 | Strings.STS.L_SPRelink='Relink'; 337 | Strings.STS.L_SPDiscBestUndoTooltip='Remove as best reply'; 338 | Strings.STS.L_NewDocumentWord='Word document'; 339 | Strings.STS.L_RelativeDateTime_AboutAnHourFuture='In about an hour'; 340 | Strings.STS.L_SPQCB_StopEditList_Text='Stop Edit'; 341 | Strings.STS.L_SPAddNewApp='new app'; 342 | Strings.STS.L_RelativeDateTime_AboutAnHour='About an hour ago'; 343 | Strings.STS.L_All_PromotedLinks='All Promoted Links'; 344 | Strings.STS.L_MruDocs_ErrorMessage='We couldn\'t find any recently used documents for you.'; 345 | Strings.STS.L_RelativeDateTime_XDaysIntervals='1||2-'; 346 | Strings.STS.L_Fldheader_Type='File type icon'; 347 | Strings.STS.L_SPDiscSortAnswered='Answered questions'; 348 | Strings.STS.L_NewDocumentOneNoteImgAlt='Create a new OneNote notebook'; 349 | Strings.STS.L_OpenInClientApp_Text='Open in ^1: ^2'; 350 | Strings.STS.L_RelativeDateTime_YesterdayAndTime='Yesterday at {0}'; 351 | Strings.STS.L_SPRatingsRatedAltTextIntervals='0||1||2-'; 352 | Strings.STS.L_SPQCB_ListSettings_AK='l'; 353 | Strings.STS.L_QRCodeFontFamilyStyleAttr='\'Segoe UI Semilight\', \'Segoe UI\', Helvetica, Arial, sans-serif'; 354 | Strings.STS.L_SuiteNav_SignIn='Sign in'; 355 | Strings.STS.L_SPDiscReportAbuseDialogText1='How can we help? We hear you have an issue with this post:'; 356 | Strings.STS.L_AddLink='Add Link'; 357 | Strings.STS.L_SPCount='Count'; 358 | Strings.STS.L_SPDragAndDropAttract='Drag files here to upload'; 359 | Strings.STS.L_SuiteNav_ProductName='SharePoint'; 360 | Strings.STS.L_SPDiscNumberOfDiscussions='{0} discussions||{0} discussion||{0} discussions'; 361 | Strings.STS.L_ProfileSettingSave_Title='Profile Changes'; 362 | Strings.STS.L_SPClientSyncAK='y'; 363 | Strings.STS.L_SelectBackColorKey_TEXT='W'; 364 | Strings.STS.L_SPDiscRefresh='Refresh'; 365 | Strings.STS.L_DocLibTable_Alt='List of folders and files, use up and down arrow keys to navigate, use the SPACE key to select within the list.'; 366 | Strings.STS.L_DocLibNewLookDismiss='Close'; 367 | Strings.STS.L_SuiteNav_Settings_Title_Text='Open the Settings menu'; 368 | Strings.STS.L_SPDiscNumberOfRatingsIntervals='0||1||2-'; 369 | Strings.STS.L_SPCategoryEmptyFillerTextCategory='categories'; 370 | Strings.STS.L_SuiteNav_App_Provision_Alt_Text='This app is still being set up'; 371 | Strings.STS.L_RelativeDateTime_XDays='{0} day ago||{0} days ago'; 372 | Strings.STS.L_StatusBarRed_Text='Very Important'; 373 | Strings.STS.L_SPDiscReply='Reply'; 374 | Strings.STS.L_SPClientUploadTooltip='Upload a document from your computer to this library.'; 375 | Strings.STS.L_NewDocumentOneNote='OneNote notebook'; 376 | Strings.STS.L_SPQCB_Share_Text='Share'; 377 | Strings.STS.L_FieldType_File_Shortcut='Shortcut file'; 378 | Strings.STS.L_CalloutLastEditedNameAndDate2='Changed by you on ^1'; 379 | Strings.STS.L_SPAddNewTask='new task'; 380 | Strings.STS.L_SPSum='Sum'; 381 | Strings.STS.L_CalloutLastEditedYou='you'; 382 | Strings.STS.L_SPDiscNumberOfBestResponses='{0} best replies||{0} best reply||{0} best replies'; 383 | Strings.STS.L_SPCommentsAdd='Add a comment'; 384 | Strings.STS.L_AddColumn_Text='Add column'; 385 | Strings.STS.L_SPClientManageTooltip='Do other activities with selected documents or folders.'; 386 | Strings.STS.L_SPBlogPostAuthorTime='by {0} at {1}'; 387 | Strings.STS.L_SPClientManageAK='m'; 388 | Strings.STS.L_TimelineFinish='Finish'; 389 | Strings.STS.L_SPExpand='expand'; 390 | Strings.STS.L_SPEditListTitle='Edit this list using Quick Edit mode.'; 391 | Strings.STS.L_RelativeDateTime_XMinutes='{0} minute ago||{0} minutes ago'; 392 | Strings.STS.L_SPDiscSortWhatsHot='What\'s hot'; 393 | Strings.STS.L_SPDiscBestTooltip='Set as best reply'; 394 | Strings.STS.L_InPageNavigation='In page navigation'; 395 | Strings.STS.L_SPCheckedoutto='Checked Out To'; 396 | Strings.STS.L_SPRatingsNotRatedAltText='Click to apply your rating as {0} stars.||Click to apply your rating as {0} star.||Click to apply your rating as {0} stars.'; 397 | 398 | if(typeof(Sys)!='undefined' && Sys && Sys.Application) { Sys.Application.notifyScriptLoaded(); } 399 | if (typeof(NotifyScriptLoadedAndExecuteWaitingJobs)!='undefined') { NotifyScriptLoadedAndExecuteWaitingJobs('initstrings.js'); } -------------------------------------------------------------------------------- /lib/sp_modules/ext_msajax_patch.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var origRegisterInterface = Type.prototype.registerInterface; 3 | Type.prototype.registerInterface = function (typeName) { 4 | if (typeName == "IEnumerator" || typeName == "IEnumerable" || typeName == "IDisposable") { 5 | if (global[typeName]) { 6 | this.prototype.constructor = this; 7 | this.__typeName = typeName; 8 | this.__interface = true; 9 | return this; 10 | } 11 | global[typeName] = this; 12 | } 13 | return origRegisterInterface.apply(this, [].slice.call(arguments)); 14 | }; 15 | })(); 16 | -------------------------------------------------------------------------------- /lib/sp_modules/sp.extensions.js: -------------------------------------------------------------------------------- 1 | const urlParser = require('url'); 2 | const {AuthenticationContext, getLoaderOptions} = require("../csom-loader"); 3 | 4 | 5 | (function () { 6 | 7 | 8 | SP.ClientContext.prototype.executeQuery = async function () { 9 | return new Promise((resolve, reject) => { 10 | this.executeQueryAsync(function () { 11 | resolve(); 12 | }, function (sender, args) { 13 | reject(args); 14 | }); 15 | }); 16 | }; 17 | 18 | 19 | SP.ClientContext.connectWithClientCredentials = async function(clientId, clientSecret) { 20 | const options = getLoaderOptions(); 21 | const authCtx = new AuthenticationContext(options.url); 22 | return new Promise((resolve, reject) => { 23 | authCtx.acquireTokenForApp(clientId, clientSecret, (err, resp) => { 24 | if (err) { 25 | reject(err); 26 | return; 27 | } 28 | const urlInfo = urlParser.parse(options.url); 29 | const ctx = new SP.ClientContext(urlInfo.pathname); 30 | authCtx.setAuthenticationCookie(ctx); 31 | resolve(ctx); 32 | }); 33 | }); 34 | }; 35 | 36 | 37 | SP.ClientContext.connectWithUserCredentials = async function(login, password) { 38 | const options = getLoaderOptions(); 39 | const authCtx = new AuthenticationContext(options.url); 40 | return new Promise((resolve, reject) => { 41 | authCtx.acquireTokenForUser(login, password, (err, resp) => { 42 | if (err) { 43 | reject(err); 44 | return; 45 | } 46 | const urlInfo = urlParser.parse(options.url); 47 | const ctx = new SP.ClientContext(urlInfo.pathname); 48 | authCtx.setAuthenticationCookie(ctx); 49 | resolve(ctx); 50 | }); 51 | }); 52 | }; 53 | 54 | })(); 55 | -------------------------------------------------------------------------------- /lib/sp_modules/sp.taxonomy.debug.js: -------------------------------------------------------------------------------- 1 | function ULS6Tc(){var a={};a.ULSTeamName="Office Server";a.ULSFileName="SP.Taxonomy.debug.jss";return a}Type.registerNamespace("SP.Taxonomy");SP.Taxonomy.ChangedItemType=function(){};SP.Taxonomy.ChangedItemType.prototype={unknown:0,term:1,termSet:2,group:3,termStore:4,site:5};SP.Taxonomy.ChangedItemType.registerEnum("SP.Taxonomy.ChangedItemType",false);SP.Taxonomy.ChangedOperationType=function(){};SP.Taxonomy.ChangedOperationType.prototype={unknown:0,add:1,edit:2,deleteObject:3,move:4,copy:5,pathChange:6,merge:7,importObject:8,restore:9};SP.Taxonomy.ChangedOperationType.registerEnum("SP.Taxonomy.ChangedOperationType",false);SP.Taxonomy.StringMatchOption=function(){};SP.Taxonomy.StringMatchOption.prototype={startsWith:0,exactMatch:1};SP.Taxonomy.StringMatchOption.registerEnum("SP.Taxonomy.StringMatchOption",false);SP.Taxonomy.ChangedGroup=function(b,a){a:;SP.Taxonomy.ChangedGroup.initializeBase(this,[b,a])};SP.Taxonomy.ChangedItem=function(b,a){a:;SP.Taxonomy.ChangedItem.initializeBase(this,[b,a])};SP.Taxonomy.ChangedItem.prototype={get_changedBy:function(){a:;this.checkUninitializedProperty("ChangedBy");return this.get_objectData().get_properties()["ChangedBy"]},get_changedTime:function(){a:;this.checkUninitializedProperty("ChangedTime");return this.get_objectData().get_properties()["ChangedTime"]},get_id:function(){a:;this.checkUninitializedProperty("Id");return this.get_objectData().get_properties()["Id"]},get_itemType:function(){a:;this.checkUninitializedProperty("ItemType");return this.get_objectData().get_properties()["ItemType"]},get_operation:function(){a:;this.checkUninitializedProperty("Operation");return this.get_objectData().get_properties()["Operation"]},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.ChangedBy;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ChangedBy"]=a;delete b.ChangedBy}a=b.ChangedTime;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ChangedTime"]=a;delete b.ChangedTime}a=b.Id;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Id"]=a;delete b.Id}a=b.ItemType;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ItemType"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.ItemType}a=b.Operation;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Operation"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.Operation}}};SP.Taxonomy.ChangedItemPropertyNames=function(){};SP.Taxonomy.ChangedItemCollection=function(b,a){a:;SP.Taxonomy.ChangedItemCollection.initializeBase(this,[b,a])};SP.Taxonomy.ChangedItemCollection.prototype={itemAt:function(a){a:;return this.getItemAtIndex(a)},get_item:function(a){a:;return this.getItemAtIndex(a)},get_childItemType:function(){a:;return SP.Taxonomy.ChangedItem}};SP.Taxonomy.ChangedSite=function(b,a){a:;SP.Taxonomy.ChangedSite.initializeBase(this,[b,a])};SP.Taxonomy.ChangedSite.prototype={get_siteId:function(){a:;this.checkUninitializedProperty("SiteId");return this.get_objectData().get_properties()["SiteId"]},get_termId:function(){a:;this.checkUninitializedProperty("TermId");return this.get_objectData().get_properties()["TermId"]},get_termSetId:function(){a:;this.checkUninitializedProperty("TermSetId");return this.get_objectData().get_properties()["TermSetId"]},initPropertiesFromJson:function(b){a:;SP.Taxonomy.ChangedItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.SiteId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["SiteId"]=a;delete b.SiteId}a=b.TermId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TermId"]=a;delete b.TermId}a=b.TermSetId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TermSetId"]=a;delete b.TermSetId}}};SP.Taxonomy.ChangedSitePropertyNames=function(){};SP.Taxonomy.ChangedTerm=function(b,a){a:;SP.Taxonomy.ChangedTerm.initializeBase(this,[b,a])};SP.Taxonomy.ChangedTerm.prototype={get_changedCustomProperties:function(){a:;this.checkUninitializedProperty("ChangedCustomProperties");return this.get_objectData().get_properties()["ChangedCustomProperties"]},get_changedLocalCustomProperties:function(){a:;this.checkUninitializedProperty("ChangedLocalCustomProperties");return this.get_objectData().get_properties()["ChangedLocalCustomProperties"]},get_groupId:function(){a:;this.checkUninitializedProperty("GroupId");return this.get_objectData().get_properties()["GroupId"]},get_lcidsForChangedDescriptions:function(){a:;this.checkUninitializedProperty("LcidsForChangedDescriptions");return this.get_objectData().get_properties()["LcidsForChangedDescriptions"]},get_lcidsForChangedLabels:function(){a:;this.checkUninitializedProperty("LcidsForChangedLabels");return this.get_objectData().get_properties()["LcidsForChangedLabels"]},get_termSetId:function(){a:;this.checkUninitializedProperty("TermSetId");return this.get_objectData().get_properties()["TermSetId"]},initPropertiesFromJson:function(b){a:;SP.Taxonomy.ChangedItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.ChangedCustomProperties;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ChangedCustomProperties"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.ChangedCustomProperties}a=b.ChangedLocalCustomProperties;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ChangedLocalCustomProperties"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.ChangedLocalCustomProperties}a=b.GroupId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["GroupId"]=a;delete b.GroupId}a=b.LcidsForChangedDescriptions;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["LcidsForChangedDescriptions"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.LcidsForChangedDescriptions}a=b.LcidsForChangedLabels;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["LcidsForChangedLabels"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.LcidsForChangedLabels}a=b.TermSetId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TermSetId"]=a;delete b.TermSetId}}};SP.Taxonomy.ChangedTermPropertyNames=function(){};SP.Taxonomy.ChangedTermSet=function(b,a){a:;SP.Taxonomy.ChangedTermSet.initializeBase(this,[b,a])};SP.Taxonomy.ChangedTermSet.prototype={get_fromGroupId:function(){a:;this.checkUninitializedProperty("FromGroupId");return this.get_objectData().get_properties()["FromGroupId"]},get_groupId:function(){a:;this.checkUninitializedProperty("GroupId");return this.get_objectData().get_properties()["GroupId"]},initPropertiesFromJson:function(b){a:;SP.Taxonomy.ChangedItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.FromGroupId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["FromGroupId"]=a;delete b.FromGroupId}a=b.GroupId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["GroupId"]=a;delete b.GroupId}}};SP.Taxonomy.ChangedTermSetPropertyNames=function(){};SP.Taxonomy.ChangedTermStore=function(b,a){a:;SP.Taxonomy.ChangedTermStore.initializeBase(this,[b,a])};SP.Taxonomy.ChangedTermStore.prototype={get_changedLanguage:function(){a:;this.checkUninitializedProperty("ChangedLanguage");return this.get_objectData().get_properties()["ChangedLanguage"]},get_isDefaultLanguageChanged:function(){a:;this.checkUninitializedProperty("IsDefaultLanguageChanged");return this.get_objectData().get_properties()["IsDefaultLanguageChanged"]},get_isFullFarmRestore:function(){a:;this.checkUninitializedProperty("IsFullFarmRestore");return this.get_objectData().get_properties()["IsFullFarmRestore"]},initPropertiesFromJson:function(b){a:;SP.Taxonomy.ChangedItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.ChangedLanguage;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ChangedLanguage"]=a;delete b.ChangedLanguage}a=b.IsDefaultLanguageChanged;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsDefaultLanguageChanged"]=a;delete b.IsDefaultLanguageChanged}a=b.IsFullFarmRestore;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsFullFarmRestore"]=a;delete b.IsFullFarmRestore}}};SP.Taxonomy.ChangedTermStorePropertyNames=function(){};SP.Taxonomy.ChangeInformation=function(a){a:;SP.Taxonomy.ChangeInformation.initializeBase(this,[a,SP.ClientUtility.getOrCreateObjectPathForConstructor(a,"{1f849fb0-4fcb-4a54-9b01-9152b9e482d3}",arguments)])};SP.Taxonomy.ChangeInformation.newObject=function(a){a:;return new SP.Taxonomy.ChangeInformation(a,new SP.ObjectPathConstructor(a,"{1f849fb0-4fcb-4a54-9b01-9152b9e482d3}",null))};SP.Taxonomy.ChangeInformation.prototype={get_itemType:function(){a:;this.checkUninitializedProperty("ItemType");return this.get_objectData().get_properties()["ItemType"]},set_itemType:function(a){a:;this.get_objectData().get_properties()["ItemType"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"ItemType",a));return a},get_operationType:function(){a:;this.checkUninitializedProperty("OperationType");return this.get_objectData().get_properties()["OperationType"]},set_operationType:function(a){a:;this.get_objectData().get_properties()["OperationType"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"OperationType",a));return a},get_startTime:function(){a:;this.checkUninitializedProperty("StartTime");return this.get_objectData().get_properties()["StartTime"]},set_startTime:function(a){a:;this.get_objectData().get_properties()["StartTime"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"StartTime",a));return a},get_withinTimeSpan:function(){a:;this.checkUninitializedProperty("WithinTimeSpan");return this.get_objectData().get_properties()["WithinTimeSpan"]},set_withinTimeSpan:function(a){a:;this.get_objectData().get_properties()["WithinTimeSpan"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"WithinTimeSpan",a));return a},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.ItemType;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ItemType"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.ItemType}a=b.OperationType;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["OperationType"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.OperationType}a=b.StartTime;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["StartTime"]=a;delete b.StartTime}a=b.WithinTimeSpan;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["WithinTimeSpan"]=a;delete b.WithinTimeSpan}}};SP.Taxonomy.ChangeInformationPropertyNames=function(){};SP.Taxonomy.CustomPropertyMatchInformation=function(a){a:;SP.Taxonomy.CustomPropertyMatchInformation.initializeBase(this,[a,SP.ClientUtility.getOrCreateObjectPathForConstructor(a,"{56747951-df44-4bed-bf36-2b3bddf587f9}",arguments)])};SP.Taxonomy.CustomPropertyMatchInformation.newObject=function(a){a:;return new SP.Taxonomy.CustomPropertyMatchInformation(a,new SP.ObjectPathConstructor(a,"{56747951-df44-4bed-bf36-2b3bddf587f9}",null))};SP.Taxonomy.CustomPropertyMatchInformation.prototype={get_customPropertyName:function(){a:;this.checkUninitializedProperty("CustomPropertyName");return this.get_objectData().get_properties()["CustomPropertyName"]},set_customPropertyName:function(a){a:;this.get_objectData().get_properties()["CustomPropertyName"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"CustomPropertyName",a));return a},get_customPropertyValue:function(){a:;this.checkUninitializedProperty("CustomPropertyValue");return this.get_objectData().get_properties()["CustomPropertyValue"]},set_customPropertyValue:function(a){a:;this.get_objectData().get_properties()["CustomPropertyValue"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"CustomPropertyValue",a));return a},get_resultCollectionSize:function(){a:;this.checkUninitializedProperty("ResultCollectionSize");return this.get_objectData().get_properties()["ResultCollectionSize"]},set_resultCollectionSize:function(a){a:;this.get_objectData().get_properties()["ResultCollectionSize"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"ResultCollectionSize",a));return a},get_stringMatchOption:function(){a:;this.checkUninitializedProperty("StringMatchOption");return this.get_objectData().get_properties()["StringMatchOption"]},set_stringMatchOption:function(a){a:;this.get_objectData().get_properties()["StringMatchOption"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"StringMatchOption",a));return a},get_trimUnavailable:function(){a:;this.checkUninitializedProperty("TrimUnavailable");return this.get_objectData().get_properties()["TrimUnavailable"]},set_trimUnavailable:function(a){a:;this.get_objectData().get_properties()["TrimUnavailable"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"TrimUnavailable",a));return a},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.CustomPropertyName;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["CustomPropertyName"]=a;delete b.CustomPropertyName}a=b.CustomPropertyValue;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["CustomPropertyValue"]=a;delete b.CustomPropertyValue}a=b.ResultCollectionSize;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ResultCollectionSize"]=a;delete b.ResultCollectionSize}a=b.StringMatchOption;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["StringMatchOption"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.StringMatchOption}a=b.TrimUnavailable;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TrimUnavailable"]=a;delete b.TrimUnavailable}}};SP.Taxonomy.CustomPropertyMatchInformationPropertyNames=function(){};SP.Taxonomy.Label=function(b,a){a:;SP.Taxonomy.Label.initializeBase(this,[b,a])};SP.Taxonomy.Label.prototype={get_isDefaultForLanguage:function(){a:;this.checkUninitializedProperty("IsDefaultForLanguage");return this.get_objectData().get_properties()["IsDefaultForLanguage"]},get_language:function(){a:;this.checkUninitializedProperty("Language");return this.get_objectData().get_properties()["Language"]},set_language:function(a){a:;this.get_objectData().get_properties()["Language"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Language",a));return a},get_term:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["Term"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.Term(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"Term"));this.get_objectData().get_clientObjectProperties()["Term"]=a}return a},get_value:function(){a:;this.checkUninitializedProperty("Value");return this.get_objectData().get_properties()["Value"]},set_value:function(a){a:;this.get_objectData().get_properties()["Value"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Value",a));return a},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.IsDefaultForLanguage;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsDefaultForLanguage"]=a;delete b.IsDefaultForLanguage}a=b.Language;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Language"]=a;delete b.Language}a=b.Term;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("Term",this.get_term(),a);this.get_term().fromJson(a);delete b.Term}a=b.Value;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Value"]=a;delete b.Value}},deleteObject:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"DeleteObject",null);a.addQuery(b)},setAsDefaultForLanguage:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"SetAsDefaultForLanguage",null);a.addQuery(b)}};SP.Taxonomy.LabelPropertyNames=function(){};SP.Taxonomy.LabelObjectPropertyNames=function(){};SP.Taxonomy.LabelCollection=function(b,a){a:;SP.Taxonomy.LabelCollection.initializeBase(this,[b,a])};SP.Taxonomy.LabelCollection.prototype={itemAt:function(a){a:;return this.getItemAtIndex(a)},get_item:function(a){a:;return this.getItemAtIndex(a)},get_childItemType:function(){a:;return SP.Taxonomy.Label},getByValue:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetByValue"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetByValue"]=c}a=c[d.toUpperCase()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.Label(b,new SP.ObjectPathMethod(b,this.get_path(),"GetByValue",[d]));if(!b.get_disableReturnValueCache())c[d.toUpperCase()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a}};SP.Taxonomy.LabelMatchInformation=function(a){a:;SP.Taxonomy.LabelMatchInformation.initializeBase(this,[a,SP.ClientUtility.getOrCreateObjectPathForConstructor(a,"{61a1d689-2744-4ea3-a88b-c95bee9803aa}",arguments)])};SP.Taxonomy.LabelMatchInformation.newObject=function(a){a:;return new SP.Taxonomy.LabelMatchInformation(a,new SP.ObjectPathConstructor(a,"{61a1d689-2744-4ea3-a88b-c95bee9803aa}",null))};SP.Taxonomy.LabelMatchInformation.prototype={get_defaultLabelOnly:function(){a:;this.checkUninitializedProperty("DefaultLabelOnly");return this.get_objectData().get_properties()["DefaultLabelOnly"]},set_defaultLabelOnly:function(a){a:;this.get_objectData().get_properties()["DefaultLabelOnly"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"DefaultLabelOnly",a));return a},get_excludeKeyword:function(){a:;this.checkUninitializedProperty("ExcludeKeyword");return this.get_objectData().get_properties()["ExcludeKeyword"]},set_excludeKeyword:function(a){a:;this.get_objectData().get_properties()["ExcludeKeyword"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"ExcludeKeyword",a));return a},get_lcid:function(){a:;this.checkUninitializedProperty("Lcid");return this.get_objectData().get_properties()["Lcid"]},set_lcid:function(a){a:;this.get_objectData().get_properties()["Lcid"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Lcid",a));return a},get_resultCollectionSize:function(){a:;this.checkUninitializedProperty("ResultCollectionSize");return this.get_objectData().get_properties()["ResultCollectionSize"]},set_resultCollectionSize:function(a){a:;this.get_objectData().get_properties()["ResultCollectionSize"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"ResultCollectionSize",a));return a},get_stringMatchOption:function(){a:;this.checkUninitializedProperty("StringMatchOption");return this.get_objectData().get_properties()["StringMatchOption"]},set_stringMatchOption:function(a){a:;this.get_objectData().get_properties()["StringMatchOption"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"StringMatchOption",a));return a},get_termLabel:function(){a:;this.checkUninitializedProperty("TermLabel");return this.get_objectData().get_properties()["TermLabel"]},set_termLabel:function(a){a:;this.get_objectData().get_properties()["TermLabel"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"TermLabel",a));return a},get_trimDeprecated:function(){a:;this.checkUninitializedProperty("TrimDeprecated");return this.get_objectData().get_properties()["TrimDeprecated"]},set_trimDeprecated:function(a){a:;this.get_objectData().get_properties()["TrimDeprecated"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"TrimDeprecated",a));return a},get_trimUnavailable:function(){a:;this.checkUninitializedProperty("TrimUnavailable");return this.get_objectData().get_properties()["TrimUnavailable"]},set_trimUnavailable:function(a){a:;this.get_objectData().get_properties()["TrimUnavailable"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"TrimUnavailable",a));return a},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.DefaultLabelOnly;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["DefaultLabelOnly"]=a;delete b.DefaultLabelOnly}a=b.ExcludeKeyword;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ExcludeKeyword"]=a;delete b.ExcludeKeyword}a=b.Lcid;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Lcid"]=a;delete b.Lcid}a=b.ResultCollectionSize;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ResultCollectionSize"]=a;delete b.ResultCollectionSize}a=b.StringMatchOption;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["StringMatchOption"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.StringMatchOption}a=b.TermLabel;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TermLabel"]=a;delete b.TermLabel}a=b.TrimDeprecated;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TrimDeprecated"]=a;delete b.TrimDeprecated}a=b.TrimUnavailable;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TrimUnavailable"]=a;delete b.TrimUnavailable}}};SP.Taxonomy.LabelMatchInformationPropertyNames=function(){};SP.Taxonomy.MobileTaxonomyField=function(b,a){a:;SP.Taxonomy.MobileTaxonomyField.initializeBase(this,[b,a])};SP.Taxonomy.MobileTaxonomyField.prototype={get_readOnly:function(){a:;this.checkUninitializedProperty("ReadOnly");return this.get_objectData().get_properties()["ReadOnly"]},initPropertiesFromJson:function(a){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,a);var b;b=a.ReadOnly;if(!SP.ScriptUtility.isUndefined(b)){this.get_objectData().get_properties()["ReadOnly"]=b;delete a.ReadOnly}}};SP.Taxonomy.MobileTaxonomyFieldPropertyNames=function(){};SP.Taxonomy.TaxonomyField=function(b,a){a:;SP.Taxonomy.TaxonomyField.initializeBase(this,[b,a])};SP.Taxonomy.TaxonomyField.prototype={get_anchorId:function(){a:;this.checkUninitializedProperty("AnchorId");return this.get_objectData().get_properties()["AnchorId"]},set_anchorId:function(a){a:;this.get_objectData().get_properties()["AnchorId"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"AnchorId",a));return a},get_createValuesInEditForm:function(){a:;this.checkUninitializedProperty("CreateValuesInEditForm");return this.get_objectData().get_properties()["CreateValuesInEditForm"]},set_createValuesInEditForm:function(a){a:;this.get_objectData().get_properties()["CreateValuesInEditForm"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"CreateValuesInEditForm",a));return a},get_isAnchorValid:function(){a:;this.checkUninitializedProperty("IsAnchorValid");return this.get_objectData().get_properties()["IsAnchorValid"]},get_isKeyword:function(){a:;this.checkUninitializedProperty("IsKeyword");return this.get_objectData().get_properties()["IsKeyword"]},set_isKeyword:function(a){a:;this.get_objectData().get_properties()["IsKeyword"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"IsKeyword",a));return a},get_isPathRendered:function(){a:;this.checkUninitializedProperty("IsPathRendered");return this.get_objectData().get_properties()["IsPathRendered"]},set_isPathRendered:function(a){a:;this.get_objectData().get_properties()["IsPathRendered"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"IsPathRendered",a));return a},get_isTermSetValid:function(){a:;this.checkUninitializedProperty("IsTermSetValid");return this.get_objectData().get_properties()["IsTermSetValid"]},get_open:function(){a:;this.checkUninitializedProperty("Open");return this.get_objectData().get_properties()["Open"]},set_open:function(a){a:;this.get_objectData().get_properties()["Open"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Open",a));return a},get_sspId:function(){a:;this.checkUninitializedProperty("SspId");return this.get_objectData().get_properties()["SspId"]},set_sspId:function(a){a:;this.get_objectData().get_properties()["SspId"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"SspId",a));return a},get_targetTemplate:function(){a:;this.checkUninitializedProperty("TargetTemplate");return this.get_objectData().get_properties()["TargetTemplate"]},set_targetTemplate:function(a){a:;this.get_objectData().get_properties()["TargetTemplate"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"TargetTemplate",a));return a},get_termSetId:function(){a:;this.checkUninitializedProperty("TermSetId");return this.get_objectData().get_properties()["TermSetId"]},set_termSetId:function(a){a:;this.get_objectData().get_properties()["TermSetId"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"TermSetId",a));return a},get_textField:function(){a:;this.checkUninitializedProperty("TextField");return this.get_objectData().get_properties()["TextField"]},get_userCreated:function(){a:;this.checkUninitializedProperty("UserCreated");return this.get_objectData().get_properties()["UserCreated"]},set_userCreated:function(a){a:;this.get_objectData().get_properties()["UserCreated"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"UserCreated",a));return a},initPropertiesFromJson:function(b){a:;SP.FieldLookup.prototype.initPropertiesFromJson.call(this,b);var a;a=b.AnchorId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["AnchorId"]=a;delete b.AnchorId}a=b.CreateValuesInEditForm;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["CreateValuesInEditForm"]=a;delete b.CreateValuesInEditForm}a=b.IsAnchorValid;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsAnchorValid"]=a;delete b.IsAnchorValid}a=b.IsKeyword;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsKeyword"]=a;delete b.IsKeyword}a=b.IsPathRendered;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsPathRendered"]=a;delete b.IsPathRendered}a=b.IsTermSetValid;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsTermSetValid"]=a;delete b.IsTermSetValid}a=b.Open;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Open"]=a;delete b.Open}a=b.SspId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["SspId"]=a;delete b.SspId}a=b.TargetTemplate;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TargetTemplate"]=a;delete b.TargetTemplate}a=b.TermSetId;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TermSetId"]=a;delete b.TermSetId}a=b.TextField;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TextField"]=a;delete b.TextField}a=b.UserCreated;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["UserCreated"]=a;delete b.UserCreated}},getFieldValueAsText:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetFieldValueAsText",[d]);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a},getFieldValueAsTaxonomyFieldValue:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetFieldValueAsTaxonomyFieldValue",[d]);b.addQuery(c);a=new SP.Taxonomy.TaxonomyFieldValue;b.addQueryIdAndResultObject(c.get_id(),a);return a},getFieldValueAsTaxonomyFieldValueCollection:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TaxonomyFieldValueCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetFieldValueAsTaxonomyFieldValueCollection",[c]));return b},setFieldValueByTerm:function(c,e,d){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"SetFieldValueByTerm",[c,e,d]);a.addQuery(b)},setFieldValueByTermCollection:function(d,a,e){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"SetFieldValueByTermCollection",[d,a,e]);b.addQuery(c)},setFieldValueByCollection:function(d,a,e){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"SetFieldValueByCollection",[d,a,e]);b.addQuery(c)},setFieldValueByValue:function(d,a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"SetFieldValueByValue",[d,a]);b.addQuery(c)},setFieldValueByValueCollection:function(d,a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"SetFieldValueByValueCollection",[d,a]);b.addQuery(c)},getFieldValueAsHtml:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetFieldValueAsHtml",[d]);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a},getValidatedString:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetValidatedString",[d]);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a}};SP.Taxonomy.TaxonomyFieldPropertyNames=function(){};SP.Taxonomy.TaxonomyFieldValue=function(){a:;SP.Taxonomy.TaxonomyFieldValue.initializeBase(this)};SP.Taxonomy.TaxonomyFieldValue.prototype={$0_1:null,$1_1:null,$2_1:0,get_label:function(){a:;return this.$0_1},set_label:function(a){a:;this.$0_1=a;return a},get_termGuid:function(){a:;return this.$1_1},set_termGuid:function(a){a:;this.$1_1=a;return a},get_wssId:function(){a:;return this.$2_1},set_wssId:function(a){a:;this.$2_1=a;return a},get_typeId:function(){a:;return "{19e70ed0-4177-456b-8156-015e4d163ff8}"},writeToXml:function(b,a){a:;if(!b)throw Error.argumentNull("writer");if(!a)throw Error.argumentNull("serializationContext");var c=["Label","TermGuid","WssId"];SP.DataConvert.writePropertiesToXml(b,this,c,a);SP.ClientValueObject.prototype.writeToXml.call(this,b,a)},initPropertiesFromJson:function(b){a:;SP.ClientValueObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.Label;if(!SP.ScriptUtility.isUndefined(a)){this.$0_1=a;delete b.Label}a=b.TermGuid;if(!SP.ScriptUtility.isUndefined(a)){this.$1_1=a;delete b.TermGuid}a=b.WssId;if(!SP.ScriptUtility.isUndefined(a)){this.$2_1=a;delete b.WssId}}};SP.Taxonomy.TaxonomyFieldValueCollection=function(a){a:;SP.Taxonomy.TaxonomyFieldValueCollection.initializeBase(this,[a,SP.ClientUtility.getOrCreateObjectPathForConstructor(a,"{c3dfae10-f3bf-4894-9012-bb60665b6d91}",arguments)])};SP.Taxonomy.TaxonomyFieldValueCollection.newObject=function(a,c,b){a:;return new SP.Taxonomy.TaxonomyFieldValueCollection(a,new SP.ObjectPathConstructor(a,"{c3dfae10-f3bf-4894-9012-bb60665b6d91}",[c,b]))};SP.Taxonomy.TaxonomyFieldValueCollection.prototype={itemAt:function(a){a:;return this.getItemAtIndex(a)},get_item:function(a){a:;return this.getItemAtIndex(a)},get_childItemType:function(){a:;return SP.Taxonomy.TaxonomyFieldValue},populateFromLabelGuidPairs:function(c){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"PopulateFromLabelGuidPairs",[c]);a.addQuery(b)}};SP.Taxonomy.TaxonomyItem=function(b,a){a:;SP.Taxonomy.TaxonomyItem.initializeBase(this,[b,a])};SP.Taxonomy.TaxonomyItem.normalizeName=function(a,d){a:;if(!a)throw Error.argumentNull("context");var b,c=new SP.ClientActionInvokeStaticMethod(a,"{5f6011b8-fae0-4784-8882-85765261d951}","NormalizeName",[d]);a.addQuery(c);b=new SP.StringResult;a.addQueryIdAndResultObject(c.get_id(),b);return b};SP.Taxonomy.TaxonomyItem.prototype={get_createdDate:function(){a:;this.checkUninitializedProperty("CreatedDate");return this.get_objectData().get_properties()["CreatedDate"]},get_id:function(){a:;this.checkUninitializedProperty("Id");return this.get_objectData().get_properties()["Id"]},get_lastModifiedDate:function(){a:;this.checkUninitializedProperty("LastModifiedDate");return this.get_objectData().get_properties()["LastModifiedDate"]},get_name:function(){a:;this.checkUninitializedProperty("Name");return this.get_objectData().get_properties()["Name"]},set_name:function(a){a:;this.get_objectData().get_properties()["Name"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Name",a));return a},get_termStore:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["TermStore"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermStore(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"TermStore"));this.get_objectData().get_clientObjectProperties()["TermStore"]=a}return a},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.CreatedDate;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["CreatedDate"]=a;delete b.CreatedDate}a=b.Id;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Id"]=a;delete b.Id}a=b.LastModifiedDate;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["LastModifiedDate"]=a;delete b.LastModifiedDate}a=b.Name;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Name"]=a;delete b.Name}a=b.TermStore;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("TermStore",this.get_termStore(),a);this.get_termStore().fromJson(a);delete b.TermStore}},deleteObject:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"DeleteObject",null);a.addQuery(b)}};SP.Taxonomy.TaxonomyItemPropertyNames=function(){};SP.Taxonomy.TaxonomyItemObjectPropertyNames=function(){};SP.Taxonomy.TaxonomySession=function(b,a){a:;SP.Taxonomy.TaxonomySession.initializeBase(this,[b,a])};SP.Taxonomy.TaxonomySession.getTaxonomySession=function(a){a:;if(!a)throw Error.argumentNull("context");var b;b=new SP.Taxonomy.TaxonomySession(a,new SP.ObjectPathStaticMethod(a,"{981cbc68-9edc-4f8d-872f-71146fcbb84f}","GetTaxonomySession",null));b.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(b.get_path());a.addQueryIdAndResultObject(c.get_id(),b);a.addQuery(c);return b};SP.Taxonomy.TaxonomySession.prototype={get_offlineTermStoreNames:function(){a:;this.checkUninitializedProperty("OfflineTermStoreNames");return this.get_objectData().get_properties()["OfflineTermStoreNames"]},get_termStores:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["TermStores"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermStoreCollection(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"TermStores"));this.get_objectData().get_clientObjectProperties()["TermStores"]=a}return a},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.OfflineTermStoreNames;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["OfflineTermStoreNames"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.OfflineTermStoreNames}a=b.TermStores;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("TermStores",this.get_termStores(),a);this.get_termStores().fromJson(a);delete b.TermStores}},getTerms:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTerms",[c]));return b},updateCache:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"UpdateCache",null);a.addQuery(b)},getTerm:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetTerm"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetTerm"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"GetTerm",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getTermsById:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermsById",[c]));return b},getTermsInDefaultLanguage:function(h,e,d,c,f,g){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermsInDefaultLanguage",[h,e,d,c,f,g]));return b},getTermsInWorkingLocale:function(h,e,d,c,f,g){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermsInWorkingLocale",[h,e,d,c,f,g]));return b},getTermsWithCustomProperty:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermsWithCustomProperty",[c]));return b},getTermSetsByName:function(c,d){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermSetCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermSetsByName",[c,d]));return b},getTermSetsByTermLabel:function(c,d){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermSetCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermSetsByTermLabel",[c,d]));return b},getDefaultKeywordsTermStore:function(){a:;var b=this.get_context(),a;a=new SP.Taxonomy.TermStore(b,new SP.ObjectPathMethod(b,this.get_path(),"GetDefaultKeywordsTermStore",null));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},getDefaultSiteCollectionTermStore:function(){a:;var b=this.get_context(),a;a=new SP.Taxonomy.TermStore(b,new SP.ObjectPathMethod(b,this.get_path(),"GetDefaultSiteCollectionTermStore",null));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a}};SP.Taxonomy.TaxonomySessionPropertyNames=function(){};SP.Taxonomy.TaxonomySessionObjectPropertyNames=function(){};SP.Taxonomy.Term=function(b,a){a:;SP.Taxonomy.Term.initializeBase(this,[b,a])};SP.Taxonomy.Term.prototype={get_description:function(){a:;this.checkUninitializedProperty("Description");return this.get_objectData().get_properties()["Description"]},get_isDeprecated:function(){a:;this.checkUninitializedProperty("IsDeprecated");return this.get_objectData().get_properties()["IsDeprecated"]},get_isKeyword:function(){a:;this.checkUninitializedProperty("IsKeyword");return this.get_objectData().get_properties()["IsKeyword"]},get_isPinned:function(){a:;this.checkUninitializedProperty("IsPinned");return this.get_objectData().get_properties()["IsPinned"]},get_isPinnedRoot:function(){a:;this.checkUninitializedProperty("IsPinnedRoot");return this.get_objectData().get_properties()["IsPinnedRoot"]},get_isReused:function(){a:;this.checkUninitializedProperty("IsReused");return this.get_objectData().get_properties()["IsReused"]},get_isRoot:function(){a:;this.checkUninitializedProperty("IsRoot");return this.get_objectData().get_properties()["IsRoot"]},get_isSourceTerm:function(){a:;this.checkUninitializedProperty("IsSourceTerm");return this.get_objectData().get_properties()["IsSourceTerm"]},get_labels:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["Labels"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.LabelCollection(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"Labels"));this.get_objectData().get_clientObjectProperties()["Labels"]=a}return a},get_localCustomProperties:function(){a:;this.checkUninitializedProperty("LocalCustomProperties");return this.get_objectData().get_properties()["LocalCustomProperties"]},get_mergedTermIds:function(){a:;this.checkUninitializedProperty("MergedTermIds");return this.get_objectData().get_properties()["MergedTermIds"]},get_parent:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["Parent"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.Term(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"Parent"));this.get_objectData().get_clientObjectProperties()["Parent"]=a}return a},get_pathOfTerm:function(){a:;this.checkUninitializedProperty("PathOfTerm");return this.get_objectData().get_properties()["PathOfTerm"]},get_pinSourceTermSet:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["PinSourceTermSet"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermSet(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"PinSourceTermSet"));this.get_objectData().get_clientObjectProperties()["PinSourceTermSet"]=a}return a},get_reusedTerms:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["ReusedTerms"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermCollection(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"ReusedTerms"));this.get_objectData().get_clientObjectProperties()["ReusedTerms"]=a}return a},get_sourceTerm:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["SourceTerm"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.Term(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"SourceTerm"));this.get_objectData().get_clientObjectProperties()["SourceTerm"]=a}return a},get_termsCount:function(){a:;this.checkUninitializedProperty("TermsCount");return this.get_objectData().get_properties()["TermsCount"]},get_termSet:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["TermSet"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermSet(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"TermSet"));this.get_objectData().get_clientObjectProperties()["TermSet"]=a}return a},get_termSets:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["TermSets"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermSetCollection(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"TermSets"));this.get_objectData().get_clientObjectProperties()["TermSets"]=a}return a},initPropertiesFromJson:function(b){a:;SP.Taxonomy.TermSetItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.Description;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Description"]=a;delete b.Description}a=b.IsDeprecated;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsDeprecated"]=a;delete b.IsDeprecated}a=b.IsKeyword;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsKeyword"]=a;delete b.IsKeyword}a=b.IsPinned;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsPinned"]=a;delete b.IsPinned}a=b.IsPinnedRoot;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsPinnedRoot"]=a;delete b.IsPinnedRoot}a=b.IsReused;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsReused"]=a;delete b.IsReused}a=b.IsRoot;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsRoot"]=a;delete b.IsRoot}a=b.IsSourceTerm;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsSourceTerm"]=a;delete b.IsSourceTerm}a=b.Labels;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("Labels",this.get_labels(),a);this.get_labels().fromJson(a);delete b.Labels}a=b.LocalCustomProperties;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["LocalCustomProperties"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.LocalCustomProperties}a=b.MergedTermIds;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["MergedTermIds"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.MergedTermIds}a=b.Parent;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("Parent",this.get_parent(),a);this.get_parent().fromJson(a);delete b.Parent}a=b.PathOfTerm;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["PathOfTerm"]=a;delete b.PathOfTerm}a=b.PinSourceTermSet;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("PinSourceTermSet",this.get_pinSourceTermSet(),a);this.get_pinSourceTermSet().fromJson(a);delete b.PinSourceTermSet}a=b.ReusedTerms;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("ReusedTerms",this.get_reusedTerms(),a);this.get_reusedTerms().fromJson(a);delete b.ReusedTerms}a=b.SourceTerm;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("SourceTerm",this.get_sourceTerm(),a);this.get_sourceTerm().fromJson(a);delete b.SourceTerm}a=b.TermsCount;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["TermsCount"]=a;delete b.TermsCount}a=b.TermSet;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("TermSet",this.get_termSet(),a);this.get_termSet().fromJson(a);delete b.TermSet}a=b.TermSets;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("TermSets",this.get_termSets(),a);this.get_termSets().fromJson(a);delete b.TermSets}},copy:function(d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"Copy",[d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},createLabel:function(e,f,d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.Label(b,new SP.ObjectPathMethod(b,this.get_path(),"CreateLabel",[e,f,d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},deleteLocalCustomProperty:function(c){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"DeleteLocalCustomProperty",[c]);a.addQuery(b)},deleteAllLocalCustomProperties:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"DeleteAllLocalCustomProperties",null);a.addQuery(b)},deprecate:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"Deprecate",[a]);b.addQuery(c)},getAllLabels:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.LabelCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetAllLabels",[c]));return b},getDefaultLabel:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetDefaultLabel",[d]);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a},getDescription:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetDescription",[d]);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a},merge:function(d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"Merge",[d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},move:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"Move",[a]);b.addQuery(c)},reassignSourceTerm:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"ReassignSourceTerm",[a]);b.addQuery(c)},setDescription:function(a,d){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"SetDescription",[a,d]);b.addQuery(c)},setLocalCustomProperty:function(d,a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"SetLocalCustomProperty",[d,a]);b.addQuery(c)},getIsDescendantOf:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetIsDescendantOf",[d]);b.addQuery(c);a=new SP.BooleanResult;b.addQueryIdAndResultObject(c.get_id(),a);return a},getPath:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetPath",[d]);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a}};SP.Taxonomy.TermPropertyNames=function(){};SP.Taxonomy.TermObjectPropertyNames=function(){};SP.Taxonomy.TermCollection=function(b,a){a:;SP.Taxonomy.TermCollection.initializeBase(this,[b,a])};SP.Taxonomy.TermCollection.prototype={itemAt:function(a){a:;return this.getItemAtIndex(a)},get_item:function(a){a:;return this.getItemAtIndex(a)},get_childItemType:function(){a:;return SP.Taxonomy.Term},getById:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetById"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetById"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"GetById",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getByName:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetByName"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetByName"]=c}a=c[d.toUpperCase()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"GetByName",[d]));if(!b.get_disableReturnValueCache())c[d.toUpperCase()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a}};SP.Taxonomy.TermGroup=function(b,a){a:;SP.Taxonomy.TermGroup.initializeBase(this,[b,a])};SP.Taxonomy.TermGroup.prototype={get_contributorPrincipalNames:function(){a:;this.checkUninitializedProperty("ContributorPrincipalNames");return this.get_objectData().get_properties()["ContributorPrincipalNames"]},get_description:function(){a:;this.checkUninitializedProperty("Description");return this.get_objectData().get_properties()["Description"]},set_description:function(a){a:;this.get_objectData().get_properties()["Description"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Description",a));return a},get_groupManagerPrincipalNames:function(){a:;this.checkUninitializedProperty("GroupManagerPrincipalNames");return this.get_objectData().get_properties()["GroupManagerPrincipalNames"]},get_isSiteCollectionGroup:function(){a:;this.checkUninitializedProperty("IsSiteCollectionGroup");return this.get_objectData().get_properties()["IsSiteCollectionGroup"]},get_isSystemGroup:function(){a:;this.checkUninitializedProperty("IsSystemGroup");return this.get_objectData().get_properties()["IsSystemGroup"]},get_termSets:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["TermSets"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermSetCollection(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"TermSets"));this.get_objectData().get_clientObjectProperties()["TermSets"]=a}return a},initPropertiesFromJson:function(b){a:;SP.Taxonomy.TaxonomyItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.ContributorPrincipalNames;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ContributorPrincipalNames"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.ContributorPrincipalNames}a=b.Description;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Description"]=a;delete b.Description}a=b.GroupManagerPrincipalNames;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["GroupManagerPrincipalNames"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.GroupManagerPrincipalNames}a=b.IsSiteCollectionGroup;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsSiteCollectionGroup"]=a;delete b.IsSiteCollectionGroup}a=b.IsSystemGroup;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsSystemGroup"]=a;delete b.IsSystemGroup}a=b.TermSets;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("TermSets",this.get_termSets(),a);this.get_termSets().fromJson(a);delete b.TermSets}},addContributor:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"AddContributor",[a]);b.addQuery(c)},addGroupManager:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"AddGroupManager",[a]);b.addQuery(c)},createTermSet:function(f,d,e){a:;var b=this.get_context(),a;a=new SP.Taxonomy.TermSet(b,new SP.ObjectPathMethod(b,this.get_path(),"CreateTermSet",[f,d,e]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},exportObject:function(){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"ExportObject",null);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a},getChanges:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.ChangedItemCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetChanges",[c]));return b},getTermSetsWithCustomProperty:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermSetCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermSetsWithCustomProperty",[c]));return b}};SP.Taxonomy.TermGroupPropertyNames=function(){};SP.Taxonomy.TermGroupObjectPropertyNames=function(){};SP.Taxonomy.TermGroupCollection=function(b,a){a:;SP.Taxonomy.TermGroupCollection.initializeBase(this,[b,a])};SP.Taxonomy.TermGroupCollection.prototype={itemAt:function(a){a:;return this.getItemAtIndex(a)},get_item:function(a){a:;return this.getItemAtIndex(a)},get_childItemType:function(){a:;return SP.Taxonomy.TermGroup},getById:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetById"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetById"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermGroup(b,new SP.ObjectPathMethod(b,this.get_path(),"GetById",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getByName:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetByName"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetByName"]=c}a=c[d.toUpperCase()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermGroup(b,new SP.ObjectPathMethod(b,this.get_path(),"GetByName",[d]));if(!b.get_disableReturnValueCache())c[d.toUpperCase()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a}};SP.Taxonomy.TermSet=function(b,a){a:;SP.Taxonomy.TermSet.initializeBase(this,[b,a])};SP.Taxonomy.TermSet.prototype={get_contact:function(){a:;this.checkUninitializedProperty("Contact");return this.get_objectData().get_properties()["Contact"]},set_contact:function(a){a:;this.get_objectData().get_properties()["Contact"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Contact",a));return a},get_description:function(){a:;this.checkUninitializedProperty("Description");return this.get_objectData().get_properties()["Description"]},set_description:function(a){a:;this.get_objectData().get_properties()["Description"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Description",a));return a},get_group:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["Group"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermGroup(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"Group"));this.get_objectData().get_clientObjectProperties()["Group"]=a}return a},get_isOpenForTermCreation:function(){a:;this.checkUninitializedProperty("IsOpenForTermCreation");return this.get_objectData().get_properties()["IsOpenForTermCreation"]},set_isOpenForTermCreation:function(a){a:;this.get_objectData().get_properties()["IsOpenForTermCreation"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"IsOpenForTermCreation",a));return a},get_names:function(){a:;this.checkUninitializedProperty("Names");return this.get_objectData().get_properties()["Names"]},get_stakeholders:function(){a:;this.checkUninitializedProperty("Stakeholders");return this.get_objectData().get_properties()["Stakeholders"]},initPropertiesFromJson:function(b){a:;SP.Taxonomy.TermSetItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.Contact;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Contact"]=a;delete b.Contact}a=b.Description;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Description"]=a;delete b.Description}a=b.Group;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("Group",this.get_group(),a);this.get_group().fromJson(a);delete b.Group}a=b.IsOpenForTermCreation;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsOpenForTermCreation"]=a;delete b.IsOpenForTermCreation}a=b.Names;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Names"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.Names}a=b.Stakeholders;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Stakeholders"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.Stakeholders}},addStakeholder:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"AddStakeholder",[a]);b.addQuery(c)},copy:function(){a:;var b=this.get_context(),a;a=new SP.Taxonomy.TermSet(b,new SP.ObjectPathMethod(b,this.get_path(),"Copy",null));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},deleteStakeholder:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"DeleteStakeholder",[a]);b.addQuery(c)},exportObject:function(){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"ExportObject",null);b.addQuery(c);a=new SP.StringResult;b.addQueryIdAndResultObject(c.get_id(),a);return a},getAllTerms:function(){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetAllTerms",null));return b},getAllTermsIncludeDeprecated:function(){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetAllTermsIncludeDeprecated",null));return b},getChanges:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.ChangedItemCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetChanges",[c]));return b},getTerm:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetTerm"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetTerm"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"GetTerm",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getTerms:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTerms",[c]));return b},getTermsWithCustomProperty:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermsWithCustomProperty",[c]));return b},move:function(a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"Move",[a]);b.addQuery(c)}};SP.Taxonomy.TermSetPropertyNames=function(){};SP.Taxonomy.TermSetObjectPropertyNames=function(){};SP.Taxonomy.TermSetCollection=function(b,a){a:;SP.Taxonomy.TermSetCollection.initializeBase(this,[b,a])};SP.Taxonomy.TermSetCollection.prototype={itemAt:function(a){a:;return this.getItemAtIndex(a)},get_item:function(a){a:;return this.getItemAtIndex(a)},get_childItemType:function(){a:;return SP.Taxonomy.TermSet},getById:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetById"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetById"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermSet(b,new SP.ObjectPathMethod(b,this.get_path(),"GetById",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getByName:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetByName"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetByName"]=c}a=c[d.toUpperCase()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermSet(b,new SP.ObjectPathMethod(b,this.get_path(),"GetByName",[d]));if(!b.get_disableReturnValueCache())c[d.toUpperCase()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a}};SP.Taxonomy.TermSetItem=function(b,a){a:;SP.Taxonomy.TermSetItem.initializeBase(this,[b,a])};SP.Taxonomy.TermSetItem.prototype={get_customProperties:function(){a:;this.checkUninitializedProperty("CustomProperties");return this.get_objectData().get_properties()["CustomProperties"]},get_customSortOrder:function(){a:;this.checkUninitializedProperty("CustomSortOrder");return this.get_objectData().get_properties()["CustomSortOrder"]},set_customSortOrder:function(a){a:;this.get_objectData().get_properties()["CustomSortOrder"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"CustomSortOrder",a));return a},get_isAvailableForTagging:function(){a:;this.checkUninitializedProperty("IsAvailableForTagging");return this.get_objectData().get_properties()["IsAvailableForTagging"]},set_isAvailableForTagging:function(a){a:;this.get_objectData().get_properties()["IsAvailableForTagging"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"IsAvailableForTagging",a));return a},get_owner:function(){a:;this.checkUninitializedProperty("Owner");return this.get_objectData().get_properties()["Owner"]},set_owner:function(a){a:;this.get_objectData().get_properties()["Owner"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"Owner",a));return a},get_terms:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["Terms"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermCollection(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"Terms"));this.get_objectData().get_clientObjectProperties()["Terms"]=a}return a},initPropertiesFromJson:function(b){a:;SP.Taxonomy.TaxonomyItem.prototype.initPropertiesFromJson.call(this,b);var a;a=b.CustomProperties;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["CustomProperties"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.CustomProperties}a=b.CustomSortOrder;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["CustomSortOrder"]=a;delete b.CustomSortOrder}a=b.IsAvailableForTagging;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsAvailableForTagging"]=a;delete b.IsAvailableForTagging}a=b.Owner;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Owner"]=a;delete b.Owner}a=b.Terms;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("Terms",this.get_terms(),a);this.get_terms().fromJson(a);delete b.Terms}},createTerm:function(f,e,d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"CreateTerm",[f,e,d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},getTerms:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTerms",[c]));return b},reuseTerm:function(e,d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"ReuseTerm",[e,d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},reuseTermWithPinning:function(d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"ReuseTermWithPinning",[d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},deleteCustomProperty:function(c){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"DeleteCustomProperty",[c]);a.addQuery(b)},deleteAllCustomProperties:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"DeleteAllCustomProperties",null);a.addQuery(b)},setCustomProperty:function(d,a){a:;var b=this.get_context(),c=new SP.ClientActionInvokeMethod(this,"SetCustomProperty",[d,a]);b.addQuery(c)}};SP.Taxonomy.TermSetItemPropertyNames=function(){};SP.Taxonomy.TermSetItemObjectPropertyNames=function(){};SP.Taxonomy.TermStore=function(b,a){a:;SP.Taxonomy.TermStore.initializeBase(this,[b,a])};SP.Taxonomy.TermStore.prototype={get_contentTypePublishingHub:function(){a:;this.checkUninitializedProperty("ContentTypePublishingHub");return this.get_objectData().get_properties()["ContentTypePublishingHub"]},get_defaultLanguage:function(){a:;this.checkUninitializedProperty("DefaultLanguage");return this.get_objectData().get_properties()["DefaultLanguage"]},set_defaultLanguage:function(a){a:;this.get_objectData().get_properties()["DefaultLanguage"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"DefaultLanguage",a));return a},get_groups:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["Groups"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermGroupCollection(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"Groups"));this.get_objectData().get_clientObjectProperties()["Groups"]=a}return a},get_hashTagsTermSet:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["HashTagsTermSet"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermSet(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"HashTagsTermSet"));this.get_objectData().get_clientObjectProperties()["HashTagsTermSet"]=a}return a},get_id:function(){a:;this.checkUninitializedProperty("Id");return this.get_objectData().get_properties()["Id"]},get_isOnline:function(){a:;this.checkUninitializedProperty("IsOnline");return this.get_objectData().get_properties()["IsOnline"]},get_keywordsTermSet:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["KeywordsTermSet"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermSet(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"KeywordsTermSet"));this.get_objectData().get_clientObjectProperties()["KeywordsTermSet"]=a}return a},get_languages:function(){a:;this.checkUninitializedProperty("Languages");return this.get_objectData().get_properties()["Languages"]},get_name:function(){a:;this.checkUninitializedProperty("Name");return this.get_objectData().get_properties()["Name"]},get_orphanedTermsTermSet:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["OrphanedTermsTermSet"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermSet(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"OrphanedTermsTermSet"));this.get_objectData().get_clientObjectProperties()["OrphanedTermsTermSet"]=a}return a},get_systemGroup:function(){a:;var a=this.get_objectData().get_clientObjectProperties()["SystemGroup"];if(SP.ScriptUtility.isUndefined(a)){a=new SP.Taxonomy.TermGroup(this.get_context(),new SP.ObjectPathProperty(this.get_context(),this.get_path(),"SystemGroup"));this.get_objectData().get_clientObjectProperties()["SystemGroup"]=a}return a},get_workingLanguage:function(){a:;this.checkUninitializedProperty("WorkingLanguage");return this.get_objectData().get_properties()["WorkingLanguage"]},set_workingLanguage:function(a){a:;this.get_objectData().get_properties()["WorkingLanguage"]=a;this.get_context()&&this.get_context().addQuery(new SP.ClientActionSetProperty(this,"WorkingLanguage",a));return a},initPropertiesFromJson:function(b){a:;SP.ClientObject.prototype.initPropertiesFromJson.call(this,b);var a;a=b.ContentTypePublishingHub;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["ContentTypePublishingHub"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.ContentTypePublishingHub}a=b.DefaultLanguage;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["DefaultLanguage"]=a;delete b.DefaultLanguage}a=b.Groups;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("Groups",this.get_groups(),a);this.get_groups().fromJson(a);delete b.Groups}a=b.HashTagsTermSet;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("HashTagsTermSet",this.get_hashTagsTermSet(),a);this.get_hashTagsTermSet().fromJson(a);delete b.HashTagsTermSet}a=b.Id;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Id"]=a;delete b.Id}a=b.IsOnline;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["IsOnline"]=a;delete b.IsOnline}a=b.KeywordsTermSet;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("KeywordsTermSet",this.get_keywordsTermSet(),a);this.get_keywordsTermSet().fromJson(a);delete b.KeywordsTermSet}a=b.Languages;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Languages"]=SP.DataConvert.fixupType(this.get_context(),a);delete b.Languages}a=b.Name;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["Name"]=a;delete b.Name}a=b.OrphanedTermsTermSet;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("OrphanedTermsTermSet",this.get_orphanedTermsTermSet(),a);this.get_orphanedTermsTermSet().fromJson(a);delete b.OrphanedTermsTermSet}a=b.SystemGroup;if(!SP.ScriptUtility.isUndefined(a)){this.updateClientObjectPropertyType("SystemGroup",this.get_systemGroup(),a);this.get_systemGroup().fromJson(a);delete b.SystemGroup}a=b.WorkingLanguage;if(!SP.ScriptUtility.isUndefined(a)){this.get_objectData().get_properties()["WorkingLanguage"]=a;delete b.WorkingLanguage}},updateUsedTermsOnSite:function(c){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"UpdateUsedTermsOnSite",[c]);a.addQuery(b)},addLanguage:function(c){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"AddLanguage",[c]);a.addQuery(b)},commitAll:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"CommitAll",null);a.addQuery(b)},createGroup:function(e,d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.TermGroup(b,new SP.ObjectPathMethod(b,this.get_path(),"CreateGroup",[e,d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},deleteLanguage:function(c){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"DeleteLanguage",[c]);a.addQuery(b)},getChanges:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.ChangedItemCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetChanges",[c]));return b},getGroup:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetGroup"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetGroup"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermGroup(b,new SP.ObjectPathMethod(b,this.get_path(),"GetGroup",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getPackagesUpdateInformation:function(d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetPackagesUpdateInformation",[d]);b.addQuery(c);a=[];b.addQueryIdAndResultObject(c.get_id(),a);return a},getPackage:function(g,f,e,d){a:;var b=this.get_context(),a,c=new SP.ClientActionInvokeMethod(this,"GetPackage",[g,f,e,d]);b.addQuery(c);a=[];b.addQueryIdAndResultObject(c.get_id(),a);return a},uploadPackages:function(c,d,b,a){a:;var e=this.get_context(),f=new SP.ClientActionInvokeMethod(this,"UploadPackages",[c,d,b,a]);e.addQuery(f)},getTerm:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetTerm"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetTerm"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"GetTerm",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getTermInTermSet:function(d,e){a:;var b=this.get_context(),a;a=new SP.Taxonomy.Term(b,new SP.ObjectPathMethod(b,this.get_path(),"GetTermInTermSet",[d,e]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a},getTermsById:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermsById",[c]));return b},getTerms:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTerms",[c]));return b},getTermSetsByName:function(c,d){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermSetCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermSetsByName",[c,d]));return b},getTermsWithCustomProperty:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermsWithCustomProperty",[c]));return b},getTermSet:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetTermSet"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetTermSet"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermSet(b,new SP.ObjectPathMethod(b,this.get_path(),"GetTermSet",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getTermSetsByTermLabel:function(c,d){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermSetCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermSetsByTermLabel",[c,d]));return b},getTermSetsWithCustomProperty:function(c){a:;var a=this.get_context(),b;b=new SP.Taxonomy.TermSetCollection(a,new SP.ObjectPathMethod(a,this.get_path(),"GetTermSetsWithCustomProperty",[c]));return b},rollbackAll:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"RollbackAll",null);a.addQuery(b)},updateCache:function(){a:;var a=this.get_context(),b=new SP.ClientActionInvokeMethod(this,"UpdateCache",null);a.addQuery(b)},getSiteCollectionGroup:function(e,d){a:;var b=this.get_context(),a;a=new SP.Taxonomy.TermGroup(b,new SP.ObjectPathMethod(b,this.get_path(),"GetSiteCollectionGroup",[e,d]));a.get_path().setPendingReplace();var c=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(c.get_id(),a);b.addQuery(c);return a}};SP.Taxonomy.TermStorePropertyNames=function(){};SP.Taxonomy.TermStoreObjectPropertyNames=function(){};SP.Taxonomy.TermStoreCollection=function(b,a){a:;SP.Taxonomy.TermStoreCollection.initializeBase(this,[b,a])};SP.Taxonomy.TermStoreCollection.prototype={itemAt:function(a){a:;return this.getItemAtIndex(a)},get_item:function(a){a:;return this.getItemAtIndex(a)},get_childItemType:function(){a:;return SP.Taxonomy.TermStore},getById:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetById"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetById"]=c}a=c[d.toString()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermStore(b,new SP.ObjectPathMethod(b,this.get_path(),"GetById",[d]));if(!b.get_disableReturnValueCache())c[d.toString()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a},getByName:function(d){a:;var b=this.get_context(),a,c=this.get_objectData().get_methodReturnObjects()["GetByName"];if(SP.ScriptUtility.isNullOrUndefined(c)){c={};this.get_objectData().get_methodReturnObjects()["GetByName"]=c}a=c[d.toUpperCase()];if(!b.get_disableReturnValueCache()&&!SP.ScriptUtility.isNullOrUndefined(a))return a;a=new SP.Taxonomy.TermStore(b,new SP.ObjectPathMethod(b,this.get_path(),"GetByName",[d]));if(!b.get_disableReturnValueCache())c[d.toUpperCase()]=a;var e=new SP.ObjectIdentityQuery(a.get_path());b.addQueryIdAndResultObject(e.get_id(),a);b.addQuery(e);return a}};SP.Taxonomy.ChangedItem.registerClass("SP.Taxonomy.ChangedItem",SP.ClientObject);SP.Taxonomy.ChangedGroup.registerClass("SP.Taxonomy.ChangedGroup",SP.Taxonomy.ChangedItem);SP.Taxonomy.ChangedItemPropertyNames.registerClass("SP.Taxonomy.ChangedItemPropertyNames");SP.Taxonomy.ChangedItemCollection.registerClass("SP.Taxonomy.ChangedItemCollection",SP.ClientObjectCollection);SP.Taxonomy.ChangedSite.registerClass("SP.Taxonomy.ChangedSite",SP.Taxonomy.ChangedItem);SP.Taxonomy.ChangedSitePropertyNames.registerClass("SP.Taxonomy.ChangedSitePropertyNames");SP.Taxonomy.ChangedTerm.registerClass("SP.Taxonomy.ChangedTerm",SP.Taxonomy.ChangedItem);SP.Taxonomy.ChangedTermPropertyNames.registerClass("SP.Taxonomy.ChangedTermPropertyNames");SP.Taxonomy.ChangedTermSet.registerClass("SP.Taxonomy.ChangedTermSet",SP.Taxonomy.ChangedItem);SP.Taxonomy.ChangedTermSetPropertyNames.registerClass("SP.Taxonomy.ChangedTermSetPropertyNames");SP.Taxonomy.ChangedTermStore.registerClass("SP.Taxonomy.ChangedTermStore",SP.Taxonomy.ChangedItem);SP.Taxonomy.ChangedTermStorePropertyNames.registerClass("SP.Taxonomy.ChangedTermStorePropertyNames");SP.Taxonomy.ChangeInformation.registerClass("SP.Taxonomy.ChangeInformation",SP.ClientObject);SP.Taxonomy.ChangeInformationPropertyNames.registerClass("SP.Taxonomy.ChangeInformationPropertyNames");SP.Taxonomy.CustomPropertyMatchInformation.registerClass("SP.Taxonomy.CustomPropertyMatchInformation",SP.ClientObject);SP.Taxonomy.CustomPropertyMatchInformationPropertyNames.registerClass("SP.Taxonomy.CustomPropertyMatchInformationPropertyNames");SP.Taxonomy.Label.registerClass("SP.Taxonomy.Label",SP.ClientObject);SP.Taxonomy.LabelPropertyNames.registerClass("SP.Taxonomy.LabelPropertyNames");SP.Taxonomy.LabelObjectPropertyNames.registerClass("SP.Taxonomy.LabelObjectPropertyNames");SP.Taxonomy.LabelCollection.registerClass("SP.Taxonomy.LabelCollection",SP.ClientObjectCollection);SP.Taxonomy.LabelMatchInformation.registerClass("SP.Taxonomy.LabelMatchInformation",SP.ClientObject);SP.Taxonomy.LabelMatchInformationPropertyNames.registerClass("SP.Taxonomy.LabelMatchInformationPropertyNames");SP.Taxonomy.MobileTaxonomyField.registerClass("SP.Taxonomy.MobileTaxonomyField",SP.ClientObject);SP.Taxonomy.MobileTaxonomyFieldPropertyNames.registerClass("SP.Taxonomy.MobileTaxonomyFieldPropertyNames");SP.Taxonomy.TaxonomyField.registerClass("SP.Taxonomy.TaxonomyField",SP.FieldLookup);SP.Taxonomy.TaxonomyFieldPropertyNames.registerClass("SP.Taxonomy.TaxonomyFieldPropertyNames");SP.Taxonomy.TaxonomyFieldValue.registerClass("SP.Taxonomy.TaxonomyFieldValue",SP.ClientValueObject);SP.Taxonomy.TaxonomyFieldValueCollection.registerClass("SP.Taxonomy.TaxonomyFieldValueCollection",SP.ClientObjectCollection);SP.Taxonomy.TaxonomyItem.registerClass("SP.Taxonomy.TaxonomyItem",SP.ClientObject);SP.Taxonomy.TaxonomyItemPropertyNames.registerClass("SP.Taxonomy.TaxonomyItemPropertyNames");SP.Taxonomy.TaxonomyItemObjectPropertyNames.registerClass("SP.Taxonomy.TaxonomyItemObjectPropertyNames");SP.Taxonomy.TaxonomySession.registerClass("SP.Taxonomy.TaxonomySession",SP.ClientObject);SP.Taxonomy.TaxonomySessionPropertyNames.registerClass("SP.Taxonomy.TaxonomySessionPropertyNames");SP.Taxonomy.TaxonomySessionObjectPropertyNames.registerClass("SP.Taxonomy.TaxonomySessionObjectPropertyNames");SP.Taxonomy.TermSetItem.registerClass("SP.Taxonomy.TermSetItem",SP.Taxonomy.TaxonomyItem);SP.Taxonomy.Term.registerClass("SP.Taxonomy.Term",SP.Taxonomy.TermSetItem);SP.Taxonomy.TermPropertyNames.registerClass("SP.Taxonomy.TermPropertyNames");SP.Taxonomy.TermObjectPropertyNames.registerClass("SP.Taxonomy.TermObjectPropertyNames");SP.Taxonomy.TermCollection.registerClass("SP.Taxonomy.TermCollection",SP.ClientObjectCollection);SP.Taxonomy.TermGroup.registerClass("SP.Taxonomy.TermGroup",SP.Taxonomy.TaxonomyItem);SP.Taxonomy.TermGroupPropertyNames.registerClass("SP.Taxonomy.TermGroupPropertyNames");SP.Taxonomy.TermGroupObjectPropertyNames.registerClass("SP.Taxonomy.TermGroupObjectPropertyNames");SP.Taxonomy.TermGroupCollection.registerClass("SP.Taxonomy.TermGroupCollection",SP.ClientObjectCollection);SP.Taxonomy.TermSet.registerClass("SP.Taxonomy.TermSet",SP.Taxonomy.TermSetItem);SP.Taxonomy.TermSetPropertyNames.registerClass("SP.Taxonomy.TermSetPropertyNames");SP.Taxonomy.TermSetObjectPropertyNames.registerClass("SP.Taxonomy.TermSetObjectPropertyNames");SP.Taxonomy.TermSetCollection.registerClass("SP.Taxonomy.TermSetCollection",SP.ClientObjectCollection);SP.Taxonomy.TermSetItemPropertyNames.registerClass("SP.Taxonomy.TermSetItemPropertyNames");SP.Taxonomy.TermSetItemObjectPropertyNames.registerClass("SP.Taxonomy.TermSetItemObjectPropertyNames");SP.Taxonomy.TermStore.registerClass("SP.Taxonomy.TermStore",SP.ClientObject);SP.Taxonomy.TermStorePropertyNames.registerClass("SP.Taxonomy.TermStorePropertyNames");SP.Taxonomy.TermStoreObjectPropertyNames.registerClass("SP.Taxonomy.TermStoreObjectPropertyNames");SP.Taxonomy.TermStoreCollection.registerClass("SP.Taxonomy.TermStoreCollection",SP.ClientObjectCollection);SP.Taxonomy.ChangedItemPropertyNames.changedBy="ChangedBy";SP.Taxonomy.ChangedItemPropertyNames.changedTime="ChangedTime";SP.Taxonomy.ChangedItemPropertyNames.id="Id";SP.Taxonomy.ChangedItemPropertyNames.itemType="ItemType";SP.Taxonomy.ChangedItemPropertyNames.operation="Operation";SP.Taxonomy.ChangedSitePropertyNames.siteId="SiteId";SP.Taxonomy.ChangedSitePropertyNames.termId="TermId";SP.Taxonomy.ChangedSitePropertyNames.termSetId="TermSetId";SP.Taxonomy.ChangedTermPropertyNames.changedCustomProperties="ChangedCustomProperties";SP.Taxonomy.ChangedTermPropertyNames.changedLocalCustomProperties="ChangedLocalCustomProperties";SP.Taxonomy.ChangedTermPropertyNames.groupId="GroupId";SP.Taxonomy.ChangedTermPropertyNames.lcidsForChangedDescriptions="LcidsForChangedDescriptions";SP.Taxonomy.ChangedTermPropertyNames.lcidsForChangedLabels="LcidsForChangedLabels";SP.Taxonomy.ChangedTermPropertyNames.termSetId="TermSetId";SP.Taxonomy.ChangedTermSetPropertyNames.fromGroupId="FromGroupId";SP.Taxonomy.ChangedTermSetPropertyNames.groupId="GroupId";SP.Taxonomy.ChangedTermStorePropertyNames.changedLanguage="ChangedLanguage";SP.Taxonomy.ChangedTermStorePropertyNames.isDefaultLanguageChanged="IsDefaultLanguageChanged";SP.Taxonomy.ChangedTermStorePropertyNames.isFullFarmRestore="IsFullFarmRestore";SP.Taxonomy.ChangeInformationPropertyNames.itemType="ItemType";SP.Taxonomy.ChangeInformationPropertyNames.operationType="OperationType";SP.Taxonomy.ChangeInformationPropertyNames.startTime="StartTime";SP.Taxonomy.ChangeInformationPropertyNames.withinTimeSpan="WithinTimeSpan";SP.Taxonomy.CustomPropertyMatchInformationPropertyNames.customPropertyName="CustomPropertyName";SP.Taxonomy.CustomPropertyMatchInformationPropertyNames.customPropertyValue="CustomPropertyValue";SP.Taxonomy.CustomPropertyMatchInformationPropertyNames.resultCollectionSize="ResultCollectionSize";SP.Taxonomy.CustomPropertyMatchInformationPropertyNames.stringMatchOption="StringMatchOption";SP.Taxonomy.CustomPropertyMatchInformationPropertyNames.trimUnavailable="TrimUnavailable";SP.Taxonomy.LabelPropertyNames.isDefaultForLanguage="IsDefaultForLanguage";SP.Taxonomy.LabelPropertyNames.language="Language";SP.Taxonomy.LabelPropertyNames.value="Value";SP.Taxonomy.LabelObjectPropertyNames.term="Term";SP.Taxonomy.LabelMatchInformationPropertyNames.defaultLabelOnly="DefaultLabelOnly";SP.Taxonomy.LabelMatchInformationPropertyNames.excludeKeyword="ExcludeKeyword";SP.Taxonomy.LabelMatchInformationPropertyNames.lcid="Lcid";SP.Taxonomy.LabelMatchInformationPropertyNames.resultCollectionSize="ResultCollectionSize";SP.Taxonomy.LabelMatchInformationPropertyNames.stringMatchOption="StringMatchOption";SP.Taxonomy.LabelMatchInformationPropertyNames.termLabel="TermLabel";SP.Taxonomy.LabelMatchInformationPropertyNames.trimDeprecated="TrimDeprecated";SP.Taxonomy.LabelMatchInformationPropertyNames.trimUnavailable="TrimUnavailable";SP.Taxonomy.MobileTaxonomyFieldPropertyNames.readOnly="ReadOnly";SP.Taxonomy.TaxonomyFieldPropertyNames.anchorId="AnchorId";SP.Taxonomy.TaxonomyFieldPropertyNames.createValuesInEditForm="CreateValuesInEditForm";SP.Taxonomy.TaxonomyFieldPropertyNames.isAnchorValid="IsAnchorValid";SP.Taxonomy.TaxonomyFieldPropertyNames.isKeyword="IsKeyword";SP.Taxonomy.TaxonomyFieldPropertyNames.isPathRendered="IsPathRendered";SP.Taxonomy.TaxonomyFieldPropertyNames.isTermSetValid="IsTermSetValid";SP.Taxonomy.TaxonomyFieldPropertyNames.open="Open";SP.Taxonomy.TaxonomyFieldPropertyNames.sspId="SspId";SP.Taxonomy.TaxonomyFieldPropertyNames.targetTemplate="TargetTemplate";SP.Taxonomy.TaxonomyFieldPropertyNames.termSetId="TermSetId";SP.Taxonomy.TaxonomyFieldPropertyNames.textField="TextField";SP.Taxonomy.TaxonomyFieldPropertyNames.userCreated="UserCreated";SP.Taxonomy.TaxonomyItemPropertyNames.createdDate="CreatedDate";SP.Taxonomy.TaxonomyItemPropertyNames.id="Id";SP.Taxonomy.TaxonomyItemPropertyNames.lastModifiedDate="LastModifiedDate";SP.Taxonomy.TaxonomyItemPropertyNames.name="Name";SP.Taxonomy.TaxonomyItemObjectPropertyNames.termStore="TermStore";SP.Taxonomy.TaxonomySessionPropertyNames.offlineTermStoreNames="OfflineTermStoreNames";SP.Taxonomy.TaxonomySessionObjectPropertyNames.termStores="TermStores";SP.Taxonomy.TermPropertyNames.description="Description";SP.Taxonomy.TermPropertyNames.isDeprecated="IsDeprecated";SP.Taxonomy.TermPropertyNames.isKeyword="IsKeyword";SP.Taxonomy.TermPropertyNames.isPinned="IsPinned";SP.Taxonomy.TermPropertyNames.isPinnedRoot="IsPinnedRoot";SP.Taxonomy.TermPropertyNames.isReused="IsReused";SP.Taxonomy.TermPropertyNames.isRoot="IsRoot";SP.Taxonomy.TermPropertyNames.isSourceTerm="IsSourceTerm";SP.Taxonomy.TermPropertyNames.localCustomProperties="LocalCustomProperties";SP.Taxonomy.TermPropertyNames.mergedTermIds="MergedTermIds";SP.Taxonomy.TermPropertyNames.pathOfTerm="PathOfTerm";SP.Taxonomy.TermPropertyNames.termsCount="TermsCount";SP.Taxonomy.TermObjectPropertyNames.labels="Labels";SP.Taxonomy.TermObjectPropertyNames.parent="Parent";SP.Taxonomy.TermObjectPropertyNames.pinSourceTermSet="PinSourceTermSet";SP.Taxonomy.TermObjectPropertyNames.reusedTerms="ReusedTerms";SP.Taxonomy.TermObjectPropertyNames.sourceTerm="SourceTerm";SP.Taxonomy.TermObjectPropertyNames.termSet="TermSet";SP.Taxonomy.TermObjectPropertyNames.termSets="TermSets";SP.Taxonomy.TermGroupPropertyNames.contributorPrincipalNames="ContributorPrincipalNames";SP.Taxonomy.TermGroupPropertyNames.description="Description";SP.Taxonomy.TermGroupPropertyNames.groupManagerPrincipalNames="GroupManagerPrincipalNames";SP.Taxonomy.TermGroupPropertyNames.isSiteCollectionGroup="IsSiteCollectionGroup";SP.Taxonomy.TermGroupPropertyNames.isSystemGroup="IsSystemGroup";SP.Taxonomy.TermGroupObjectPropertyNames.termSets="TermSets";SP.Taxonomy.TermSetPropertyNames.contact="Contact";SP.Taxonomy.TermSetPropertyNames.description="Description";SP.Taxonomy.TermSetPropertyNames.isOpenForTermCreation="IsOpenForTermCreation";SP.Taxonomy.TermSetPropertyNames.names="Names";SP.Taxonomy.TermSetPropertyNames.stakeholders="Stakeholders";SP.Taxonomy.TermSetObjectPropertyNames.group="Group";SP.Taxonomy.TermSetItemPropertyNames.customProperties="CustomProperties";SP.Taxonomy.TermSetItemPropertyNames.customSortOrder="CustomSortOrder";SP.Taxonomy.TermSetItemPropertyNames.isAvailableForTagging="IsAvailableForTagging";SP.Taxonomy.TermSetItemPropertyNames.owner="Owner";SP.Taxonomy.TermSetItemObjectPropertyNames.terms="Terms";SP.Taxonomy.TermStorePropertyNames.contentTypePublishingHub="ContentTypePublishingHub";SP.Taxonomy.TermStorePropertyNames.defaultLanguage="DefaultLanguage";SP.Taxonomy.TermStorePropertyNames.id="Id";SP.Taxonomy.TermStorePropertyNames.isOnline="IsOnline";SP.Taxonomy.TermStorePropertyNames.languages="Languages";SP.Taxonomy.TermStorePropertyNames.name="Name";SP.Taxonomy.TermStorePropertyNames.workingLanguage="WorkingLanguage";SP.Taxonomy.TermStoreObjectPropertyNames.groups="Groups";SP.Taxonomy.TermStoreObjectPropertyNames.hashTagsTermSet="HashTagsTermSet";SP.Taxonomy.TermStoreObjectPropertyNames.keywordsTermSet="KeywordsTermSet";SP.Taxonomy.TermStoreObjectPropertyNames.orphanedTermsTermSet="OrphanedTermsTermSet";SP.Taxonomy.TermStoreObjectPropertyNames.systemGroup="SystemGroup";typeof Sys!="undefined"&&Sys&&Sys.Application&&Sys.Application.notifyScriptLoaded();NotifyScriptLoadedAndExecuteWaitingJobs("SP.Taxonomy.js") -------------------------------------------------------------------------------- /lib/xml-parser.js: -------------------------------------------------------------------------------- 1 | var xml2js = require('xml2js'); 2 | 3 | function parseXml(xml, complete) { 4 | var parser = new xml2js.Parser({ 5 | emptyTag: '', // use empty string as value when tag empty, 6 | explicitArray : false 7 | }); 8 | parser.on('end', function (js) { 9 | complete && complete(js); 10 | }); 11 | parser.parseString(xml); 12 | }; 13 | 14 | 15 | exports.parseXml = parseXml; -------------------------------------------------------------------------------- /lib/xmlhttprequest-proxy.js: -------------------------------------------------------------------------------- 1 | var XMLHttpRequestImpl = require('xmlhttprequest').XMLHttpRequest; 2 | XMLHttpRequest = function () { 3 | var inst = new XMLHttpRequestImpl(); 4 | inst.setDisableHeaderCheck(true); 5 | return inst; 6 | } 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "csom-node", 3 | "version": "0.1.8", 4 | "description": "SharePoint Client Object Model (CSOM) API for Node.Js", 5 | "main": "./lib/csom-loader.js", 6 | "author": { 7 | "name": "Vadim Gremyachev", 8 | "email": "vvgrem@gmail.com" 9 | }, 10 | "homepage": "https://github.com/vgrem/CSOMNode", 11 | "repository": { 12 | "type": "git", 13 | "url": "git@github.com:vgrem/CSOMNode.git" 14 | }, 15 | "bugs": { 16 | "url": "https://github.com/vgrem/CSOMNode/issues" 17 | }, 18 | "scripts": { 19 | "test": "mocha" 20 | }, 21 | "dependencies": { 22 | "xml2js": "^0.4.23", 23 | "xmlhttprequest": "^1.8.0" 24 | }, 25 | "devDependencies": { 26 | "mocha": "^7.1.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/web.test.js: -------------------------------------------------------------------------------- 1 | const csomapi = require("../lib/csom-loader"); 2 | const {settings} = require("../examples/settings"); 3 | const assert = require('assert'); 4 | const describe = require("mocha").describe; 5 | const it = require("mocha").it; 6 | const beforeEach = require("mocha").beforeEach; 7 | 8 | csomapi.setLoaderOptions({url: settings.siteUrl}); 9 | 10 | describe('Web tests', function() { 11 | 12 | let ctx; 13 | 14 | beforeEach(async function() { 15 | ctx = await SP.ClientContext.connectWithUserCredentials(settings.username, settings.password); 16 | return ctx; 17 | }); 18 | 19 | it('should return Web title',async function() { 20 | const web = ctx.get_web(); 21 | ctx.load(web); 22 | await ctx.executeQuery(); 23 | assert.ok(web.get_title()); 24 | }); 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /updater/index.js: -------------------------------------------------------------------------------- 1 | const fetch = require("node-fetch"); 2 | const fs = require('fs'); 3 | const settings = require("../lib/csom-settings").Settings; 4 | 5 | 6 | function buildDownloadUrl(package, version) { 7 | let scriptPath = package.filename; 8 | if ("lcid" in package) scriptPath = `${package.lcid}/${scriptPath}`; 9 | return `https://static.sharepointonline.com/bld/_layouts/15/${version}/${scriptPath}`; 10 | } 11 | 12 | async function downloadPackage(package,version) { 13 | const downloadUrl = buildDownloadUrl(package, version); 14 | const res = await fetch(downloadUrl); 15 | if (!res.ok) { 16 | throw new Error(`Package '${downloadUrl}' not found`) 17 | } 18 | return res.text(); 19 | } 20 | 21 | function savePackage(package,content) { 22 | let localPath = package.filename; 23 | if ("lcid" in package) localPath = `${package.lcid}/${localPath}`; 24 | localPath = `./lib/sp_modules/${localPath}`; 25 | fs.writeFileSync(localPath, content); 26 | console.log(`File ${localPath} has been updated`) 27 | } 28 | 29 | 30 | (async () => { 31 | for (let ns of Object.keys(settings.packages)) { 32 | for (let p of settings.packages[ns]) { 33 | if(!("external" in p)) { 34 | try { 35 | const content = await downloadPackage(p,settings.version); 36 | savePackage(p,content); 37 | } 38 | catch (e) { 39 | console.log(e); 40 | } 41 | } 42 | } 43 | } 44 | })(); 45 | -------------------------------------------------------------------------------- /updater/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "updater", 3 | "version": "1.0.0", 4 | "description": "SharePoint JSOM API updater utility", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "vvgrem@gmail.com", 10 | "devDependencies": {}, 11 | "dependencies": { 12 | "node-fetch": "^2.3.0" 13 | } 14 | } 15 | --------------------------------------------------------------------------------