@progress/sitefinity-webservices-sdk 0.3.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +4 -0
- package/.eslintrc.js +19 -0
- package/ci/pipelines/ci.yml +219 -0
- package/config/helpers.js +0 -6
- package/config/webpack.common.js +1 -3
- package/config/webpack.dev.js +2 -9
- package/config/webpack.prod.js +5 -6
- package/dist/docs/.nojekyll +1 -0
- package/dist/docs/assets/highlight.css +57 -0
- package/dist/docs/assets/icons.css +1043 -0
- package/dist/docs/assets/icons.png +0 -0
- package/dist/docs/assets/icons@2x.png +0 -0
- package/dist/docs/assets/main.js +52 -0
- package/dist/docs/assets/search.js +1 -0
- package/dist/docs/assets/style.css +1413 -0
- package/dist/docs/assets/{images/widgets.png → widgets.png} +0 -0
- package/dist/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
- package/dist/docs/classes/BlobBuilder.BlobBuilder-1.html +7 -0
- package/dist/docs/classes/Data.Data-1.html +65 -0
- package/dist/docs/classes/Expression.BinaryExpression.html +1 -0
- package/dist/docs/classes/Expression.ComplexExpression.html +1 -0
- package/dist/docs/classes/Expression.ExpressionBase.html +1 -0
- package/dist/docs/classes/OrderProperty.OrderProperty-1.html +1 -0
- package/dist/docs/classes/Query.Query-1.html +33 -0
- package/dist/docs/classes/QueryBase.QueryBase-1.html +7 -0
- package/dist/docs/classes/QueryBuilder.QueryBuilder-1.html +1 -0
- package/dist/docs/classes/Requests_BatchRequest.BatchRequest.html +17 -0
- package/dist/docs/classes/Requests_BatchRequest.Transaction.html +17 -0
- package/dist/docs/classes/Requests_ExecutableRequest.ExecutableRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.CreateRelatedRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.CreateRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.DeleteRelatedByIdRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.DeleteRelatedRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.DeleteRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetByIdRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetRelatedByIdRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetRelatedRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.GetRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.UpdateRequest.html +1 -0
- package/dist/docs/classes/Requests_Request.UploadRequest.html +1 -0
- package/dist/docs/classes/Requests_RequestBase.RequestBase.html +1 -0
- package/dist/docs/classes/Requests_RequestFactory.RequestFactory.html +1 -0
- package/dist/docs/classes/Sitefinity.Sitefinity-1.html +5 -0
- package/dist/docs/classes/WhereQuery.WhereQuery-1.html +31 -0
- package/dist/docs/classes/utils.utils-1.html +1 -0
- package/dist/docs/index.html +54 -242
- package/dist/docs/interfaces/Data.CreateRelatedRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.CreateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.OperationsRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.PropertyRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.RequestOptionsBase.html +1 -0
- package/dist/docs/interfaces/Data.SingleRelatedItemRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.UpdateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Data.UploadRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRelatedRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchPropertyRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsBase.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleItemRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleRelatedItemRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_BatchRequest.BatchUpdateRequestOptions.html +1 -0
- package/dist/docs/interfaces/Requests_ExecutableRequest.ResponseHandlers.html +5 -0
- package/dist/docs/interfaces/Requests_Request.PostRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.PutRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.RelatedByIdRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.RelatedRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_Request.UploadRequestOptionsExtended.html +1 -0
- package/dist/docs/interfaces/Requests_RequestBase.RequestOptionsBaseExtended.html +1 -0
- package/dist/docs/interfaces/Sitefinity.SDKOptions.html +9 -0
- package/dist/docs/interfaces/Sitefinity.Token.html +1 -0
- package/dist/docs/interfaces/Sitefinity.TypeOptions.html +13 -0
- package/dist/docs/modules/BlobBuilder.html +1 -0
- package/dist/docs/modules/Data.html +1 -0
- package/dist/docs/modules/Expression.html +1 -0
- package/dist/docs/modules/OrderProperty.html +1 -0
- package/dist/docs/modules/Query.html +1 -0
- package/dist/docs/modules/QueryBase.html +1 -0
- package/dist/docs/modules/QueryBuilder.html +1 -0
- package/dist/docs/modules/Requests_BatchRequest.html +1 -0
- package/dist/docs/modules/Requests_ExecutableRequest.html +1 -0
- package/dist/docs/modules/Requests_Request.html +1 -0
- package/dist/docs/modules/Requests_RequestBase.html +1 -0
- package/dist/docs/modules/Requests_RequestFactory.html +1 -0
- package/dist/docs/modules/Sitefinity.html +1 -0
- package/dist/docs/modules/WhereQuery.html +1 -0
- package/dist/docs/modules/constants.html +1 -0
- package/dist/docs/modules/utils.html +1 -0
- package/dist/docs/modules.html +1 -0
- package/dist/samples.html +33 -81
- package/dist/sitefinity-webservices-sdk.d.ts +16 -0
- package/dist/sitefinity-webservices-sdk.js +1141 -1737
- package/dist/sitefinity-webservices-sdk.js.map +1 -1
- package/dist/sitefinity-webservices-sdk.min.js +2 -16
- package/dist/sitefinity-webservices-sdk.min.js.LICENSE.txt +14 -0
- package/dist/src/BlobBuilder.d.ts +14 -0
- package/dist/src/Data.d.ts +144 -0
- package/dist/src/Expression.d.ts +19 -0
- package/dist/src/OrderProperty.d.ts +8 -0
- package/dist/src/Query.d.ts +59 -0
- package/dist/src/QueryBase.d.ts +18 -0
- package/dist/src/QueryBuilder.d.ts +13 -0
- package/dist/src/Requests/BatchRequest.d.ts +146 -0
- package/dist/src/Requests/ExecutableRequest.d.ts +20 -0
- package/dist/src/Requests/Request.d.ts +88 -0
- package/dist/src/Requests/RequestBase.d.ts +28 -0
- package/dist/src/Requests/RequestFactory.d.ts +22 -0
- package/dist/src/Sitefinity.d.ts +66 -0
- package/dist/src/WhereQuery.d.ts +68 -0
- package/dist/src/constants.d.ts +55 -0
- package/dist/src/utils.d.ts +16 -0
- package/karma.conf.js +29 -0
- package/package-lock.json +16108 -6805
- package/package.json +28 -10
- package/sitefinity-webservices-sdk.ts +16 -0
- package/src/BlobBuilder.ts +7 -12
- package/src/Data.spec.ts +160 -0
- package/src/Data.ts +132 -207
- package/src/Expression.ts +0 -1
- package/src/OrderProperty.ts +4 -5
- package/src/Query.ts +52 -78
- package/src/QueryBase.ts +21 -47
- package/src/QueryBuilder.ts +64 -82
- package/src/Requests/BatchRequest.ts +312 -335
- package/src/Requests/ExecutableRequest.ts +46 -73
- package/src/Requests/Request.ts +134 -260
- package/src/Requests/RequestBase.ts +161 -0
- package/src/Requests/RequestFactory.ts +36 -54
- package/src/Requests/request.spec.ts +92 -0
- package/src/Sitefinity.spec.ts +418 -0
- package/src/Sitefinity.ts +77 -146
- package/src/WhereQuery.ts +52 -112
- package/src/constants.ts +58 -39
- package/src/utils.ts +17 -14
- package/template.html +33 -35
- package/tsconfig.json +8 -1
- package/type.txt +1 -1
- package/version.txt +1 -1
- package/config/html.conf.json +0 -5
- package/dist/docs/assets/css/main.css +0 -865
- package/dist/docs/assets/css/main.css.map +0 -7
- package/dist/docs/assets/images/icons.png +0 -0
- package/dist/docs/assets/images/icons@2x.png +0 -0
- package/dist/docs/assets/js/main.js +0 -5
- package/dist/docs/assets/js/search.js +0 -3
- package/dist/docs/classes/_authentication_.authentication.html +0 -527
- package/dist/docs/classes/_blobbuilder_.blobbuilder.html +0 -351
- package/dist/docs/classes/_data_.data.html +0 -974
- package/dist/docs/classes/_expression_.binaryexpression.html +0 -450
- package/dist/docs/classes/_expression_.complexexpression.html +0 -374
- package/dist/docs/classes/_expression_.expressionbase.html +0 -336
- package/dist/docs/classes/_orderproperty_.orderproperty.html +0 -381
- package/dist/docs/classes/_query_.query.html +0 -896
- package/dist/docs/classes/_querybase_.querybase.html +0 -518
- package/dist/docs/classes/_querybuilder_.querybuilder.html +0 -496
- package/dist/docs/classes/_requests_batchrequest_.batchrequest.html +0 -1511
- package/dist/docs/classes/_requests_batchrequest_.transaction.html +0 -804
- package/dist/docs/classes/_requests_executablerequest_.executablerequest.html +0 -549
- package/dist/docs/classes/_requests_request_.createrelatedrequest.html +0 -689
- package/dist/docs/classes/_requests_request_.createrequest.html +0 -680
- package/dist/docs/classes/_requests_request_.deleterelatedbyidrequest.html +0 -687
- package/dist/docs/classes/_requests_request_.deleterelatedrequest.html +0 -673
- package/dist/docs/classes/_requests_request_.deleterequest.html +0 -666
- package/dist/docs/classes/_requests_request_.getbyidrequest.html +0 -666
- package/dist/docs/classes/_requests_request_.getrelatedbyidrequest.html +0 -687
- package/dist/docs/classes/_requests_request_.getrelatedrequest.html +0 -673
- package/dist/docs/classes/_requests_request_.getrequest.html +0 -658
- package/dist/docs/classes/_requests_request_.requestbase.html +0 -687
- package/dist/docs/classes/_requests_request_.updaterequest.html +0 -686
- package/dist/docs/classes/_requests_request_.uploadrequest.html +0 -715
- package/dist/docs/classes/_requests_requestfactory_.requestfactory.html +0 -724
- package/dist/docs/classes/_sitefinity_.sitefinity.html +0 -521
- package/dist/docs/classes/_utils_.utils.html +0 -597
- package/dist/docs/classes/_wherequery_.wherequery.html +0 -992
- package/dist/docs/globals.html +0 -238
- package/dist/docs/modules/_authentication_.html +0 -225
- package/dist/docs/modules/_blobbuilder_.html +0 -225
- package/dist/docs/modules/_constants_.html +0 -528
- package/dist/docs/modules/_contenttypes_.html +0 -248
- package/dist/docs/modules/_data_.html +0 -225
- package/dist/docs/modules/_expression_.html +0 -233
- package/dist/docs/modules/_headers_.html +0 -328
- package/dist/docs/modules/_httpmethods_.html +0 -288
- package/dist/docs/modules/_main_.html +0 -209
- package/dist/docs/modules/_orderproperty_.html +0 -225
- package/dist/docs/modules/_query_.html +0 -225
- package/dist/docs/modules/_querybase_.html +0 -225
- package/dist/docs/modules/_querybuilder_.html +0 -247
- package/dist/docs/modules/_requests_batchrequest_.html +0 -265
- package/dist/docs/modules/_requests_executablerequest_.html +0 -296
- package/dist/docs/modules/_requests_request_.html +0 -333
- package/dist/docs/modules/_requests_requestfactory_.html +0 -247
- package/dist/docs/modules/_sitefinity_.html +0 -225
- package/dist/docs/modules/_utils_.html +0 -225
- package/dist/docs/modules/_wherequery_.html +0 -247
- package/dist/index.html +0 -474
- package/src/Authentication.ts +0 -96
- package/src/ContentTypes.ts +0 -5
- package/src/Headers.ts +0 -12
- package/src/HttpMethods.ts +0 -9
- package/src/main.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://Sitefinity/webpack/universalModuleDefinition","webpack://Sitefinity/webpack/bootstrap","webpack://Sitefinity/./node_modules/tslib/tslib.es6.js","webpack://Sitefinity/./src/Authentication.ts","webpack://Sitefinity/./src/BlobBuilder.ts","webpack://Sitefinity/./src/ContentTypes.ts","webpack://Sitefinity/./src/Data.ts","webpack://Sitefinity/./src/Expression.ts","webpack://Sitefinity/./src/Headers.ts","webpack://Sitefinity/./src/HttpMethods.ts","webpack://Sitefinity/./src/OrderProperty.ts","webpack://Sitefinity/./src/Query.ts","webpack://Sitefinity/./src/QueryBase.ts","webpack://Sitefinity/./src/QueryBuilder.ts","webpack://Sitefinity/./src/Requests/BatchRequest.ts","webpack://Sitefinity/./src/Requests/ExecutableRequest.ts","webpack://Sitefinity/./src/Requests/Request.ts","webpack://Sitefinity/./src/Requests/RequestFactory.ts","webpack://Sitefinity/./src/Sitefinity.ts","webpack://Sitefinity/./src/WhereQuery.ts","webpack://Sitefinity/./src/constants.ts","webpack://Sitefinity/./src/main.ts","webpack://Sitefinity/./src/utils.ts"],"names":[],"mappings":"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","file":"sitefinity-webservices-sdk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Sitefinity\"] = factory();\n\telse\n\t\troot[\"Sitefinity\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/main.ts\");\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n* @class Authentication\n* @classdesc The constructor of the Authentication object. This object is used for authenticating a user to Sitefinity.\n* @param {object} options - An object containing configuration options for the {@Link Authentication} object.\n* @param {string} options.serviceUrl - Your service url that points to the configured instance of Sitefinity service.\n*/\nexport class Authentication {\n private _token: any;\n private _serviceUrl: string;\n private factory: any;\n\n constructor(options) {\n this._token = null;\n this._serviceUrl = options.serviceUrl;\n this.factory = options.factory;\n }\n\n /**\n * Logins the user. A service call is made to login the user. If the call is successful and the service returns a token, this token is cached in the {@link Authentication} object.\n * @memberOf Authentication\n * @instance\n * @param {string} username - The username.\n * @param {string} password - The password.\n * @param {Function} [success] - The success handler of the method.\n * @param {Function} [failure] - The error handler of the method.\n * @deprecated This method is deprecated and should not be used with versions of sitefinity >= 10.0\n * @example\n * sf.authentication.login(\"username\", \"password\", successCb, failureCb);\n */\n login(username: string, password: string, success: any, failure: any) {\n var that = this;\n var request = this.factory.create({\n data: {\n username: username,\n password: password\n },\n urlOptions: {\n baseUrl: that._serviceUrl + 'login'\n },\n successCb: function (data) {\n that.setToken(data.value);\n if (typeof success === 'function')\n success(data.value);\n },\n failureCb: failure\n });\n\n request._execute();\n }\n\n /**\n * Logouts the user.\n * @memberOf Authentication\n * @instance\n * @param {Function} [success] - The success handler of the method.\n * @param {Function} [failure] - The error handler of the method.\n * @deprecated This method is deprecated and should not be used with versions of sitefinity >= 10.0\n */\n logout(success: any, failure: any) {\n var that = this;\n var request = this.factory.create({\n urlOptions: {\n baseUrl: that._serviceUrl + 'logout',\n token: that.getToken()\n },\n successCb: function (data) {\n that.setToken(null);\n if (typeof success === 'function')\n success(data);\n },\n failureCb: failure\n });\n request._execute();\n }\n\n\n /**\n * Sets the authentication token.\n * @memberOf Authentication\n * @instance\n * @param {string} token - The token, which will be used for authentication.\n */\n setToken(token: any) {\n this._token = token;\n }\n\n /**\n * Gets the authentication token.\n * @memberOf Authentication\n * @instance\n * @returns {string}\n */\n getToken() {\n return this._token;\n }\n}\n","/**\n * @classdesc The BlobBuilder class is used to generate blob objects.\n * @class BlobBuilder\n */\nexport class BlobBuilder {\n private _blob = new Blob();\n\n /**\n * Append new value to blob.\n * @memberOf BlobBuilder\n * @instance\n * @param {object} value - The value to be appended.\n */\n append(value: any) {\n this._blob = new Blob([this._blob, value]);\n }\n\n /**\n * Get generated blob.\n * @memberOf BlobBuilder\n */\n build() {\n return this._blob;\n }\n}\n","const contentTypes = {\n json: \"application/json\"\n}\n\nexport default contentTypes;\n","/**\n* @class Data\n* @classdesc The constructor of the Data object. This object is used for requesting data from Sitefinity.\n* @param {object} urlOptions - An object containing configuration options for the {@link Data} object.\n* @param {string} urlOptions.baseUrl - Your service url that points to the configured instance of Sitefinity service.\n* @param {string} urlOptions.entitySet - The url name of the type.\n* @param {object} urlOptions.SFParams - An object containing configuration options for requests.\n* @param {string} urlOptions.SFParams.provider - The provider name to use in each request.\n* @param {string} urlOptions.SFParams.culture - The culture name to use in each request.\n*/\nexport class Data {\n private urlOptions: any;\n private factory: any;\n\n constructor(urlOptions, factory) {\n this.urlOptions = urlOptions;\n this.factory = factory;\n }\n\n // TODO: rethink this\n /**\n * Executes a GET request to retrieve a collection of items.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.action - The OData action along with its parameters.\n * @param {object} parameters.query - The {@link WhereQuery} with which to filter the items.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n get(parameters: any) {\n parameters = parameters || {};\n\n // TODO: move to Request\n if (parameters.query)\n this.urlOptions.ODataParams = parameters.query;\n\n var request = this.factory.get({\n urlOptions: this.urlOptions,\n action: parameters.action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n fallbackProperties: parameters.fallbackProperties\n });\n\n request._execute();\n }\n\n /**\n * Executes a GET request to retrieve an/all item(s) operations.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n getOperations(parameters: any) {\n var request;\n var action = \"operations\";\n\n // Set parentId if no item key is passed\n if (!parameters.key)\n action += \"?parentId=\" + parameters.parentId;\n\n var params: any = {\n urlOptions: this.urlOptions,\n action: action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n };\n\n if (parameters.key) {\n params.key = parameters.key;\n request = this.factory.getSingle(params);\n } else {\n request = this.factory.get(params);\n }\n\n request._execute();\n }\n\n /**\n * Executes a GET request for a single item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {object} parameters.query - The {@link QueryBase} object containing the OData query options that should be sent to the server.\n * @param {string} parameters.key - The identifier of the item to be retrieved.\n * @param {string} parameters.action - The OData action along with its parameters.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n getSingle(parameters: any) {\n if (!(parameters.key))\n throw \"Parameter 'key' is required!\";\n\n if (parameters.query)\n this.urlOptions.ODataParams = parameters.query;\n\n var request = this.factory.getSingle({\n urlOptions: this.urlOptions,\n key: parameters.key,\n action: parameters.action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n fallbackProperties: parameters.fallbackProperties\n });\n\n request._execute();\n }\n\n /**\n * Executes a POST request for a single item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {object} parameters.data - The payload of the request.\n * @param {string} parameters.action - The OData action along with its parameters.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n create(parameters: any) {\n if (!(parameters.data))\n throw \"Parameter 'data' is required!\";\n\n if (parameters.query)\n this.urlOptions.ODataParams = parameters.query;\n\n var request = this.factory.create({\n urlOptions: this.urlOptions,\n key: parameters.key,\n data: parameters.data,\n action: parameters.action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a PATCH request to update a single item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {bool} parameters.saveTemp - A flag indicating whether to save in temp.\n * @param {string} parameters.key - The identifier of the item to be updated.\n * @param {object} parameters.data - The payload of the request.\n * @param {string} parameters.action - The OData action along with its parameters.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n * @example\n * var data = sf.data({\n * urlName: \"newsitems\",\n * providerName: \"OpenAccessDataProvider\",\n * cultureName: \"en\"\n * });\n *\n * var newsItemUpdate = {\n * \"Title\": 'updated news title'\n * };\n *\n * data.update({\n * key: '00000000-0000-0000-0000-000000000000', // key of item to update\n * data: newsItemUpdate,\n * saveTemp: true,\n * successCb: successCb,\n * failureCb: failureCb\n * });\n */\n update(parameters: any) {\n if (!(parameters.key || parameters.data))\n throw \"Parameters: 'data' and 'key' are required!\";\n\n var request = this.factory.update({\n urlOptions: this.urlOptions,\n key: parameters.key,\n data: parameters.data,\n action: parameters.action,\n saveTemp: parameters.saveTemp,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a DELETE request to delete a single item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item to be deleted.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n destroy(parameters: any) {\n if (!(parameters.key))\n throw \"Parameter 'key' is required!\";\n\n var request = this.factory.destroy({\n urlOptions: this.urlOptions,\n key: parameters.key,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a POST request to execute a workflow operation for single item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {object} parameters.data - The payload of the request.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n operation(parameters: any) {\n if (!(parameters.key || parameters.data))\n throw \"Parameters: 'data' and 'key' are required!\";\n\n var request = this.factory.create({\n urlOptions: this.urlOptions,\n key: parameters.key,\n action: \"operation\",\n data: parameters.data,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a GET request to get the property of a single item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.property - The name of the property to be retrieved.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n getProperty(parameters: any) {\n if (!(parameters.key || parameters.property))\n throw \"Parameters: 'data' and 'property' are required!\";\n\n var request = this.factory.getProperty({\n urlOptions: this.urlOptions,\n key: parameters.key,\n navigationProperty: parameters.property,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a GET request to get the related property value of a single item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property to be retrieved.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n getRelated(parameters: any) {\n if (!(parameters.key || parameters.navigationProperty))\n throw \"Parameters: 'data' and 'navigationProperty' are required!\";\n\n var request = this.factory.getRelated({\n urlOptions: this.urlOptions,\n key: parameters.key,\n navigationProperty: parameters.navigationProperty,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a GET request to retrieve the related property value of a single item by the id of the related item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property to be retrieved.\n * @param {string} parameters.relatedKey - The identifier of the related item.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n getRelatedById(parameters: any) {\n if (!(parameters.key || parameters.navigationProperty || parameters.relatedKey))\n throw \"Parameters: 'data', 'relatedKey' and 'navigationProperty' are required!\";\n\n var request = this.factory.getRelatedById({\n urlOptions: this.urlOptions,\n key: parameters.key,\n relatedKey: parameters.relatedKey,\n navigationProperty: parameters.navigationProperty,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a DELETE request to retrieve the delete all of the associated members in the relation property.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n destroyRelated(parameters: any) {\n if (!(parameters.key || parameters.navigationProperty))\n throw \"Parameters: 'data' and 'navigationProperty' are required!\";\n\n var request = this.factory.destroyRelated({\n urlOptions: this.urlOptions,\n key: parameters.key,\n navigationProperty: parameters.navigationProperty,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a DELETE request to retrieve the a single entry of the associated members in the relation property.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property.\n * @param {string} parameters.relatedKey - The identifier of the related item.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n destroyRelatedById(parameters: any) {\n if (!(parameters.key || parameters.navigationProperty || parameters.relatedKey))\n throw \"Parameters: 'data', 'relatedKey' and 'navigationProperty' are required!\";\n\n var request = this.factory.destroyRelatedById({\n urlOptions: this.urlOptions,\n key: parameters.key,\n relatedKey: parameters.relatedKey,\n navigationProperty: parameters.navigationProperty,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a POST request to add a related item to the property collection.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property.\n * @param {string} parameters.link - The URL of the related item.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n */\n createRelated(parameters: any) {\n if (!(parameters.key || parameters.navigationProperty || parameters.link))\n throw \"Parameters: 'data', 'link' and 'navigationProperty' are required!\";\n\n var data = {\n \"@odata.id\": parameters.link\n }\n\n var request = this.factory.createRelated({\n urlOptions: this.urlOptions,\n key: parameters.key,\n navigationProperty: parameters.navigationProperty,\n data: data,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request._execute();\n }\n\n /**\n * Executes a POST request to upload a media item.\n * @memberOf Data\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.data - The data to be uploaded.\n * @param {string} parameters.data.content - The base64 representation of the media item.\n * @param {string} parameters.data.contentType - The content type of the item. E.g. image/jpeg.\n * @param {string} parameters.data.name - The name of the media item.\n * @param {string} parameters.data.payload - Holds the JSON metadata about the image. E.g. Title, Urlname etc.\n * @param {string} parameters.data.uploadProperties - The properties passed on upload. Must contain ParentId and can contain FolderId, Title, UrlName, etc.\n * @param {Function} parameters.successCb - The success callback function.\n * @param {Function} parameters.failureCb - The error callback function.\n * @example\n *\n * var data = sf.data({\n * urlName: \"images\"\n * });\n * data.upload({\n * data: {\n * content: \"base 64 representation of the file\",\n * contentType: \"image/jpeg\",\n * name: \"test.jpg\",\n * payload: {\n * Title: \"Test\",\n * UrlName: \"test\"\n * },\n * uploadProperties: {\n * ParentId: \"4BA7AD46-F29B-4E65-BE17-9BF7CE5BA1FB\"\n * }\n * },\n * successCb: successCb,\n * failureCb: failureCb\n * });\n */\n upload(parameters: any) {\n if (!(parameters || parameters.data || parameters.data.content || parameters.data.contentType || parameters.data || parameters.data.name || parameters.data.uploadProperties))\n throw \"parameters: content, contentType, name and uploadProperties are required!\";\n\n var options = {\n urlOptions: this.urlOptions,\n _factory: this.factory,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n }\n\n var batch = this.factory.batch(options);\n var transaction = batch.beginTransaction();\n\n var uploadedFile = transaction.upload({\n entitySet: this.urlOptions.entitySet,\n data: parameters.data.content,\n contentType: parameters.data.contentType,\n fileName: parameters.data.name,\n uploadProperties: parameters.data.uploadProperties\n });\n\n if (parameters.data.payload)\n transaction.update({\n entitySet: this.urlOptions.entitySet,\n key: uploadedFile,\n data: parameters.data.payload\n });\n\n if (parameters.publish === true) {\n transaction.operation({\n entitySet: this.urlOptions.entitySet,\n key: uploadedFile,\n data: {\n action: \"Publish\"\n }\n });\n }\n\n batch.endTransaction(transaction);\n var executor = this.factory.createExecutor(batch);\n executor._execute();\n }\n}\n\n","export class ExpressionBase {\n constructor(public type: string) {\n\n }\n\n getType(): string {\n return this.type;\n }\n}\n\nexport class BinaryExpression extends ExpressionBase {\n constructor(type: string, public parameter: string, public constant: any, public caseSensitive: boolean = true) {\n super(type);\n }\n\n getParameter(): string {\n return this.parameter;\n }\n\n getConstant(): any {\n return this.constant;\n }\n\n isCaseSensitive(): boolean {\n return this.caseSensitive;\n }\n}\n\nexport class ComplexExpression extends ExpressionBase {\n constructor(type: string, private expressions: ExpressionBase[]) {\n super(type);\n }\n\n getExpressions(): ExpressionBase[] {\n return this.expressions;\n }\n}\n","export var headerNames = {\n contentType: \"Content-Type\",\n authorization: \"Authorization\",\n contentEncoding: \"Content-Encoding\",\n\n operation: \"X-Operation\",\n properties: \"X-Sf-Properties\",\n fileName: \"X-File-Name\",\n serviceRequest: \"X-SF-Service-Request\",\n choicesBinaryRepresentation: \"X-SF-Binary-Choice-Representation\",\n integrationMode: \"X-SF-Integration-Mode\"\n}\n","const methods = {\n Get: \"GET\",\n Put: \"PUT\",\n Post: \"POST\",\n Patch: \"PATCH\",\n Delete: \"DELETE\"\n};\n\nexport default methods;\n","import { utils } from './utils';\n\n\nexport class OrderProperty {\n constructor(private propertyPath: string, private isDesc: boolean = null) {\n if (!utils.isString(propertyPath))\n throw new Error('Property name is not a valid string');\n\n propertyPath = propertyPath.trim();\n\n var parts = propertyPath.split(' ');\n // parts[0] is the propertyPath; [1] would be whether descending or not.\n if (parts.length > 1 && isDesc !== true && isDesc !== false) {\n isDesc = parts[1].toLowerCase() == 'desc';\n if (!isDesc) {\n // isDesc is false but check to make sure its intended.\n var isAsc = parts[1].toLowerCase() == 'asc';\n if (!isAsc) {\n throw new Error(\"the second word in the propertyPath must begin with 'desc' or 'asc'\");\n }\n }\n }\n\n this.propertyPath = parts[0];\n this.isDesc = isDesc;\n }\n\n getPropertyPath(): string {\n return this.propertyPath;\n }\n\n getDirection(): boolean {\n return this.isDesc;\n }\n\n getValue() {\n var direction = (this.isDesc) ? 'desc' : 'asc';\n return this.propertyPath + ' ' + direction;\n }\n}\n","import { QueryBase } from './QueryBase';\nimport { WhereQuery } from './WhereQuery';\nimport { OrderProperty } from './OrderProperty';\nimport { QueryBuilder } from './QueryBuilder';\n\n/**\n * @classdesc The query class is used for constructing queries.\n * @class Query\n * @augments QueryBase\n * @example\n * var query = new Sitefinity.Query();\n * var query0 = query.where().and().endsWith(\"Title\", \"Record\").done().or().startsWith('Title', 'asd').done().done();\n * var query1 = query.where().or().endsWith(\"Record\", \"Title\").ne('age', '15').eq('Content', 'test').done().done();\n * var query2 = query.where().and().endsWith(\"Title\", \"Record\").done().done();\n * var query3 = query.where().endsWith(\"Record\", \"Title\").or().ne('age', '15').eq('Content', 'test').done().done();\n * var query4 = query.where().not().endsWith(\"Record\", \"Title\").done().and().not().eq('Content', 'test').done().done().done();\n * var query5 = query.where().not().and().endsWith(\"Record\", \"Title\").eq('Content', 'test').done().done().done();\n * var query6 = query.select(\"Id\", \"Title\", \"Content\").expand('Tags').order(\"Title desc\").where().ne('Title', 'zzz').eq('Title', 'newTitle').done()//.count();\n * var query7 = query.order(\"Title desc\").where().eq('Title', 'newTitleUPDATE1').done().select(\"Title\", \"Content\");\n * var query8 = query.where().eq('Title', 'newTitleN11').done();\n */\nexport class Query extends QueryBase {\n protected _order: any = null;\n protected _skip: any = null;\n protected _take: any = null;\n protected _search: any = null;\n protected _count: any = null;\n private expr: any = null;\n\n constructor() {\n super();\n }\n\n /**\n * Begins a where clause for filtering the items.\n * @memberOf Query\n * @returns {@link WhereQuery}\n */\n where() {\n var clone = this._clone((newObj) => {\n newObj.expr = new WhereQuery(newObj);\n });\n\n return clone.expr;\n }\n\n\n /**\n * Specifies the order by clause.\n * @memberOf Query\n * @example\n * // filter by single field\n * order(\"Title desc\")\n * @example\n * // filter by multiple fields\n * order(\"Title desc\", \"Description asc\")\n * @returns {@link Query}\n */\n order() {\n var orderPropPaths = this._extractArguments(arguments);\n this._validatePropertyPaths(orderPropPaths);\n\n return this._clone(function (newObj) {\n var orderItems = [];\n for (var i = 0; i < orderPropPaths.length; i++) {\n var member = orderPropPaths[i];\n var orderProp = new OrderProperty(member);\n orderItems.push(orderProp);\n }\n newObj._order = orderItems;\n });\n }\n\n /** Skips a certain number of items from the beginning before returning the rest of the items. Used for paging.\n * @memberOf Query.prototype\n * @method skip\n * @see [query.take]{@link query.take}\n * @param {number} value The number of items to skip.\n * @returns {Query}\n */\n skip(value: number) {\n // validate\n return this._clone((newObj) => {\n newObj._skip = value;\n });\n }\n\n /** Takes a specified number of items from the query result. Used for paging.\n * @memberOf Query.prototype\n * @param {number} value The number of items to take.\n * @returns {Query}\n */\n take(value: number) {\n return this._clone(function (newObj) {\n newObj._take = value;\n });\n }\n\n /** Searches for the items matching the specified expression.\n * @memberOf Query.prototype\n * @param {string} value The search expression.\n * @returns {Query}\n */\n search(value: string) {\n return this._clone(function (newObj) {\n newObj._search = value;\n });\n }\n\n /** Returns the total item count with the result. Used for paging.\n * @memberOf Query.prototype\n * @param {inline} inline Whether to return only the count of the items with or without their JSON representation.\n * @returns {Query}\n */\n count(inline: boolean = true) {\n return this._clone(function (newObj) {\n newObj._count = inline;\n });\n }\n\n _getFilter() {\n return this.expr;\n }\n\n _getOrderBy() {\n return this._order;\n }\n\n build() {\n return new QueryBuilder(this).build();\n }\n}\n","import { utils } from './utils';\n\n/**\n * @classdesc The base class for dealing with queries.\n * @class QueryBase\n */\nexport class QueryBase {\n private _select: any;\n private _expand: any;\n constructor() {\n this._select = null;\n this._expand = null;\n }\n\n /**\n * Selects which fields will be returned when querying the service.\n * @memberOf QueryBase\n * @instance\n * @param {string} arguments - an array of fields to include in the $select statement.\n * @returns {QueryBase}\n */\n select() {\n var selectPropPaths = this._extractArguments(arguments);\n\n this._validatePropertyPaths(selectPropPaths);\n\n return this._clone((newObj) => {\n newObj._select = selectPropPaths.filter((prop, index, props) => props.indexOf(prop) === index);\n });\n }\n\n /**\n * Selects which navigation properties will be returned when querying the service.\n * @memberOf QueryBase\n * @instance\n * @param {string} arguments - an array of fields to include in the $expand statement.\n * @returns {QueryBase}\n */\n expand() {\n var propPaths = this._extractArguments(arguments);\n this._validatePropertyPaths(propPaths);\n\n return this._clone(function (newObj) {\n newObj._expand = propPaths.filter((prop, index, props) => props.indexOf(prop) === index);\n });\n }\n\n _extractArguments(arg: IArguments) {\n var values = [];\n for (var index = 0; index < arg.length; index++) {\n values.push(arg[index]);\n }\n\n return values;\n }\n\n _getSelect() {\n return this._select;\n }\n\n _getExpand() {\n return this._expand;\n }\n\n _validatePropertyPaths(propPaths: any, allowNested: boolean = false) {\n for (var i = 0; i < propPaths.length; i++) {\n var member = propPaths[i];\n if (!utils.isString(member)) {\n throw new Error('Invalid argument in clause');\n }\n\n if (!allowNested && member.indexOf('.') > -1) {\n throw new Error('Invalid argument in clause');\n }\n }\n }\n\n _clone(setter: any = null) {\n var newObj = utils.clone(this, new QueryBase(), setter);\n\n return newObj;\n }\n}\n","import { WhereQuery } from './WhereQuery';\nimport { ComplexExpression, BinaryExpression } from './Expression';\nimport { OrderProperty } from './OrderProperty';\nimport { utils } from './utils';\n\nvar constants = require('./constants').default;\n\nexport class QueryBuilder {\n constructor(private query: any) {\n\n }\n\n build(): any {\n var queryParameters = {};\n this._buildODataQueryParams(this.query, queryParameters);\n return queryParameters;\n }\n\n private _buildODataQueryParams(query, queryParameters) {\n var queryParams = constants.ODataParams;\n\n var whereClause = query._getFilter();\n if (whereClause instanceof WhereQuery) {\n var expression = whereClause._getExpression();\n if (expression instanceof ComplexExpression) {\n var result = this._buildComplexExpression(expression, null);\n if (result) {\n queryParameters[queryParams.$filter] = result;\n }\n }\n }\n\n var selectClause = query._getSelect();\n if (selectClause instanceof Array) {\n queryParameters[queryParams.$select] = selectClause.join(', ');\n }\n\n var expandClause = query._getExpand();\n if (expandClause instanceof Array)\n queryParameters[queryParams.$expand] = expandClause.join(', ');\n\n var orderByClause = query._order;\n if (orderByClause instanceof Array) {\n var order = [];\n for (var i in orderByClause) {\n if (orderByClause[i] instanceof OrderProperty)\n order.push(orderByClause[i].getValue());\n }\n queryParameters[queryParams.$orderby] = order.join(', ');\n }\n\n var take = query._take;\n if (utils.isNumber(take))\n queryParameters[queryParams.$top] = take;\n\n var skip = query._skip;\n if (utils.isNumber(skip))\n queryParameters[queryParams.$skip] = skip;\n\n var search = query._search;\n if (search)\n queryParameters[queryParams.$search] = search;\n\n var count = query._count;\n\n // means that the count is required inline\n if (count !== null) {\n queryParameters[queryParams.$count] = count;\n }\n\n return queryParameters;\n }\n\n private _buildComplexExpression(expression, parent) {\n if (!(expression instanceof ComplexExpression))\n throw new Error('Invalid complex expression');\n\n var OperatorType = constants.ExpressionType;\n var counter = 0;\n var result = '';\n var subExpressions = expression.getExpressions();\n if (!subExpressions.length) {\n return result;\n }\n\n while (true) {\n var currentExp = subExpressions[counter];\n if (currentExp instanceof BinaryExpression) {\n result += this._buildBinaryExpression(currentExp);\n }\n else if (currentExp instanceof ComplexExpression) {\n var complexResult = this._buildComplexExpression(currentExp, expression.type);\n if (complexResult) {\n result += '(' + complexResult + ')';\n }\n }\n\n if (expression.getType() === OperatorType.not)\n result = expression.getType() + ' ' + result;\n // TODOSDK: Rethink this!\n if (expression.getType() === OperatorType.any) {\n var exprVal = [];\n for (var index = 0; index < subExpressions.length; index++) {\n if (subExpressions[index].type == OperatorType.contains || subExpressions[index].type == OperatorType.startsWith || subExpressions[index].type == OperatorType.endsWith)\n exprVal.push(subExpressions[index].type.toLowerCase() + \"(x, '\" + (subExpressions[index] as BinaryExpression).constant + \"')\");\n else\n exprVal.push('x ' + subExpressions[index].type.toLowerCase() + ' ' + this._checkType((subExpressions[index] as BinaryExpression).constant));\n }\n result = (currentExp as BinaryExpression).parameter + '/' + expression.getType() + '(x:' + exprVal.join(' ' + parent + ' ') + ')';\n }\n\n counter++;\n if (counter == subExpressions.length)\n break;\n\n result += ' ' + expression.getType() + ' ';\n }\n\n return result;\n }\n\n private _buildBinaryExpression(expression) {\n if (!(expression instanceof BinaryExpression))\n throw new Error('Invalid binary expression');\n\n var ExpressionType = constants.ExpressionType;\n var result = null;\n var type = expression.getType();\n switch (type) {\n case ExpressionType.eq:\n case ExpressionType.ne:\n case ExpressionType.lt:\n case ExpressionType.le:\n case ExpressionType.gt:\n case ExpressionType.ge:\n var constant = expression.getConstant();\n /*var template = '({0} {1} \\'{2}\\')';\n if (/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(constant))\n template = '({0} {1} {2})';*/\n\n result = `(${expression.getParameter()} ${type} ${this._checkType(constant)})`;\n break;\n // TODO contains is substringOf in Odata ?\n case ExpressionType.contains:\n case ExpressionType.startsWith:\n case ExpressionType.endsWith:\n var expressionParameter = this._applyCaseSensitiveSettings(expression, expression.getParameter());\n var expressionConstant = this._checkType(expression.getConstant());\n var expressionValue = this._applyCaseSensitiveSettings(expression, expressionConstant);\n\n result = `${type.toLowerCase()}(${expressionParameter}, ${expressionValue})`;\n break;\n default:\n var msg = `Unsupported operator ${type}`;\n throw new Error(msg);\n }\n\n return result;\n }\n\n private _applyCaseSensitiveSettings(expression, value) {\n if (expression.isCaseSensitive()) {\n return value;\n }\n\n return `tolower(${value})`;\n }\n\n private _checkType(constant: any) {\n if (this._isGuid(constant))\n return constant;\n\n if (constant == null)\n return null;\n\n constant = constant.replace(/[+/?%#&]/g, function ($0) {\n return encodeURIComponent($0);\n });\n\n // escapes the apostrophes\n constant = constant.replace(/'/g, \"''\");\n\n return \"'\" + constant + \"'\";\n }\n\n private _isGuid(constant: string) {\n return /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(constant);\n }\n}\n","import { RequestFactory } from \"./RequestFactory\";\nimport { RequestBase } from './Request';\nimport { BlobBuilder } from '../BlobBuilder';\nimport { utils } from '../utils';\n\nvar headerNames = require(\"../Headers\").headerNames;\nvar httpMethods = require(\"../HttpMethods\").default;\n\n/**\n * @classdesc The transaction class is used to group operations that involve data manipulation together and execute them as a single atomic operation.\n * @class Transaction\n * @param {object} urlOptions - The url options that are passed to the {@link _factory} object.\n * @param {object} _factory - The factory object used for request generation.\n */\nclass Transaction {\n private urlOptions: any;\n private _factory: RequestFactory;\n private _requests: any[];\n public id: number;\n public _counter: number;\n\n constructor(urlOptions, _factory) {\n this.urlOptions = urlOptions;\n this._factory = _factory;\n this._requests = [];\n this._counter = 0;\n }\n\n upload(parameters: any) {\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n data: parameters.data,\n contentType: parameters.contentType,\n fileName: parameters.fileName,\n key: parameters.key,\n uploadProperties: JSON.stringify(parameters.uploadProperties)\n };\n\n var request = this._factory.upload(options);\n\n return this.addRequest(this, request);\n }\n\n /**\n * Adds a POST request to create a single item.\n * @memberOf Transaction\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {object} parameters.data - The payload of the request.\n */\n create(parameters: any) {\n if (!(parameters || parameters.entitySet))\n throw \"entitySet is required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n key: parameters.key,\n action: parameters.action,\n urlOptions: urlOptions,\n data: JSON.stringify(parameters.data)\n };\n\n var request = this._factory.create(options);\n\n return this.addRequest(this, request);\n }\n\n /**\n * Adds a POST request to execute an operation on single item.\n * @memberOf Transaction\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item to be updated.\n * @param {object} parameters.data - The payload of the request.\n */\n operation(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.data))\n throw \"parameters: entitySet, key and data are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key,\n action: 'operation',\n data: JSON.stringify(parameters.data)\n };\n\n var request = this._factory.create(options);\n\n this._overrideUrlGeneration(request, parameters.key, 'operation', options.urlOptions);\n this.addRequest(this, request);\n }\n\n /**\n * Adds a PATCH request to update a single item.\n * @memberOf Transaction\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {bool} parameters.saveTemp - A flag indicating whether to save in temp.\n * @param {string} parameters.key - The identifier of the item to be updated.\n * @param {object} parameters.data - The payload of the request.\n */\n update(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.data))\n throw \"parameters: entitySet, key and data are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n saveTemp: parameters.saveTemp,\n key: parameters.key,\n data: JSON.stringify(parameters.data)\n };\n\n var request = this._factory.update(options);\n\n this._overrideUrlGeneration(request, parameters.key, undefined, options.urlOptions);\n this.addRequest(this, request);\n }\n\n /**\n * Adds a DELETE request to delete a single item.\n * @memberOf Transaction\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item to be deleted.\n */\n destroy(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key))\n throw \"parameters: entitySet and key are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key\n };\n\n var request = this._factory.destroy(options);\n\n this._overrideUrlGeneration(request, parameters.key, undefined, options.urlOptions);\n\n this.addRequest(this, request);\n }\n\n /**\n * Adds a DELETE request to retrieve the delete all of the associated members in the relation property.\n * @memberOf Transaction\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property.\n */\n destroyRelated(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key))\n throw \"parameters: entitySet and key are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key,\n navigationProperty: parameters.navigationProperty\n };\n\n var request = this._factory.destroyRelated(options);\n\n var navigationPropertyURL = (request as any).navigationProperty + '/$ref';\n this._overrideUrlGeneration(request, parameters.key, navigationPropertyURL, options.urlOptions);\n\n this.addRequest(this, request);\n }\n\n /**\n * Adds a DELETE request to retrieve the a single entry of the associated members in the relation property.\n * @memberOf Transaction\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property.\n * @param {string} parameters.relatedKey - The identifier of the related item.\n */\n destroyRelatedById(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.relatedKey || parameters.navigationProperty))\n throw \"parameters: entitySet, key, relatedKey and navigationProperty are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key,\n relatedKey: parameters.relatedKey,\n navigationProperty: parameters.navigationProperty\n };\n\n var request = this._factory.destroyRelatedById(options);\n\n this.addRequest(this, request);\n }\n\n /**\n * Adds a POST request to add a related item to the property collection.\n * @memberOf Transaction\n * @instance\n * @see {@link Data.createRelated}\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property\n */\n createRelated(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.link || parameters.navigationProperty))\n throw \"parameters: entitySet, key, link and navigationProperty are required!\";\n\n // TODO: rethink about the urls\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n for (var index = 0; index < this._requests.length; index += 1) {\n if (this._requests[index].id == parameters.link) {\n parameters.link = \"$\" + this._requests[index].id;\n }\n }\n\n var data = {\n '@odata.id': parameters.link\n }\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key,\n navigationProperty: parameters.navigationProperty,\n data: JSON.stringify(data)\n };\n\n var request = this._factory.createRelated(options);\n var navigationPropertyURL = (request as any).navigationProperty + '/$ref';\n this._overrideUrlGeneration(request, parameters.key, navigationPropertyURL, options.urlOptions);\n\n return this.addRequest(this, request);\n }\n\n _overrideUrlGeneration(request: any, key: string, additionalPropertyURL: string, sfParams: any) {\n // TODO: match requests with Content-ID's!\n // Content-ID's are the same as id's in _requests.\n for (var index = 0; index < this._requests.length; index += 1) {\n if (this._requests[index].id == key) {\n request._buildUrl = function () {\n var uri = \"$\" + key;\n if (additionalPropertyURL !== undefined) {\n uri = uri + '/' + additionalPropertyURL;\n }\n\n if (sfParams) {\n var queryString = request._getQueryString(sfParams);\n if (queryString) {\n uri = uri + queryString;\n }\n }\n\n return uri;\n }\n }\n }\n }\n\n addRequest(that: any, request) {\n that._requests.push({ \"id\": that._counter, \"request\": request });\n return that._counter++;\n }\n\n urlParametersClone(entitySet: string) {\n var options = utils.clone(this.urlOptions);\n options.entitySet = entitySet;\n\n return options;\n }\n}\n\n/**\n * @classdesc The batch request class is used for grouping requests into a single batch request to execute on the server.\n * @class BatchRequest\n */\nclass BatchRequest extends RequestBase {\n private _factory: RequestFactory;\n private _requests: any[];\n private _counter: number;\n private boundary: any;\n private responseHeaderRegex: RegExp;\n private responseStatusRegex: RegExp;\n public static constants = {\n newLine: '\\r\\n'\n };\n\n constructor(options) {\n super(options);\n this._factory = options._factory;\n this._requests = [];\n this._counter = 0;\n this.boundary = this._createBoundary(\"sf_batch_\");\n this.responseHeaderRegex = /^([^()<>@,;:\\\\\"\\/[\\]?={} \\t]+)\\s?:\\s?(.*)/;\n this.responseStatusRegex = /^HTTP\\/1\\.\\d (\\d{3}) (.*)$/i;\n }\n\n /**\n * Adds a GET request to retrieve a collection of items.\n * @memberOf BatchRequest\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {object} parameters.query - The {@link WhereQuery} with which to filter the items\n */\n get(parameters: any) {\n if (!(parameters || parameters.entitySet))\n throw \"entitySet is required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n if (parameters && parameters.query)\n urlOptions.ODataParams = parameters.query;\n\n var options = {\n urlOptions: urlOptions,\n action: parameters.action,\n fallbackProperties: parameters.fallbackPropertyNames\n };\n\n var request = this._factory.get(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request for the retrieval of a single item.\n * @memberOf BatchRequest\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {object} parameters.query - The {@link QueryBase} object containing the OData query options that should be sent to the server.\n * @param {string} parameters.key - The identifier of the item to be retrieved.\n */\n getSingle(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key))\n throw \"parameters: entitySet and key are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options: any = {\n urlOptions: urlOptions,\n action: parameters.action,\n key: parameters.key\n };\n\n if (parameters.query)\n options.ODataParams = parameters.query;\n\n var request = this._factory.getSingle(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request to get the property of a single item.\n * @memberOf BatchRequest\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.property - The name of the property to be retrieved.\n */\n getProperty(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key, parameters.property))\n throw \"parameters: entitySet, key and property are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key,\n navigationProperty: parameters.property\n };\n\n var request = this._factory.getProperty(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request to get the related property value of a single item.\n * @memberOf BatchRequest\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property to be retrieved.\n */\n getRelated(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.navigationProperty))\n throw \"parameters: entitySet, key and navigationProperty are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key,\n navigationProperty: parameters.navigationProperty\n };\n\n var request = this._factory.getRelated(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request to retrieve the related property value of a single item by the id of the related item.\n * @memberOf BatchRequest\n * @instance\n * @param {object} parameters - The parameters for the request.\n * @param {string} parameters.key - The identifier of the item.\n * @param {string} parameters.navigationProperty - The name of the navigation property to be retrieved.\n * @param {string} parameters.relatedKey - The identifier of the related item.\n */\n getRelatedById(parameters: any) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.relatedKey || parameters.navigationProperty))\n throw \"parameters: entitySet, key, relatedKey and navigationProperty are required!\";\n\n var urlOptions = this.urlParametersClone(parameters.entitySet);\n\n var options = {\n urlOptions: urlOptions,\n key: parameters.key,\n relatedKey: parameters.relatedKey,\n navigationProperty: parameters.navigationProperty\n };\n\n var request = this._factory.getRelatedById(options);\n\n this.addRequest(request);\n }\n\n /**\n * Begins a transaction.\n * @memberOf BatchRequest\n * @instance\n * @returns {@link Transaction}\n */\n beginTransaction() {\n var option = utils.clone(this.urlOptions);\n const newTransaction = new Transaction(option, this._factory);\n newTransaction.id = ++this._counter;\n return newTransaction;\n }\n\n /**\n * Ends a transaction.\n * @memberOf BatchRequest\n * @instance\n */\n endTransaction(transaction: any) {\n this._requests.push({\n id: transaction.id,\n request: transaction\n });\n }\n\n _getBody() {\n return this._buildRequestBody();\n }\n\n _getMethod() {\n return httpMethods.Post;\n }\n\n _getHeaders() {\n var contentType = \"multipart/mixed; boundary=\" + this.boundary;\n var headers = { };\n headers[headerNames.contentType] = contentType;\n\n return headers;\n }\n\n _buildUrl() {\n var url = this.urlOptions.baseUrl + \"$batch\";\n var queryString = this._getQueryString(this.urlOptions);\n\n if (queryString) {\n url += queryString\n }\n\n return url;\n }\n\n _parseResponse(http) {\n var context = {\n position: 0,\n boundaries: []\n };\n\n var pos = context.position;\n var partHeaders = this._readHeaders(http.getAllResponseHeaders(), context);\n var partContentType = this._contentType(partHeaders[\"content-type\"]);\n if (partContentType && partContentType.mediaType == \"multipart/mixed\") {\n context.boundaries.push((partContentType.properties as any).boundary);\n }\n\n context.position = pos;\n\n var batchResponse = this._parseBatchResponse(http.responseText, context);\n var responseParsed = [];\n for (var i = 0; i < batchResponse.length; i++) {\n try {\n const currentRequest = this._requests[i];\n var finalResult = null;\n var key = null;\n\n var singleResponse = batchResponse[i];\n var changesets = singleResponse.__changeResponses;\n if (changesets) {\n finalResult = [];\n const currentRequests = currentRequest ? currentRequest.request._requests : [];\n\n for (var j = 0; j < changesets.length; j++) {\n key = currentRequests[j] ? currentRequests[j].request.request.key : null;\n var changeset = changesets[j];\n var response = changeset.response;\n var responseResult = this._getResponseResult(response, key);\n finalResult.push(responseResult);\n }\n } else {\n key = currentRequest ? currentRequest.request.key : null;\n var response = singleResponse.response;\n finalResult = this._getResponseResult(response, key);\n }\n\n var statusCodeCheck = function (r) {\n return r.statusCode >= 400;\n };\n\n var responseCheck = function (r) {\n let success = true;\n if (r.data && r.data.hasOwnProperty(\"Success\")) {\n success = r.data.Success\n }\n\n return success;\n };\n\n var isSuccessful = Array.isArray(finalResult) ?\n finalResult.filter(statusCodeCheck).length === 0 && finalResult.filter(responseCheck).length === finalResult.length :\n !statusCodeCheck(finalResult) && responseCheck(finalResult);\n\n responseParsed.push({ isSuccessful: isSuccessful, response: finalResult });\n }\n catch (e) {\n // TODO: why continue ?\n continue;\n }\n }\n\n var isSuccessfulCheck = (r) => {\n return !r.isSuccessful;\n };\n\n var batchIsSuccessful = responseParsed.filter(isSuccessfulCheck).length === 0;\n return { data: responseParsed, isSuccessful: batchIsSuccessful };\n }\n\n _parseBatchResponse(text, context) {\n // get boundary from response\n var delimiter = \"--\" + this._currentBoundary(context);\n this._readTo(text, delimiter, context);\n this._readLine(text, context);\n\n var responses = [];\n var partEnd;\n while (partEnd !== \"--\" && context.position < text.length) {\n var partHeaders = this._readHeaders(text, context);\n var partContentType = this._contentType(partHeaders[\"content-type\"]);\n var changeResponses;\n if (partContentType && partContentType.mediaType === \"multipart/mixed\") {\n context.boundaries.push((partContentType.properties as any).boundary);\n\n try {\n changeResponses = this._parseBatchResponse(text, context);\n } catch (e) {\n e.response = this._readResponse(text, context, delimiter);\n changeResponses = [e];\n }\n responses.push({ __changeResponses: changeResponses });\n context.boundaries.pop();\n this._readTo(text, \"--\" + this._currentBoundary(context), context);\n } else {\n if (!partContentType || partContentType.mediaType !== \"application/http\") {\n throw { message: \"invalid MIME part type \" };\n }\n // Skip empty line\n this._readLine(text, context);\n\n // Read the response\n var response: any = this._readResponse(text, context, delimiter);\n\n try {\n if (response.statusCode >= 200 && response.statusCode <= 299) {\n response = { message: response.statusCode + \" Http request is OK\", response: response };\n } else {\n // Keep track of failed responses and continue processing the batch.\n response = { message: \"HTTP request failed\", response: response };\n }\n } catch (e) {\n response = e;\n }\n\n responses.push(response);\n }\n\n partEnd = text.substr(context.position, 2);\n\n // Ignore the incoming line.\n this._readLine(text, context);\n }\n\n return responses;\n }\n\n _getResponseResult(response, key) {\n var responseBody = response.body;\n var data = utils.parseStringToJson(responseBody);\n\n return {\n key: key,\n data: data,\n statusCode: response.statusCode,\n headers: response.headers\n };\n }\n\n _currentBoundary(context) {\n var boundaries = context.boundaries;\n return boundaries[boundaries.length - 1];\n }\n\n _contentType(str) {\n\n if (!str) {\n return null;\n }\n\n var contentTypeParts = str.split(\";\");\n var properties = {};\n\n var i, len;\n for (i = 1, len = contentTypeParts.length; i < len; i++) {\n var contentTypeParams = contentTypeParts[i].split(\"=\");\n properties[contentTypeParams[0].replace(/^\\s+|\\s+$/g, '')] = contentTypeParams[1];\n }\n\n return { mediaType: contentTypeParts[0].replace(/^\\s+|\\s+$/g, ''), properties: properties };\n }\n\n _readTo(text, str, context) {\n var start = context.position || 0;\n var end = text.length;\n if (str) {\n end = text.indexOf(str, start);\n if (end === -1) {\n return null;\n }\n context.position = end + str.length;\n } else {\n context.position = end;\n }\n\n return text.substring(start, end);\n }\n\n _readLine(text, context) {\n return this._readTo(text, BatchRequest.constants.newLine, context);\n }\n\n _readHeaders(text, context) {\n var headers = {};\n var parts;\n var line;\n var pos;\n\n do {\n pos = context.position;\n line = this._readLine(text, context);\n parts = this.responseHeaderRegex.exec(line);\n if (parts !== null) {\n headers[parts[1].toLowerCase()] = parts[2];\n } else {\n // Whatever was found is not a header, so reset the context position.\n context.position = pos;\n }\n } while (line && parts);\n\n return headers;\n }\n\n _readResponse(text, context, delimiter) {\n // Read the status line.\n var pos = context.position;\n var match = this.responseStatusRegex.exec(this._readLine(text, context));\n\n var statusCode;\n var statusText;\n var headers;\n\n if (match) {\n statusCode = match[1];\n statusText = match[2];\n headers = this._readHeaders(text, context);\n this._readLine(text, context);\n } else {\n context.position = pos;\n }\n\n return {\n statusCode: statusCode,\n statusText: statusText,\n headers: headers,\n body: this._readTo(text, BatchRequest.constants.newLine + delimiter, context)\n };\n }\n\n _buildRequestBody() {\n var builder = new BlobBuilder();\n builder.append('');\n\n for (var index = 0; index < this._requests.length; index += 1) {\n\n var request = this._requests[index].request;\n if (index != 0)\n builder.append(BatchRequest.constants.newLine + BatchRequest.constants.newLine);\n\n builder.append(\"--\" + this.boundary);\n\n if (request instanceof Transaction) {\n builder.append(this._buildTransaction(request));\n }\n else {\n builder.append(this._buildRequest(request));\n }\n }\n\n builder.append(this._createDelimeter(this.boundary, true));\n return builder.build();\n }\n\n _buildRequest(request) {\n var builder = new BlobBuilder();\n builder.append(BatchRequest.constants.newLine + 'Content-Type: application/http' +\n BatchRequest.constants.newLine + 'Content-Transfer-Encoding: binary' +\n BatchRequest.constants.newLine +\n BatchRequest.constants.newLine +\n request._getMethod() +\n ' ' + request._buildUrl() + ' HTTP/1.1');\n\n return builder.build();\n }\n\n _buildTransaction(transaction) {\n if (transaction._requests.length == 0)\n return;\n\n var builder = new BlobBuilder();\n builder.append(BatchRequest.constants.newLine);\n\n var changeset = this._createBoundary(\"sf_changeset_\");\n builder.append('Content-Type: multipart/mixed; boundary=' + changeset);\n\n var changesetRequests = transaction._requests;\n for (var index = 0; index < changesetRequests.length; index += 1) {\n var currentRequest = changesetRequests[index].request;\n\n // we shouldn't add new lines after blob content. Otherwise they are added to the blob and corrupt it\n const shouldAddNewLine = index === 0 || !utils.isBlob(changesetRequests[index - 1].request._getBody());\n builder.append(this._createDelimeter(changeset, false, shouldAddNewLine) +\n BatchRequest.constants.newLine + 'Content-Type: application/http' +\n BatchRequest.constants.newLine + 'Content-Transfer-Encoding: binary' +\n BatchRequest.constants.newLine + 'Content-ID: ' + changesetRequests[index].id);\n\n var requestUrl = currentRequest._buildUrl();\n builder.append(BatchRequest.constants.newLine + BatchRequest.constants.newLine + currentRequest._getMethod() + ' ' + requestUrl + ' HTTP/1.1');\n\n var headers = currentRequest._getHeaders();\n var headerNames = Object.keys(headers);\n for (var i = 0; i < headerNames.length; i++) {\n var headerName = headerNames[i];\n builder.append(BatchRequest.constants.newLine + headerName + \": \" + headers[headerName]);\n }\n\n var body = currentRequest._getBody();\n if (body) {\n builder.append(BatchRequest.constants.newLine + BatchRequest.constants.newLine);\n builder.append(body);\n }\n }\n\n builder.append(this._createDelimeter(changeset, true));\n\n return builder.build();\n }\n\n _createDelimeter(boundary, close, shouldAddNewLine: boolean = true) {\n let result = \"\";\n if (shouldAddNewLine) {\n result = BatchRequest.constants.newLine + BatchRequest.constants.newLine;\n }\n\n result += \"--\" + boundary;\n if (close) {\n result += \"--\";\n result += BatchRequest.constants.newLine;\n }\n return result;\n }\n\n _createBoundary(prefix) {\n return prefix + utils.hex16() + '-' + utils.hex16() + '-' + utils.hex16();\n }\n\n addRequest(request) {\n return Transaction.prototype.addRequest(this, request);\n }\n\n urlParametersClone(entitySet) {\n return Transaction.prototype.urlParametersClone.call(this, entitySet);\n }\n\n}\nmodule.exports = BatchRequest;\n","import { RequestBase } from './Request';\nimport { utils } from '../utils';\n\nvar headerNames = require(\"../Headers\").headerNames;\nvar XMLHttpRequestDone = 4;\n\nfunction isFunction(func) {\n return typeof func === 'function';\n}\n\nexport class ExecutableRequest {\n private request: RequestBase;\n private handlers: any;\n private token: any;\n private enableUnlimitedChoices: boolean;\n private integrationMode: boolean;\n\n constructor(options: any) {\n this.request = options.request;\n this.handlers = options.handlers;\n this.token = options.token;\n this.enableUnlimitedChoices = options.enableUnlimitedChoices;\n this.integrationMode = options.integrationMode;\n }\n\n execute() {\n this._execute();\n }\n\n _execute() {\n var http = new XMLHttpRequest();\n\n http.onreadystatechange = () => {\n if (http.readyState === XMLHttpRequestDone) {\n if (http.status > 0) {\n var data = this.request._parseResponse(http);\n\n if (http.status >= 200 && http.status <= 206) {\n\n if (isFunction(this.request.successCb)) {\n this.request.successCb(data);\n }\n\n if (this.handlers && isFunction(this.handlers.successCb)) {\n this.handlers.successCb(data);\n }\n }\n else if (http.status >= 400) {\n // When the data is string, we save the string as message\n // and convert the data to normal object with message property\n if (utils.isString(data)) {\n var message = data;\n data = {\n message: message\n };\n }\n\n data.status = http.status;\n\n // in case of errors we would like there to be one handler for all of the errors\n if (isFunction(this.request.failureCb)) {\n this.request.failureCb(data);\n }\n\n if (this.handlers && isFunction(this.handlers.failureCb)) {\n this.handlers.failureCb(data);\n }\n }\n }\n }\n };\n\n if (isFunction(this.request.progressCb)) {\n if (http.upload) {\n var that = this;\n http.upload.onprogress = function (event) {\n that.request.progressCb(event);\n };\n }\n }\n\n var method = this._getMethod();\n var url = this._buildUrl();\n http.open(method, url, true);\n this.setHeaders(http, this._getHeaders());\n\n http.send(this._getBody());\n }\n\n setHeaders(http: any, headers: any) {\n var headerKeys = Object.keys(headers);\n for (var i = 0; i < headerKeys.length; i++) {\n var currentHeaderName = headerKeys[i];\n http.setRequestHeader(currentHeaderName, headers[currentHeaderName]);\n }\n\n if (this.token) {\n if (typeof this.token === 'string') {\n // for backward compatibility\n http.setRequestHeader(headerNames.authorization, this.token);\n } else {\n http.setRequestHeader(headerNames.authorization, this.token.type + \" \" + this.token.value);\n }\n }\n\n if (this.enableUnlimitedChoices) {\n http.setRequestHeader(headerNames.choicesBinaryRepresentation, true);\n }\n\n if (this.integrationMode) {\n http.setRequestHeader(headerNames.integrationMode, \"true\");\n }\n\n // for backward compatibility\n http.setRequestHeader(headerNames.serviceRequest, \"true\");\n }\n\n _getBody() {\n var body = utils.serializeToJSON(this.request._getBody());\n return body;\n }\n\n _getMethod = function() {\n return this.request._getMethod();\n }\n\n _getHeaders = function () {\n return this.request._getHeaders();\n }\n\n _getQueryString = function (urlOptions: any) {\n return this.request._getQueryString(urlOptions);\n }\n\n _buildUrl = function () {\n return this.request._buildUrl();\n }\n}\n","import { utils } from '../utils';\n\nvar constants = require(\"../constants\").default;\nvar headerNames = require(\"../Headers\").headerNames;\nvar contentTypes = require(\"../ContentTypes\").default;\nvar httpMethods = require(\"../HttpMethods\").default;\n\nexport class RequestBase {\n public successCb: (data: any) => void;\n public failureCb: (data: any) => void;\n public progressCb: any;\n public key: string;\n private action: string;\n private _fallbackProperties: string[];\n public urlOptions: any;\n\n constructor(options: any) {\n this.successCb = options.successCb;\n this.failureCb = options.failureCb;\n this.urlOptions = options.urlOptions;\n this.progressCb = options.progressCb;\n this.key = options.key;\n this.action = options.action;\n this._fallbackProperties = options.fallbackProperties;\n }\n\n _getBody() {\n return undefined;\n }\n\n _getMethod() {\n return null;\n }\n\n _getHeaders(): any {\n var headers = {};\n headers[headerNames.contentType] = contentTypes.json;\n return headers;\n }\n\n _getQueryParameters(paramDictionary: any, urlOptions: any) {\n if (urlOptions.ODataParams) {\n var query = urlOptions.ODataParams.build();\n if (utils.isString(query.$filter))\n paramDictionary[constants.ODataParams.$filter] = query.$filter;\n if (utils.isString(query.$select))\n paramDictionary[constants.ODataParams.$select] = query.$select;\n if (utils.isString(query.$expand))\n paramDictionary[constants.ODataParams.$expand] = query.$expand;\n if (utils.isString(query.$orderby))\n paramDictionary[constants.ODataParams.$orderby] = query.$orderby;\n if (utils.isNumber(query.$skip))\n paramDictionary[constants.ODataParams.$skip] = query.$skip;\n if (utils.isNumber(query.$top))\n paramDictionary[constants.ODataParams.$top] = query.$top;\n if (utils.isString(query.$search))\n paramDictionary[constants.ODataParams.$search] = query.$search;\n\n // inline count\n if (utils.isBoolean(query.$count) && query.$count)\n paramDictionary[constants.ODataParams.$count] = query.$count;\n }\n\n if (urlOptions.SFParams) {\n var sfParams = urlOptions.SFParams;\n if (sfParams.provider) {\n paramDictionary[constants.SfParams.provider] = sfParams.provider;\n }\n\n if (sfParams.culture) {\n paramDictionary[constants.SfParams.culture] = sfParams.culture;\n }\n\n if (sfParams.siteId) {\n paramDictionary[constants.SfParams.siteId] = sfParams.siteId;\n }\n }\n\n if (this._fallbackProperties) {\n paramDictionary[\"sf_fallback_prop_names\"] = this._fallbackProperties.join();\n }\n\n if (urlOptions.additionalQueryParams) {\n for (const key in urlOptions.additionalQueryParams) {\n if (urlOptions.additionalQueryParams.hasOwnProperty(key)) {\n paramDictionary[key] = urlOptions.additionalQueryParams[key];\n }\n }\n }\n }\n\n _getQueryString(urlOptions: any) {\n var paramDictionary = {};\n\n this._getQueryParameters(paramDictionary, urlOptions);\n var keys = Object.keys(paramDictionary);\n if (keys.length == 0)\n return null;\n\n var queryString = \"?\";\n for (var prop in paramDictionary) {\n queryString += prop + \"=\" + paramDictionary[prop] + \"&\";\n }\n\n queryString = queryString.substring(0, queryString.length - 1);\n\n return queryString;\n }\n\n _buildUrl() {\n var url = this.urlOptions.baseUrl + (this.urlOptions.entitySet || \"\");\n url += this.key ? (\"(\" + this.key + \")\") : \"\";\n if (this.action) {\n url += url.endsWith(\"/\") ? \"\" : \"/\";\n url += this.action;\n }\n\n // including count here\n // not the best solution as build() is called once more in getQueryString\n // but not that big of an issue right now\n if (this.urlOptions.ODataParams) {\n var getCount = this.urlOptions.ODataParams.build().$count;\n\n if (utils.isBoolean(getCount) && !getCount) {\n url += \"/$count\";\n }\n }\n\n return this._addQueryParameters(url);\n }\n\n _parseResponse(http: any) {\n var data = utils.parseStringToJson(http.responseText);\n if (data) {\n if (http.status >= 400 && data.error) {\n return data.error;\n }\n\n return data;\n }\n\n return http.responseText;\n }\n\n _addQueryParameters(url: string) {\n var queryString = this._getQueryString(this.urlOptions);\n\n if (queryString) {\n if (url.indexOf(\"?\") > -1 && queryString[0] == \"?\") {\n queryString = \"&\" + queryString.substring(1);\n }\n\n url += queryString;\n }\n\n return url;\n }\n}\n\nexport class GetRequest extends RequestBase {\n constructor(options: any) {\n super(options);\n }\n\n _getMethod() {\n return httpMethods.Get;\n }\n}\n\nexport class GetByIdRequest extends RequestBase {\n constructor(options: any) {\n super(options);\n }\n\n _getMethod() {\n return httpMethods.Get;\n }\n}\n\nexport class DeleteRequest extends RequestBase {\n constructor(options: any) {\n super(options);\n }\n\n _getMethod() {\n return httpMethods.Delete;\n }\n}\n\nexport class UpdateRequest extends RequestBase {\n private _data: any;\n private _saveTemp: any;\n constructor(options: any) {\n super(options);\n this._data = options.data;\n this._saveTemp = options.saveTemp;\n }\n\n _getMethod() {\n return httpMethods.Patch;\n }\n\n _getBody() {\n var body = utils.convertDateFieldToISOString(this._data);\n return body;\n }\n\n _getHeaders() {\n var headers = RequestBase.prototype._getHeaders.call(this);\n if (this._saveTemp) {\n headers[headerNames.operation] = \"SaveTemp\";\n }\n\n return headers;\n }\n}\n\nexport class CreateRequest extends RequestBase {\n public _data: any;\n constructor(options: any) {\n super(options);\n this._data = options.data;\n }\n\n _getMethod() {\n return httpMethods.Post;\n }\n\n _getBody() {\n var body = utils.convertDateFieldToISOString(this._data);\n return body;\n }\n}\n\nexport class GetRelatedRequest extends GetByIdRequest {\n private navigationProperty: string;\n constructor(options: any) {\n super(options);\n this.navigationProperty = options.navigationProperty;\n }\n\n _buildUrl() {\n var url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.navigationProperty;\n return this._addQueryParameters(url);\n }\n}\n\nexport class GetRelatedByIdRequest extends GetByIdRequest {\n private navigationProperty: string;\n private relatedKey: string;\n constructor(options: any) {\n super(options);\n this.navigationProperty = options.navigationProperty;\n this.relatedKey = options.relatedKey;\n }\n\n _buildUrl() {\n var url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.navigationProperty + \"(\" + this.relatedKey + \")\";\n return this._addQueryParameters(url);\n }\n}\n\nexport class DeleteRelatedRequest extends DeleteRequest {\n private navigationProperty: string;\n constructor(options: any) {\n super(options);\n this.navigationProperty = options.navigationProperty;\n }\n\n\n _buildUrl() {\n var url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.navigationProperty + \"/$ref\"\n return this._addQueryParameters(url);\n }\n}\n\nexport class DeleteRelatedByIdRequest extends DeleteRequest {\n private navigationProperty: string;\n private relatedKey: string;\n constructor(options: any) {\n super(options);\n this.navigationProperty = options.navigationProperty;\n this.relatedKey = options.relatedKey\n }\n\n _buildUrl() {\n var url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.navigationProperty + \"(\" + this.relatedKey + \")/$ref\";\n return this._addQueryParameters(url);\n }\n}\n\nexport class CreateRelatedRequest extends CreateRequest {\n private navigationProperty: string;\n constructor(options: any) {\n super(options);\n this.navigationProperty = options.navigationProperty;\n this.key = options.key;\n }\n\n _buildUrl() {\n var url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.navigationProperty + \"/$ref\";\n return this._addQueryParameters(url);\n }\n}\n\n\nexport class UploadRequest extends CreateRequest {\n private fileName: any;\n private uploadProperties: any;\n private contentType: any;\n\n constructor(options: any) {\n super(options);\n this.fileName = options.fileName;\n this.uploadProperties = options.uploadProperties;\n this.contentType = options.contentType;\n }\n\n _getHeaders() {\n var headers = super._getHeaders();\n headers[headerNames.contentType] = this.contentType || \"application/octet-stream\";\n headers[headerNames.fileName] = this.fileName;\n headers[headerNames.properties] = this.uploadProperties;\n headers[headerNames.contentEncoding] = \"identity\";\n return headers;\n }\n\n _getBody() {\n return this._data;\n }\n\n _getMethod() {\n if (this.key) {\n return httpMethods.Patch;\n }\n\n return httpMethods.Post;\n }\n}\n","import { GetRequest, GetByIdRequest, CreateRequest, UpdateRequest, DeleteRequest, GetRelatedRequest, GetRelatedByIdRequest, DeleteRelatedRequest, DeleteRelatedByIdRequest, CreateRelatedRequest, UploadRequest } from \"./Request\";\nimport { ExecutableRequest } from './ExecutableRequest';\n\nvar BatchRequest = require('./BatchRequest');\n\nexport class RequestFactory {\n public token: any;\n private handlers: any;\n private enableUnlimitedChoices: boolean;\n private integrationMode: boolean;\n\n constructor(options: any) {\n this.token = null;\n this.handlers = options.handlers;\n this.enableUnlimitedChoices = options.enableUnlimitedChoices;\n this.integrationMode = options.integrationMode;\n }\n\n get(parameters: any) {\n return this.createExecutor(new GetRequest(parameters));\n }\n\n getSingle(parameters: any) {\n return this.createExecutor(new GetByIdRequest(parameters));\n }\n\n create(parameters: any) {\n return this.createExecutor(new CreateRequest(parameters));\n }\n\n update(parameters: any) {\n return this.createExecutor(new UpdateRequest(parameters));\n }\n\n destroy(parameters: any) {\n return this.createExecutor(new DeleteRequest(parameters));\n }\n\n getProperty(parameters: any) {\n return this.createExecutor(new GetRelatedRequest(parameters));\n }\n\n getRelated(parameters: any) {\n return this.createExecutor(new GetRelatedRequest(parameters));\n }\n\n getRelatedById(parameters: any) {\n return this.createExecutor(new GetRelatedByIdRequest(parameters));\n }\n\n destroyRelated(parameters: any) {\n return this.createExecutor(new DeleteRelatedRequest(parameters));\n }\n\n destroyRelatedById(parameters: any) {\n return this.createExecutor(new DeleteRelatedByIdRequest(parameters));\n }\n\n createRelated(parameters: any) {\n return this.createExecutor(new CreateRelatedRequest(parameters));\n }\n\n batch(parameters) {\n parameters._factory = this;\n return new BatchRequest(parameters);\n }\n\n upload(parameters: any) {\n return this.createExecutor(new UploadRequest(parameters));\n }\n\n createExecutor(request: any) {\n var executor = new ExecutableRequest({\n request: request,\n handlers: this.handlers || {},\n token: this.token,\n enableUnlimitedChoices: this.enableUnlimitedChoices,\n integrationMode: this.integrationMode\n });\n\n // TODO\n (executor as any).navigationProperty = request.navigationProperty;\n return executor;\n }\n}\n","import { RequestFactory } from './Requests/RequestFactory';\nimport { Authentication } from './Authentication';\nimport { Data } from './Data';\nimport { Query } from './Query';\nimport { utils } from './utils';\n\n/**\n* @class Sitefinity\n* @classdesc The constructor of the Sitefinity JavaScript SDK. This is the entry point for the SDK.\n* @property {Object} authentication - The authentication object used for authenticating to Sitefinity. See {@link Authentication}\n* @param {object} options - An object containing configuration options for the Setup object.\n* @param {string} options.serviceUrl - Your service url that points to the configured instance of Sitefinity service.\n* @param {string} options.siteId - The ID of the site, for which the query will be executed.\n* @param {string} options.handlers - The global handlers for request execution\n* @param {string} options.handlers.successCb - The success handler.\n* @param {string} options.handlers.failureCb - The failure handler.\n*/\nexport class Sitefinity {\n private factory: RequestFactory;\n private authentication: Authentication;\n private profileUrl: string;\n private siteId: string;\n public static Query: typeof Query = Query;\n\n constructor(options: any) {\n this.profileUrl = utils.addTrailingSlash(options.serviceUrl);\n this.siteId = options.siteId;\n this.factory = new RequestFactory({\n handlers: options.handlers,\n enableUnlimitedChoices: options.enableUnlimitedChoices,\n integrationMode: options.integrationMode\n });\n\n this.authentication = new Authentication({\n serviceUrl: this.profileUrl,\n factory: this.factory\n });\n }\n\n /**\n* Creates a new {@link Data} class.\n* @memberOf Sitefinity\n* @instance\n* @param {object} options - An object containing configuration options for the Setup object.\n* @param {string} options.urlName - The URL name of the type..\n* @param {string} [options.providerName] - The name of the provider. If empty the default provider for the site will be used.\n* @param {string} [options.cultureName] - The name of the culture. If empty the default culture for the site will be used.\n* @example\n* var data = sf.data({\n* urlName: \"newsitems\",\n* providerName: \"OpenAccessDataProvider\",\n* cultureName: \"en\"\n* });\n* @returns {Data}\n*/\n data(options: any) {\n var optionsServiceUrl = options.serviceUrl ? utils.addTrailingSlash(options.serviceUrl) : options.serviceUrl;\n var dataOptions = {\n baseUrl: optionsServiceUrl || this.profileUrl,\n SFParams: {\n provider: options.providerName,\n culture: options.cultureName,\n siteId: options.siteId || this.siteId\n },\n additionalQueryParams: options.additionalQueryParams,\n entitySet: options.urlName\n }\n\n this.factory.token = this.authentication.getToken();\n return new Data(dataOptions, this.factory);\n }\n\n /**\n * Creates a new {@link BatchRequest} class. OData batch requests -> {@link http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793748}\n * @memberOf Sitefinity\n * @instance\n * @param {Function} success - The success callback of the batch execution.\n * @param {string} options.urlName - The URL name of the type..\n * @param {string} [options.providerName] - The name of the provider. If empty the default provider for the site will be used.\n * @param {string} [options.cultureName] - The name of the culture. If empty the default culture for the site will be used.\n * @example\n * var sf = new Sitefinity({\n * serviceUrl: 'http://mydomain/route/service/'\n * });\n *\n * var batch = sf.batch(successCbBatch, failureCb);\n * batch.get({\n * entitySet: entitySet,\n * query: query8\n * });\n *\n * var transaction = batch.beginTransaction();\n * var createId = transaction.create({\n * entitySet: entitySet,\n * data: newsItem\n * });\n *\n * batch.endTransaction(transaction);\n *\n * var transaction2 = batch.beginTransaction();\n * var createId2 = transaction2.create({\n * entitySet: entitySet,\n * data: newsItem\n * });\n *\n * var updateId2 = transaction2.update({\n * entitySet: entitySet,\n * key: createId2,\n * data: newsItemUpdate\n * });\n *\n * batch.endTransaction(transaction2);\n *\n * batch.get({\n * entitySet: entitySet\n * });\n *\n * batch.execute();\n * @returns {BatchRequest}\n */\n batch(success: any, failure: any, progress: any, options: any) {\n if (typeof progress !== 'function') {\n options = progress;\n progress = null;\n }\n\n if (!options)\n options = {};\n\n this.factory.token = this.authentication.getToken();\n\n var optionsServiceUrl = options.serviceUrl ? utils.addTrailingSlash(options.serviceUrl) : options.serviceUrl;\n var batch = this.factory.batch({\n successCb: success,\n failureCb: failure,\n progressCb: progress,\n urlOptions: {\n baseUrl: optionsServiceUrl || this.profileUrl,\n SFParams: {\n provider: options.providerName,\n culture: options.cultureName,\n siteId: options.siteId || this.siteId\n },\n additionalQueryParams: options.additionalQueryParams\n }\n });\n\n var executor: any = this.factory.createExecutor(batch);\n executor.beginTransaction = () => {\n return batch.beginTransaction();\n }\n\n executor.endTransaction = (transaction) => {\n batch.endTransaction(transaction);\n }\n\n executor.get = (options) => {\n batch.constructor.prototype.get.call(batch, options);\n }\n\n executor.getOperations = (options) => {\n batch.constructor.prototype.getOperations.call(batch, options);\n }\n\n executor.getSingle = (options) => {\n batch.constructor.prototype.getSingle.call(batch, options);\n }\n\n executor.getProperty = (options) => {\n batch.constructor.prototype.getProperty.call(batch, options);\n }\n\n executor.getRelated = (options) => {\n batch.constructor.prototype.getRelated.call(batch, options);\n }\n\n executor.getRelatedById = (options) => {\n batch.constructor.prototype.getRelatedById.call(batch, options);\n }\n\n return executor;\n }\n}\n","import { ComplexExpression, BinaryExpression } from './Expression';\nconst OperatorType = require('./constants').default.ExpressionType;\n\n/**\n * @classdesc A fluent API operation for creating a filter for a query by chaining different rules.\n * @class WhereQuery\n * @protected\n */\nexport class WhereQuery {\n\n private expression: ComplexExpression;\n constructor(private parent: any, type: string = OperatorType.and) {\n this.expression = new ComplexExpression(type, []);\n }\n\n /**\n * Adds an `and` clause to the current condition and returns it for further chaining.\n * @method and\n * @memberOf WhereQuery.prototype\n * @returns {WhereQuery}\n */\n and(): WhereQuery {\n return new WhereQuery(this, OperatorType.and);\n }\n /**\n * Adds an `or` clause to the current condition and returns it for further chaining.\n * @method or\n * @memberOf WhereQuery.prototype\n * @returns {WhereQuery}\n */\n or(): WhereQuery {\n return new WhereQuery(this, OperatorType.or);\n }\n\n /**\n * Adds an `any` clause to the current condition and returns it for further chaining.\n * @method any\n * @memberOf WhereQuery.prototype\n * @returns {WhereQuery}\n */\n any(): WhereQuery {\n return new WhereQuery(this, OperatorType.any);\n }\n /**\n * Adds a `not` clause to the current condition and returns it for further chaining.\n * @method not\n * @memberOf WhereQuery.prototype\n * @returns {WhereQuery}\n */\n not(): WhereQuery {\n return new WhereQuery(this, OperatorType.not);\n }\n\n private _simple(type: string, parameter: string, constant: any, caseSensitive: boolean = true): WhereQuery {\n var currentExpr = new BinaryExpression(type, parameter, constant, caseSensitive);\n var subExpressions = this.expression.getExpressions();\n subExpressions.push(currentExpr);\n\n if (this.expression.getType() === OperatorType.not && subExpressions.length > 1)\n throw new Error(\"Invalid operators count!\");\n\n return this;\n }\n\n /**\n * Adds a condition that a field must be equal to a specific value.\n * @method eq\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {*} value Comparison value (to which the fields must be equal).\n * @returns {WhereQuery}\n */\n eq(parameter: string, constant: any): WhereQuery {\n return this._simple(OperatorType.eq, parameter, constant);\n }\n /**\n * Adds a condition that a field must *not* be equal to a specific value.\n * @method ne\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {*} value Comparison value (to which the field must not be equal).\n * @returns {WhereQuery}\n */\n ne(parameter: string, constant: any): WhereQuery {\n return this._simple(OperatorType.ne, parameter, constant);\n }\n /**\n * Adds a condition that a field must be `greater than` a certain value. Applicable to Number, String, and Date fields.\n * @method gt\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {*} value Comparison value (that the field should be greater than).\n * @returns {WhereQuery}\n */\n gt(parameter: string, constant: any) {\n return this._simple(OperatorType.gt, parameter, constant);\n }\n /**\n * Adds a condition that a field must be `greater than or equal` to a certain value. Applicable to Number, String, and Date fields.\n * @method gte\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {*} value Comparison value (that the field should be greater than or equal to).\n * @returns {WhereQuery}\n */\n gte(parameter: string, constant: any) {\n return this._simple(OperatorType.ge, parameter, constant);\n }\n /**\n * Adds a condition that a field must be `less than` a certain value. Applicable to Number, String, and Date fields.\n * @method lt\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {*} value Comparison value (that the field should be less than).\n * @returns {WhereQuery}\n */\n lt(parameter: string, constant: any) {\n return this._simple(OperatorType.lt, parameter, constant);\n }\n /**\n * Adds a condition that a field must be `less than or equal` to a certain value. Applicable to Number, String, and Date fields.\n * @method lte\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {*} value Comparison value (that the field should be less than or equal to).\n * @returns {WhereQuery}\n */\n lte(parameter: string, constant: any) {\n return this._simple(OperatorType.le, parameter, constant);\n }\n /**\n * Adds a condition that a field value must *start* with a specified string.\n * @method startsWith\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {string} value The string that the field should start with.\n * @param {boolean} caseSensitive A flag indicating if tolower should be applied to the parameter\n * @param {string} [options] A string of regex options to use. See [specs](http://docs.mongodb.org/manual/reference/operator/query/regex/#op._S_options) for a description of available options.\n * @returns {WhereQuery}\n */\n startsWith(parameter: string, constant: any, caseSensitive: boolean = true): WhereQuery {\n return this._simple(OperatorType.startsWith, parameter, constant, caseSensitive);\n }\n\n /**\n * Adds a condition that a field value must *contain* a specified string.\n * @method startsWith\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {string} value The string that the field should start with.\n * @param {boolean} caseSensitive A flag indicating if tolower should be applied to the parameter\n * @param {string} [options] A string of regex options to use. See [specs](http://docs.mongodb.org/manual/reference/operator/query/regex/#op._S_options) for a description of available options.\n * @returns {WhereQuery}\n */\n contains(parameter: string, constant: any, caseSensitive: boolean = true) {\n return this._simple(OperatorType.contains, parameter, constant, caseSensitive);\n }\n\n /**\n * Adds a condition that a field value must *end* with a specified string.\n * @method endsWith\n * @memberOf WhereQuery.prototype\n * @param {string} field Field name.\n * @param {string} value The string that the field should end with.\n * @param {boolean} caseSensitive A flag indicating if tolower should be applied to the parameter\n * @param {string} [options] A string of regex options to use. See [specs](http://docs.mongodb.org/manual/reference/operator/query/regex/#op._S_options) for a description of available options.\n * @returns {WhereQuery}\n */\n endsWith(parameter: string, constant: any, caseSensitive: boolean = true) {\n return this._simple(OperatorType.endsWith, parameter, constant, caseSensitive);\n }\n\n /**\n * Ends the definition of the current WhereQuery. You need to call this method in order to continue with the definition of the parent {@link QueryBase}. All other `WhereQuery` methods return the current instance of `WhereQuery` to allow chaining.\n * @method done\n * @memberOf WhereQuery.prototype\n * @returns {Query}\n */\n done() {\n if (this.parent instanceof WhereQuery) {\n this.parent._addComplexExpression(this);\n // TODO: If has and() || or() must call done() twice\n if (this.expression.getType() === OperatorType.not)\n return this.parent;\n }\n\n return this.parent;\n }\n\n _getExpression() {\n return this.expression;\n }\n\n private _addComplexExpression(subQuery): void {\n var subExpression = subQuery._getExpression();\n this.expression.getExpressions().push(subExpression);\n }\n}\n","const constants = {\n ExpressionType: {\n query: 1,\n where: 100,\n and: 'and',\n or: 'or',\n not: 'not',\n eq: 'eq',\n ne: 'ne',\n lt: 'lt',\n le: 'le',\n gt: 'gt',\n ge: 'ge',\n any: 'any',\n /*isin: 126,\n notin: 127,\n all: 128,\n size: 129,\n regex: 130,*/\n contains: 'contains',\n startsWith: 'startsWith',\n endsWith: 'endsWith'\n },\n ODataParams: {\n $filter: '$filter',\n $select: '$select',\n $expand: '$expand',\n $orderby: '$orderby',\n $skip: '$skip',\n $top: '$top',\n $count: '$count',\n $search: '$search'\n },\n SfParams: {\n provider: 'sf_provider',\n culture: 'sf_culture',\n siteId: 'sf_site'\n }\n};\n\nexport default constants;\n","import { Sitefinity } from \"./Sitefinity\";\nmodule.exports = Sitefinity;\n","export class utils {\n static isString(obj: any): boolean {\n return typeof (obj) === 'string' || obj instanceof String;\n }\n\n static isBoolean(obj: any): boolean {\n return typeof (obj) === 'boolean';\n }\n\n static isBlob(obj: any): boolean {\n return obj instanceof Blob;\n };\n\n static isNumber(value: any): boolean {\n return typeof value === 'number' && isFinite(value);\n };\n\n static serializeToJSON(data): string {\n if (!utils.isString(data) && !this.isBlob(data)) {\n return JSON.stringify(data);\n }\n\n return data;\n }\n\n static parseStringToJson(data) {\n if (!data) {\n return null;\n }\n\n var number = Number(data);\n if (!isNaN(number)) {\n return number;\n }\n\n var result = null;\n\n try {\n result = JSON.parse(data);\n result = utils._parseDateProperties(result);\n } catch (e) {\n console.log(\"An unexpected error occurred while parsing the response from server: \" + e.message + \". Response body was: '\" + data + \"'\");\n }\n\n return result;\n }\n\n static convertDateFieldToISOString = function (data) {\n /*\n TODOSDK: when write tests for this try to use\n \"Object.keys(obj).forEach(function(){})\",\n Phantomjs does not recognize \"for..in\" operator.\n */\n for (let obj in data) {\n if (data[obj] instanceof Date) {\n data[obj] = data[obj].toISOString();\n }\n }\n\n return data;\n }\n\n static hex16() {\n return Math.floor((1 + Math.random()) * 0x10000).toString(16).substr(1);\n }\n\n static addTrailingSlash(url) {\n url = utils.removeSlashes(url);\n url += '/';\n return url;\n }\n\n static removeSlashes(url) {\n var ret = url;\n var fistChar = ret.substr(0, 1);\n if (fistChar == '/')\n ret = ret.substr(1);\n\n var lastChar = ret.substr(-1);\n if (lastChar == '/')\n ret = ret.substr(0, ret.length - 1);\n\n return ret;\n }\n\n static clone(from: any, to = {}, action: Function = null): any {\n\n if (!to)\n to = {};\n\n for (var property in from) {\n if (from[property] && from[property].constructor && from[property].constructor === Object && typeof from[property] == 'function') {\n to[property] = to[property]|| { };\n arguments.callee(to[property], from[property]);\n } else {\n to[property] = from[property];\n }\n\n if (typeof action === 'function')\n action(to);\n }\n\n return to;\n }\n\n private static _parseDateProperties(data) {\n for (var obj in data) {\n // TODO\n if (data[obj] instanceof Array || (data[obj] instanceof Object && <any>!data[obj] instanceof Function))\n this._parseDateProperties(data[obj]);\n else\n data[obj] = utils._tryFormatFieldToDate(data[obj]);\n }\n\n return data;\n }\n\n private static _tryFormatFieldToDate(date) {\n if ((/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/).test(date)) {\n date = new Date(date);\n }\n\n return date;\n }\n}\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"sitefinity-webservices-sdk.js","mappings":"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CA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;UC9OA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;UENA;UACA;UACA;UACA","sources":["webpack://Sitefinity/webpack/universalModuleDefinition","webpack://Sitefinity/./sitefinity-webservices-sdk.ts","webpack://Sitefinity/./src/BlobBuilder.ts","webpack://Sitefinity/./src/Data.ts","webpack://Sitefinity/./src/Expression.ts","webpack://Sitefinity/./src/OrderProperty.ts","webpack://Sitefinity/./src/Query.ts","webpack://Sitefinity/./src/QueryBase.ts","webpack://Sitefinity/./src/QueryBuilder.ts","webpack://Sitefinity/./src/Requests/BatchRequest.ts","webpack://Sitefinity/./src/Requests/ExecutableRequest.ts","webpack://Sitefinity/./src/Requests/Request.ts","webpack://Sitefinity/./src/Requests/RequestBase.ts","webpack://Sitefinity/./src/Requests/RequestFactory.ts","webpack://Sitefinity/./src/Sitefinity.ts","webpack://Sitefinity/./src/WhereQuery.ts","webpack://Sitefinity/./src/constants.ts","webpack://Sitefinity/./src/utils.ts","webpack://Sitefinity/./node_modules/tslib/tslib.es6.js","webpack://Sitefinity/webpack/bootstrap","webpack://Sitefinity/webpack/runtime/define property getters","webpack://Sitefinity/webpack/runtime/hasOwnProperty shorthand","webpack://Sitefinity/webpack/runtime/make namespace object","webpack://Sitefinity/webpack/before-startup","webpack://Sitefinity/webpack/startup","webpack://Sitefinity/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Sitefinity\"] = factory();\n\telse\n\t\troot[\"Sitefinity\"] = factory();\n})(self, function() {\nreturn ","export * from \"./src/BlobBuilder\";\nexport * from \"./src/constants\";\nexport * from \"./src/utils\";\nexport * from \"./src/WhereQuery\";\nexport * from \"./src/Sitefinity\";\nexport * from \"./src/QueryBuilder\";\nexport * from \"./src/QueryBase\";\nexport * from \"./src/Query\";\nexport * from \"./src/OrderProperty\";\nexport * from \"./src/Expression\";\nexport * from \"./src/Data\";\nexport * from \"./src/Requests/BatchRequest\";\nexport * from \"./src/Requests/ExecutableRequest\";\nexport * from \"./src/Requests/Request\";\nexport * from \"./src/Requests/RequestBase\";\nexport * from \"./src/Requests/RequestFactory\";\n","/**\n * The BlobBuilder class is used to generate blob objects.\n */\nexport class BlobBuilder {\n private blob = new Blob();\n\n /**\n * Appends new value to blob.\n */\n append(value: any) {\n this.blob = new Blob([this.blob, value]);\n }\n\n /**\n * Gets generated blob.\n */\n build(): Blob {\n return this.blob;\n }\n}\n","import { SF_PARAMS } from \"./constants\";\nimport { Query } from \"./Query\";\nimport { ExecutableRequest } from \"./Requests/ExecutableRequest\";\nimport { RequestFactory } from \"./Requests/RequestFactory\";\nimport { TypeOptions } from \"./Sitefinity\";\n\n/**\n* The constructor of the Data object. This object is used for requesting data from Sitefinity.\n*/\nexport class Data {\n private urlOptions: TypeOptions;\n private factory: RequestFactory;\n\n constructor(urlOptions: TypeOptions, factory: RequestFactory) {\n this.urlOptions = urlOptions;\n this.factory = factory;\n }\n\n /**\n * Executes a GET request to retrieve a collection of items.\n */\n get(parameters: RequestOptionsBase) {\n const request = this.factory.get({\n urlOptions: this.urlOptions,\n query: parameters.query,\n action: parameters.action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n fallbackProperties: parameters.fallbackProperties\n });\n\n request.execute();\n }\n\n /**\n * Executes a GET request to retrieve an/all item(s) operations.\n */\n getOperations(parameters: OperationsRequestOptions) {\n let request: ExecutableRequest;\n let action = \"operations\";\n\n // Set parentId if no item key is passed\n if (!parameters.key)\n action += `?${SF_PARAMS.parentId}=` + parameters.parentId;\n\n const params: any = {\n urlOptions: this.urlOptions,\n action: action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n };\n\n if (parameters.key) {\n params.key = parameters.key;\n request = this.factory.getSingle(params);\n } else {\n request = this.factory.get(params);\n }\n\n request.execute();\n }\n\n /**\n * Executes a GET request for a single item.\n */\n getSingle(parameters: RequestOptionsBase) {\n if (!(parameters.key))\n throw \"Parameter 'key' is required!\";\n\n const request = this.factory.getSingle({\n urlOptions: this.urlOptions,\n key: parameters.key,\n query: parameters.query,\n action: parameters.action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n fallbackProperties: parameters.fallbackProperties\n });\n\n request.execute();\n }\n\n /**\n * Executes a POST request for a single item.\n */\n create(parameters: CreateRequestOptions) {\n if (!(parameters.data))\n throw \"Parameter 'data' is required!\";\n\n const request = this.factory.create({\n urlOptions: this.urlOptions,\n key: parameters.key,\n query: parameters.query,\n data: parameters.data,\n action: parameters.action,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a PATCH request to update a single item.\n * @example\n * const data = sf.data({\n * entitySet: \"newsitems\",\n * provider: \"OpenAccessDataProvider\",\n * culture: \"en\"\n * });\n *\n * const newsItemUpdate = {\n * \"Title\": 'updated news title'\n * };\n *\n * data.update({\n * key: '00000000-0000-0000-0000-000000000000', // key of item to update\n * data: newsItemUpdate,\n * saveTemp: true,\n * successCb: successCb,\n * failureCb: failureCb\n * });\n */\n update(parameters: UpdateRequestOptions) {\n if (!(parameters.key || parameters.data))\n throw \"Parameters: 'data' and 'key' are required!\";\n\n const request = this.factory.update({\n urlOptions: this.urlOptions,\n key: parameters.key,\n data: parameters.data,\n action: parameters.action,\n saveTemp: parameters.saveTemp,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a DELETE request to delete a single item.\n */\n destroy(parameters: RequestOptionsBase) {\n if (!(parameters.key))\n throw \"Parameter 'key' is required!\";\n\n const request = this.factory.destroy({\n urlOptions: this.urlOptions,\n key: parameters.key,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a POST request to execute a workflow operation for single item.\n */\n operation(parameters: CreateRequestOptions) {\n if (!(parameters.key || parameters.data))\n throw \"Parameters: 'data' and 'key' are required!\";\n\n const request = this.factory.create({\n urlOptions: this.urlOptions,\n key: parameters.key,\n action: \"operation\",\n data: parameters.data,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a GET request to get the property of a single item.\n */\n getProperty(parameters: PropertyRequestOptions) {\n if (!(parameters.key || parameters.property))\n throw \"Parameters: 'data' and 'property' are required!\";\n\n const request = this.factory.getProperty({\n urlOptions: this.urlOptions,\n key: parameters.key,\n property: parameters.property,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a GET request to get the related property value of a single item.\n */\n getRelated(parameters: PropertyRequestOptions) {\n if (!(parameters.key || parameters.property))\n throw \"Parameters: 'data' and 'property' are required!\";\n\n const request = this.factory.getRelated({\n urlOptions: this.urlOptions,\n key: parameters.key,\n property: parameters.property,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a GET request to retrieve the related property value of a single item by the id of the related item.\n */\n getRelatedById(parameters: SingleRelatedItemRequestOptions) {\n if (!(parameters.key || parameters.property || parameters.relatedId))\n throw \"Parameters: 'data', 'relatedId' and 'property' are required!\";\n\n const request = this.factory.getRelatedById({\n urlOptions: this.urlOptions,\n key: parameters.key,\n relatedId: parameters.relatedId,\n property: parameters.property,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a DELETE request to retrieve the delete all of the associated members in the relation property.\n */\n destroyRelated(parameters: PropertyRequestOptions) {\n if (!(parameters.key || parameters.property))\n throw \"Parameters: 'data' and 'property' are required!\";\n\n const request = this.factory.destroyRelated({\n urlOptions: this.urlOptions,\n key: parameters.key,\n property: parameters.property,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a DELETE request to retrieve the a single entry of the associated members in the relation property.\n */\n destroyRelatedById(parameters: SingleRelatedItemRequestOptions) {\n if (!(parameters.key || parameters.property || parameters.relatedId))\n throw \"Parameters: 'data', 'relatedId' and 'property' are required!\";\n\n const request = this.factory.destroyRelatedById({\n urlOptions: this.urlOptions,\n key: parameters.key,\n relatedId: parameters.relatedId,\n property: parameters.property,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a POST request to add a related item to the property collection.\n */\n createRelated(parameters: CreateRelatedRequestOptions) {\n if (!(parameters.key || parameters.property || parameters.link))\n throw \"Parameters: 'data', 'link' and 'property' are required!\";\n\n const data = {\n \"@odata.id\": parameters.link\n }\n\n const request = this.factory.createRelated({\n urlOptions: this.urlOptions,\n key: parameters.key,\n property: parameters.property,\n data: data,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n });\n\n request.execute();\n }\n\n /**\n * Executes a POST request to upload a media item.\n * @example\n *\n * const data = sf.data({\n * entitySet: \"images\"\n * });\n * data.upload({\n * data: {\n * content: \"base 64 representation of the file\",\n * contentType: \"image/jpeg\",\n * name: \"test.jpg\",\n * payload: {\n * Title: \"Test\",\n * entitySet: \"test\"\n * },\n * uploadProperties: {\n * ParentId: \"4BA7AD46-F29B-4E65-BE17-9BF7CE5BA1FB\"\n * }\n * },\n * successCb: successCb,\n * failureCb: failureCb\n * });\n */\n upload(parameters: UploadRequestOptions) {\n if (!(parameters || parameters.data || parameters.data.content || parameters.data.contentType || parameters.data || parameters.data.name || parameters.data.uploadProperties))\n throw \"parameters: content, contentType, name and uploadProperties are required!\";\n\n const options = {\n urlOptions: this.urlOptions,\n _factory: this.factory,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb\n }\n\n const batch = this.factory.batch(options);\n const transaction = batch.beginTransaction();\n\n const uploadedFile = transaction.upload({\n entitySet: this.urlOptions.entitySet,\n data: parameters.data.content,\n contentType: parameters.data.contentType,\n fileName: parameters.data.name,\n uploadProperties: parameters.data.uploadProperties\n });\n\n if (parameters.data.payload)\n transaction.update({\n entitySet: this.urlOptions.entitySet,\n key: uploadedFile,\n data: parameters.data.payload\n });\n\n if (parameters.publish === true) {\n transaction.operation({\n entitySet: this.urlOptions.entitySet,\n key: uploadedFile,\n data: {\n action: \"Publish\"\n }\n });\n }\n\n batch.endTransaction(transaction);\n batch.execute();\n }\n}\n\nexport interface RequestOptionsBase {\n query?: Query;\n action?: string;\n successCb?: Function;\n failureCb?: Function;\n fallbackProperties?: string[];\n key?: string | number;\n}\n\nexport interface OperationsRequestOptions extends RequestOptionsBase {\n parentId?: string;\n}\n\nexport interface CreateRequestOptions extends RequestOptionsBase {\n data?: object;\n}\n\nexport interface UpdateRequestOptions extends CreateRequestOptions {\n saveTemp?: boolean;\n}\n\nexport interface PropertyRequestOptions extends RequestOptionsBase {\n property: string;\n}\n\nexport interface SingleRelatedItemRequestOptions extends PropertyRequestOptions {\n relatedId: string;\n}\n\nexport interface CreateRelatedRequestOptions extends PropertyRequestOptions {\n link: string | number;\n}\n\nexport interface UploadRequestOptions extends CreateRequestOptions {\n data: {\n content: string;\n contentType: string;\n uploadProperties: { [key: string]: string };\n name: string;\n payload: object;\n },\n publish: boolean;\n}\n","export class ExpressionBase {\n constructor(public type: string) {\n }\n\n getType(): string {\n return this.type;\n }\n}\n\nexport class BinaryExpression extends ExpressionBase {\n constructor(type: string, public parameter: string, public constant: any, public caseSensitive: boolean = true) {\n super(type);\n }\n\n getParameter(): string {\n return this.parameter;\n }\n\n getConstant(): any {\n return this.constant;\n }\n\n isCaseSensitive(): boolean {\n return this.caseSensitive;\n }\n}\n\nexport class ComplexExpression extends ExpressionBase {\n constructor(type: string, private expressions: ExpressionBase[]) {\n super(type);\n }\n\n getExpressions(): ExpressionBase[] {\n return this.expressions;\n }\n}\n","import { utils } from './utils';\n\nexport class OrderProperty {\n constructor(private propertyPath: string, private isDesc: boolean = null) {\n if (!utils.isString(propertyPath))\n throw new Error('Property name is not a valid string');\n\n propertyPath = propertyPath.trim();\n\n const parts = propertyPath.split(' ');\n // parts[0] is the propertyPath; [1] would be whether descending or not.\n if (parts.length > 1 && isDesc !== true && isDesc !== false) {\n isDesc = parts[1].toLowerCase() == 'desc';\n if (!isDesc) {\n // isDesc is false but check to make sure its intended.\n const isAsc = parts[1].toLowerCase() == 'asc';\n if (!isAsc) {\n throw new Error(\"the second word in the propertyPath must begin with 'desc' or 'asc'\");\n }\n }\n }\n\n this.propertyPath = parts[0];\n this.isDesc = isDesc;\n }\n\n getPropertyPath(): string {\n return this.propertyPath;\n }\n\n getDirection(): boolean {\n return this.isDesc;\n }\n\n getValue(): string {\n const direction = (this.isDesc) ? 'desc' : 'asc';\n return this.propertyPath + ' ' + direction;\n }\n}\n","import { QueryBase } from './QueryBase';\nimport { WhereQuery } from './WhereQuery';\nimport { OrderProperty } from './OrderProperty';\nimport { QueryBuilder } from './QueryBuilder';\n\n/**\n * The query class is used for constructing queries.\n * @example\n * const query = new Sitefinity.Query();\n * const query0 = query.where().and().endsWith(\"Title\", \"Record\").done().or().startsWith('Title', 'asd').done().done();\n * const query1 = query.where().or().endsWith(\"Record\", \"Title\").ne('age', '15').eq('Content', 'test').done().done();\n * const query2 = query.where().and().endsWith(\"Title\", \"Record\").done().done();\n * const query3 = query.where().endsWith(\"Record\", \"Title\").or().ne('age', '15').eq('Content', 'test').done().done();\n * const query4 = query.where().not().endsWith(\"Record\", \"Title\").done().and().not().eq('Content', 'test').done().done().done();\n * const query5 = query.where().not().and().endsWith(\"Record\", \"Title\").eq('Content', 'test').done().done().done();\n * const query6 = query.select(\"Id\", \"Title\", \"Content\").expand('Tags').order(\"Title desc\").where().ne('Title', 'zzz').eq('Title', 'newTitle').done()//.count();\n * const query7 = query.order(\"Title desc\").where().eq('Title', 'newTitleUPDATE1').done().select(\"Title\", \"Content\");\n * const query8 = query.where().eq('Title', 'newTitleN11').done();\n */\nexport class Query extends QueryBase {\n orderProperties: OrderProperty[] = null;\n skipValue: number = null;\n takeValue: number = null;\n searchValue: string = null;\n returnCount: boolean;\n filter: WhereQuery<Query> = null;\n\n constructor() {\n super();\n }\n\n /**\n * Begins a where clause for filtering the items.\n */\n where(): WhereQuery<Query> {\n const clone: Query = this.clone((newObj: Query) => {\n newObj.filter = new WhereQuery(newObj);\n });\n\n return clone.filter;\n }\n\n /**\n * Specifies the order by clause.\n * @example\n * order by single field\n * order(\"Title desc\")\n * @example\n * order by multiple fields\n * order(\"Title desc\", \"Description asc\")\n */\n order(...properties: string[]): Query {\n properties = properties ?? [];\n this.validatePropertyPaths(properties);\n\n return this.clone((newObj: Query) => {\n const orderItems: OrderProperty[] = [];\n for (let i = 0; i < properties.length; i++) {\n const member = properties[i];\n const orderProp = new OrderProperty(member);\n orderItems.push(orderProp);\n }\n newObj.orderProperties = orderItems;\n });\n }\n\n /**\n * Skips a certain number of items from the beginning before returning the rest of the items. Used for paging.\n */\n skip(value: number): Query {\n return this.clone((newObj: Query) => {\n newObj.skipValue = value;\n });\n }\n\n /**\n * Takes a specified number of items from the query result. Used for paging.\n */\n take(value: number): Query {\n return this.clone((newObj: Query) => {\n newObj.takeValue = value;\n });\n }\n\n /**\n * Searches for the items matching the specified expression.\n */\n search(value: string): Query {\n return this.clone((newObj: Query) => {\n newObj.searchValue = value;\n });\n }\n\n /**\n * Returns the total item count with the result. Used for paging.\n */\n count(returnCount = true): Query {\n return this.clone((newObj: Query) => {\n newObj.returnCount = returnCount;\n });\n }\n\n build() {\n return new QueryBuilder(this).build();\n }\n}\n","import { utils } from './utils';\n\n/**\n * The base class for dealing with queries.\n */\nexport class QueryBase {\n selectProperties: string[];\n expandProperties: string[];\n\n constructor() {\n this.selectProperties = null;\n this.expandProperties = null;\n }\n\n /**\n * Selects which fields will be returned when querying the service.\n */\n select(...properties: string[]): QueryBase {\n properties = properties ?? [];\n\n this.validatePropertyPaths(properties);\n\n return this.clone((newObj: QueryBase) => {\n newObj.selectProperties = properties.filter((prop, index, props) => props.indexOf(prop) === index);\n });\n }\n\n /**\n * Selects which navigation properties will be returned when querying the service.\n */\n expand(...properties: string[]): QueryBase {\n properties = properties ?? [];\n this.validatePropertyPaths(properties);\n\n return this.clone((newObj: QueryBase) => {\n newObj.expandProperties = properties.filter((prop, index, props) => props.indexOf(prop) === index);\n });\n }\n\n protected validatePropertyPaths(propPaths: string[], allowNested = false) {\n for (let i = 0; i < propPaths.length; i++) {\n const member = propPaths[i];\n if (!utils.isString(member)) {\n throw new Error('Invalid argument in clause');\n }\n\n if (!allowNested && member.indexOf('.') > -1) {\n throw new Error('Invalid argument in clause');\n }\n }\n }\n\n protected clone(setter: Function = null) {\n const newObj = utils.clone(this, new QueryBase(), setter);\n return newObj;\n }\n}\n","import { WhereQuery } from './WhereQuery';\nimport { ComplexExpression, BinaryExpression } from './Expression';\nimport { OrderProperty } from './OrderProperty';\nimport { utils } from './utils';\nimport { ODATA_PARAMS, EXPRESSION_TYPE } from \"./constants\";\nimport { Query } from \"./Query\";\n\nexport class QueryBuilder {\n constructor(private query: Query) {\n }\n\n build(): { [key: string]: string } {\n const queryParameters = {};\n const whereClause = this.query.filter;\n if (whereClause instanceof WhereQuery) {\n const expression = whereClause.getExpression();\n if (expression instanceof ComplexExpression) {\n const result = this.buildComplexExpression(expression, null);\n if (result) {\n queryParameters[ODATA_PARAMS.$filter] = result;\n }\n }\n }\n\n const selectClause = this.query.selectProperties;\n if (selectClause instanceof Array) {\n queryParameters[ODATA_PARAMS.$select] = selectClause.join(', ');\n }\n\n const expandClause = this.query.expandProperties;\n if (expandClause instanceof Array)\n queryParameters[ODATA_PARAMS.$expand] = expandClause.join(', ');\n\n const orderByClause = this.query.orderProperties;\n if (orderByClause instanceof Array) {\n const order = [];\n for (const i in orderByClause) {\n if (orderByClause[i] instanceof OrderProperty)\n order.push(orderByClause[i].getValue());\n }\n queryParameters[ODATA_PARAMS.$orderby] = order.join(', ');\n }\n\n const take = this.query.takeValue;\n if (utils.isNumber(take))\n queryParameters[ODATA_PARAMS.$top] = take;\n\n const skip = this.query.skipValue;\n if (utils.isNumber(skip))\n queryParameters[ODATA_PARAMS.$skip] = skip;\n\n const search = this.query.searchValue;\n if (search)\n queryParameters[ODATA_PARAMS.$search] = search;\n\n if (this.query.returnCount) {\n queryParameters[ODATA_PARAMS.$count] = true;\n }\n\n return queryParameters;\n }\n\n private buildComplexExpression(expression: ComplexExpression, parent: string): string {\n if (!(expression instanceof ComplexExpression))\n throw new Error('Invalid complex expression');\n\n let counter = 0;\n let result = '';\n const subExpressions = expression.getExpressions();\n if (!subExpressions.length) {\n return result;\n }\n\n while (true) {\n const currentExp = subExpressions[counter];\n if (currentExp instanceof BinaryExpression) {\n result += this.buildBinaryExpression(currentExp);\n }\n else if (currentExp instanceof ComplexExpression) {\n const complexResult = this.buildComplexExpression(currentExp, expression.type);\n if (complexResult) {\n result += '(' + complexResult + ')';\n }\n }\n\n if (expression.getType() === EXPRESSION_TYPE.not)\n result = expression.getType() + ' ' + result;\n // TODOSDK: Rethink this!\n if (expression.getType() === EXPRESSION_TYPE.any) {\n const exprVal = [];\n for (let index = 0; index < subExpressions.length; index++) {\n if (subExpressions[index].type == EXPRESSION_TYPE.contains || subExpressions[index].type == EXPRESSION_TYPE.startsWith || subExpressions[index].type == EXPRESSION_TYPE.endsWith)\n exprVal.push(subExpressions[index].type.toLowerCase() + \"(x, '\" + (subExpressions[index] as BinaryExpression).constant + \"')\");\n else\n exprVal.push('x ' + subExpressions[index].type.toLowerCase() + ' ' + this.checkType((subExpressions[index] as BinaryExpression).constant));\n }\n result = (currentExp as BinaryExpression).parameter + '/' + expression.getType() + '(x:' + exprVal.join(' ' + parent + ' ') + ')';\n }\n\n counter++;\n if (counter == subExpressions.length)\n break;\n\n result += ' ' + expression.getType() + ' ';\n }\n\n return result;\n }\n\n private buildBinaryExpression(expression: BinaryExpression): string {\n let result: string = null;\n const type = expression.getType();\n switch (type) {\n case EXPRESSION_TYPE.eq:\n case EXPRESSION_TYPE.ne:\n case EXPRESSION_TYPE.lt:\n case EXPRESSION_TYPE.le:\n case EXPRESSION_TYPE.gt:\n case EXPRESSION_TYPE.ge: {\n const constant = expression.getConstant();\n result = `(${expression.getParameter()} ${type} ${this.checkType(constant)})`;\n break;\n }\n case EXPRESSION_TYPE.contains:\n case EXPRESSION_TYPE.startsWith:\n case EXPRESSION_TYPE.endsWith: {\n const expressionParameter = this.applyCaseSensitiveSettings(expression, expression.getParameter());\n const expressionConstant = this.checkType(expression.getConstant());\n const expressionValue = this.applyCaseSensitiveSettings(expression, expressionConstant);\n\n result = `${type.toLowerCase()}(${expressionParameter}, ${expressionValue})`;\n break;\n }\n default: {\n const msg = `Unsupported operator ${type}`;\n throw new Error(msg);\n }\n }\n\n return result;\n }\n\n private applyCaseSensitiveSettings(expression: BinaryExpression, value: string): string {\n if (expression.isCaseSensitive()) {\n return value;\n }\n\n return `tolower(${value})`;\n }\n\n private checkType(constant: any): string {\n if (this.isGuid(constant))\n return constant;\n\n if (constant == null)\n return null;\n\n constant = constant.replace(/[+/?%#&]/g, function ($0) {\n return encodeURIComponent($0);\n });\n\n // escapes the apostrophes\n constant = constant.replace(/'/g, \"''\");\n\n return \"'\" + constant + \"'\";\n }\n\n private isGuid(constant: string): boolean {\n return /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(constant);\n }\n}\n","import { RequestFactory } from \"./RequestFactory\";\nimport { BlobBuilder } from '../BlobBuilder';\nimport { utils } from '../utils';\nimport { HEADER_NAMES, HTTP_METHODS } from \"../constants\";\nimport { ExecutableRequest } from \"./ExecutableRequest\";\nimport { SDKOptions, Token, TypeOptions } from \"../Sitefinity\";\nimport { RequestBase, RequestOptionsBaseExtended } from \"./RequestBase\";\nimport { CreateRelatedRequestOptions, RequestOptionsBase, PropertyRequestOptions, SingleRelatedItemRequestOptions, CreateRequestOptions, UpdateRequestOptions } from \"../Data\";\nimport { PostRequestOptionsExtended, PutRequestOptionsExtended, RelatedByIdRequestOptionsExtended, RelatedRequestOptionsExtended, UploadRequestOptionsExtended } from \"./Request\";\nimport { Query } from \"../Query\";\n\n/**\n * The transaction class is used to group operations that involve data manipulation together and execute them as a single atomic operation.\n */\nexport class Transaction {\n id: number;\n counter: number;\n requests: TransactionRequest[];\n private urlOptions: TypeOptions;\n private factory: RequestFactory;\n\n constructor(urlOptions: TypeOptions, factory: RequestFactory) {\n this.urlOptions = urlOptions;\n this.factory = factory;\n this.requests = [];\n this.counter = 0;\n }\n\n upload(parameters: any): number {\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: UploadRequestOptionsExtended = {\n urlOptions: urlOptions,\n data: parameters.data,\n contentType: parameters.contentType,\n fileName: parameters.fileName,\n key: parameters.key,\n uploadProperties: parameters.uploadProperties\n };\n\n const request = this.factory.upload(options);\n\n return this.addRequest(request);\n }\n\n /**\n * Adds a POST request to create a single item.\n */\n create(parameters: BatchCreateRequestOptions) {\n if (!(parameters || parameters.entitySet))\n throw \"entitySet is required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: PostRequestOptionsExtended = {\n key: parameters.key,\n action: parameters.action,\n urlOptions: urlOptions,\n data: parameters.data\n };\n\n const request = this.factory.create(options);\n\n return this.addRequest(request);\n }\n\n /**\n * Adds a POST request to execute an operation on single item.\n */\n // TODO: Remove\n operation(parameters: BatchCreateRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.data))\n throw \"parameters: entitySet, key and data are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: PostRequestOptionsExtended = {\n urlOptions: urlOptions,\n key: parameters.key,\n action: 'operation',\n data: parameters.data\n };\n\n const request = this.factory.create(options);\n\n this.overrideUrlGeneration(request, parameters.key, 'operation', options.urlOptions, options.query);\n this.addRequest(request);\n }\n\n /**\n * Adds a PATCH request to update a single item.\n */\n update(parameters: BatchUpdateRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.data))\n throw \"parameters: entitySet, key and data are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: PutRequestOptionsExtended = {\n urlOptions: urlOptions,\n saveTemp: parameters.saveTemp,\n key: parameters.key,\n data: parameters.data\n };\n\n const request = this.factory.update(options);\n\n this.overrideUrlGeneration(request, parameters.key, undefined, options.urlOptions, options.query);\n this.addRequest(request);\n }\n\n /**\n * Adds a DELETE request to delete a single item.\n */\n destroy(parameters: BatchSingleItemRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key))\n throw \"parameters: entitySet and key are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RequestOptionsBaseExtended = {\n urlOptions: urlOptions,\n key: parameters.key\n };\n\n const request = this.factory.destroy(options);\n\n this.overrideUrlGeneration(request, parameters.key, undefined, options.urlOptions, options.query);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a DELETE request to delete all of the associated members in the relation property.\n */\n destroyRelated(parameters: BatchPropertyRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key))\n throw \"parameters: entitySet and key are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RelatedRequestOptionsExtended = {\n urlOptions: urlOptions,\n key: parameters.key,\n property: parameters.property\n };\n\n const request = this.factory.destroyRelated(options);\n\n const propertyURL = (request as any).property + '/$ref';\n this.overrideUrlGeneration(request, parameters.key, propertyURL, options.urlOptions, options.query);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a DELETE request to retrieve the a single entry of the associated members in the relation property.\n */\n destroyRelatedById(parameters: BatchSingleRelatedItemRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.relatedId || parameters.property))\n throw \"parameters: entitySet, key, relatedId and property are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RelatedByIdRequestOptionsExtended = {\n urlOptions: urlOptions,\n key: parameters.key,\n relatedId: parameters.relatedId,\n property: parameters.property\n };\n\n const request = this.factory.destroyRelatedById(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a POST request to add a related item to the property collection.\n */\n createRelated(parameters: BatchCreateRelatedRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.link || parameters.property))\n throw \"parameters: entitySet, key, link and property are required!\";\n\n // TODO: rethink about the urls\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n for (let index = 0; index < this.requests.length; index += 1) {\n if (this.requests[index].id == parameters.link) {\n parameters.link = \"$\" + this.requests[index].id;\n }\n }\n\n const data = {\n '@odata.id': parameters.link\n }\n\n const options: RelatedRequestOptionsExtended = {\n urlOptions: urlOptions,\n key: parameters.key,\n property: parameters.property,\n data: data\n };\n\n const request = this.factory.createRelated(options);\n const propertyURL = (request as any).property + '/$ref';\n this.overrideUrlGeneration(request, parameters.key, propertyURL, options.urlOptions, options.query);\n\n return this.addRequest(request);\n }\n\n private overrideUrlGeneration(request: RequestBase, key: number | string, additionalPropertyURL: string, urlOptions?: TypeOptions, query?: Query) {\n // TODO: match requests with Content-ID's!\n // Content-ID's are the same as id's in requests.\n for (let index = 0; index < this.requests.length; index += 1) {\n if (this.requests[index].id == key) {\n request.buildUrl = function () {\n let uri = \"$\" + key;\n if (additionalPropertyURL !== undefined) {\n uri = uri + '/' + additionalPropertyURL;\n }\n\n if (urlOptions) {\n const queryString = request.getQueryString(urlOptions, query);\n if (queryString) {\n uri = uri + queryString;\n }\n }\n\n return uri;\n }\n }\n }\n }\n\n private addRequest(request: RequestBase) {\n this.requests.push({ id: this.counter, request: request });\n return this.counter++;\n }\n\n private urlParametersClone(entitySet: string) {\n const options = utils.clone(this.urlOptions);\n options.entitySet = entitySet;\n\n return options;\n }\n}\n\n/**\n * The batch request class is used for grouping requests into a single batch request to execute on the server.\n */\nexport class BatchRequest extends ExecutableRequest {\n counter: number;\n requests: BatchInnerRequest[];\n private factory: RequestFactory;\n private boundary: string;\n private responseHeaderRegex: RegExp;\n private responseStatusRegex: RegExp;\n\n\n public static constants = {\n newLine: '\\r\\n'\n };\n\n constructor(requestOptions: BatchRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.factory = requestOptions.factory;\n this.requests = [];\n this.counter = 0;\n this.boundary = this.createBoundary(\"sf_batch_\");\n this.responseHeaderRegex = /^([^()<>@,;:\\\\\"\\/[\\]?={} \\t]+)\\s?:\\s?(.*)/;\n this.responseStatusRegex = /^HTTP\\/1\\.\\d (\\d{3}) (.*)$/i;\n }\n\n /**\n * Adds a GET request to retrieve a collection of items.\n */\n get(parameters: BatchRequestOptionsBase) {\n if (!(parameters || parameters.entitySet))\n throw \"entitySet is required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RequestOptionsBaseExtended = {\n urlOptions: urlOptions,\n action: parameters.action,\n query: parameters.query,\n fallbackProperties: parameters.fallbackProperties\n };\n\n const request = this.factory.get(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request for the retrieval of a single item.\n */\n getSingle(parameters: BatchSingleItemRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key))\n throw \"parameters: entitySet and key are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RequestOptionsBaseExtended = {\n urlOptions: urlOptions,\n action: parameters.action,\n key: parameters.key,\n query: parameters.query\n };\n\n const request = this.factory.getSingle(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request to get the property of a single item.\n */\n getProperty(parameters: BatchPropertyRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key, parameters.property))\n throw \"parameters: entitySet, key and property are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RelatedRequestOptionsExtended = {\n urlOptions: urlOptions,\n key: parameters.key,\n property: parameters.property\n };\n\n const request = this.factory.getProperty(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request to get the related property value of a single item.\n */\n getRelated(parameters: BatchPropertyRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.property))\n throw \"parameters: entitySet, key and property are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RelatedRequestOptionsExtended = {\n urlOptions: urlOptions,\n key: parameters.key,\n property: parameters.property\n };\n\n const request = this.factory.getRelated(options);\n\n this.addRequest(request);\n }\n\n /**\n * Adds a GET request to retrieve the related property value of a single item by the id of the related item.\n */\n getRelatedById(parameters: BatchSingleRelatedItemRequestOptions) {\n if (!(parameters || parameters.entitySet || parameters.key || parameters.relatedId || parameters.property))\n throw \"parameters: entitySet, key, relatedId and property are required!\";\n\n const urlOptions = this.urlParametersClone(parameters.entitySet);\n\n const options: RelatedByIdRequestOptionsExtended = {\n urlOptions: urlOptions,\n key: parameters.key,\n relatedId: parameters.relatedId,\n property: parameters.property\n };\n\n const request = this.factory.getRelatedById(options);\n\n this.addRequest(request);\n }\n\n /**\n * Begins a transaction.\n */\n beginTransaction(): Transaction {\n const option = utils.clone(this.urlOptions);\n const newTransaction = new Transaction(option, this.factory);\n newTransaction.id = ++this.counter;\n return newTransaction;\n }\n\n /**\n * Ends a transaction.\n */\n endTransaction(transaction: Transaction) {\n this.requests.push({\n id: transaction.id,\n request: transaction\n });\n }\n\n getBody(): object {\n return this.buildRequestBody();\n }\n\n getMethod(): string {\n return HTTP_METHODS.post;\n }\n\n getHeaders(): { [key: string]: string } {\n const contentType = \"multipart/mixed; boundary=\" + this.boundary;\n const headers = { };\n headers[HEADER_NAMES.contentType] = contentType;\n\n return headers;\n }\n\n buildUrl(): string {\n let url = this.urlOptions.baseUrl + \"$batch\";\n const queryString = this.getQueryString(this.urlOptions, this.query);\n\n if (queryString) {\n url += queryString\n }\n\n return url;\n }\n\n protected parseResponse(http: XMLHttpRequest): any {\n const context = {\n position: 0,\n boundaries: []\n };\n\n const pos = context.position;\n const partHeaders = this.readHeaders(http.getAllResponseHeaders(), context);\n const partContentType = this.contentType(partHeaders[\"content-type\"]);\n if (partContentType && partContentType.mediaType == \"multipart/mixed\") {\n context.boundaries.push((partContentType.properties as any).boundary);\n }\n\n context.position = pos;\n\n const batchResponse = this.parseBatchResponse(http.responseText, context);\n const responseParsed = [];\n for (let i = 0; i < batchResponse.length; i++) {\n try {\n const currentRequest = this.requests[i];\n let finalResult = null;\n let key = null;\n\n const singleResponse = batchResponse[i];\n const changesets = singleResponse.__changeResponses;\n if (changesets) {\n finalResult = [];\n const currentRequests = currentRequest ? (currentRequest.request as Transaction).requests : [];\n\n for (let j = 0; j < changesets.length; j++) {\n key = currentRequests[j] ? currentRequests[j].request.key : null;\n const changeset = changesets[j];\n const response = changeset.response;\n const responseResult = this.getResponseResult(response, key);\n finalResult.push(responseResult);\n }\n } else {\n key = currentRequest ? (currentRequest.request as any).key : null;\n const response = singleResponse.response;\n finalResult = this.getResponseResult(response, key);\n }\n\n const statusCodeCheck = function (r) {\n return r.statusCode >= 400;\n };\n\n const responseCheck = function (r) {\n let success = true;\n if (r.data && r.data.hasOwnProperty(\"Success\")) {\n success = r.data.Success\n }\n\n return success;\n };\n\n const isSuccessful = Array.isArray(finalResult) ?\n finalResult.filter(statusCodeCheck).length === 0 && finalResult.filter(responseCheck).length === finalResult.length :\n !statusCodeCheck(finalResult) && responseCheck(finalResult);\n\n responseParsed.push({ isSuccessful: isSuccessful, response: finalResult });\n }\n catch (e) {\n // TODO: why continue ?\n continue;\n }\n }\n\n const isSuccessfulCheck = (r) => {\n return !r.isSuccessful;\n };\n\n const batchIsSuccessful = responseParsed.filter(isSuccessfulCheck).length === 0;\n return { data: responseParsed, isSuccessful: batchIsSuccessful };\n }\n\n private parseBatchResponse(text, context) {\n // get boundary from response\n const delimiter = \"--\" + this.currentBoundary(context);\n this.readTo(text, delimiter, context);\n this.readLine(text, context);\n\n const responses = [];\n let partEnd;\n while (partEnd !== \"--\" && context.position < text.length) {\n const partHeaders = this.readHeaders(text, context);\n const partContentType = this.contentType(partHeaders[\"content-type\"]);\n let changeResponses;\n if (partContentType && partContentType.mediaType === \"multipart/mixed\") {\n context.boundaries.push((partContentType.properties as any).boundary);\n\n try {\n changeResponses = this.parseBatchResponse(text, context);\n } catch (e) {\n e.response = this.readResponse(text, context, delimiter);\n changeResponses = [e];\n }\n responses.push({ __changeResponses: changeResponses });\n context.boundaries.pop();\n this.readTo(text, \"--\" + this.currentBoundary(context), context);\n } else {\n if (!partContentType || partContentType.mediaType !== \"application/http\") {\n throw { message: \"invalid MIME part type \" };\n }\n // Skip empty line\n this.readLine(text, context);\n\n // Read the response\n let response: any = this.readResponse(text, context, delimiter);\n\n try {\n if (response.statusCode >= 200 && response.statusCode <= 299) {\n response = { message: response.statusCode + \" Http request is OK\", response: response };\n } else {\n // Keep track of failed responses and continue processing the batch.\n response = { message: \"HTTP request failed\", response: response };\n }\n } catch (e) {\n response = e;\n }\n\n responses.push(response);\n }\n\n partEnd = text.substr(context.position, 2);\n\n // Ignore the incoming line.\n this.readLine(text, context);\n }\n\n return responses;\n }\n\n private getResponseResult(response, key) {\n const responseBody = response.body;\n const data = utils.parseStringToJson(responseBody);\n\n return {\n key: key,\n data: data,\n statusCode: response.statusCode,\n headers: response.headers\n };\n }\n\n private currentBoundary(context) {\n const boundaries = context.boundaries;\n return boundaries[boundaries.length - 1];\n }\n\n private contentType(str) {\n\n if (!str) {\n return null;\n }\n\n const contentTypeParts = str.split(\";\");\n const properties = {};\n\n let i, len;\n for (i = 1, len = contentTypeParts.length; i < len; i++) {\n const contentTypeParams = contentTypeParts[i].split(\"=\");\n properties[contentTypeParams[0].replace(/^\\s+|\\s+$/g, '')] = contentTypeParams[1];\n }\n\n return { mediaType: contentTypeParts[0].replace(/^\\s+|\\s+$/g, ''), properties: properties };\n }\n\n private readTo(text, str, context) {\n const start = context.position || 0;\n let end = text.length;\n if (str) {\n end = text.indexOf(str, start);\n if (end === -1) {\n return null;\n }\n context.position = end + str.length;\n } else {\n context.position = end;\n }\n\n return text.substring(start, end);\n }\n\n private readLine(text, context) {\n return this.readTo(text, BatchRequest.constants.newLine, context);\n }\n\n private readHeaders(text, context) {\n const headers = {};\n let parts;\n let line;\n let pos;\n\n do {\n pos = context.position;\n line = this.readLine(text, context);\n parts = this.responseHeaderRegex.exec(line);\n if (parts !== null) {\n headers[parts[1].toLowerCase()] = parts[2];\n } else {\n // Whatever was found is not a header, so reset the context position.\n context.position = pos;\n }\n } while (line && parts);\n\n return headers;\n }\n\n private readResponse(text, context, delimiter) {\n // Read the status line.\n const pos = context.position;\n const match = this.responseStatusRegex.exec(this.readLine(text, context));\n\n let statusCode;\n let statusText;\n let headers;\n\n if (match) {\n statusCode = match[1];\n statusText = match[2];\n headers = this.readHeaders(text, context);\n this.readLine(text, context);\n } else {\n context.position = pos;\n }\n\n return {\n statusCode: statusCode,\n statusText: statusText,\n headers: headers,\n body: this.readTo(text, BatchRequest.constants.newLine + delimiter, context)\n };\n }\n\n private buildRequestBody() {\n const builder = new BlobBuilder();\n builder.append('');\n\n for (let index = 0; index < this.requests.length; index += 1) {\n\n const request = this.requests[index].request;\n if (index != 0)\n builder.append(BatchRequest.constants.newLine + BatchRequest.constants.newLine);\n\n builder.append(\"--\" + this.boundary);\n\n if (request instanceof Transaction) {\n builder.append(this.buildTransaction(request));\n }\n else {\n builder.append(this.buildRequest(request));\n }\n }\n\n builder.append(this.createDelimeter(this.boundary, true));\n return builder.build();\n }\n\n private buildRequest(request: RequestBase): Blob {\n const builder = new BlobBuilder();\n builder.append(BatchRequest.constants.newLine + 'Content-Type: application/http' +\n BatchRequest.constants.newLine + 'Content-Transfer-Encoding: binary' +\n BatchRequest.constants.newLine +\n BatchRequest.constants.newLine +\n request.getMethod() +\n ' ' + request.buildUrl() + ' HTTP/1.1');\n\n return builder.build();\n }\n\n private buildTransaction(transaction: Transaction) {\n if (transaction.requests.length == 0)\n return;\n\n const builder = new BlobBuilder();\n builder.append(BatchRequest.constants.newLine);\n\n const changeset = this.createBoundary(\"sf_changeset_\");\n builder.append('Content-Type: multipart/mixed; boundary=' + changeset);\n\n const changesetRequests = transaction.requests;\n for (let index = 0; index < changesetRequests.length; index += 1) {\n const currentRequest = changesetRequests[index].request;\n\n // we shouldn't add new lines after blob content. Otherwise they are added to the blob and corrupt it\n const shouldAddNewLine = index === 0 || !utils.isBlob(changesetRequests[index - 1].request.getBody());\n builder.append(this.createDelimeter(changeset, false, shouldAddNewLine) +\n BatchRequest.constants.newLine + 'Content-Type: application/http' +\n BatchRequest.constants.newLine + 'Content-Transfer-Encoding: binary' +\n BatchRequest.constants.newLine + 'Content-ID: ' + changesetRequests[index].id);\n\n const requestUrl = currentRequest.buildUrl();\n builder.append(BatchRequest.constants.newLine + BatchRequest.constants.newLine + currentRequest.getMethod() + ' ' + requestUrl + ' HTTP/1.1');\n\n const headers = currentRequest.getHeaders();\n const headerNames = Object.keys(headers);\n for (let i = 0; i < headerNames.length; i++) {\n const headerName = headerNames[i];\n builder.append(BatchRequest.constants.newLine + headerName + \": \" + headers[headerName]);\n }\n\n const body = utils.serializeToJSON(currentRequest.getBody());\n if (body) {\n builder.append(BatchRequest.constants.newLine + BatchRequest.constants.newLine);\n builder.append(body);\n }\n }\n\n builder.append(this.createDelimeter(changeset, true));\n\n return builder.build();\n }\n\n private createDelimeter(boundary, close, shouldAddNewLine = true) {\n let result = \"\";\n if (shouldAddNewLine) {\n result = BatchRequest.constants.newLine + BatchRequest.constants.newLine;\n }\n\n result += \"--\" + boundary;\n if (close) {\n result += \"--\";\n result += BatchRequest.constants.newLine;\n }\n return result;\n }\n\n private createBoundary(prefix) {\n return prefix + utils.hex16() + '-' + utils.hex16() + '-' + utils.hex16();\n }\n\n private addRequest(request: RequestBase) {\n this.requests.push({ id: this.counter, request: request });\n return this.counter++;\n }\n\n private urlParametersClone(entitySet: string): TypeOptions {\n const options = utils.clone(this.urlOptions);\n options.entitySet = entitySet;\n\n return options;\n }\n}\n\ninterface TransactionRequest {\n id: number,\n request: RequestBase;\n}\n\ninterface BatchInnerRequest {\n id: number,\n request: RequestBase | Transaction;\n}\n\nexport interface BatchRequestOptionsExtended extends RequestOptionsBaseExtended {\n factory: RequestFactory;\n}\n\nexport interface BatchRequestOptionsBase extends RequestOptionsBase {\n entitySet: string;\n}\n\nexport interface BatchCreateRequestOptions extends CreateRequestOptions {\n entitySet: string;\n}\n\nexport interface BatchUpdateRequestOptions extends UpdateRequestOptions {\n entitySet: string;\n}\n\nexport interface BatchSingleItemRequestOptions extends RequestOptionsBase {\n entitySet: string;\n}\n\nexport interface BatchPropertyRequestOptions extends PropertyRequestOptions {\n entitySet: string;\n}\n\nexport interface BatchSingleRelatedItemRequestOptions extends SingleRelatedItemRequestOptions {\n entitySet: string;\n}\n\nexport interface BatchCreateRelatedRequestOptions extends CreateRelatedRequestOptions {\n entitySet: string;\n}\n","import { RequestBase, RequestOptionsBaseExtended } from './RequestBase';\nimport { utils } from '../utils';\nimport { HEADER_NAMES } from \"../constants\";\nimport { SDKOptions, Token } from \"../Sitefinity\";\n\nconst XMLHttpRequestDone = 4;\n\nexport class ExecutableRequest extends RequestBase {\n private token: Token;\n private enableUnlimitedChoices: boolean;\n private integrationMode: boolean;\n\n constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions);\n this.token = token;\n this.successCb = this.successCb || sdkOptions.handlers?.successCb;\n this.failureCb = this.failureCb || sdkOptions.handlers?.failureCb;\n this.enableUnlimitedChoices = sdkOptions.enableUnlimitedChoices;\n this.integrationMode = sdkOptions.integrationMode;\n }\n\n execute() {\n const http = new XMLHttpRequest();\n\n http.onreadystatechange = () => {\n if (http.readyState === XMLHttpRequestDone) {\n if (http.status > 0) {\n let data = this.parseResponse(http);\n\n if (http.status >= 200 && http.status <= 206) {\n\n if (utils.isFunction(this.successCb)) {\n this.successCb(data);\n }\n }\n else if (http.status >= 400) {\n // When the data is string, we save the string as message\n // and convert the data to normal object with message property\n if (utils.isString(data)) {\n data = {\n message: data\n };\n }\n\n data.status = http.status;\n\n // in case of errors we would like there to be one handler for all of the errors\n if (utils.isFunction(this.failureCb)) {\n this.failureCb(data);\n }\n }\n }\n }\n };\n\n if (utils.isFunction(this.progressCb)) {\n if (http.upload) {\n http.upload.onprogress = (event) => {\n this.progressCb(event);\n };\n }\n }\n\n const method = this.getMethod();\n const url = this.buildUrl();\n http.open(method, url, true);\n this.setHeaders(http, this.getHeaders());\n\n http.send(utils.serializeToJSON(this.getBody()));\n }\n\n private setHeaders(http: XMLHttpRequest, headers: { [key: string]: string }) {\n const headerKeys = Object.keys(headers);\n for (let i = 0; i < headerKeys.length; i++) {\n const currentHeaderName = headerKeys[i];\n http.setRequestHeader(currentHeaderName, headers[currentHeaderName]);\n }\n\n if (this.token) {\n if (typeof this.token === 'string') {\n // for backward compatibility\n http.setRequestHeader(HEADER_NAMES.authorization, this.token);\n } else {\n http.setRequestHeader(HEADER_NAMES.authorization, this.token.type + \" \" + this.token.value);\n }\n }\n\n if (this.enableUnlimitedChoices) {\n http.setRequestHeader(HEADER_NAMES.choicesBinaryRepresentation, \"true\");\n }\n\n if (this.integrationMode) {\n http.setRequestHeader(HEADER_NAMES.integrationMode, \"true\");\n }\n\n // for backward compatibility\n http.setRequestHeader(HEADER_NAMES.serviceRequest, \"true\");\n }\n}\n\nexport interface ResponseHandlers {\n /**\n * The success handler.\n */\n successCb?: Function;\n\n /**\n * The failure handler.\n */\n failureCb?: Function;\n}\n","import { HEADER_NAMES, HTTP_METHODS } from \"../constants\";\nimport { SDKOptions, Token } from \"../Sitefinity\";\nimport { utils } from '../utils';\nimport { ExecutableRequest } from \"./ExecutableRequest\";\nimport { RequestOptionsBaseExtended } from \"./RequestBase\";\n\nexport class GetRequest extends ExecutableRequest {\n constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n }\n\n getMethod(): string {\n return HTTP_METHODS.get;\n }\n}\n\nexport class GetByIdRequest extends ExecutableRequest {\n constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n }\n\n getMethod(): string {\n return HTTP_METHODS.get;\n }\n}\n\nexport class DeleteRequest extends ExecutableRequest {\n constructor(requestOptions: RequestOptionsBaseExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n }\n\n getMethod(): string {\n return HTTP_METHODS.delete;\n }\n}\n\nexport class UpdateRequest extends ExecutableRequest {\n private data: object;\n private saveTemp: boolean;\n\n constructor(requestOptions: PutRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.data = requestOptions.data;\n this.saveTemp = requestOptions.saveTemp;\n }\n\n getMethod(): string {\n return HTTP_METHODS.patch;\n }\n\n getBody(): object {\n const body = utils.convertDateFieldToISOString(this.data);\n return body;\n }\n\n getHeaders(): { [key: string]: string } {\n const headers = super.getHeaders();\n if (this.saveTemp) {\n headers[HEADER_NAMES.operation] = \"SaveTemp\";\n }\n\n return headers;\n }\n}\n\nexport class CreateRequest extends ExecutableRequest {\n protected data: object;\n\n constructor(requestOptions: PostRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.data = requestOptions.data;\n }\n\n getMethod(): string {\n return HTTP_METHODS.post;\n }\n\n getBody(): object {\n const body = utils.convertDateFieldToISOString(this.data);\n return body;\n }\n}\n\nexport class GetRelatedRequest extends GetByIdRequest {\n private property: string;\n\n constructor(requestOptions: RelatedRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.property = requestOptions.property;\n }\n\n buildUrl(): string {\n const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.property;\n return this.addQueryParameters(url);\n }\n}\n\nexport class GetRelatedByIdRequest extends GetByIdRequest {\n private property: string;\n private relatedId: string;\n\n constructor(requestOptions: RelatedByIdRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.property = requestOptions.property;\n this.relatedId = requestOptions.relatedId;\n }\n\n buildUrl(): string {\n const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.property + \"(\" + this.relatedId + \")\";\n return this.addQueryParameters(url);\n }\n}\n\nexport class DeleteRelatedRequest extends DeleteRequest {\n private property: string;\n\n constructor(requestOptions: RelatedRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.property = requestOptions.property;\n }\n\n buildUrl(): string {\n const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.property + \"/$ref\"\n return this.addQueryParameters(url);\n }\n}\n\nexport class DeleteRelatedByIdRequest extends DeleteRequest {\n private property: string;\n private relatedId: string;\n\n constructor(requestOptions: RelatedByIdRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.property = requestOptions.property;\n this.relatedId = requestOptions.relatedId;\n }\n\n buildUrl(): string {\n const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.property + \"(\" + this.relatedId + \")/$ref\";\n return this.addQueryParameters(url);\n }\n}\n\nexport class CreateRelatedRequest extends CreateRequest {\n private property: string;\n\n constructor(requestOptions: RelatedRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.property = requestOptions.property;\n this.key = requestOptions.key;\n }\n\n buildUrl(): string {\n const url = this.urlOptions.baseUrl + this.urlOptions.entitySet + \"(\" + this.key + \")/\" + this.property + \"/$ref\";\n return this.addQueryParameters(url);\n }\n}\n\nexport class UploadRequest extends CreateRequest {\n private fileName: string;\n private uploadProperties: { [key: string]: string };\n private contentType: string;\n\n constructor(requestOptions: UploadRequestOptionsExtended, token: Token, sdkOptions: SDKOptions) {\n super(requestOptions, token, sdkOptions);\n this.fileName = requestOptions.fileName;\n this.uploadProperties = requestOptions.uploadProperties;\n this.contentType = requestOptions.contentType;\n }\n\n getHeaders(): { [key: string]: string } {\n const headers = super.getHeaders();\n headers[HEADER_NAMES.contentType] = this.contentType || \"application/octet-stream\";\n headers[HEADER_NAMES.fileName] = this.fileName;\n headers[HEADER_NAMES.properties] = JSON.stringify(this.uploadProperties);\n headers[HEADER_NAMES.contentEncoding] = \"identity\";\n return headers;\n }\n\n getBody(): object {\n return this.data;\n }\n\n getMethod(): string {\n if (this.key) {\n return HTTP_METHODS.patch;\n }\n\n return HTTP_METHODS.post;\n }\n}\n\nexport interface PostRequestOptionsExtended extends RequestOptionsBaseExtended {\n data?: object;\n}\n\nexport interface PutRequestOptionsExtended extends PostRequestOptionsExtended {\n saveTemp: boolean;\n}\n\nexport interface RelatedRequestOptionsExtended extends PostRequestOptionsExtended {\n property: string;\n}\n\nexport interface RelatedByIdRequestOptionsExtended extends RelatedRequestOptionsExtended {\n relatedId: string;\n}\n\nexport interface UploadRequestOptionsExtended extends PostRequestOptionsExtended {\n fileName: string;\n contentType: string;\n uploadProperties: { [key: string]: string };\n}\n","import { CONTENT_TYPES, HEADER_NAMES, ODATA_PARAMS, SF_PARAMS } from \"../constants\";\nimport { RequestOptionsBase } from \"../Data\";\nimport { Query } from \"../Query\";\nimport { TypeOptions } from \"../Sitefinity\";\nimport { utils } from '../utils';\n\nexport class RequestBase {\n public successCb: Function;\n public failureCb: Function;\n public progressCb: Function;\n public key: string | number;\n public urlOptions: TypeOptions;\n protected query: Query;\n private action: string;\n private fallbackProperties: string[];\n\n constructor(options: RequestOptionsBaseExtended) {\n this.successCb = options.successCb;\n this.failureCb = options.failureCb;\n this.urlOptions = options.urlOptions;\n this.progressCb = options.progressCb;\n this.key = options.key;\n this.action = options.action;\n this.fallbackProperties = options.fallbackProperties;\n this.query = options.query;\n }\n\n getQueryString(urlOptions: TypeOptions, query: Query): string {\n const paramDictionary: { [key: string]: string } = {};\n\n this.getQueryParameters(paramDictionary, urlOptions, query);\n const keys = Object.keys(paramDictionary);\n if (keys.length == 0)\n return null;\n\n let queryString = \"?\";\n for (const prop in paramDictionary) {\n queryString += prop + \"=\" + paramDictionary[prop] + \"&\";\n }\n\n queryString = queryString.substring(0, queryString.length - 1);\n\n return queryString;\n }\n\n getBody(): object {\n return undefined;\n }\n\n getMethod(): string {\n return null;\n }\n\n getHeaders(): { [key: string]: string } {\n const headers = {};\n headers[HEADER_NAMES.contentType] = CONTENT_TYPES.json;\n return headers;\n }\n\n buildUrl(): string {\n let url = this.urlOptions.baseUrl + (this.urlOptions.entitySet || \"\");\n url += this.key ? (\"(\" + this.key + \")\") : \"\";\n if (this.action) {\n url += url.endsWith(\"/\") ? \"\" : \"/\";\n url += this.action;\n }\n\n // including count here\n // not the best solution as build() is called once more in getQueryString\n // but not that big of an issue right now\n if (this.query) {\n const getCount = this.query.build().$count;\n\n if (utils.isBoolean(getCount) && !getCount) {\n url += \"/$count\";\n }\n }\n\n return this.addQueryParameters(url);\n }\n\n protected parseResponse(http: XMLHttpRequest): string | any {\n const data = utils.parseStringToJson(http.responseText);\n if (data) {\n if (http.status >= 400 && data.error) {\n return data.error;\n }\n\n return data;\n }\n\n return http.responseText;\n }\n\n protected addQueryParameters(url: string): string {\n let queryString = this.getQueryString(this.urlOptions, this.query);\n\n if (queryString) {\n if (url.indexOf(\"?\") > -1 && queryString[0] == \"?\") {\n queryString = \"&\" + queryString.substring(1);\n }\n\n url += queryString;\n }\n\n return url;\n }\n\n private getQueryParameters(paramDictionary: { [key: string]: string }, urlOptions: TypeOptions, query: Query) {\n if (query) {\n const builtQuery = query.build();\n if (utils.isString(builtQuery.$filter))\n paramDictionary[ODATA_PARAMS.$filter] = builtQuery.$filter;\n if (utils.isString(builtQuery.$select))\n paramDictionary[ODATA_PARAMS.$select] = builtQuery.$select;\n if (utils.isString(builtQuery.$expand))\n paramDictionary[ODATA_PARAMS.$expand] = builtQuery.$expand;\n if (utils.isString(builtQuery.$orderby))\n paramDictionary[ODATA_PARAMS.$orderby] = builtQuery.$orderby;\n if (utils.isNumber(builtQuery.$skip))\n paramDictionary[ODATA_PARAMS.$skip] = builtQuery.$skip;\n if (utils.isNumber(builtQuery.$top))\n paramDictionary[ODATA_PARAMS.$top] = builtQuery.$top;\n if (utils.isString(builtQuery.$search))\n paramDictionary[ODATA_PARAMS.$search] = builtQuery.$search;\n\n // inline count\n if (utils.isBoolean(builtQuery.$count) && builtQuery.$count)\n paramDictionary[ODATA_PARAMS.$count] = builtQuery.$count;\n }\n\n if (urlOptions.provider) {\n paramDictionary[SF_PARAMS.provider] = urlOptions.provider;\n }\n\n if (urlOptions.culture) {\n paramDictionary[SF_PARAMS.culture] = urlOptions.culture;\n }\n\n if (urlOptions.siteId) {\n paramDictionary[SF_PARAMS.siteId] = urlOptions.siteId;\n }\n\n if (this.fallbackProperties) {\n paramDictionary[SF_PARAMS.fallbackParams] = this.fallbackProperties.join();\n }\n\n if (urlOptions.additionalQueryParams) {\n for (const key in urlOptions.additionalQueryParams) {\n if (urlOptions.additionalQueryParams.hasOwnProperty(key)) {\n paramDictionary[key] = urlOptions.additionalQueryParams[key];\n }\n }\n }\n }\n}\n\nexport interface RequestOptionsBaseExtended extends RequestOptionsBase {\n progressCb?: Function;\n urlOptions: TypeOptions;\n}\n","import { GetRequest, GetByIdRequest, CreateRequest, UpdateRequest, DeleteRequest, GetRelatedRequest, GetRelatedByIdRequest, DeleteRelatedRequest, DeleteRelatedByIdRequest, CreateRelatedRequest, UploadRequest, PostRequestOptionsExtended, PutRequestOptionsExtended, RelatedRequestOptionsExtended, RelatedByIdRequestOptionsExtended, UploadRequestOptionsExtended } from \"./Request\";\nimport { SDKOptions, Token } from \"../Sitefinity\";\nimport { BatchRequest, BatchRequestOptionsExtended } from \"./BatchRequest\";\nimport { RequestOptionsBaseExtended } from \"./RequestBase\";\n\nexport class RequestFactory {\n public token: Token;\n private options: SDKOptions;\n\n constructor(options: SDKOptions) {\n this.options = options;\n }\n\n get(parameters: RequestOptionsBaseExtended) {\n return new GetRequest(parameters, this.token, this.options);\n }\n\n getSingle(parameters: RequestOptionsBaseExtended) {\n return new GetByIdRequest(parameters, this.token, this.options);\n }\n\n create(parameters: PostRequestOptionsExtended) {\n return new CreateRequest(parameters, this.token, this.options);\n }\n\n update(parameters: PutRequestOptionsExtended) {\n return new UpdateRequest(parameters, this.token, this.options);\n }\n\n destroy(parameters: RequestOptionsBaseExtended) {\n return new DeleteRequest(parameters, this.token, this.options);\n }\n\n getProperty(parameters: RelatedRequestOptionsExtended) {\n return new GetRelatedRequest(parameters, this.token, this.options);\n }\n\n getRelated(parameters: RelatedRequestOptionsExtended) {\n return new GetRelatedRequest(parameters, this.token, this.options);\n }\n\n getRelatedById(parameters: RelatedByIdRequestOptionsExtended) {\n return new GetRelatedByIdRequest(parameters, this.token, this.options);\n }\n\n destroyRelated(parameters: RelatedRequestOptionsExtended) {\n return new DeleteRelatedRequest(parameters, this.token, this.options);\n }\n\n destroyRelatedById(parameters: RelatedByIdRequestOptionsExtended) {\n return new DeleteRelatedByIdRequest(parameters, this.token, this.options);\n }\n\n createRelated(parameters: RelatedRequestOptionsExtended) {\n return new CreateRelatedRequest(parameters, this.token, this.options);\n }\n\n upload(parameters: UploadRequestOptionsExtended) {\n return new UploadRequest(parameters, this.token, this.options);\n }\n\n batch(parameters: RequestOptionsBaseExtended) {\n const batchParams = parameters as BatchRequestOptionsExtended;\n batchParams.factory = this;\n return new BatchRequest(batchParams, this.token, this.options);\n }\n}\n","import { RequestFactory } from './Requests/RequestFactory';\nimport { Data } from './Data';\nimport { Query } from './Query';\nimport { utils } from './utils';\nimport { ResponseHandlers } from \"./Requests/ExecutableRequest\";\nimport { BatchRequest } from \"./Requests/BatchRequest\";\n\nexport class Sitefinity {\n public static Query: typeof Query = Query;\n\n private factory: RequestFactory;\n private baseUrl: string;\n private siteId: string;\n\n /**\n * The constructor of the Sitefinity JavaScript SDK. This is the entry point for the SDK.\n */\n constructor(options: SDKOptions) {\n this.baseUrl = options.baseUrl;\n this.siteId = options.siteId;\n this.factory = new RequestFactory(options);\n }\n\n data(options: TypeOptions): Data {\n const urlOptions: TypeOptions = {\n baseUrl: utils.addTrailingSlash(options.baseUrl || this.baseUrl),\n provider: options.provider,\n culture: options.culture,\n siteId: options.siteId || this.siteId,\n additionalQueryParams: options.additionalQueryParams,\n entitySet: options.entitySet\n }\n\n return new Data(urlOptions, this.factory);\n }\n\n batch(success?: Function, failure?: Function, progress?: Function, options?: TypeOptions): BatchRequest {\n if (!options)\n options = {};\n\n const batch = this.factory.batch({\n successCb: success,\n failureCb: failure,\n progressCb: progress,\n urlOptions: {\n baseUrl: utils.addTrailingSlash(options.baseUrl || this.baseUrl),\n provider: options.provider,\n culture: options.culture,\n siteId: options.siteId || this.siteId,\n additionalQueryParams: options.additionalQueryParams\n }\n });\n\n return batch;\n }\n\n /**\n * Sets the authentication token.\n */\n setToken(token: Token) {\n this.factory.token = token;\n }\n}\n\ninterface OptionsBase {\n /**\n * Your service url that points to the configured instance of Sitefinity service.\n */\n baseUrl?: string;\n\n /**\n * The ID of the site, for which the queries will be executed.\n */\n siteId?: string;\n}\n\n/**\n* Defines an object containing configuration options for the SDK object.\n*/\nexport interface SDKOptions extends OptionsBase {\n /**\n * The global handlers for request execution\n */\n handlers?: ResponseHandlers;\n\n enableUnlimitedChoices?: boolean;\n integrationMode?: boolean;\n}\n\n/**\n* Defines an object containing configuration options related to a specific type.\n*/\nexport interface TypeOptions extends OptionsBase {\n /**\n * The URL name of the type.\n */\n entitySet?: string;\n\n /**\n * The name of the provider. If empty the default provider for the site will be used.\n */\n provider?: string;\n\n /**\n * The name of the culture. If empty the default culture for the site will be used.\n */\n culture?: string;\n additionalQueryParams?: { [key: string]: string };\n}\n\nexport interface Token {\n type: string;\n value: string;\n}\n","import { ComplexExpression, BinaryExpression } from './Expression';\nimport { EXPRESSION_TYPE } from \"./constants\";\n\n/**\n * A fluent API operation for creating a filter for a query by chaining different rules.\n */\nexport class WhereQuery<QueryType> {\n private expression: ComplexExpression;\n\n constructor(private parent: QueryType, type: string = EXPRESSION_TYPE.and) {\n this.expression = new ComplexExpression(type, []);\n }\n\n /**\n * Adds an `and` clause to the current condition and returns it for further chaining.\n */\n and(): WhereQuery<WhereQuery<QueryType>> {\n return new WhereQuery(this, EXPRESSION_TYPE.and);\n }\n\n /**\n * Adds an `or` clause to the current condition and returns it for further chaining.\n */\n or(): WhereQuery<WhereQuery<QueryType>> {\n return new WhereQuery(this, EXPRESSION_TYPE.or);\n }\n\n /**\n * Adds an `any` clause to the current condition and returns it for further chaining.\n */\n any(): WhereQuery<WhereQuery<QueryType>> {\n return new WhereQuery(this, EXPRESSION_TYPE.any);\n }\n\n /**\n * Adds a `not` clause to the current condition and returns it for further chaining.\n */\n not(): WhereQuery<WhereQuery<QueryType>> {\n return new WhereQuery(this, EXPRESSION_TYPE.not);\n }\n\n /**\n * Adds a condition that a field must be equal to a specific value.\n */\n eq(parameter: string, constant: any): WhereQuery<QueryType> {\n return this.simple(EXPRESSION_TYPE.eq, parameter, constant);\n }\n\n /**\n * Adds a condition that a field must *not* be equal to a specific value.\n */\n ne(parameter: string, constant: any): WhereQuery<QueryType> {\n return this.simple(EXPRESSION_TYPE.ne, parameter, constant);\n }\n\n /**\n * Adds a condition that a field must be `greater than` a certain value. Applicable to Number, String, and Date fields.\n */\n gt(parameter: string, constant: any) {\n return this.simple(EXPRESSION_TYPE.gt, parameter, constant);\n }\n\n /**\n * Adds a condition that a field must be `greater than or equal` to a certain value. Applicable to Number, String, and Date fields.\n */\n gte(parameter: string, constant: any) {\n return this.simple(EXPRESSION_TYPE.ge, parameter, constant);\n }\n\n /**\n * Adds a condition that a field must be `less than` a certain value. Applicable to Number, String, and Date fields.\n */\n lt(parameter: string, constant: any) {\n return this.simple(EXPRESSION_TYPE.lt, parameter, constant);\n }\n\n /**\n * Adds a condition that a field must be `less than or equal` to a certain value. Applicable to Number, String, and Date fields.\n */\n lte(parameter: string, constant: any) {\n return this.simple(EXPRESSION_TYPE.le, parameter, constant);\n }\n\n /**\n * Adds a condition that a field value must *start* with a specified string.\n */\n startsWith(parameter: string, constant: any, caseSensitive = true) {\n return this.simple(EXPRESSION_TYPE.startsWith, parameter, constant, caseSensitive);\n }\n\n /**\n * Adds a condition that a field value must *contain* a specified string.\n */\n contains(parameter: string, constant: any, caseSensitive = true) {\n return this.simple(EXPRESSION_TYPE.contains, parameter, constant, caseSensitive);\n }\n\n /**\n * Adds a condition that a field value must *end* with a specified string.\n */\n endsWith(parameter: string, constant: any, caseSensitive = true) {\n return this.simple(EXPRESSION_TYPE.endsWith, parameter, constant, caseSensitive);\n }\n\n /**\n * Ends the definition of the current WhereQuery. You need to call this method in order to continue with the definition of the parent {@link QueryBase}. All other `WhereQuery` methods return the current instance of `WhereQuery` to allow chaining.\n */\n done(): QueryType {\n if (this.parent instanceof WhereQuery) {\n this.parent.addComplexExpression(this);\n // TODO: If has and() || or() must call done() twice\n if (this.expression.getType() === EXPRESSION_TYPE.not)\n return this.parent;\n }\n\n return this.parent;\n }\n\n getExpression(): ComplexExpression {\n return this.expression;\n }\n\n private simple(type: string, parameter: string, constant: any, caseSensitive = true): WhereQuery<QueryType> {\n const currentExpr = new BinaryExpression(type, parameter, constant, caseSensitive);\n const subExpressions = this.expression.getExpressions();\n subExpressions.push(currentExpr);\n\n if (this.expression.getType() === EXPRESSION_TYPE.not && subExpressions.length > 1)\n throw new Error(\"Invalid operators count!\");\n\n return this;\n }\n\n private addComplexExpression(subQuery: WhereQuery<QueryType>): void {\n const subExpression = subQuery.getExpression();\n this.expression.getExpressions().push(subExpression);\n }\n}\n","export const EXPRESSION_TYPE = {\n query: 1,\n where: 100,\n and: 'and',\n or: 'or',\n not: 'not',\n eq: 'eq',\n ne: 'ne',\n lt: 'lt',\n le: 'le',\n gt: 'gt',\n ge: 'ge',\n any: 'any',\n contains: 'contains',\n startsWith: 'startsWith',\n endsWith: 'endsWith'\n}\n\nexport const ODATA_PARAMS = {\n $filter: '$filter',\n $select: '$select',\n $expand: '$expand',\n $orderby: '$orderby',\n $skip: '$skip',\n $top: '$top',\n $count: '$count',\n $search: '$search'\n}\n\nexport const SF_PARAMS = {\n provider: 'sf_provider',\n culture: 'sf_culture',\n siteId: 'sf_site',\n fallbackParams: \"sf_fallback_prop_names\",\n parentId: \"parentId\"\n}\n\nexport const HEADER_NAMES = {\n contentType: \"Content-Type\",\n authorization: \"Authorization\",\n contentEncoding: \"Content-Encoding\",\n operation: \"X-Operation\",\n properties: \"X-Sf-Properties\",\n fileName: \"X-File-Name\",\n serviceRequest: \"X-SF-Service-Request\",\n choicesBinaryRepresentation: \"X-SF-Binary-Choice-Representation\",\n integrationMode: \"X-SF-Integration-Mode\"\n}\n\nexport const HTTP_METHODS = {\n get: \"GET\",\n put: \"PUT\",\n post: \"POST\",\n patch: \"PATCH\",\n delete: \"DELETE\"\n};\n\nexport const CONTENT_TYPES = {\n json: \"application/json\"\n}\n","export class utils {\n static isString(obj: any): boolean {\n return typeof (obj) === 'string' || obj instanceof String;\n }\n\n static isBoolean(obj: any): boolean {\n return typeof (obj) === 'boolean';\n }\n\n static isBlob(obj: any): boolean {\n return obj instanceof Blob;\n }\n\n static isNumber(value: any): boolean {\n return typeof value === 'number' && isFinite(value);\n }\n\n static isFunction(func: any): boolean {\n return typeof func === 'function';\n }\n\n static serializeToJSON(data): string {\n if (!utils.isString(data) && !this.isBlob(data)) {\n return JSON.stringify(data);\n }\n\n return data;\n }\n\n static parseStringToJson(data) {\n if (!data) {\n return null;\n }\n\n const number = Number(data);\n if (!isNaN(number)) {\n return number;\n }\n\n let result = null;\n\n try {\n result = JSON.parse(data);\n result = utils._parseDateProperties(result);\n } catch (e) {\n console.log(\"An unexpected error occurred while parsing the response from server: \" + e.message + \". Response body was: '\" + data + \"'\");\n }\n\n return result;\n }\n\n static convertDateFieldToISOString(data: object): object {\n /*\n TODOSDK: when write tests for this try to use\n \"Object.keys(obj).forEach(function(){})\",\n Phantomjs does not recognize \"for..in\" operator.\n */\n for (const obj in data) {\n if (data[obj] instanceof Date) {\n data[obj] = data[obj].toISOString();\n }\n }\n\n return data;\n }\n\n static hex16() {\n return Math.floor((1 + Math.random()) * 0x10000).toString(16).substr(1);\n }\n\n static addTrailingSlash(url: string): string {\n url = utils.removeSlashes(url);\n url += '/';\n return url;\n }\n\n static removeSlashes(url: string) {\n let ret = url;\n const fistChar = ret.substr(0, 1);\n if (fistChar == '/')\n ret = ret.substr(1);\n\n const lastChar = ret.substr(-1);\n if (lastChar == '/')\n ret = ret.substr(0, ret.length - 1);\n\n return ret;\n }\n\n static clone(from: any, to = {}, action: Function = null): any {\n if (!to)\n to = {};\n\n for (const property in from) {\n if (from[property] && from[property].constructor && from[property].constructor === Object && typeof from[property] == 'function') {\n to[property] = to[property]|| { };\n arguments.callee(to[property], from[property]);\n } else {\n to[property] = from[property];\n }\n\n if (typeof action === 'function')\n action(to);\n }\n\n return to;\n }\n\n private static _parseDateProperties(data) {\n for (const obj in data) {\n // TODO\n if (data[obj] instanceof Array || (data[obj] instanceof Object && <any>!data[obj] instanceof Function))\n this._parseDateProperties(data[obj]);\n else\n data[obj] = utils._tryFormatFieldToDate(data[obj]);\n }\n\n return data;\n }\n\n private static _tryFormatFieldToDate(date) {\n if ((/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/).test(date)) {\n date = new Date(date);\n }\n\n return date;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./sitefinity-webservices-sdk.ts\");\n",""],"names":[],"sourceRoot":""}
|