diff --git a/README-API.md b/README-API.md
index 0c729fe..b2a046c 100644
--- a/README-API.md
+++ b/README-API.md
@@ -2,9 +2,9 @@
This SDK Contains automatically generated sources & documents with the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
-- API version: 0.5.0
-- Package version: 0.5.0
-- Build date: 2016-07-12T01:02:48.746+09:00
+- API version: 0.6.0
+- Package version: 0.6.0
+- Build date: 2016-07-13T17:50:12.792+09:00
- Build package: class io.swagger.codegen.languages.JavascriptClientCodegen
## Getting Started
@@ -20,7 +20,12 @@ webida-simple-auth.apiKey = "YOUR API KEY"
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//webida-simple-auth.apiKeyPrefix['Authorization'] = "Token"
-var api = new WebidaRestfulApi.AuthApi()
+var api = new WebidaRestfulApi.AliasApi()
+
+var aliasId = "aliasId_example"; // {String} url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+
+var workspaceId = "workspaceId_example"; // {String} webida workspace id in query part
+
var callback = function(error, data, response) {
if (error) {
@@ -29,7 +34,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.getInfo(callback);
+api.findAliases(aliasId, workspaceId, , callback);
```
@@ -41,17 +46,19 @@ So, generated basePath *https://localhost/api* should be changed to `${serverUrl
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
+*WebidaRestfulApi.AliasApi* | [**findAliases**](docs/AliasApi.md#findAliases) | **GET** /aliass/{aliasId} |
+*WebidaRestfulApi.AliasApi* | [**putAlias**](docs/AliasApi.md#putAlias) | **PUT** /aliass/{aliasId} |
+*WebidaRestfulApi.AliasApi* | [**removeAliases**](docs/AliasApi.md#removeAliases) | **DELETE** /aliass/{aliasId} |
*WebidaRestfulApi.AuthApi* | [**getInfo**](docs/AuthApi.md#getInfo) | **GET** /auth/info |
*WebidaRestfulApi.AuthApi* | [**issueToken**](docs/AuthApi.md#issueToken) | **POST** /auth/token |
*WebidaRestfulApi.AuthApi* | [**login**](docs/AuthApi.md#login) | **POST** /auth/login |
*WebidaRestfulApi.OpsApi* | [**replace**](docs/OpsApi.md#replace) | **POST** /wfs/{wfsId}/ops/replace |
-*WebidaRestfulApi.OpsApi* | [**search**](docs/OpsApi.md#search) | **GET** /wfs/{wfsId}/ops/search/{wfsPath} |
+*WebidaRestfulApi.OpsApi* | [**search**](docs/OpsApi.md#search) | **GET** /wfs/{wfsId}/ops/search |
*WebidaRestfulApi.RemotesApi* | [**findRemoteAccesses**](docs/RemotesApi.md#findRemoteAccesses) | **GET** /remotes |
*WebidaRestfulApi.RemotesApi* | [**putRemoteAccess**](docs/RemotesApi.md#putRemoteAccess) | **PUT** /remotes |
*WebidaRestfulApi.RemotesApi* | [**removeRemoteAccess**](docs/RemotesApi.md#removeRemoteAccess) | **DELETE** /remotes |
-*WebidaRestfulApi.SessionApi* | [**closeSession**](docs/SessionApi.md#closeSession) | **DELETE** /sessions/{sessionId} |
-*WebidaRestfulApi.SessionApi* | [**findSessions**](docs/SessionApi.md#findSessions) | **GET** /sessions |
-*WebidaRestfulApi.SessionApi* | [**getSession**](docs/SessionApi.md#getSession) | **GET** /sessions/{sessionId} |
+*WebidaRestfulApi.SessionApi* | [**closeSessions**](docs/SessionApi.md#closeSessions) | **DELETE** /sessions/{sessionId} |
+*WebidaRestfulApi.SessionApi* | [**findSessions**](docs/SessionApi.md#findSessions) | **GET** /sessions/{sessionId} |
*WebidaRestfulApi.WfsApi* | [**copy**](docs/WfsApi.md#copy) | **PUT** /wfs/{wfsId}/any/{wfsPath} |
*WebidaRestfulApi.WfsApi* | [**createDir**](docs/WfsApi.md#createDir) | **PUT** /wfs/{wfsId}/dir/{wfsPath} |
*WebidaRestfulApi.WfsApi* | [**dirTree**](docs/WfsApi.md#dirTree) | **GET** /wfs/{wfsId}/dir/{wfsPath} |
@@ -61,17 +68,17 @@ Class | Method | HTTP request | Description
*WebidaRestfulApi.WfsApi* | [**stat**](docs/WfsApi.md#stat) | **GET** /wfs/{wfsId}/any/{wfsPath} |
*WebidaRestfulApi.WfsApi* | [**writeFile**](docs/WfsApi.md#writeFile) | **PUT** /wfs/{wfsId}/file/{wfsPath} |
*WebidaRestfulApi.WorkspaceApi* | [**cancel**](docs/WorkspaceApi.md#cancel) | **DELETE** /workspaces/{workspaceId}/exec |
-*WebidaRestfulApi.WorkspaceApi* | [**createWorkspace**](docs/WorkspaceApi.md#createWorkspace) | **POST** /workspaces |
+*WebidaRestfulApi.WorkspaceApi* | [**createWorkspace**](docs/WorkspaceApi.md#createWorkspace) | **POST** /workspaces/{workspaceId} |
*WebidaRestfulApi.WorkspaceApi* | [**exec**](docs/WorkspaceApi.md#exec) | **POST** /workspaces/{workspaceId}/exec |
*WebidaRestfulApi.WorkspaceApi* | [**findProcs**](docs/WorkspaceApi.md#findProcs) | **GET** /workspaces/{workspaceId}/exec |
-*WebidaRestfulApi.WorkspaceApi* | [**findWorkspaces**](docs/WorkspaceApi.md#findWorkspaces) | **GET** /workspaces |
-*WebidaRestfulApi.WorkspaceApi* | [**getWorkspace**](docs/WorkspaceApi.md#getWorkspace) | **GET** /workspaces/{workspaceId} |
+*WebidaRestfulApi.WorkspaceApi* | [**findWorkspaces**](docs/WorkspaceApi.md#findWorkspaces) | **GET** /workspaces/{workspaceId} |
*WebidaRestfulApi.WorkspaceApi* | [**removeWorkspace**](docs/WorkspaceApi.md#removeWorkspace) | **DELETE** /workspaces/{workspaceId} |
*WebidaRestfulApi.WorkspaceApi* | [**updateWorkspace**](docs/WorkspaceApi.md#updateWorkspace) | **PUT** /workspaces/{workspaceId} |
## Documentation for Models
+ - [WebidaRestfulApi.Alias](docs/Alias.md)
- [WebidaRestfulApi.ChildProcess](docs/ChildProcess.md)
- [WebidaRestfulApi.Credential](docs/Credential.md)
- [WebidaRestfulApi.DirEntry](docs/DirEntry.md)
diff --git a/api-bundle.js b/api-bundle.js
index 129a13e..e845f24 100644
--- a/api-bundle.js
+++ b/api-bundle.js
@@ -1,3 +1,3 @@
-define(function(){return function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){var i,n,o;!function(s){n=[r(1),r(7),r(8),r(4),r(9),r(10),r(23),r(11),r(2),r(3),r(12),r(5),r(13),r(14),r(15),r(17),r(18),r(19),r(20),r(21),r(22)],i=s,o="function"==typeof i?i.apply(e,n):i,!(void 0!==o&&(t.exports=o))}(function(t,e,r,i,n,o,s,a,p,c,l,u,h,d,f,y,w,v,m,T,g){"use strict";var P={ApiClient:t,ChildProcess:e,Credential:r,DirEntry:i,Execution:n,ExecutionResult:o,Match:s,RemoteAccess:a,RestError:p,RestOK:c,Session:l,Stats:u,Token:h,User:d,Workspace:f,AuthApi:y,OpsApi:w,RemotesApi:v,SessionApi:m,WfsApi:T,WorkspaceApi:g};return P})},function(t,e,r){var i,n,o;!function(s,a){n=[r(16)],i=a,o="function"==typeof i?i.apply(e,n):i,!(void 0!==o&&(t.exports=o))}(this,function(t){"use strict";var e=function(){this.basePath="https://localhost/api".replace(/\/+$/,""),this.authentications={"webida-simple-auth":{type:"apiKey","in":"header",name:"Authorization"}},this.defaultHeaders={},this.timeout=6e4};return e.prototype.paramToString=function(t){return void 0==t||null==t?"":t instanceof Date?t.toJSON():t.toString()},e.prototype.buildUrl=function(t,e){t.match(/^\//)||(t="/"+t);var r=this.basePath+t,i=this;return r=r.replace(/\{([\w-]+)\}/g,function(t,r){var n;return n=e.hasOwnProperty(r)?i.paramToString(e[r]):t,encodeURIComponent(n)})},e.prototype.isJsonMime=function(t){return Boolean(null!=t&&t.match(/^application\/json(;.*)?$/i))},e.prototype.jsonPreferredMime=function(t){for(var e=0;e \n\t * An AMD (recommended!) or CommonJS application will generally do something equivalent to the following:\n\t *
\n\t * The index
module provides access to constructors for all the classes which comprise the public API.\n\t * \n\t * var WebidaRestfulApi = require('index'); // See note below*.\n\t * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n\t * var yyyModel = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n\t * yyyModel.someProperty = 'someValue';\n\t * ...\n\t * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n\t * ...\n\t *
\n\t * *NOTE: For a top-level AMD script, use require(['index'], function(){...})\n\t * and put the application logic within the callback function.\n\t *
\n\t * A non-AMD browser application (discouraged) might do something like this:\n\t *
\n\t * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n\t * var yyy = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n\t * yyyModel.someProperty = 'someValue';\n\t * ...\n\t * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n\t * ...\n\t *\n\t * \n\t * @module index\n\t * @version 0.5.0\n\t */\n\t var exports = {\n\t /**\n\t * The ApiClient constructor.\n\t * @property {module:ApiClient}\n\t */\n\t ApiClient: ApiClient,\n\t /**\n\t * The ChildProcess model constructor.\n\t * @property {module:model/ChildProcess}\n\t */\n\t ChildProcess: ChildProcess,\n\t /**\n\t * The Credential model constructor.\n\t * @property {module:model/Credential}\n\t */\n\t Credential: Credential,\n\t /**\n\t * The DirEntry model constructor.\n\t * @property {module:model/DirEntry}\n\t */\n\t DirEntry: DirEntry,\n\t /**\n\t * The Execution model constructor.\n\t * @property {module:model/Execution}\n\t */\n\t Execution: Execution,\n\t /**\n\t * The ExecutionResult model constructor.\n\t * @property {module:model/ExecutionResult}\n\t */\n\t ExecutionResult: ExecutionResult,\n\t /**\n\t * The Match model constructor.\n\t * @property {module:model/Match}\n\t */\n\t Match: Match,\n\t /**\n\t * The RemoteAccess model constructor.\n\t * @property {module:model/RemoteAccess}\n\t */\n\t RemoteAccess: RemoteAccess,\n\t /**\n\t * The RestError model constructor.\n\t * @property {module:model/RestError}\n\t */\n\t RestError: RestError,\n\t /**\n\t * The RestOK model constructor.\n\t * @property {module:model/RestOK}\n\t */\n\t RestOK: RestOK,\n\t /**\n\t * The Session model constructor.\n\t * @property {module:model/Session}\n\t */\n\t Session: Session,\n\t /**\n\t * The Stats model constructor.\n\t * @property {module:model/Stats}\n\t */\n\t Stats: Stats,\n\t /**\n\t * The Token model constructor.\n\t * @property {module:model/Token}\n\t */\n\t Token: Token,\n\t /**\n\t * The User model constructor.\n\t * @property {module:model/User}\n\t */\n\t User: User,\n\t /**\n\t * The Workspace model constructor.\n\t * @property {module:model/Workspace}\n\t */\n\t Workspace: Workspace,\n\t /**\n\t * The AuthApi service constructor.\n\t * @property {module:api/AuthApi}\n\t */\n\t AuthApi: AuthApi,\n\t /**\n\t * The OpsApi service constructor.\n\t * @property {module:api/OpsApi}\n\t */\n\t OpsApi: OpsApi,\n\t /**\n\t * The RemotesApi service constructor.\n\t * @property {module:api/RemotesApi}\n\t */\n\t RemotesApi: RemotesApi,\n\t /**\n\t * The SessionApi service constructor.\n\t * @property {module:api/SessionApi}\n\t */\n\t SessionApi: SessionApi,\n\t /**\n\t * The WfsApi service constructor.\n\t * @property {module:api/WfsApi}\n\t */\n\t WfsApi: WfsApi,\n\t /**\n\t * The WorkspaceApi service constructor.\n\t * @property {module:api/WorkspaceApi}\n\t */\n\t WorkspaceApi: WorkspaceApi\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(16)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('superagent'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.ApiClient = factory(root.superagent);\n\t }\n\t}(this, function(superagent) {\n\t 'use strict';\n\t\n\t /**\n\t * @module ApiClient\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an\n\t * application to use this class directly - the *Api and model classes provide the public API for the service. The\n\t * contents of this file should be regarded as internal but are documented for completeness.\n\t * @alias module:ApiClient\n\t * @class\n\t */\n\t var exports = function() {\n\t /**\n\t * The base URL against which to resolve every API call's (relative) path.\n\t * @type {String}\n\t * @default https://localhost/api\n\t */\n\t this.basePath = 'https://localhost/api'.replace(/\\/+$/, '');\n\t\n\t /**\n\t * The authentication methods to be included for all API calls.\n\t * @type {Array.
param
.\n\t */\n\t exports.prototype.paramToString = function(param) {\n\t if (param == undefined || param == null) {\n\t return '';\n\t }\n\t if (param instanceof Date) {\n\t return param.toJSON();\n\t }\n\t return param.toString();\n\t };\n\t\n\t /**\n\t * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values.\n\t * NOTE: query parameters are not handled here.\n\t * @param {String} path The path to append to the base URL.\n\t * @param {Object} pathParams The parameter values to append.\n\t * @returns {String} The encoded path with parameter values substituted.\n\t */\n\t exports.prototype.buildUrl = function(path, pathParams) {\n\t if (!path.match(/^\\//)) {\n\t path = '/' + path;\n\t }\n\t var url = this.basePath + path;\n\t var _this = this;\n\t url = url.replace(/\\{([\\w-]+)\\}/g, function(fullMatch, key) {\n\t var value;\n\t if (pathParams.hasOwnProperty(key)) {\n\t value = _this.paramToString(pathParams[key]);\n\t } else {\n\t value = fullMatch;\n\t }\n\t return encodeURIComponent(value);\n\t });\n\t return url;\n\t };\n\t\n\t /**\n\t * Checks whether the given content type represents JSON.true
if contentType
represents JSON, otherwise false
.\n\t */\n\t exports.prototype.isJsonMime = function(contentType) {\n\t return Boolean(contentType != null && contentType.match(/^application\\/json(;.*)?$/i));\n\t };\n\t\n\t /**\n\t * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first.\n\t * @param {Array.true
if param
represents a file. \n\t */\n\t exports.prototype.isFileParam = function(param) {\n\t // fs.ReadStream in Node.js (but not in runtime like browserify)\n\t if (typeof window === 'undefined' &&\n\t \"function\" === 'function' &&\n\t __webpack_require__(6) &&\n\t param instanceof __webpack_require__(6).ReadStream) {\n\t return true;\n\t }\n\t // Buffer in Node.js\n\t if (typeof Buffer === 'function' && param instanceof Buffer) {\n\t return true;\n\t }\n\t // Blob in browser\n\t if (typeof Blob === 'function' && param instanceof Blob) {\n\t return true;\n\t }\n\t // File in browser (it seems File object is also instance of Blob, but keep this for safe)\n\t if (typeof File === 'function' && param instanceof File) {\n\t return true;\n\t }\n\t return false;\n\t };\n\t\n\t /**\n\t * Normalizes parameter values:\n\t * csv
\n\t * @const\n\t */\n\t CSV: ',',\n\t /**\n\t * Space-separated values. Value: ssv
\n\t * @const\n\t */\n\t SSV: ' ',\n\t /**\n\t * Tab-separated values. Value: tsv
\n\t * @const\n\t */\n\t TSV: '\\t',\n\t /**\n\t * Pipe(|)-separated values. Value: pipes
\n\t * @const\n\t */\n\t PIPES: '|',\n\t /**\n\t * Native array. Value: multi
\n\t * @const\n\t */\n\t MULTI: 'multi'\n\t };\n\t\n\t /**\n\t * Builds a string representation of an array-type actual parameter, according to the given collection format.\n\t * @param {Array} param An array parameter.\n\t * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy.\n\t * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns\n\t * param
as is if collectionFormat
is multi
.\n\t */\n\t exports.prototype.buildCollectionParam = function buildCollectionParam(param, collectionFormat) {\n\t if (param == null) {\n\t return null;\n\t }\n\t switch (collectionFormat) {\n\t case 'csv':\n\t return param.map(this.paramToString).join(',');\n\t case 'ssv':\n\t return param.map(this.paramToString).join(' ');\n\t case 'tsv':\n\t return param.map(this.paramToString).join('\\t');\n\t case 'pipes':\n\t return param.map(this.paramToString).join('|');\n\t case 'multi':\n\t // return the array directly as SuperAgent will handle it as expected\n\t return param.map(this.paramToString);\n\t default:\n\t throw new Error('Unknown collection format: ' + collectionFormat);\n\t }\n\t };\n\t\n\t /**\n\t * Applies authentication headers to the request.\n\t * @param {Object} request The request object created by a superagent()
call.\n\t * @param {Array.data will be converted to this type.\n\t * @returns A value of the specified type.\n\t */\n\t exports.prototype.deserialize = function deserialize(response, returnType) {\n\t if (response == null || returnType == null) {\n\t return null;\n\t }\n\t // Rely on SuperAgent for parsing response body.\n\t // See http://visionmedia.github.io/superagent/#parsing-response-bodies\n\t var data = response.body;\n\t if (data == null) {\n\t // SuperAgent does not always produce a body; use the unparsed response as a fallback\n\t data = response.text;\n\t }\n\t return exports.convertToType(data, returnType);\n\t };\n\t\n\t /**\n\t * Callback function to receive the result of the operation.\n\t * @callback module:ApiClient~callApiCallback\n\t * @param {String} error Error message, if any.\n\t * @param data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Invokes the REST service using the supplied settings and parameters.\n\t * @param {String} path The base URL to invoke.\n\t * @param {String} httpMethod The HTTP method to use.\n\t * @param {Object.} pathParams A map of path parameters and their values.\n\t * @param {Object.} queryParams A map of query parameters and their values.\n\t * @param {Object.} headerParams A map of header parameters and their values.\n\t * @param {Object.} formParams A map of form parameters and their values.\n\t * @param {Object} bodyParam The value to pass as the request body.\n\t * @param {Array.} authNames An array of authentication type names.\n\t * @param {Array.} contentTypes An array of request MIME types.\n\t * @param {Array.} accepts An array of acceptable response MIME types.\n\t * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the\n\t * constructor for a complex type.\n\t * @param {module:ApiClient~callApiCallback} callback The callback function.\n\t * @returns {Object} The SuperAgent request object.\n\t */\n\t exports.prototype.callApi = function callApi(path, httpMethod, pathParams,\n\t queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts,\n\t returnType, callback) {\n\t\n\t var _this = this;\n\t var url = this.buildUrl(path, pathParams);\n\t var request = superagent(httpMethod, url);\n\t\n\t // apply authentications\n\t this.applyAuthToRequest(request, authNames);\n\t\n\t // set query parameters\n\t request.query(this.normalizeParams(queryParams));\n\t\n\t // set header parameters\n\t request.set(this.defaultHeaders).set(this.normalizeParams(headerParams));\n\t\n\t // set request timeout\n\t request.timeout(this.timeout);\n\t\n\t var contentType = this.jsonPreferredMime(contentTypes);\n\t if (contentType !== 'multipart/form-data') {\n\t if (contentType) {\n\t request.type(contentType);\n\t } else if (!request.header['Content-Type']) {\n\t request.type('application/json');\n\t }\n\t }\n\t\n\t if (contentType === 'application/x-www-form-urlencoded') {\n\t request.send(this.normalizeParams(formParams));\n\t } else if (contentType == 'multipart/form-data') {\n\t var _formParams = this.normalizeParams(formParams);\n\t for (var key in _formParams) {\n\t if (_formParams.hasOwnProperty(key)) {\n\t if (this.isFileParam(_formParams[key])) {\n\t // file field\n\t request.attach(key, _formParams[key]);\n\t } else {\n\t request.field(key, _formParams[key]);\n\t }\n\t }\n\t }\n\t } else if (bodyParam) {\n\t request.send(bodyParam);\n\t }\n\t\n\t var accept = this.jsonPreferredMime(accepts);\n\t if (accept) {\n\t request.accept(accept);\n\t }\n\t\n\t\n\t request.end(function(error, response) {\n\t if (callback) {\n\t var data = null;\n\t if (!error) {\n\t data = _this.deserialize(response, returnType);\n\t }\n\t callback(error, data, response);\n\t }\n\t });\n\t\n\t return request;\n\t };\n\t\n\t /**\n\t * Parses an ISO-8601 string representation of a date value.\n\t * @param {String} str The date value as a string.\n\t * @returns {Date} The parsed date object.\n\t */\n\t exports.parseDate = function(str) {\n\t return new Date(str.replace(/T/i, ' '));\n\t };\n\t\n\t /**\n\t * Converts a value to the specified type.\n\t * @param {(String|Object)} data The data to convert, as a string or object.\n\t * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types\n\t * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n\t * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n\t * all properties on data will be converted to this type.\n\t * @returns An instance of the specified type.\n\t */\n\t exports.convertToType = function(data, type) {\n\t switch (type) {\n\t case 'Boolean':\n\t return Boolean(data);\n\t case 'Integer':\n\t return parseInt(data, 10);\n\t case 'Number':\n\t return parseFloat(data);\n\t case 'String':\n\t return String(data);\n\t case 'Date':\n\t return this.parseDate(String(data));\n\t default:\n\t if (type === Object || type === File) {\n\t // generic object or Blob - return directly\n\t return data;\n\t } else if (typeof type === 'function') {\n\t if (typeof type.constructFromObject !== 'function') {\n\t // some manually written models might have no factory function\n\t return data;\n\t } else {\n\t // for model type like: User\n\t return type.constructFromObject(data);\n\t }\n\t } else if (Array.isArray(type)) {\n\t // for array type like: ['String']\n\t var itemType = type[0];\n\t return data.map(function(item) {\n\t return exports.convertToType(item, itemType);\n\t });\n\t } else if (typeof type === 'object') {\n\t // for plain object type like: {'String': 'Integer'}\n\t var keyType, valueType;\n\t for (var k in type) {\n\t if (type.hasOwnProperty(k)) {\n\t keyType = k;\n\t valueType = type[k];\n\t break;\n\t }\n\t }\n\t var result = {};\n\t for (var k in data) {\n\t if (data.hasOwnProperty(k)) {\n\t var key = exports.convertToType(k, keyType);\n\t var value = exports.convertToType(data[k], valueType);\n\t result[key] = value;\n\t }\n\t }\n\t return result;\n\t } else {\n\t // for unknown type, return the data directly\n\t return data;\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Constructs a new map or array model from REST data.\n\t * @param data {Object|Array} The REST data.\n\t * @param obj {Object|Array} The target object or array.\n\t */\n\t exports.constructFromObject = function(data, obj, itemType) {\n\t if (Array.isArray(data)) {\n\t for (var i = 0; i < data.length; i++) {\n\t if (data.hasOwnProperty(i))\n\t obj[i] = exports.convertToType(data[i], itemType);\n\t }\n\t } else {\n\t for (var k in data) {\n\t if (data.hasOwnProperty(k))\n\t obj[k] = exports.convertToType(data[k], itemType);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * The default API client implementation.\n\t * @type {module:ApiClient}\n\t */\n\t exports.instance = new exports();\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RestError = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The RestError model module.\n\t * @module model/RestError\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new RestError
.\n\t * Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code \\"Invalid Argument\\" instead of \\"Conflic\\". So, Client should read message property to know what happend exactly when an error is returned from server. And, some 500 errors can have system errno instead of useless \\"internal\\". Like other errors, details are hidden in message. \n\t * @alias module:model/RestError\n\t * @class\n\t * @param message {String} \n\t */\n\t var exports = function(message) {\n\t var _this = this;\n\t\n\t\n\t _this['message'] = message;\n\t };\n\t\n\t /**\n\t * Constructs a RestError
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/RestError} obj Optional instance to populate.\n\t * @return {module:model/RestError} The populated RestError
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('code')) {\n\t obj['code'] = ApiClient.convertToType(data['code'], 'String');\n\t }\n\t if (data.hasOwnProperty('message')) {\n\t obj['message'] = ApiClient.convertToType(data['message'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} code\n\t */\n\t exports.prototype['code'] = undefined;\n\t /**\n\t * @member {String} message\n\t */\n\t exports.prototype['message'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RestOK = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The RestOK model module.\n\t * @module model/RestOK\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new RestOK
.\n\t * @alias module:model/RestOK\n\t * @class\n\t */\n\t var exports = function() {\n\t var _this = this;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a RestOK
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/RestOK} obj Optional instance to populate.\n\t * @return {module:model/RestOK} The populated RestOK
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('message')) {\n\t obj['message'] = ApiClient.convertToType(data['message'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} message\n\t */\n\t exports.prototype['message'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(4), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('./DirEntry'), require('./Stats'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.DirEntry = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n\t }\n\t}(this, function(ApiClient, DirEntry, Stats) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The DirEntry model module.\n\t * @module model/DirEntry\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new DirEntry
.\n\t * a directory entry (file or directory) with children that represents a (sub) tree\n\t * @alias module:model/DirEntry\n\t * @class\n\t * @param name {String} \n\t * @param stats {module:model/Stats} \n\t * @param children {Array.} \n\t */\n\t var exports = function(name, stats, children) {\n\t var _this = this;\n\t\n\t _this['name'] = name;\n\t _this['stats'] = stats;\n\t _this['children'] = children;\n\t };\n\t\n\t /**\n\t * Constructs a DirEntry
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/DirEntry} obj Optional instance to populate.\n\t * @return {module:model/DirEntry} The populated DirEntry
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('stats')) {\n\t obj['stats'] = Stats.constructFromObject(data['stats']);\n\t }\n\t if (data.hasOwnProperty('children')) {\n\t obj['children'] = ApiClient.convertToType(data['children'], [DirEntry]);\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * @member {module:model/Stats} stats\n\t */\n\t exports.prototype['stats'] = undefined;\n\t /**\n\t * @member {Array.} children\n\t */\n\t exports.prototype['children'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Stats = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Stats model module.\n\t * @module model/Stats\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new Stats
.\n\t * simplified/augmented fs.Stats class - see node.js doc for all properties\n\t * @alias module:model/Stats\n\t * @class\n\t * @param type {module:model/Stats.TypeEnum} All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user. \n\t * @param birthtime {Date} \n\t * @param mtime {Date} \n\t * @param mode {String} \n\t * @param size {Integer} \n\t * @param nlink {Integer} \n\t */\n\t var exports = function(type, birthtime, mtime, mode, size, nlink) {\n\t var _this = this;\n\t\n\t _this['type'] = type;\n\t _this['birthtime'] = birthtime;\n\t _this['mtime'] = mtime;\n\t _this['mode'] = mode;\n\t _this['size'] = size;\n\t _this['nlink'] = nlink;\n\t };\n\t\n\t /**\n\t * Constructs a Stats
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Stats} obj Optional instance to populate.\n\t * @return {module:model/Stats} The populated Stats
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('type')) {\n\t obj['type'] = ApiClient.convertToType(data['type'], 'String');\n\t }\n\t if (data.hasOwnProperty('birthtime')) {\n\t obj['birthtime'] = ApiClient.convertToType(data['birthtime'], 'Date');\n\t }\n\t if (data.hasOwnProperty('mtime')) {\n\t obj['mtime'] = ApiClient.convertToType(data['mtime'], 'Date');\n\t }\n\t if (data.hasOwnProperty('mode')) {\n\t obj['mode'] = ApiClient.convertToType(data['mode'], 'String');\n\t }\n\t if (data.hasOwnProperty('size')) {\n\t obj['size'] = ApiClient.convertToType(data['size'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('nlink')) {\n\t obj['nlink'] = ApiClient.convertToType(data['nlink'], 'Integer');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user. \n\t * @member {module:model/Stats.TypeEnum} type\n\t */\n\t exports.prototype['type'] = undefined;\n\t /**\n\t * @member {Date} birthtime\n\t */\n\t exports.prototype['birthtime'] = undefined;\n\t /**\n\t * @member {Date} mtime\n\t */\n\t exports.prototype['mtime'] = undefined;\n\t /**\n\t * @member {String} mode\n\t */\n\t exports.prototype['mode'] = undefined;\n\t /**\n\t * @member {Integer} size\n\t */\n\t exports.prototype['size'] = undefined;\n\t /**\n\t * @member {Integer} nlink\n\t */\n\t exports.prototype['nlink'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the type
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.TypeEnum = {\n\t /**\n\t * value: \"FILE\"\n\t * @const\n\t */\n\t \"FILE\": \"FILE\",\n\t /**\n\t * value: \"DIRECTORY\"\n\t * @const\n\t */\n\t \"DIRECTORY\": \"DIRECTORY\",\n\t /**\n\t * value: \"BLOCK_DEVICE\"\n\t * @const\n\t */\n\t \"BLOCK_DEVICE\": \"BLOCK_DEVICE\",\n\t /**\n\t * value: \"CHARACTER_DEVICE\"\n\t * @const\n\t */\n\t \"CHARACTER_DEVICE\": \"CHARACTER_DEVICE\",\n\t /**\n\t * value: \"LINK\"\n\t * @const\n\t */\n\t \"LINK\": \"LINK\",\n\t /**\n\t * value: \"FIFO\"\n\t * @const\n\t */\n\t \"FIFO\": \"FIFO\",\n\t /**\n\t * value: \"SOCKET\"\n\t * @const\n\t */\n\t \"SOCKET\": \"SOCKET\",\n\t /**\n\t * value: \"DUMMY\"\n\t * @const\n\t */\n\t \"DUMMY\": \"DUMMY\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.ChildProcess = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The ChildProcess model module.\n\t * @module model/ChildProcess\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new ChildProcess
.\n\t * a process in execution, spawned by async exec or other mean\n\t * @alias module:model/ChildProcess\n\t * @class\n\t * @param pid {Integer} child process pid\n\t * @param command {String} execution command in execution request\n\t * @param args {Array.} arguments of command in execution request\n\t * @param execId {String} execution id from execution request\n\t * @param state {module:model/ChildProcess.StateEnum} state of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n\t * @param startedAt {Date} the time when this process is spawned\n\t */\n\t var exports = function(pid, command, args, execId, state, startedAt) {\n\t var _this = this;\n\t\n\t _this['pid'] = pid;\n\t _this['command'] = command;\n\t _this['args'] = args;\n\t _this['execId'] = execId;\n\t _this['state'] = state;\n\t _this['startedAt'] = startedAt;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a ChildProcess
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/ChildProcess} obj Optional instance to populate.\n\t * @return {module:model/ChildProcess} The populated ChildProcess
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('pid')) {\n\t obj['pid'] = ApiClient.convertToType(data['pid'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('command')) {\n\t obj['command'] = ApiClient.convertToType(data['command'], 'String');\n\t }\n\t if (data.hasOwnProperty('args')) {\n\t obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n\t }\n\t if (data.hasOwnProperty('execId')) {\n\t obj['execId'] = ApiClient.convertToType(data['execId'], 'String');\n\t }\n\t if (data.hasOwnProperty('state')) {\n\t obj['state'] = ApiClient.convertToType(data['state'], 'String');\n\t }\n\t if (data.hasOwnProperty('startedAt')) {\n\t obj['startedAt'] = ApiClient.convertToType(data['startedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('exitCode')) {\n\t obj['exitCode'] = ApiClient.convertToType(data['exitCode'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('exitSignal')) {\n\t obj['exitSignal'] = ApiClient.convertToType(data['exitSignal'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * child process pid\n\t * @member {Integer} pid\n\t */\n\t exports.prototype['pid'] = undefined;\n\t /**\n\t * execution command in execution request\n\t * @member {String} command\n\t */\n\t exports.prototype['command'] = undefined;\n\t /**\n\t * arguments of command in execution request\n\t * @member {Array.} args\n\t */\n\t exports.prototype['args'] = undefined;\n\t /**\n\t * execution id from execution request\n\t * @member {String} execId\n\t */\n\t exports.prototype['execId'] = undefined;\n\t /**\n\t * state of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n\t * @member {module:model/ChildProcess.StateEnum} state\n\t */\n\t exports.prototype['state'] = undefined;\n\t /**\n\t * the time when this process is spawned\n\t * @member {Date} startedAt\n\t */\n\t exports.prototype['startedAt'] = undefined;\n\t /**\n\t * the exit code of child process. available with EXITED procs only.\n\t * @member {Integer} exitCode\n\t */\n\t exports.prototype['exitCode'] = undefined;\n\t /**\n\t * the signal that killed this child process.(not always available)\n\t * @member {String} exitSignal\n\t */\n\t exports.prototype['exitSignal'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the state
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.StateEnum = {\n\t /**\n\t * value: \"CREATED\"\n\t * @const\n\t */\n\t \"CREATED\": \"CREATED\",\n\t /**\n\t * value: \"WORKING\"\n\t * @const\n\t */\n\t \"WORKING\": \"WORKING\",\n\t /**\n\t * value: \"KILLING\"\n\t * @const\n\t */\n\t \"KILLING\": \"KILLING\",\n\t /**\n\t * value: \"EXITED\"\n\t * @const\n\t */\n\t \"EXITED\": \"EXITED\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Credential = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Credential model module.\n\t * @module model/Credential\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new Credential
.\n\t * user credential to login. Use https to protect credential.\n\t * @alias module:model/Credential\n\t * @class\n\t * @param loginId {String} \n\t * @param loginPassword {String} \n\t */\n\t var exports = function(loginId, loginPassword) {\n\t var _this = this;\n\t\n\t _this['loginId'] = loginId;\n\t _this['loginPassword'] = loginPassword;\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Credential
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Credential} obj Optional instance to populate.\n\t * @return {module:model/Credential} The populated Credential
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('loginId')) {\n\t obj['loginId'] = ApiClient.convertToType(data['loginId'], 'String');\n\t }\n\t if (data.hasOwnProperty('loginPassword')) {\n\t obj['loginPassword'] = ApiClient.convertToType(data['loginPassword'], 'String');\n\t }\n\t if (data.hasOwnProperty('masterToken')) {\n\t obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} loginId\n\t */\n\t exports.prototype['loginId'] = undefined;\n\t /**\n\t * @member {String} loginPassword\n\t */\n\t exports.prototype['loginPassword'] = undefined;\n\t /**\n\t * a master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password, non-empty. (The values can be used to identify client type) \n\t * @member {String} masterToken\n\t */\n\t exports.prototype['masterToken'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Execution = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Execution model module.\n\t * @module model/Execution\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new Execution
.\n\t * execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability - encoding : fixed to utf-8 - shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.) - killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed. - uid & gid : will not be set for security - stdio : all streams are handled by server. no options are avaliable to client. - detached : always false \n\t * @alias module:model/Execution\n\t * @class\n\t * @param command {String} The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any 'specific shell' in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating additional console device while running service for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some '.sh' file to run, it must provide '.cmd' file doing same thing, always. \n\t * @param args {Array.} the arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n\t */\n\t var exports = function(command, args) {\n\t var _this = this;\n\t\n\t\n\t _this['command'] = command;\n\t _this['args'] = args;\n\t\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Execution
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Execution} obj Optional instance to populate.\n\t * @return {module:model/Execution} The populated Execution
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('command')) {\n\t obj['command'] = ApiClient.convertToType(data['command'], 'String');\n\t }\n\t if (data.hasOwnProperty('args')) {\n\t obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n\t }\n\t if (data.hasOwnProperty('cwd')) {\n\t obj['cwd'] = ApiClient.convertToType(data['cwd'], 'String');\n\t }\n\t if (data.hasOwnProperty('timeout')) {\n\t obj['timeout'] = ApiClient.convertToType(data['timeout'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('maxBuffer')) {\n\t obj['maxBuffer'] = ApiClient.convertToType(data['maxBuffer'], 'Integer');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id. \n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any 'specific shell' in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating additional console device while running service for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some '.sh' file to run, it must provide '.cmd' file doing same thing, always. \n\t * @member {String} command\n\t */\n\t exports.prototype['command'] = undefined;\n\t /**\n\t * the arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n\t * @member {Array.} args\n\t */\n\t exports.prototype['args'] = undefined;\n\t /**\n\t * Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an 'absolute' property. \n\t * @member {String} cwd\n\t */\n\t exports.prototype['cwd'] = undefined;\n\t /**\n\t * The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked \n\t * @member {Integer} timeout\n\t */\n\t exports.prototype['timeout'] = undefined;\n\t /**\n\t * Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough. \n\t * @member {Integer} maxBuffer\n\t */\n\t exports.prototype['maxBuffer'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.ExecutionResult = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The ExecutionResult model module.\n\t * @module model/ExecutionResult\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new ExecutionResult
.\n\t * execution response\n\t * @alias module:model/ExecutionResult\n\t * @class\n\t * @param stdout {String} standard out of child process.\n\t * @param stderr {String} standard error of child process.\n\t */\n\t var exports = function(stdout, stderr) {\n\t var _this = this;\n\t\n\t\n\t _this['stdout'] = stdout;\n\t _this['stderr'] = stderr;\n\t };\n\t\n\t /**\n\t * Constructs a ExecutionResult
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/ExecutionResult} obj Optional instance to populate.\n\t * @return {module:model/ExecutionResult} The populated ExecutionResult
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('error')) {\n\t obj['error'] = ApiClient.convertToType(data['error'], 'String');\n\t }\n\t if (data.hasOwnProperty('stdout')) {\n\t obj['stdout'] = ApiClient.convertToType(data['stdout'], 'String');\n\t }\n\t if (data.hasOwnProperty('stderr')) {\n\t obj['stderr'] = ApiClient.convertToType(data['stderr'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * error message when execution failed.\n\t * @member {String} error\n\t */\n\t exports.prototype['error'] = undefined;\n\t /**\n\t * standard out of child process.\n\t * @member {String} stdout\n\t */\n\t exports.prototype['stdout'] = undefined;\n\t /**\n\t * standard error of child process.\n\t * @member {String} stderr\n\t */\n\t exports.prototype['stderr'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RemoteAccess = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The RemoteAccess model module.\n\t * @module model/RemoteAccess\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new RemoteAccess
.\n\t * Access information of remote workspace in remote server\n\t * @alias module:model/RemoteAccess\n\t * @class\n\t * @param name {String} display text of remote workspace. can be different from original name. \n\t * @param serverUrl {String} the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path. \n\t * @param workspaceId {String} the id of remote workspace, read from remote server\n\t * @param masterToken {String} master token to access service, issued from remote server\n\t */\n\t var exports = function(name, serverUrl, workspaceId, masterToken) {\n\t var _this = this;\n\t\n\t _this['name'] = name;\n\t _this['serverUrl'] = serverUrl;\n\t _this['workspaceId'] = workspaceId;\n\t\n\t _this['masterToken'] = masterToken;\n\t };\n\t\n\t /**\n\t * Constructs a RemoteAccess
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/RemoteAccess} obj Optional instance to populate.\n\t * @return {module:model/RemoteAccess} The populated RemoteAccess
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('serverUrl')) {\n\t obj['serverUrl'] = ApiClient.convertToType(data['serverUrl'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspaceId')) {\n\t obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspacePath')) {\n\t obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n\t }\n\t if (data.hasOwnProperty('masterToken')) {\n\t obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * display text of remote workspace. can be different from original name. \n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path. \n\t * @member {String} serverUrl\n\t */\n\t exports.prototype['serverUrl'] = undefined;\n\t /**\n\t * the id of remote workspace, read from remote server\n\t * @member {String} workspaceId\n\t */\n\t exports.prototype['workspaceId'] = undefined;\n\t /**\n\t * Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \\\"named root directory\\\" in workspace fs tree. \n\t * @member {String} workspacePath\n\t */\n\t exports.prototype['workspacePath'] = undefined;\n\t /**\n\t * master token to access service, issued from remote server\n\t * @member {String} masterToken\n\t */\n\t exports.prototype['masterToken'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Session = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Session model module.\n\t * @module model/Session\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new Session
.\n\t * an application session per ide instance. bound to access token\n\t * @alias module:model/Session\n\t * @class\n\t * @param id {String} the id of a session. usually same to socket id.\n\t * @param name {String} human readable name, usually derived from workspace name.\n\t * @param state {module:model/Session.StateEnum} state of this session NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) there\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n\t * @param clientAddress {String} the peer address of session connection. not always\n\t * @param connectedAt {Date} the time when socket connection is established\n\t * @param disconnectedAt {Date} the time when socket is closed.\n\t */\n\t var exports = function(id, name, state, clientAddress, connectedAt, disconnectedAt) {\n\t var _this = this;\n\t\n\t _this['id'] = id;\n\t _this['name'] = name;\n\t _this['state'] = state;\n\t\n\t _this['clientAddress'] = clientAddress;\n\t _this['connectedAt'] = connectedAt;\n\t _this['disconnectedAt'] = disconnectedAt;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Session
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Session} obj Optional instance to populate.\n\t * @return {module:model/Session} The populated Session
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('state')) {\n\t obj['state'] = ApiClient.convertToType(data['state'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspaceId')) {\n\t obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n\t }\n\t if (data.hasOwnProperty('clientAddress')) {\n\t obj['clientAddress'] = ApiClient.convertToType(data['clientAddress'], 'String');\n\t }\n\t if (data.hasOwnProperty('connectedAt')) {\n\t obj['connectedAt'] = ApiClient.convertToType(data['connectedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('disconnectedAt')) {\n\t obj['disconnectedAt'] = ApiClient.convertToType(data['disconnectedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('willCloseAt')) {\n\t obj['willCloseAt'] = ApiClient.convertToType(data['willCloseAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('willLoseAt')) {\n\t obj['willLoseAt'] = ApiClient.convertToType(data['willLoseAt'], 'Date');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * the id of a session. usually same to socket id.\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * human readable name, usually derived from workspace name.\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * state of this session NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) there\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n\t * @member {module:model/Session.StateEnum} state\n\t */\n\t exports.prototype['state'] = undefined;\n\t /**\n\t * the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id. \n\t * @member {String} workspaceId\n\t */\n\t exports.prototype['workspaceId'] = undefined;\n\t /**\n\t * the peer address of session connection. not always\n\t * @member {String} clientAddress\n\t */\n\t exports.prototype['clientAddress'] = undefined;\n\t /**\n\t * the time when socket connection is established\n\t * @member {Date} connectedAt\n\t */\n\t exports.prototype['connectedAt'] = undefined;\n\t /**\n\t * the time when socket is closed.\n\t * @member {Date} disconnectedAt\n\t */\n\t exports.prototype['disconnectedAt'] = undefined;\n\t /**\n\t * when state becomes CLOSING, actual closing time will be updated by server.\n\t * @member {Date} willCloseAt\n\t */\n\t exports.prototype['willCloseAt'] = undefined;\n\t /**\n\t * when state becomes LOSING, server will not wait for reconnection after this time.\n\t * @member {Date} willLoseAt\n\t */\n\t exports.prototype['willLoseAt'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the state
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.StateEnum = {\n\t /**\n\t * value: \"NORMAL\"\n\t * @const\n\t */\n\t \"NORMAL\": \"NORMAL\",\n\t /**\n\t * value: \"LOSING\"\n\t * @const\n\t */\n\t \"LOSING\": \"LOSING\",\n\t /**\n\t * value: \"CLOSING\"\n\t * @const\n\t */\n\t \"CLOSING\": \"CLOSING\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Token = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Token model module.\n\t * @module model/Token\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new Token
.\n\t * a json webtoken and accessible data\n\t * @alias module:model/Token\n\t * @class\n\t * @param text {String} actual token text that should be shipped in header or query\n\t * @param tokenType {module:model/Token.TokenTypeEnum} MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n\t * @param expiresAt {Date} \n\t * @param issuedAt {Date} \n\t */\n\t var exports = function(text, tokenType, expiresAt, issuedAt) {\n\t var _this = this;\n\t\n\t _this['text'] = text;\n\t _this['tokenType'] = tokenType;\n\t _this['expiresAt'] = expiresAt;\n\t _this['issuedAt'] = issuedAt;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Token
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Token} obj Optional instance to populate.\n\t * @return {module:model/Token} The populated Token
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('text')) {\n\t obj['text'] = ApiClient.convertToType(data['text'], 'String');\n\t }\n\t if (data.hasOwnProperty('tokenType')) {\n\t obj['tokenType'] = ApiClient.convertToType(data['tokenType'], 'String');\n\t }\n\t if (data.hasOwnProperty('expiresAt')) {\n\t obj['expiresAt'] = ApiClient.convertToType(data['expiresAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('issuedAt')) {\n\t obj['issuedAt'] = ApiClient.convertToType(data['issuedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('sessionId')) {\n\t obj['sessionId'] = ApiClient.convertToType(data['sessionId'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspaceId')) {\n\t obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * actual token text that should be shipped in header or query\n\t * @member {String} text\n\t */\n\t exports.prototype['text'] = undefined;\n\t /**\n\t * MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n\t * @member {module:model/Token.TokenTypeEnum} tokenType\n\t */\n\t exports.prototype['tokenType'] = undefined;\n\t /**\n\t * @member {Date} expiresAt\n\t */\n\t exports.prototype['expiresAt'] = undefined;\n\t /**\n\t * @member {Date} issuedAt\n\t */\n\t exports.prototype['issuedAt'] = undefined;\n\t /**\n\t * mandatory for ACCESS token, identifying client instance\n\t * @member {String} sessionId\n\t */\n\t exports.prototype['sessionId'] = undefined;\n\t /**\n\t * If truthy, access rights are restricted to specified workspace only.\n\t * @member {String} workspaceId\n\t */\n\t exports.prototype['workspaceId'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the tokenType
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.TokenTypeEnum = {\n\t /**\n\t * value: \"MASTER\"\n\t * @const\n\t */\n\t \"MASTER\": \"MASTER\",\n\t /**\n\t * value: \"ACCESS\"\n\t * @const\n\t */\n\t \"ACCESS\": \"ACCESS\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.User = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The User model module.\n\t * @module model/User\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new User
.\n\t * Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients. \n\t * @alias module:model/User\n\t * @class\n\t */\n\t var exports = function() {\n\t var _this = this;\n\t\n\t\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a User
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/User} obj Optional instance to populate.\n\t * @return {module:model/User} The populated User
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('email')) {\n\t obj['email'] = ApiClient.convertToType(data['email'], 'String');\n\t }\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * unique id per user (email is also unique)\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * @member {String} email\n\t */\n\t exports.prototype['email'] = undefined;\n\t /**\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Workspace = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Workspace model module.\n\t * @module model/Workspace\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new Workspace
.\n\t * A workspace in server\n\t * @alias module:model/Workspace\n\t * @class\n\t * @param id {String} the id of a workspace. usually same to file system id\n\t * @param name {String} display text of this workspace for UI\n\t * @param description {String} human readable description on this workspace\n\t * @param createdAt {Date} the time when this workspace is created (registered from local file system)\n\t * @param workspacePath {String} absolute path of this workspace in server.\n\t * @param excludedPaths {Array.} glob patterns (Not regular expression!) or directory paths (Not a file path!) to be excluded for watch service and search & replace operation. If a value has no '*' char, it will be treated as directory path. Like most of operation parameters, paths (and patterns not prefixed with '*') should have relative, unixified form. If not, server should reject or discard the absolute values. If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir events of the dir, but should not deliver any events from its sub-dirs and files. Search and replace operation should ignore any files under the directory. If path denotes a file, server may reject or discard the path. Server should support basic glob pattern, '**' and '*' in the glob pattern but not ! '!' prefix is optional. Client should not register any other extended glob features that server does not support. \n\t * @param offlineCachePaths {Array.} any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n\t */\n\t var exports = function(id, name, description, createdAt, workspacePath, excludedPaths, offlineCachePaths) {\n\t var _this = this;\n\t\n\t _this['id'] = id;\n\t _this['name'] = name;\n\t _this['description'] = description;\n\t _this['createdAt'] = createdAt;\n\t\n\t _this['workspacePath'] = workspacePath;\n\t _this['excludedPaths'] = excludedPaths;\n\t _this['offlineCachePaths'] = offlineCachePaths;\n\t };\n\t\n\t /**\n\t * Constructs a Workspace
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Workspace} obj Optional instance to populate.\n\t * @return {module:model/Workspace} The populated Workspace
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('description')) {\n\t obj['description'] = ApiClient.convertToType(data['description'], 'String');\n\t }\n\t if (data.hasOwnProperty('createdAt')) {\n\t obj['createdAt'] = ApiClient.convertToType(data['createdAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('accessedAt')) {\n\t obj['accessedAt'] = ApiClient.convertToType(data['accessedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('workspacePath')) {\n\t obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n\t }\n\t if (data.hasOwnProperty('excludedPaths')) {\n\t obj['excludedPaths'] = ApiClient.convertToType(data['excludedPaths'], ['String']);\n\t }\n\t if (data.hasOwnProperty('offlineCachePaths')) {\n\t obj['offlineCachePaths'] = ApiClient.convertToType(data['offlineCachePaths'], ['String']);\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * the id of a workspace. usually same to file system id\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * display text of this workspace for UI\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * human readable description on this workspace\n\t * @member {String} description\n\t */\n\t exports.prototype['description'] = undefined;\n\t /**\n\t * the time when this workspace is created (registered from local file system)\n\t * @member {Date} createdAt\n\t */\n\t exports.prototype['createdAt'] = undefined;\n\t /**\n\t * the time when the last session on this workspace was made. (optional)\n\t * @member {Date} accessedAt\n\t */\n\t exports.prototype['accessedAt'] = undefined;\n\t /**\n\t * absolute path of this workspace in server.\n\t * @member {String} workspacePath\n\t */\n\t exports.prototype['workspacePath'] = undefined;\n\t /**\n\t * glob patterns (Not regular expression!) or directory paths (Not a file path!) to be excluded for watch service and search & replace operation. If a value has no '*' char, it will be treated as directory path. Like most of operation parameters, paths (and patterns not prefixed with '*') should have relative, unixified form. If not, server should reject or discard the absolute values. If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir events of the dir, but should not deliver any events from its sub-dirs and files. Search and replace operation should ignore any files under the directory. If path denotes a file, server may reject or discard the path. Server should support basic glob pattern, '**' and '*' in the glob pattern but not ! '!' prefix is optional. Client should not register any other extended glob features that server does not support. \n\t * @member {Array.} excludedPaths\n\t */\n\t exports.prototype['excludedPaths'] = undefined;\n\t /**\n\t * any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n\t * @member {Array.} offlineCachePaths\n\t */\n\t exports.prototype['offlineCachePaths'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports) {\n\n\t(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && res.status < 300) {\n\t return self.callback(err, res);\n\t }\n\t\n\t var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n\t new_err.original = err;\n\t new_err.response = res;\n\t new_err.status = res.status;\n\t\n\t self.callback(new_err, res);\n\t } catch(e) {\n\t self.callback(e); // #985 touching res may cause INVALID_STATE_ERR on old Android\n\t }\n\t });\n\t}\n\t\n\t/**\n\t * Mixin `Emitter` and `requestBase`.\n\t */\n\t\n\tEmitter(Request.prototype);\n\tfor (var key in requestBase) {\n\t Request.prototype[key] = requestBase[key];\n\t}\n\t\n\t/**\n\t * Set Content-Type to `type`, mapping values from `request.types`.\n\t *\n\t * Examples:\n\t *\n\t * superagent.types.xml = 'application/xml';\n\t *\n\t * request.post('/')\n\t * .type('xml')\n\t * .send(xmlstring)\n\t * .end(callback);\n\t *\n\t * request.post('/')\n\t * .type('application/xml')\n\t * .send(xmlstring)\n\t * .end(callback);\n\t *\n\t * @param {String} type\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.type = function(type){\n\t this.set('Content-Type', request.types[type] || type);\n\t return this;\n\t};\n\t\n\t/**\n\t * Set responseType to `val`. Presently valid responseTypes are 'blob' and\n\t * 'arraybuffer'.\n\t *\n\t * Examples:\n\t *\n\t * req.get('/')\n\t * .responseType('blob')\n\t * .end(callback);\n\t *\n\t * @param {String} val\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.responseType = function(val){\n\t this._responseType = val;\n\t return this;\n\t};\n\t\n\t/**\n\t * Set Accept to `type`, mapping values from `request.types`.\n\t *\n\t * Examples:\n\t *\n\t * superagent.types.json = 'application/json';\n\t *\n\t * request.get('/agent')\n\t * .accept('json')\n\t * .end(callback);\n\t *\n\t * request.get('/agent')\n\t * .accept('application/json')\n\t * .end(callback);\n\t *\n\t * @param {String} accept\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.accept = function(type){\n\t this.set('Accept', request.types[type] || type);\n\t return this;\n\t};\n\t\n\t/**\n\t * Set Authorization field value with `user` and `pass`.\n\t *\n\t * @param {String} user\n\t * @param {String} pass\n\t * @param {Object} options with 'type' property 'auto' or 'basic' (default 'basic')\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.auth = function(user, pass, options){\n\t if (!options) {\n\t options = {\n\t type: 'basic'\n\t }\n\t }\n\t\n\t switch (options.type) {\n\t case 'basic':\n\t var str = btoa(user + ':' + pass);\n\t this.set('Authorization', 'Basic ' + str);\n\t break;\n\t\n\t case 'auto':\n\t this.username = user;\n\t this.password = pass;\n\t break;\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t* Add query-string `val`.\n\t*\n\t* Examples:\n\t*\n\t* request.get('/shoes')\n\t* .query('size=10')\n\t* .query({ color: 'blue' })\n\t*\n\t* @param {Object|String} val\n\t* @return {Request} for chaining\n\t* @api public\n\t*/\n\t\n\tRequest.prototype.query = function(val){\n\t if ('string' != typeof val) val = serialize(val);\n\t if (val) this._query.push(val);\n\t return this;\n\t};\n\t\n\t/**\n\t * Queue the given `file` as an attachment to the specified `field`,\n\t * with optional `filename`.\n\t *\n\t * ``` js\n\t * request.post('/upload')\n\t * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n\t * .end(callback);\n\t * ```\n\t *\n\t * @param {String} field\n\t * @param {Blob|File} file\n\t * @param {String} filename\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.attach = function(field, file, filename){\n\t this._getFormData().append(field, file, filename || file.name);\n\t return this;\n\t};\n\t\n\tRequest.prototype._getFormData = function(){\n\t if (!this._formData) {\n\t this._formData = new root.FormData();\n\t }\n\t return this._formData;\n\t};\n\t\n\t/**\n\t * Invoke the callback with `err` and `res`\n\t * and handle arity check.\n\t *\n\t * @param {Error} err\n\t * @param {Response} res\n\t * @api private\n\t */\n\t\n\tRequest.prototype.callback = function(err, res){\n\t var fn = this._callback;\n\t this.clearTimeout();\n\t fn(err, res);\n\t};\n\t\n\t/**\n\t * Invoke callback with x-domain error.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.crossDomainError = function(){\n\t var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n\t err.crossDomain = true;\n\t\n\t err.status = this.status;\n\t err.method = this.method;\n\t err.url = this.url;\n\t\n\t this.callback(err);\n\t};\n\t\n\t/**\n\t * Invoke callback with timeout error.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype._timeoutError = function(){\n\t var timeout = this._timeout;\n\t var err = new Error('timeout of ' + timeout + 'ms exceeded');\n\t err.timeout = timeout;\n\t this.callback(err);\n\t};\n\t\n\t/**\n\t * Compose querystring to append to req.url\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype._appendQueryString = function(){\n\t var query = this._query.join('&');\n\t if (query) {\n\t this.url += ~this.url.indexOf('?')\n\t ? '&' + query\n\t : '?' + query;\n\t }\n\t};\n\t\n\t/**\n\t * Initiate request, invoking callback `fn(res)`\n\t * with an instanceof `Response`.\n\t *\n\t * @param {Function} fn\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.end = function(fn){\n\t var self = this;\n\t var xhr = this.xhr = request.getXHR();\n\t var timeout = this._timeout;\n\t var data = this._formData || this._data;\n\t\n\t // store callback\n\t this._callback = fn || noop;\n\t\n\t // state change\n\t xhr.onreadystatechange = function(){\n\t if (4 != xhr.readyState) return;\n\t\n\t // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n\t // result in the error \"Could not complete the operation due to error c00c023f\"\n\t var status;\n\t try { status = xhr.status } catch(e) { status = 0; }\n\t\n\t if (0 == status) {\n\t if (self.timedout) return self._timeoutError();\n\t if (self._aborted) return;\n\t return self.crossDomainError();\n\t }\n\t self.emit('end');\n\t };\n\t\n\t // progress\n\t var handleProgress = function(e){\n\t if (e.total > 0) {\n\t e.percent = e.loaded / e.total * 100;\n\t }\n\t e.direction = 'download';\n\t self.emit('progress', e);\n\t };\n\t if (this.hasListeners('progress')) {\n\t xhr.onprogress = handleProgress;\n\t }\n\t try {\n\t if (xhr.upload && this.hasListeners('progress')) {\n\t xhr.upload.onprogress = handleProgress;\n\t }\n\t } catch(e) {\n\t // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n\t // Reported here:\n\t // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n\t }\n\t\n\t // timeout\n\t if (timeout && !this._timer) {\n\t this._timer = setTimeout(function(){\n\t self.timedout = true;\n\t self.abort();\n\t }, timeout);\n\t }\n\t\n\t // querystring\n\t this._appendQueryString();\n\t\n\t // initiate request\n\t if (this.username && this.password) {\n\t xhr.open(this.method, this.url, true, this.username, this.password);\n\t } else {\n\t xhr.open(this.method, this.url, true);\n\t }\n\t\n\t // CORS\n\t if (this._withCredentials) xhr.withCredentials = true;\n\t\n\t // body\n\t if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n\t // serialize stuff\n\t var contentType = this._header['content-type'];\n\t var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\t if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];\n\t if (serialize) data = serialize(data);\n\t }\n\t\n\t // set header fields\n\t for (var field in this.header) {\n\t if (null == this.header[field]) continue;\n\t xhr.setRequestHeader(field, this.header[field]);\n\t }\n\t\n\t if (this._responseType) {\n\t xhr.responseType = this._responseType;\n\t }\n\t\n\t // send stuff\n\t this.emit('request', this);\n\t\n\t // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n\t // We need null here if data is undefined\n\t xhr.send(typeof data !== 'undefined' ? data : null);\n\t return this;\n\t};\n\t\n\t\n\t/**\n\t * Expose `Request`.\n\t */\n\t\n\trequest.Request = Request;\n\t\n\t/**\n\t * GET `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.get = function(url, data, fn){\n\t var req = request('GET', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.query(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * HEAD `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.head = function(url, data, fn){\n\t var req = request('HEAD', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * OPTIONS query to `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.options = function(url, data, fn){\n\t var req = request('OPTIONS', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * DELETE `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\tfunction del(url, fn){\n\t var req = request('DELETE', url);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\trequest['del'] = del;\n\trequest['delete'] = del;\n\t\n\t/**\n\t * PATCH `url` with optional `data` and callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed} data\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.patch = function(url, data, fn){\n\t var req = request('PATCH', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * POST `url` with optional `data` and callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed} data\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.post = function(url, data, fn){\n\t var req = request('POST', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * PUT `url` with optional `data` and callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.put = function(url, data, fn){\n\t var req = request('PUT', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t},{\"./is-object\":1,\"./request\":3,\"./request-base\":2,\"emitter\":4,\"reduce\":5}]},{},[6])(6)\n\t});\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(14), __webpack_require__(2), __webpack_require__(13), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/User'), require('../model/RestError'), require('../model/Token'), require('../model/Credential'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.AuthApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.User, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Token, root.WebidaRestfulApi.Credential);\n\t }\n\t}(this, function(ApiClient, User, RestError, Token, Credential) {\n\t 'use strict';\n\t\n\t /**\n\t * Auth service.\n\t * @module api/AuthApi\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new AuthApi. \n\t * @alias module:api/AuthApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the getInfo operation.\n\t * @callback module:api/AuthApi~getInfoCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/User} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Gets user information of that can be identified with current access token. Implementations should provide a more restful api based on domain data model, not extending this operation. (e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user) \n\t * @param {module:api/AuthApi~getInfoCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/User}\n\t */\n\t this.getInfo = function(callback) {\n\t var postBody = null;\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = User;\n\t\n\t return this.apiClient.callApi(\n\t '/auth/info', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the issueToken operation.\n\t * @callback module:api/AuthApi~issueTokenCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Token} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates new token from current access token, inheriting workspace id & session id. The duration of generated token is (and should not be) parameterizable. Server should set proper duration, respecting \\"reconnect\\" period of socket.io clients. Remember that most of socket.io client implementations (including official js client) do not provide any ways to change connection parameters (header or query) while reconnecting to server. Like login API, this endpoint does not provide any encryption. Server should not set any data to harm security in the token & should provide some signinig/encryption mechanism to protect token. Simple JSON Web Token with HMAC-SHA will do. \n\t * @param {module:model/String} type \n\t * @param {Object} opts Optional parameters\n\t * @param {String} opts.workspaceId recommended to issue a MASTER type token to restrict remote access\n\t * @param {module:api/AuthApi~issueTokenCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Token}\n\t */\n\t this.issueToken = function(type, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'type' is set\n\t if (type == undefined || type == null) {\n\t throw \"Missing the required parameter 'type' when calling issueToken\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t 'type': type,\n\t 'workspaceId': opts['workspaceId']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Token;\n\t\n\t return this.apiClient.callApi(\n\t '/auth/token', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the login operation.\n\t * @callback module:api/AuthApi~loginCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Token} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * A \\"VERY\\" basic authentication, required to use webida-simple-auth security scheme. Service / Product implementations who need better security, should override this operation or add their own login api or some other specs like OAuth2. Simple auth is not suitable for large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only. Logging-in with master token, the generated access token inherits all restriction from it. On the other hand, normal log-in with login id & password creates an unrestricted access token, with reasonably short expiration time. Every client should spawn another access token with issueToken API before current access token expires, inheriting session id from current token. To save remote access info, client should create a (restricted but long-ttl) master token to start IDE from remote. The remote client should not use the unrestricted acccess token from login to use any other perpose than finding available workspaces, and should not refresh the token. (Let user log-in again) Login API does not force any encryption. Server should provide secure transport channel, usually https, to provide remote access, always. \n\t * @param {module:model/Credential} body \n\t * @param {module:api/AuthApi~loginCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Token}\n\t */\n\t this.login = function(body, callback) {\n\t var postBody = body;\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling login\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = [];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Token;\n\t\n\t return this.apiClient.callApi(\n\t '/auth/login', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.OpsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError) {\n\t 'use strict';\n\t\n\t /**\n\t * Ops service.\n\t * @module api/OpsApi\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new OpsApi. \n\t * @alias module:api/OpsApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the replace operation.\n\t * @callback module:api/OpsApi~replaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * replace file contents with regex matching\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {Array.} wfsPathList array of wfsPath, with heading / (collection format may be changed by implementation)\n\t * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation \n\t * @param {String} replaceTo string to replace with\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n\t * @param {module:api/OpsApi~replaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.replace = function(wfsId, wfsPathList, pattern, replaceTo, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling replace\";\n\t }\n\t\n\t // verify the required parameter 'wfsPathList' is set\n\t if (wfsPathList == undefined || wfsPathList == null) {\n\t throw \"Missing the required parameter 'wfsPathList' when calling replace\";\n\t }\n\t\n\t // verify the required parameter 'pattern' is set\n\t if (pattern == undefined || pattern == null) {\n\t throw \"Missing the required parameter 'pattern' when calling replace\";\n\t }\n\t\n\t // verify the required parameter 'replaceTo' is set\n\t if (replaceTo == undefined || replaceTo == null) {\n\t throw \"Missing the required parameter 'replaceTo' when calling replace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId\n\t };\n\t var queryParams = {\n\t 'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),\n\t 'pattern': pattern,\n\t 'replaceTo': replaceTo,\n\t 'ignoreCase': opts['ignoreCase']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/ops/replace', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the search operation.\n\t * @callback module:api/OpsApi~searchCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Object.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * search files in some path, with given pattern\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation \n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n\t * @param {module:api/OpsApi~searchCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Object.}\n\t */\n\t this.search = function(wfsId, wfsPath, pattern, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling search\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling search\";\n\t }\n\t\n\t // verify the required parameter 'pattern' is set\n\t if (pattern == undefined || pattern == null) {\n\t throw \"Missing the required parameter 'pattern' when calling search\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'pattern': pattern,\n\t 'ignoreCase': opts['ignoreCase']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = {'String': [Match]};\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/ops/search/{wfsPath}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(2), __webpack_require__(11), __webpack_require__(3)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestError'), require('../model/RemoteAccess'), require('../model/RestOK'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RemotesApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.RemoteAccess, root.WebidaRestfulApi.RestOK);\n\t }\n\t}(this, function(ApiClient, RestError, RemoteAccess, RestOK) {\n\t 'use strict';\n\t\n\t /**\n\t * Remotes service.\n\t * @module api/RemotesApi\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new RemotesApi. \n\t * @alias module:api/RemotesApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the findRemoteAccesses operation.\n\t * @callback module:api/RemotesApi~findRemoteAccessesCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet) \n\t * @param {module:api/RemotesApi~findRemoteAccessesCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findRemoteAccesses = function(callback) {\n\t var postBody = null;\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [RemoteAccess];\n\t\n\t return this.apiClient.callApi(\n\t '/remotes', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the putRemoteAccess operation.\n\t * @callback module:api/RemotesApi~putRemoteAccessCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * create or update a remote workspace access information\n\t * @param {module:model/RemoteAccess} body \n\t * @param {module:api/RemotesApi~putRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.putRemoteAccess = function(body, callback) {\n\t var postBody = body;\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling putRemoteAccess\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/remotes', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the removeRemoteAccess operation.\n\t * @callback module:api/RemotesApi~removeRemoteAccessCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RemoteAccess} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * delete a remote workspace\n\t * @param {String} workspaceId workspace Id of remote workspace\n\t * @param {module:api/RemotesApi~removeRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RemoteAccess}\n\t */\n\t this.removeRemoteAccess = function(workspaceId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling removeRemoteAccess\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RemoteAccess;\n\t\n\t return this.apiClient.callApi(\n\t '/remotes', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2), __webpack_require__(12)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Session'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.SessionApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Session);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError, Session) {\n\t 'use strict';\n\t\n\t /**\n\t * Session service.\n\t * @module api/SessionApi\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new SessionApi. \n\t * @alias module:api/SessionApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the closeSession operation.\n\t * @callback module:api/SessionApi~closeSessionCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * close session with timeout\n\t * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n\t * @param {Integer} closeAfter waiting time before actual closing, to let client save files and prevent reconnect \n\t * @param {module:api/SessionApi~closeSessionCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.closeSession = function(sessionId, closeAfter, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'sessionId' is set\n\t if (sessionId == undefined || sessionId == null) {\n\t throw \"Missing the required parameter 'sessionId' when calling closeSession\";\n\t }\n\t\n\t // verify the required parameter 'closeAfter' is set\n\t if (closeAfter == undefined || closeAfter == null) {\n\t throw \"Missing the required parameter 'closeAfter' when calling closeSession\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'sessionId': sessionId\n\t };\n\t var queryParams = {\n\t 'closeAfter': closeAfter\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/sessions/{sessionId}', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the findSessions operation.\n\t * @callback module:api/SessionApi~findSessionsCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * get all / some webida sessions established to server\n\t * @param {Object} opts Optional parameters\n\t * @param {String} opts.workspaceId find only sessions working on some given workspace\n\t * @param {module:api/SessionApi~findSessionsCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findSessions = function(opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t 'workspaceId': opts['workspaceId']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [Session];\n\t\n\t return this.apiClient.callApi(\n\t '/sessions', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the getSession operation.\n\t * @callback module:api/SessionApi~getSessionCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Session} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * get a session object by id\n\t * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n\t * @param {module:api/SessionApi~getSessionCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Session}\n\t */\n\t this.getSession = function(sessionId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'sessionId' is set\n\t if (sessionId == undefined || sessionId == null) {\n\t throw \"Missing the required parameter 'sessionId' when calling getSession\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'sessionId': sessionId\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Session;\n\t\n\t return this.apiClient.callApi(\n\t '/sessions/{sessionId}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2), __webpack_require__(4), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/DirEntry'), require('../model/Stats'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.WfsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError, DirEntry, Stats) {\n\t 'use strict';\n\t\n\t /**\n\t * Wfs service.\n\t * @module api/WfsApi\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new WfsApi. \n\t * @alias module:api/WfsApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the copy operation.\n\t * @callback module:api/WfsApi~copyCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, copying a file to directory always returns error and vice versa. this operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed. When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. \n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {String} srcPath source data path of some operations, with have heading /\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n\t * @param {Boolean} opts.followSymbolicLinks dereference symlinks in source. (default to false)\n\t * @param {Boolean} opts.preserveTimestamps keep mtime/atime of source file(s) in destination. (default to false)\n\t * @param {module:api/WfsApi~copyCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.copy = function(wfsId, wfsPath, srcPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling copy\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling copy\";\n\t }\n\t\n\t // verify the required parameter 'srcPath' is set\n\t if (srcPath == undefined || srcPath == null) {\n\t throw \"Missing the required parameter 'srcPath' when calling copy\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'srcPath': srcPath,\n\t 'noOverwrite': opts['noOverwrite'],\n\t 'followSymbolicLinks': opts['followSymbolicLinks'],\n\t 'preserveTimestamps': opts['preserveTimestamps']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the createDir operation.\n\t * @callback module:api/WfsApi~createDirCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * create a directory at the path. returns error when wfsPath exists and not empty this API always creates parent directories if needed. \n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {module:api/WfsApi~createDirCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.createDir = function(wfsId, wfsPath, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling createDir\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling createDir\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/dir/{wfsPath}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the dirTree operation.\n\t * @callback module:api/WfsApi~dirTreeCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/DirEntry} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * returns a directory tree of given path, for listing dir and managing file system errors while building sub-tree will be ignored and will not be included in result. \n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {Integer} maxDepth Maximum depth of tree. -1 to build a full tree, 0 to stat, 1 to plain list.\n\t * @param {module:api/WfsApi~dirTreeCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/DirEntry}\n\t */\n\t this.dirTree = function(wfsId, wfsPath, maxDepth, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling dirTree\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling dirTree\";\n\t }\n\t\n\t // verify the required parameter 'maxDepth' is set\n\t if (maxDepth == undefined || maxDepth == null) {\n\t throw \"Missing the required parameter 'maxDepth' when calling dirTree\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'maxDepth': maxDepth\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = DirEntry;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/dir/{wfsPath}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the move operation.\n\t * @callback module:api/WfsApi~moveCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Moves source resource to given path. Unlike mv command, wfsPath always denotes an exact path of the resource to be created. So, moving a file to existing directory always returns error and vice versa. (So, This API works like 'rename' rather than 'mv' command) Like copy(), this operation creates parent path of destination, and does not roll-back when operation failes. When destination path exists already, 1) moving file to file : follows noOverwrite flag. 2) moving file to dir : returns 409 error 3) moving dir to file : returns 409 error 4) moving dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. \n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {String} srcPath source data path of some operations, with have heading /\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n\t * @param {module:api/WfsApi~moveCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.move = function(wfsId, wfsPath, srcPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling move\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling move\";\n\t }\n\t\n\t // verify the required parameter 'srcPath' is set\n\t if (srcPath == undefined || srcPath == null) {\n\t throw \"Missing the required parameter 'srcPath' when calling move\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'srcPath': srcPath,\n\t 'noOverwrite': opts['noOverwrite']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the readFile operation.\n\t * @callback module:api/WfsApi~readFileCallback\n\t * @param {String} error Error message, if any.\n\t * @param {File} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * read file data on path\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {module:api/WfsApi~readFileCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {File}\n\t */\n\t this.readFile = function(wfsId, wfsPath, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling readFile\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling readFile\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = File;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/file/{wfsPath}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the remove operation.\n\t * @callback module:api/WfsApi~removeCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * delete file or directory\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.noRecursive if set, deleting non-empty directory will return 409 error. (default to false)\n\t * @param {module:api/WfsApi~removeCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.remove = function(wfsId, wfsPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling remove\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling remove\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'noRecursive': opts['noRecursive']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the stat operation.\n\t * @callback module:api/WfsApi~statCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Stats} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Get stats of given path. (stat() returns \\"stats\\" object in node and POSIX system) Since we've no ctime/atime in Stats class, some file system changing events will send 'exactly same' stats object. This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system. \n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ignoreError flag to ignore stat errors to check existence only. If this flag is true, server will returns 'DUMMY' type stats object instead of 404 error when given path does not exists. (invalid wfsId will produce 400 error, not 404) (default to false)\n\t * @param {module:api/WfsApi~statCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Stats}\n\t */\n\t this.stat = function(wfsId, wfsPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling stat\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling stat\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'ignoreError': opts['ignoreError']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Stats;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the writeFile operation.\n\t * @callback module:api/WfsApi~writeFileCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates / updates file with body data. Server should write the file in 'atomic' manner, and should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written. \n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n\t * @param {File} data file contents to write.\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ensureParents A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but creates to 'parent directory' of the path. (default to false)\n\t * @param {module:api/WfsApi~writeFileCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.writeFile = function(wfsId, wfsPath, data, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling writeFile\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling writeFile\";\n\t }\n\t\n\t // verify the required parameter 'data' is set\n\t if (data == undefined || data == null) {\n\t throw \"Missing the required parameter 'data' when calling writeFile\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'ensureParents': opts['ensureParents']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t 'data': data\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['multipart/form-data'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/file/{wfsPath}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2), __webpack_require__(15), __webpack_require__(7), __webpack_require__(9), __webpack_require__(10)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Workspace'), require('../model/ChildProcess'), require('../model/Execution'), require('../model/ExecutionResult'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.WorkspaceApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Workspace, root.WebidaRestfulApi.ChildProcess, root.WebidaRestfulApi.Execution, root.WebidaRestfulApi.ExecutionResult);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError, Workspace, ChildProcess, Execution, ExecutionResult) {\n\t 'use strict';\n\t\n\t /**\n\t * Workspace service.\n\t * @module api/WorkspaceApi\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new WorkspaceApi. \n\t * @alias module:api/WorkspaceApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the cancel operation.\n\t * @callback module:api/WorkspaceApi~cancelCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * cancels an execution, if possible. Killing process may not be graceful. requires proper access rights. if execId is not specified, this api does nothing. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {Object} opts Optional parameters\n\t * @param {String} opts.execId the id of execution request(different from pid!)\n\t * @param {module:api/WorkspaceApi~cancelCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.cancel = function(workspaceId, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling cancel\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'execId': opts['execId']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}/exec', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the createWorkspace operation.\n\t * @callback module:api/WorkspaceApi~createWorkspaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Workspace} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates a new workspace with given local path. Requires an unrestricted access token. \n\t * @param {String} localPath a real, local path of the system (not unixified)\n\t * @param {String} name workspace name property\n\t * @param {String} description workspace name property\n\t * @param {module:api/WorkspaceApi~createWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Workspace}\n\t */\n\t this.createWorkspace = function(localPath, name, description, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'localPath' is set\n\t if (localPath == undefined || localPath == null) {\n\t throw \"Missing the required parameter 'localPath' when calling createWorkspace\";\n\t }\n\t\n\t // verify the required parameter 'name' is set\n\t if (name == undefined || name == null) {\n\t throw \"Missing the required parameter 'name' when calling createWorkspace\";\n\t }\n\t\n\t // verify the required parameter 'description' is set\n\t if (description == undefined || description == null) {\n\t throw \"Missing the required parameter 'description' when calling createWorkspace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t 'localPath': localPath,\n\t 'name': name,\n\t 'description': description\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Workspace;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the exec operation.\n\t * @callback module:api/WorkspaceApi~execCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/ExecutionResult} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * execute a shell command on this workspace. requires proper access rights.\n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {module:model/Execution} body \n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.async Spawn a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, with room id /sessions/async-{execId} (default to false)\n\t * @param {module:api/WorkspaceApi~execCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/ExecutionResult}\n\t */\n\t this.exec = function(workspaceId, body, opts, callback) {\n\t opts = opts || {};\n\t var postBody = body;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling exec\";\n\t }\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling exec\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'async': opts['async']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = ExecutionResult;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}/exec', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the findProcs operation.\n\t * @callback module:api/WorkspaceApi~findProcsCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Gets process info, created by async exec request, on this workspace. If execId is set, this op finds a spawned process whose id is matching. If not, all spawned procs will be found. This op does not returns error when no procs found but empty result array. This operation requires proper access rights. (unrestricted or matching workspace id in access token with parameter) \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {Object} opts Optional parameters\n\t * @param {String} opts.execId the id of execution request(different from pid!)\n\t * @param {module:api/WorkspaceApi~findProcsCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findProcs = function(workspaceId, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling findProcs\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'execId': opts['execId']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = [];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [ChildProcess];\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}/exec', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the findWorkspaces operation.\n\t * @callback module:api/WorkspaceApi~findWorkspacesCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Finds workspaces (no find/search parameters yet). Requires an unrestricted access token. \n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.disposable include disposable workspaces or not (default to false)\n\t * @param {module:api/WorkspaceApi~findWorkspacesCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findWorkspaces = function(opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t 'disposable': opts['disposable']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [Workspace];\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the getWorkspace operation.\n\t * @callback module:api/WorkspaceApi~getWorkspaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Workspace} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * get a workspace object by id\n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {module:api/WorkspaceApi~getWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Workspace}\n\t */\n\t this.getWorkspace = function(workspaceId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling getWorkspace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Workspace;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the removeWorkspace operation.\n\t * @callback module:api/WorkspaceApi~removeWorkspaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Workspace} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * This operation will remove the requested workspace when 1) all sessions are closed for request (will be notified by server) 2) excedded time limit value in closeAfter parameter 3) server goes down after accepting remove request \\"willBeRemovedAt\\" property can be set \\"only\\" by this api. This API requires \\"unrestricted\\" access token. Even an access token has matching workspace id, removing an workspace is rejected. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {Object} opts Optional parameters\n\t * @param {Integer} opts.closeAfter Time in seconds to wait for all sessions save & close their data. (default to 0)\n\t * @param {module:api/WorkspaceApi~removeWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Workspace}\n\t */\n\t this.removeWorkspace = function(workspaceId, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling removeWorkspace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'closeAfter': opts['closeAfter']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Workspace;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the updateWorkspace operation.\n\t * @callback module:api/WorkspaceApi~updateWorkspaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Workspace} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Updates workspace. Some protected properties will not be changed by this api. Requires proper access rights in access token. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {module:api/WorkspaceApi~updateWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Workspace}\n\t */\n\t this.updateWorkspace = function(workspaceId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling updateWorkspace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Workspace;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.5.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Match = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Match model module.\n\t * @module model/Match\n\t * @version 0.5.0\n\t */\n\t\n\t /**\n\t * Constructs a new Match
.\n\t * search result for a file\n\t * @alias module:model/Match\n\t * @class\n\t * @param line {Integer} \n\t * @param text {String} \n\t */\n\t var exports = function(line, text) {\n\t var _this = this;\n\t\n\t _this['line'] = line;\n\t _this['text'] = text;\n\t };\n\t\n\t /**\n\t * Constructs a Match
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Match} obj Optional instance to populate.\n\t * @return {module:model/Match} The populated Match
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('line')) {\n\t obj['line'] = ApiClient.convertToType(data['line'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('text')) {\n\t obj['text'] = ApiClient.convertToType(data['text'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {Integer} line\n\t */\n\t exports.prototype['line'] = undefined;\n\t /**\n\t * @member {String} text\n\t */\n\t exports.prototype['text'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ }\n/******/ ])});;\n\n\n/** WEBPACK FOOTER **\n ** api-bundle.js\n **/"," \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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4b6a8bfdb707c6e84796\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/ChildProcess', 'model/Credential', 'model/DirEntry', 'model/Execution', 'model/ExecutionResult', 'model/Match', 'model/RemoteAccess', 'model/RestError', 'model/RestOK', 'model/Session', 'model/Stats', 'model/Token', 'model/User', 'model/Workspace', 'api/AuthApi', 'api/OpsApi', 'api/RemotesApi', 'api/SessionApi', 'api/WfsApi', 'api/WorkspaceApi'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('./ApiClient'), require('./model/ChildProcess'), require('./model/Credential'), require('./model/DirEntry'), require('./model/Execution'), require('./model/ExecutionResult'), require('./model/Match'), require('./model/RemoteAccess'), require('./model/RestError'), require('./model/RestOK'), require('./model/Session'), require('./model/Stats'), require('./model/Token'), require('./model/User'), require('./model/Workspace'), require('./api/AuthApi'), require('./api/OpsApi'), require('./api/RemotesApi'), require('./api/SessionApi'), require('./api/WfsApi'), require('./api/WorkspaceApi'));\n }\n}(function(ApiClient, ChildProcess, Credential, DirEntry, Execution, ExecutionResult, Match, RemoteAccess, RestError, RestOK, Session, Stats, Token, User, Workspace, AuthApi, OpsApi, RemotesApi, SessionApi, WfsApi, WorkspaceApi) {\n 'use strict';\n\n /**\n * Restful_API_for_Webida_clients_to_use_servers_data__features.
\n * The index
module provides access to constructors for all the classes which comprise the public API.\n * \n * An AMD (recommended!) or CommonJS application will generally do something equivalent to the following:\n *
\n * var WebidaRestfulApi = require('index'); // See note below*.\n * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n * var yyyModel = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n * yyyModel.someProperty = 'someValue';\n * ...\n * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n * ...\n *
\n * *NOTE: For a top-level AMD script, use require(['index'], function(){...})\n * and put the application logic within the callback function.\n * \n * \n * A non-AMD browser application (discouraged) might do something like this:\n *
\n * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n * var yyy = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n * yyyModel.someProperty = 'someValue';\n * ...\n * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n * ...\n *
\n * \n * @module index\n * @version 0.5.0\n */\n var exports = {\n /**\n * The ApiClient constructor.\n * @property {module:ApiClient}\n */\n ApiClient: ApiClient,\n /**\n * The ChildProcess model constructor.\n * @property {module:model/ChildProcess}\n */\n ChildProcess: ChildProcess,\n /**\n * The Credential model constructor.\n * @property {module:model/Credential}\n */\n Credential: Credential,\n /**\n * The DirEntry model constructor.\n * @property {module:model/DirEntry}\n */\n DirEntry: DirEntry,\n /**\n * The Execution model constructor.\n * @property {module:model/Execution}\n */\n Execution: Execution,\n /**\n * The ExecutionResult model constructor.\n * @property {module:model/ExecutionResult}\n */\n ExecutionResult: ExecutionResult,\n /**\n * The Match model constructor.\n * @property {module:model/Match}\n */\n Match: Match,\n /**\n * The RemoteAccess model constructor.\n * @property {module:model/RemoteAccess}\n */\n RemoteAccess: RemoteAccess,\n /**\n * The RestError model constructor.\n * @property {module:model/RestError}\n */\n RestError: RestError,\n /**\n * The RestOK model constructor.\n * @property {module:model/RestOK}\n */\n RestOK: RestOK,\n /**\n * The Session model constructor.\n * @property {module:model/Session}\n */\n Session: Session,\n /**\n * The Stats model constructor.\n * @property {module:model/Stats}\n */\n Stats: Stats,\n /**\n * The Token model constructor.\n * @property {module:model/Token}\n */\n Token: Token,\n /**\n * The User model constructor.\n * @property {module:model/User}\n */\n User: User,\n /**\n * The Workspace model constructor.\n * @property {module:model/Workspace}\n */\n Workspace: Workspace,\n /**\n * The AuthApi service constructor.\n * @property {module:api/AuthApi}\n */\n AuthApi: AuthApi,\n /**\n * The OpsApi service constructor.\n * @property {module:api/OpsApi}\n */\n OpsApi: OpsApi,\n /**\n * The RemotesApi service constructor.\n * @property {module:api/RemotesApi}\n */\n RemotesApi: RemotesApi,\n /**\n * The SessionApi service constructor.\n * @property {module:api/SessionApi}\n */\n SessionApi: SessionApi,\n /**\n * The WfsApi service constructor.\n * @property {module:api/WfsApi}\n */\n WfsApi: WfsApi,\n /**\n * The WorkspaceApi service constructor.\n * @property {module:api/WorkspaceApi}\n */\n WorkspaceApi: WorkspaceApi\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/index.js\n ** module id = 0\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['superagent'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('superagent'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.ApiClient = factory(root.superagent);\n }\n}(this, function(superagent) {\n 'use strict';\n\n /**\n * @module ApiClient\n * @version 0.5.0\n */\n\n /**\n * Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an\n * application to use this class directly - the *Api and model classes provide the public API for the service. The\n * contents of this file should be regarded as internal but are documented for completeness.\n * @alias module:ApiClient\n * @class\n */\n var exports = function() {\n /**\n * The base URL against which to resolve every API call's (relative) path.\n * @type {String}\n * @default https://localhost/api\n */\n this.basePath = 'https://localhost/api'.replace(/\\/+$/, '');\n\n /**\n * The authentication methods to be included for all API calls.\n * @type {Array.}\n */\n this.authentications = {\n 'webida-simple-auth': {type: 'apiKey', 'in': 'header', name: 'Authorization'}\n };\n /**\n * The default HTTP headers to be included for all API calls.\n * @type {Array.}\n * @default {}\n */\n this.defaultHeaders = {};\n\n /**\n * The default HTTP timeout for all API calls.\n * @type {Number}\n * @default 60000\n */\n this.timeout = 60000;\n };\n\n /**\n * Returns a string representation for an actual parameter.\n * @param param The actual parameter.\n * @returns {String} The string representation of param
.\n */\n exports.prototype.paramToString = function(param) {\n if (param == undefined || param == null) {\n return '';\n }\n if (param instanceof Date) {\n return param.toJSON();\n }\n return param.toString();\n };\n\n /**\n * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values.\n * NOTE: query parameters are not handled here.\n * @param {String} path The path to append to the base URL.\n * @param {Object} pathParams The parameter values to append.\n * @returns {String} The encoded path with parameter values substituted.\n */\n exports.prototype.buildUrl = function(path, pathParams) {\n if (!path.match(/^\\//)) {\n path = '/' + path;\n }\n var url = this.basePath + path;\n var _this = this;\n url = url.replace(/\\{([\\w-]+)\\}/g, function(fullMatch, key) {\n var value;\n if (pathParams.hasOwnProperty(key)) {\n value = _this.paramToString(pathParams[key]);\n } else {\n value = fullMatch;\n }\n return encodeURIComponent(value);\n });\n return url;\n };\n\n /**\n * Checks whether the given content type represents JSON.
\n * JSON content type examples:
\n * \n * - application/json
\n * - application/json; charset=UTF8
\n * - APPLICATION/JSON
\n *
\n * @param {String} contentType The MIME content type to check.\n * @returns {Boolean} true
if contentType
represents JSON, otherwise false
.\n */\n exports.prototype.isJsonMime = function(contentType) {\n return Boolean(contentType != null && contentType.match(/^application\\/json(;.*)?$/i));\n };\n\n /**\n * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first.\n * @param {Array.} contentTypes\n * @returns {String} The chosen content type, preferring JSON.\n */\n exports.prototype.jsonPreferredMime = function(contentTypes) {\n for (var i = 0; i < contentTypes.length; i++) {\n if (this.isJsonMime(contentTypes[i])) {\n return contentTypes[i];\n }\n }\n return contentTypes[0];\n };\n\n /**\n * Checks whether the given parameter value represents file-like content.\n * @param param The parameter to check.\n * @returns {Boolean} true
if param
represents a file. \n */\n exports.prototype.isFileParam = function(param) {\n // fs.ReadStream in Node.js (but not in runtime like browserify)\n if (typeof window === 'undefined' &&\n typeof require === 'function' &&\n require('fs') &&\n param instanceof require('fs').ReadStream) {\n return true;\n }\n // Buffer in Node.js\n if (typeof Buffer === 'function' && param instanceof Buffer) {\n return true;\n }\n // Blob in browser\n if (typeof Blob === 'function' && param instanceof Blob) {\n return true;\n }\n // File in browser (it seems File object is also instance of Blob, but keep this for safe)\n if (typeof File === 'function' && param instanceof File) {\n return true;\n }\n return false;\n };\n\n /**\n * Normalizes parameter values:\n * \n * - remove nils
\n * - keep files and arrays
\n * - format to string with `paramToString` for other cases
\n *
\n * @param {Object.} params The parameters as object properties.\n * @returns {Object.} normalized parameters.\n */\n exports.prototype.normalizeParams = function(params) {\n var newParams = {};\n for (var key in params) {\n if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) {\n var value = params[key];\n if (this.isFileParam(value) || Array.isArray(value)) {\n newParams[key] = value;\n } else {\n newParams[key] = this.paramToString(value);\n }\n }\n }\n return newParams;\n };\n\n /**\n * Enumeration of collection format separator strategies.\n * @enum {String} \n * @readonly\n */\n exports.CollectionFormatEnum = {\n /**\n * Comma-separated values. Value: csv
\n * @const\n */\n CSV: ',',\n /**\n * Space-separated values. Value: ssv
\n * @const\n */\n SSV: ' ',\n /**\n * Tab-separated values. Value: tsv
\n * @const\n */\n TSV: '\\t',\n /**\n * Pipe(|)-separated values. Value: pipes
\n * @const\n */\n PIPES: '|',\n /**\n * Native array. Value: multi
\n * @const\n */\n MULTI: 'multi'\n };\n\n /**\n * Builds a string representation of an array-type actual parameter, according to the given collection format.\n * @param {Array} param An array parameter.\n * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy.\n * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns\n * param
as is if collectionFormat
is multi
.\n */\n exports.prototype.buildCollectionParam = function buildCollectionParam(param, collectionFormat) {\n if (param == null) {\n return null;\n }\n switch (collectionFormat) {\n case 'csv':\n return param.map(this.paramToString).join(',');\n case 'ssv':\n return param.map(this.paramToString).join(' ');\n case 'tsv':\n return param.map(this.paramToString).join('\\t');\n case 'pipes':\n return param.map(this.paramToString).join('|');\n case 'multi':\n // return the array directly as SuperAgent will handle it as expected\n return param.map(this.paramToString);\n default:\n throw new Error('Unknown collection format: ' + collectionFormat);\n }\n };\n\n /**\n * Applies authentication headers to the request.\n * @param {Object} request The request object created by a superagent()
call.\n * @param {Array.} authNames An array of authentication method names.\n */\n exports.prototype.applyAuthToRequest = function(request, authNames) {\n var _this = this;\n authNames.forEach(function(authName) {\n var auth = _this.authentications[authName];\n switch (auth.type) {\n case 'basic':\n if (auth.username || auth.password) {\n request.auth(auth.username || '', auth.password || '');\n }\n break;\n case 'apiKey':\n if (auth.apiKey) {\n var data = {};\n if (auth.apiKeyPrefix) {\n data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey;\n } else {\n data[auth.name] = auth.apiKey;\n }\n if (auth['in'] === 'header') {\n request.set(data);\n } else {\n request.query(data);\n }\n }\n break;\n case 'oauth2':\n if (auth.accessToken) {\n request.set({'Authorization': 'Bearer ' + auth.accessToken});\n }\n break;\n default:\n throw new Error('Unknown authentication type: ' + auth.type);\n }\n });\n };\n\n /**\n * Deserializes an HTTP response body into a value of the specified type.\n * @param {Object} response A SuperAgent response object.\n * @param {(String|Array.|Object.|Function)} returnType The type to return. Pass a string for simple types\n * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n * all properties on data will be converted to this type.\n * @returns A value of the specified type.\n */\n exports.prototype.deserialize = function deserialize(response, returnType) {\n if (response == null || returnType == null) {\n return null;\n }\n // Rely on SuperAgent for parsing response body.\n // See http://visionmedia.github.io/superagent/#parsing-response-bodies\n var data = response.body;\n if (data == null) {\n // SuperAgent does not always produce a body; use the unparsed response as a fallback\n data = response.text;\n }\n return exports.convertToType(data, returnType);\n };\n\n /**\n * Callback function to receive the result of the operation.\n * @callback module:ApiClient~callApiCallback\n * @param {String} error Error message, if any.\n * @param data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Invokes the REST service using the supplied settings and parameters.\n * @param {String} path The base URL to invoke.\n * @param {String} httpMethod The HTTP method to use.\n * @param {Object.} pathParams A map of path parameters and their values.\n * @param {Object.} queryParams A map of query parameters and their values.\n * @param {Object.} headerParams A map of header parameters and their values.\n * @param {Object.} formParams A map of form parameters and their values.\n * @param {Object} bodyParam The value to pass as the request body.\n * @param {Array.} authNames An array of authentication type names.\n * @param {Array.} contentTypes An array of request MIME types.\n * @param {Array.} accepts An array of acceptable response MIME types.\n * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the\n * constructor for a complex type.\n * @param {module:ApiClient~callApiCallback} callback The callback function.\n * @returns {Object} The SuperAgent request object.\n */\n exports.prototype.callApi = function callApi(path, httpMethod, pathParams,\n queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts,\n returnType, callback) {\n\n var _this = this;\n var url = this.buildUrl(path, pathParams);\n var request = superagent(httpMethod, url);\n\n // apply authentications\n this.applyAuthToRequest(request, authNames);\n\n // set query parameters\n request.query(this.normalizeParams(queryParams));\n\n // set header parameters\n request.set(this.defaultHeaders).set(this.normalizeParams(headerParams));\n\n // set request timeout\n request.timeout(this.timeout);\n\n var contentType = this.jsonPreferredMime(contentTypes);\n if (contentType !== 'multipart/form-data') {\n if (contentType) {\n request.type(contentType);\n } else if (!request.header['Content-Type']) {\n request.type('application/json');\n }\n }\n\n if (contentType === 'application/x-www-form-urlencoded') {\n request.send(this.normalizeParams(formParams));\n } else if (contentType == 'multipart/form-data') {\n var _formParams = this.normalizeParams(formParams);\n for (var key in _formParams) {\n if (_formParams.hasOwnProperty(key)) {\n if (this.isFileParam(_formParams[key])) {\n // file field\n request.attach(key, _formParams[key]);\n } else {\n request.field(key, _formParams[key]);\n }\n }\n }\n } else if (bodyParam) {\n request.send(bodyParam);\n }\n\n var accept = this.jsonPreferredMime(accepts);\n if (accept) {\n request.accept(accept);\n }\n\n\n request.end(function(error, response) {\n if (callback) {\n var data = null;\n if (!error) {\n data = _this.deserialize(response, returnType);\n }\n callback(error, data, response);\n }\n });\n\n return request;\n };\n\n /**\n * Parses an ISO-8601 string representation of a date value.\n * @param {String} str The date value as a string.\n * @returns {Date} The parsed date object.\n */\n exports.parseDate = function(str) {\n return new Date(str.replace(/T/i, ' '));\n };\n\n /**\n * Converts a value to the specified type.\n * @param {(String|Object)} data The data to convert, as a string or object.\n * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types\n * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n * all properties on data will be converted to this type.\n * @returns An instance of the specified type.\n */\n exports.convertToType = function(data, type) {\n switch (type) {\n case 'Boolean':\n return Boolean(data);\n case 'Integer':\n return parseInt(data, 10);\n case 'Number':\n return parseFloat(data);\n case 'String':\n return String(data);\n case 'Date':\n return this.parseDate(String(data));\n default:\n if (type === Object || type === File) {\n // generic object or Blob - return directly\n return data;\n } else if (typeof type === 'function') {\n if (typeof type.constructFromObject !== 'function') {\n // some manually written models might have no factory function\n return data;\n } else {\n // for model type like: User\n return type.constructFromObject(data);\n }\n } else if (Array.isArray(type)) {\n // for array type like: ['String']\n var itemType = type[0];\n return data.map(function(item) {\n return exports.convertToType(item, itemType);\n });\n } else if (typeof type === 'object') {\n // for plain object type like: {'String': 'Integer'}\n var keyType, valueType;\n for (var k in type) {\n if (type.hasOwnProperty(k)) {\n keyType = k;\n valueType = type[k];\n break;\n }\n }\n var result = {};\n for (var k in data) {\n if (data.hasOwnProperty(k)) {\n var key = exports.convertToType(k, keyType);\n var value = exports.convertToType(data[k], valueType);\n result[key] = value;\n }\n }\n return result;\n } else {\n // for unknown type, return the data directly\n return data;\n }\n }\n };\n\n /**\n * Constructs a new map or array model from REST data.\n * @param data {Object|Array} The REST data.\n * @param obj {Object|Array} The target object or array.\n */\n exports.constructFromObject = function(data, obj, itemType) {\n if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n if (data.hasOwnProperty(i))\n obj[i] = exports.convertToType(data[i], itemType);\n }\n } else {\n for (var k in data) {\n if (data.hasOwnProperty(k))\n obj[k] = exports.convertToType(data[k], itemType);\n }\n }\n };\n\n /**\n * The default API client implementation.\n * @type {module:ApiClient}\n */\n exports.instance = new exports();\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/ApiClient.js\n ** module id = 1\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RestError = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The RestError model module.\n * @module model/RestError\n * @version 0.5.0\n */\n\n /**\n * Constructs a new RestError
.\n * Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code \\"Invalid Argument\\" instead of \\"Conflic\\". So, Client should read message property to know what happend exactly when an error is returned from server. And, some 500 errors can have system errno instead of useless \\"internal\\". Like other errors, details are hidden in message. \n * @alias module:model/RestError\n * @class\n * @param message {String} \n */\n var exports = function(message) {\n var _this = this;\n\n\n _this['message'] = message;\n };\n\n /**\n * Constructs a RestError
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/RestError} obj Optional instance to populate.\n * @return {module:model/RestError} The populated RestError
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('code')) {\n obj['code'] = ApiClient.convertToType(data['code'], 'String');\n }\n if (data.hasOwnProperty('message')) {\n obj['message'] = ApiClient.convertToType(data['message'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {String} code\n */\n exports.prototype['code'] = undefined;\n /**\n * @member {String} message\n */\n exports.prototype['message'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/RestError.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RestOK = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The RestOK model module.\n * @module model/RestOK\n * @version 0.5.0\n */\n\n /**\n * Constructs a new RestOK
.\n * @alias module:model/RestOK\n * @class\n */\n var exports = function() {\n var _this = this;\n\n\n };\n\n /**\n * Constructs a RestOK
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/RestOK} obj Optional instance to populate.\n * @return {module:model/RestOK} The populated RestOK
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('message')) {\n obj['message'] = ApiClient.convertToType(data['message'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {String} message\n */\n exports.prototype['message'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/RestOK.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/DirEntry', 'model/Stats'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('./DirEntry'), require('./Stats'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.DirEntry = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n }\n}(this, function(ApiClient, DirEntry, Stats) {\n 'use strict';\n\n\n\n\n /**\n * The DirEntry model module.\n * @module model/DirEntry\n * @version 0.5.0\n */\n\n /**\n * Constructs a new DirEntry
.\n * a directory entry (file or directory) with children that represents a (sub) tree\n * @alias module:model/DirEntry\n * @class\n * @param name {String} \n * @param stats {module:model/Stats} \n * @param children {Array.} \n */\n var exports = function(name, stats, children) {\n var _this = this;\n\n _this['name'] = name;\n _this['stats'] = stats;\n _this['children'] = children;\n };\n\n /**\n * Constructs a DirEntry
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/DirEntry} obj Optional instance to populate.\n * @return {module:model/DirEntry} The populated DirEntry
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('stats')) {\n obj['stats'] = Stats.constructFromObject(data['stats']);\n }\n if (data.hasOwnProperty('children')) {\n obj['children'] = ApiClient.convertToType(data['children'], [DirEntry]);\n }\n }\n return obj;\n }\n\n /**\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * @member {module:model/Stats} stats\n */\n exports.prototype['stats'] = undefined;\n /**\n * @member {Array.} children\n */\n exports.prototype['children'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/DirEntry.js\n ** module id = 4\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Stats = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Stats model module.\n * @module model/Stats\n * @version 0.5.0\n */\n\n /**\n * Constructs a new Stats
.\n * simplified/augmented fs.Stats class - see node.js doc for all properties\n * @alias module:model/Stats\n * @class\n * @param type {module:model/Stats.TypeEnum} All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user. \n * @param birthtime {Date} \n * @param mtime {Date} \n * @param mode {String} \n * @param size {Integer} \n * @param nlink {Integer} \n */\n var exports = function(type, birthtime, mtime, mode, size, nlink) {\n var _this = this;\n\n _this['type'] = type;\n _this['birthtime'] = birthtime;\n _this['mtime'] = mtime;\n _this['mode'] = mode;\n _this['size'] = size;\n _this['nlink'] = nlink;\n };\n\n /**\n * Constructs a Stats
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Stats} obj Optional instance to populate.\n * @return {module:model/Stats} The populated Stats
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('type')) {\n obj['type'] = ApiClient.convertToType(data['type'], 'String');\n }\n if (data.hasOwnProperty('birthtime')) {\n obj['birthtime'] = ApiClient.convertToType(data['birthtime'], 'Date');\n }\n if (data.hasOwnProperty('mtime')) {\n obj['mtime'] = ApiClient.convertToType(data['mtime'], 'Date');\n }\n if (data.hasOwnProperty('mode')) {\n obj['mode'] = ApiClient.convertToType(data['mode'], 'String');\n }\n if (data.hasOwnProperty('size')) {\n obj['size'] = ApiClient.convertToType(data['size'], 'Integer');\n }\n if (data.hasOwnProperty('nlink')) {\n obj['nlink'] = ApiClient.convertToType(data['nlink'], 'Integer');\n }\n }\n return obj;\n }\n\n /**\n * All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user. \n * @member {module:model/Stats.TypeEnum} type\n */\n exports.prototype['type'] = undefined;\n /**\n * @member {Date} birthtime\n */\n exports.prototype['birthtime'] = undefined;\n /**\n * @member {Date} mtime\n */\n exports.prototype['mtime'] = undefined;\n /**\n * @member {String} mode\n */\n exports.prototype['mode'] = undefined;\n /**\n * @member {Integer} size\n */\n exports.prototype['size'] = undefined;\n /**\n * @member {Integer} nlink\n */\n exports.prototype['nlink'] = undefined;\n\n\n /**\n * Allowed values for the type
property.\n * @enum {String}\n * @readonly\n */\n exports.TypeEnum = {\n /**\n * value: \"FILE\"\n * @const\n */\n \"FILE\": \"FILE\",\n /**\n * value: \"DIRECTORY\"\n * @const\n */\n \"DIRECTORY\": \"DIRECTORY\",\n /**\n * value: \"BLOCK_DEVICE\"\n * @const\n */\n \"BLOCK_DEVICE\": \"BLOCK_DEVICE\",\n /**\n * value: \"CHARACTER_DEVICE\"\n * @const\n */\n \"CHARACTER_DEVICE\": \"CHARACTER_DEVICE\",\n /**\n * value: \"LINK\"\n * @const\n */\n \"LINK\": \"LINK\",\n /**\n * value: \"FIFO\"\n * @const\n */\n \"FIFO\": \"FIFO\",\n /**\n * value: \"SOCKET\"\n * @const\n */\n \"SOCKET\": \"SOCKET\",\n /**\n * value: \"DUMMY\"\n * @const\n */\n \"DUMMY\": \"DUMMY\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Stats.js\n ** module id = 5\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.ChildProcess = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The ChildProcess model module.\n * @module model/ChildProcess\n * @version 0.5.0\n */\n\n /**\n * Constructs a new ChildProcess
.\n * a process in execution, spawned by async exec or other mean\n * @alias module:model/ChildProcess\n * @class\n * @param pid {Integer} child process pid\n * @param command {String} execution command in execution request\n * @param args {Array.} arguments of command in execution request\n * @param execId {String} execution id from execution request\n * @param state {module:model/ChildProcess.StateEnum} state of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n * @param startedAt {Date} the time when this process is spawned\n */\n var exports = function(pid, command, args, execId, state, startedAt) {\n var _this = this;\n\n _this['pid'] = pid;\n _this['command'] = command;\n _this['args'] = args;\n _this['execId'] = execId;\n _this['state'] = state;\n _this['startedAt'] = startedAt;\n\n\n };\n\n /**\n * Constructs a ChildProcess
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/ChildProcess} obj Optional instance to populate.\n * @return {module:model/ChildProcess} The populated ChildProcess
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('pid')) {\n obj['pid'] = ApiClient.convertToType(data['pid'], 'Integer');\n }\n if (data.hasOwnProperty('command')) {\n obj['command'] = ApiClient.convertToType(data['command'], 'String');\n }\n if (data.hasOwnProperty('args')) {\n obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n }\n if (data.hasOwnProperty('execId')) {\n obj['execId'] = ApiClient.convertToType(data['execId'], 'String');\n }\n if (data.hasOwnProperty('state')) {\n obj['state'] = ApiClient.convertToType(data['state'], 'String');\n }\n if (data.hasOwnProperty('startedAt')) {\n obj['startedAt'] = ApiClient.convertToType(data['startedAt'], 'Date');\n }\n if (data.hasOwnProperty('exitCode')) {\n obj['exitCode'] = ApiClient.convertToType(data['exitCode'], 'Integer');\n }\n if (data.hasOwnProperty('exitSignal')) {\n obj['exitSignal'] = ApiClient.convertToType(data['exitSignal'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * child process pid\n * @member {Integer} pid\n */\n exports.prototype['pid'] = undefined;\n /**\n * execution command in execution request\n * @member {String} command\n */\n exports.prototype['command'] = undefined;\n /**\n * arguments of command in execution request\n * @member {Array.} args\n */\n exports.prototype['args'] = undefined;\n /**\n * execution id from execution request\n * @member {String} execId\n */\n exports.prototype['execId'] = undefined;\n /**\n * state of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n * @member {module:model/ChildProcess.StateEnum} state\n */\n exports.prototype['state'] = undefined;\n /**\n * the time when this process is spawned\n * @member {Date} startedAt\n */\n exports.prototype['startedAt'] = undefined;\n /**\n * the exit code of child process. available with EXITED procs only.\n * @member {Integer} exitCode\n */\n exports.prototype['exitCode'] = undefined;\n /**\n * the signal that killed this child process.(not always available)\n * @member {String} exitSignal\n */\n exports.prototype['exitSignal'] = undefined;\n\n\n /**\n * Allowed values for the state
property.\n * @enum {String}\n * @readonly\n */\n exports.StateEnum = {\n /**\n * value: \"CREATED\"\n * @const\n */\n \"CREATED\": \"CREATED\",\n /**\n * value: \"WORKING\"\n * @const\n */\n \"WORKING\": \"WORKING\",\n /**\n * value: \"KILLING\"\n * @const\n */\n \"KILLING\": \"KILLING\",\n /**\n * value: \"EXITED\"\n * @const\n */\n \"EXITED\": \"EXITED\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/ChildProcess.js\n ** module id = 7\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Credential = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Credential model module.\n * @module model/Credential\n * @version 0.5.0\n */\n\n /**\n * Constructs a new Credential
.\n * user credential to login. Use https to protect credential.\n * @alias module:model/Credential\n * @class\n * @param loginId {String} \n * @param loginPassword {String} \n */\n var exports = function(loginId, loginPassword) {\n var _this = this;\n\n _this['loginId'] = loginId;\n _this['loginPassword'] = loginPassword;\n\n };\n\n /**\n * Constructs a Credential
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Credential} obj Optional instance to populate.\n * @return {module:model/Credential} The populated Credential
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('loginId')) {\n obj['loginId'] = ApiClient.convertToType(data['loginId'], 'String');\n }\n if (data.hasOwnProperty('loginPassword')) {\n obj['loginPassword'] = ApiClient.convertToType(data['loginPassword'], 'String');\n }\n if (data.hasOwnProperty('masterToken')) {\n obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {String} loginId\n */\n exports.prototype['loginId'] = undefined;\n /**\n * @member {String} loginPassword\n */\n exports.prototype['loginPassword'] = undefined;\n /**\n * a master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password, non-empty. (The values can be used to identify client type) \n * @member {String} masterToken\n */\n exports.prototype['masterToken'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Credential.js\n ** module id = 8\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Execution = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Execution model module.\n * @module model/Execution\n * @version 0.5.0\n */\n\n /**\n * Constructs a new Execution
.\n * execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability - encoding : fixed to utf-8 - shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.) - killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed. - uid & gid : will not be set for security - stdio : all streams are handled by server. no options are avaliable to client. - detached : always false \n * @alias module:model/Execution\n * @class\n * @param command {String} The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any 'specific shell' in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating additional console device while running service for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some '.sh' file to run, it must provide '.cmd' file doing same thing, always. \n * @param args {Array.} the arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n */\n var exports = function(command, args) {\n var _this = this;\n\n\n _this['command'] = command;\n _this['args'] = args;\n\n\n\n };\n\n /**\n * Constructs a Execution
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Execution} obj Optional instance to populate.\n * @return {module:model/Execution} The populated Execution
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('command')) {\n obj['command'] = ApiClient.convertToType(data['command'], 'String');\n }\n if (data.hasOwnProperty('args')) {\n obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n }\n if (data.hasOwnProperty('cwd')) {\n obj['cwd'] = ApiClient.convertToType(data['cwd'], 'String');\n }\n if (data.hasOwnProperty('timeout')) {\n obj['timeout'] = ApiClient.convertToType(data['timeout'], 'Integer');\n }\n if (data.hasOwnProperty('maxBuffer')) {\n obj['maxBuffer'] = ApiClient.convertToType(data['maxBuffer'], 'Integer');\n }\n }\n return obj;\n }\n\n /**\n * unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id. \n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any 'specific shell' in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating additional console device while running service for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some '.sh' file to run, it must provide '.cmd' file doing same thing, always. \n * @member {String} command\n */\n exports.prototype['command'] = undefined;\n /**\n * the arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n * @member {Array.} args\n */\n exports.prototype['args'] = undefined;\n /**\n * Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an 'absolute' property. \n * @member {String} cwd\n */\n exports.prototype['cwd'] = undefined;\n /**\n * The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked \n * @member {Integer} timeout\n */\n exports.prototype['timeout'] = undefined;\n /**\n * Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough. \n * @member {Integer} maxBuffer\n */\n exports.prototype['maxBuffer'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Execution.js\n ** module id = 9\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.ExecutionResult = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The ExecutionResult model module.\n * @module model/ExecutionResult\n * @version 0.5.0\n */\n\n /**\n * Constructs a new ExecutionResult
.\n * execution response\n * @alias module:model/ExecutionResult\n * @class\n * @param stdout {String} standard out of child process.\n * @param stderr {String} standard error of child process.\n */\n var exports = function(stdout, stderr) {\n var _this = this;\n\n\n _this['stdout'] = stdout;\n _this['stderr'] = stderr;\n };\n\n /**\n * Constructs a ExecutionResult
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/ExecutionResult} obj Optional instance to populate.\n * @return {module:model/ExecutionResult} The populated ExecutionResult
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('error')) {\n obj['error'] = ApiClient.convertToType(data['error'], 'String');\n }\n if (data.hasOwnProperty('stdout')) {\n obj['stdout'] = ApiClient.convertToType(data['stdout'], 'String');\n }\n if (data.hasOwnProperty('stderr')) {\n obj['stderr'] = ApiClient.convertToType(data['stderr'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * error message when execution failed.\n * @member {String} error\n */\n exports.prototype['error'] = undefined;\n /**\n * standard out of child process.\n * @member {String} stdout\n */\n exports.prototype['stdout'] = undefined;\n /**\n * standard error of child process.\n * @member {String} stderr\n */\n exports.prototype['stderr'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/ExecutionResult.js\n ** module id = 10\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RemoteAccess = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The RemoteAccess model module.\n * @module model/RemoteAccess\n * @version 0.5.0\n */\n\n /**\n * Constructs a new RemoteAccess
.\n * Access information of remote workspace in remote server\n * @alias module:model/RemoteAccess\n * @class\n * @param name {String} display text of remote workspace. can be different from original name. \n * @param serverUrl {String} the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path. \n * @param workspaceId {String} the id of remote workspace, read from remote server\n * @param masterToken {String} master token to access service, issued from remote server\n */\n var exports = function(name, serverUrl, workspaceId, masterToken) {\n var _this = this;\n\n _this['name'] = name;\n _this['serverUrl'] = serverUrl;\n _this['workspaceId'] = workspaceId;\n\n _this['masterToken'] = masterToken;\n };\n\n /**\n * Constructs a RemoteAccess
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/RemoteAccess} obj Optional instance to populate.\n * @return {module:model/RemoteAccess} The populated RemoteAccess
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('serverUrl')) {\n obj['serverUrl'] = ApiClient.convertToType(data['serverUrl'], 'String');\n }\n if (data.hasOwnProperty('workspaceId')) {\n obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n }\n if (data.hasOwnProperty('workspacePath')) {\n obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n }\n if (data.hasOwnProperty('masterToken')) {\n obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * display text of remote workspace. can be different from original name. \n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path. \n * @member {String} serverUrl\n */\n exports.prototype['serverUrl'] = undefined;\n /**\n * the id of remote workspace, read from remote server\n * @member {String} workspaceId\n */\n exports.prototype['workspaceId'] = undefined;\n /**\n * Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \\\"named root directory\\\" in workspace fs tree. \n * @member {String} workspacePath\n */\n exports.prototype['workspacePath'] = undefined;\n /**\n * master token to access service, issued from remote server\n * @member {String} masterToken\n */\n exports.prototype['masterToken'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/RemoteAccess.js\n ** module id = 11\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Session = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Session model module.\n * @module model/Session\n * @version 0.5.0\n */\n\n /**\n * Constructs a new Session
.\n * an application session per ide instance. bound to access token\n * @alias module:model/Session\n * @class\n * @param id {String} the id of a session. usually same to socket id.\n * @param name {String} human readable name, usually derived from workspace name.\n * @param state {module:model/Session.StateEnum} state of this session NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) there\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n * @param clientAddress {String} the peer address of session connection. not always\n * @param connectedAt {Date} the time when socket connection is established\n * @param disconnectedAt {Date} the time when socket is closed.\n */\n var exports = function(id, name, state, clientAddress, connectedAt, disconnectedAt) {\n var _this = this;\n\n _this['id'] = id;\n _this['name'] = name;\n _this['state'] = state;\n\n _this['clientAddress'] = clientAddress;\n _this['connectedAt'] = connectedAt;\n _this['disconnectedAt'] = disconnectedAt;\n\n\n };\n\n /**\n * Constructs a Session
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Session} obj Optional instance to populate.\n * @return {module:model/Session} The populated Session
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('state')) {\n obj['state'] = ApiClient.convertToType(data['state'], 'String');\n }\n if (data.hasOwnProperty('workspaceId')) {\n obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n }\n if (data.hasOwnProperty('clientAddress')) {\n obj['clientAddress'] = ApiClient.convertToType(data['clientAddress'], 'String');\n }\n if (data.hasOwnProperty('connectedAt')) {\n obj['connectedAt'] = ApiClient.convertToType(data['connectedAt'], 'Date');\n }\n if (data.hasOwnProperty('disconnectedAt')) {\n obj['disconnectedAt'] = ApiClient.convertToType(data['disconnectedAt'], 'Date');\n }\n if (data.hasOwnProperty('willCloseAt')) {\n obj['willCloseAt'] = ApiClient.convertToType(data['willCloseAt'], 'Date');\n }\n if (data.hasOwnProperty('willLoseAt')) {\n obj['willLoseAt'] = ApiClient.convertToType(data['willLoseAt'], 'Date');\n }\n }\n return obj;\n }\n\n /**\n * the id of a session. usually same to socket id.\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * human readable name, usually derived from workspace name.\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * state of this session NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) there\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n * @member {module:model/Session.StateEnum} state\n */\n exports.prototype['state'] = undefined;\n /**\n * the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id. \n * @member {String} workspaceId\n */\n exports.prototype['workspaceId'] = undefined;\n /**\n * the peer address of session connection. not always\n * @member {String} clientAddress\n */\n exports.prototype['clientAddress'] = undefined;\n /**\n * the time when socket connection is established\n * @member {Date} connectedAt\n */\n exports.prototype['connectedAt'] = undefined;\n /**\n * the time when socket is closed.\n * @member {Date} disconnectedAt\n */\n exports.prototype['disconnectedAt'] = undefined;\n /**\n * when state becomes CLOSING, actual closing time will be updated by server.\n * @member {Date} willCloseAt\n */\n exports.prototype['willCloseAt'] = undefined;\n /**\n * when state becomes LOSING, server will not wait for reconnection after this time.\n * @member {Date} willLoseAt\n */\n exports.prototype['willLoseAt'] = undefined;\n\n\n /**\n * Allowed values for the state
property.\n * @enum {String}\n * @readonly\n */\n exports.StateEnum = {\n /**\n * value: \"NORMAL\"\n * @const\n */\n \"NORMAL\": \"NORMAL\",\n /**\n * value: \"LOSING\"\n * @const\n */\n \"LOSING\": \"LOSING\",\n /**\n * value: \"CLOSING\"\n * @const\n */\n \"CLOSING\": \"CLOSING\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Session.js\n ** module id = 12\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Token = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Token model module.\n * @module model/Token\n * @version 0.5.0\n */\n\n /**\n * Constructs a new Token
.\n * a json webtoken and accessible data\n * @alias module:model/Token\n * @class\n * @param text {String} actual token text that should be shipped in header or query\n * @param tokenType {module:model/Token.TokenTypeEnum} MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n * @param expiresAt {Date} \n * @param issuedAt {Date} \n */\n var exports = function(text, tokenType, expiresAt, issuedAt) {\n var _this = this;\n\n _this['text'] = text;\n _this['tokenType'] = tokenType;\n _this['expiresAt'] = expiresAt;\n _this['issuedAt'] = issuedAt;\n\n\n };\n\n /**\n * Constructs a Token
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Token} obj Optional instance to populate.\n * @return {module:model/Token} The populated Token
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('text')) {\n obj['text'] = ApiClient.convertToType(data['text'], 'String');\n }\n if (data.hasOwnProperty('tokenType')) {\n obj['tokenType'] = ApiClient.convertToType(data['tokenType'], 'String');\n }\n if (data.hasOwnProperty('expiresAt')) {\n obj['expiresAt'] = ApiClient.convertToType(data['expiresAt'], 'Date');\n }\n if (data.hasOwnProperty('issuedAt')) {\n obj['issuedAt'] = ApiClient.convertToType(data['issuedAt'], 'Date');\n }\n if (data.hasOwnProperty('sessionId')) {\n obj['sessionId'] = ApiClient.convertToType(data['sessionId'], 'String');\n }\n if (data.hasOwnProperty('workspaceId')) {\n obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * actual token text that should be shipped in header or query\n * @member {String} text\n */\n exports.prototype['text'] = undefined;\n /**\n * MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n * @member {module:model/Token.TokenTypeEnum} tokenType\n */\n exports.prototype['tokenType'] = undefined;\n /**\n * @member {Date} expiresAt\n */\n exports.prototype['expiresAt'] = undefined;\n /**\n * @member {Date} issuedAt\n */\n exports.prototype['issuedAt'] = undefined;\n /**\n * mandatory for ACCESS token, identifying client instance\n * @member {String} sessionId\n */\n exports.prototype['sessionId'] = undefined;\n /**\n * If truthy, access rights are restricted to specified workspace only.\n * @member {String} workspaceId\n */\n exports.prototype['workspaceId'] = undefined;\n\n\n /**\n * Allowed values for the tokenType
property.\n * @enum {String}\n * @readonly\n */\n exports.TokenTypeEnum = {\n /**\n * value: \"MASTER\"\n * @const\n */\n \"MASTER\": \"MASTER\",\n /**\n * value: \"ACCESS\"\n * @const\n */\n \"ACCESS\": \"ACCESS\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Token.js\n ** module id = 13\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.User = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The User model module.\n * @module model/User\n * @version 0.5.0\n */\n\n /**\n * Constructs a new User
.\n * Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients. \n * @alias module:model/User\n * @class\n */\n var exports = function() {\n var _this = this;\n\n\n\n\n };\n\n /**\n * Constructs a User
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/User} obj Optional instance to populate.\n * @return {module:model/User} The populated User
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('email')) {\n obj['email'] = ApiClient.convertToType(data['email'], 'String');\n }\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * unique id per user (email is also unique)\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * @member {String} email\n */\n exports.prototype['email'] = undefined;\n /**\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/User.js\n ** module id = 14\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Workspace = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Workspace model module.\n * @module model/Workspace\n * @version 0.5.0\n */\n\n /**\n * Constructs a new Workspace
.\n * A workspace in server\n * @alias module:model/Workspace\n * @class\n * @param id {String} the id of a workspace. usually same to file system id\n * @param name {String} display text of this workspace for UI\n * @param description {String} human readable description on this workspace\n * @param createdAt {Date} the time when this workspace is created (registered from local file system)\n * @param workspacePath {String} absolute path of this workspace in server.\n * @param excludedPaths {Array.} glob patterns (Not regular expression!) or directory paths (Not a file path!) to be excluded for watch service and search & replace operation. If a value has no '*' char, it will be treated as directory path. Like most of operation parameters, paths (and patterns not prefixed with '*') should have relative, unixified form. If not, server should reject or discard the absolute values. If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir events of the dir, but should not deliver any events from its sub-dirs and files. Search and replace operation should ignore any files under the directory. If path denotes a file, server may reject or discard the path. Server should support basic glob pattern, '**' and '*' in the glob pattern but not ! '!' prefix is optional. Client should not register any other extended glob features that server does not support. \n * @param offlineCachePaths {Array.} any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n */\n var exports = function(id, name, description, createdAt, workspacePath, excludedPaths, offlineCachePaths) {\n var _this = this;\n\n _this['id'] = id;\n _this['name'] = name;\n _this['description'] = description;\n _this['createdAt'] = createdAt;\n\n _this['workspacePath'] = workspacePath;\n _this['excludedPaths'] = excludedPaths;\n _this['offlineCachePaths'] = offlineCachePaths;\n };\n\n /**\n * Constructs a Workspace
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Workspace} obj Optional instance to populate.\n * @return {module:model/Workspace} The populated Workspace
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('description')) {\n obj['description'] = ApiClient.convertToType(data['description'], 'String');\n }\n if (data.hasOwnProperty('createdAt')) {\n obj['createdAt'] = ApiClient.convertToType(data['createdAt'], 'Date');\n }\n if (data.hasOwnProperty('accessedAt')) {\n obj['accessedAt'] = ApiClient.convertToType(data['accessedAt'], 'Date');\n }\n if (data.hasOwnProperty('workspacePath')) {\n obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n }\n if (data.hasOwnProperty('excludedPaths')) {\n obj['excludedPaths'] = ApiClient.convertToType(data['excludedPaths'], ['String']);\n }\n if (data.hasOwnProperty('offlineCachePaths')) {\n obj['offlineCachePaths'] = ApiClient.convertToType(data['offlineCachePaths'], ['String']);\n }\n }\n return obj;\n }\n\n /**\n * the id of a workspace. usually same to file system id\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * display text of this workspace for UI\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * human readable description on this workspace\n * @member {String} description\n */\n exports.prototype['description'] = undefined;\n /**\n * the time when this workspace is created (registered from local file system)\n * @member {Date} createdAt\n */\n exports.prototype['createdAt'] = undefined;\n /**\n * the time when the last session on this workspace was made. (optional)\n * @member {Date} accessedAt\n */\n exports.prototype['accessedAt'] = undefined;\n /**\n * absolute path of this workspace in server.\n * @member {String} workspacePath\n */\n exports.prototype['workspacePath'] = undefined;\n /**\n * glob patterns (Not regular expression!) or directory paths (Not a file path!) to be excluded for watch service and search & replace operation. If a value has no '*' char, it will be treated as directory path. Like most of operation parameters, paths (and patterns not prefixed with '*') should have relative, unixified form. If not, server should reject or discard the absolute values. If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir events of the dir, but should not deliver any events from its sub-dirs and files. Search and replace operation should ignore any files under the directory. If path denotes a file, server may reject or discard the path. Server should support basic glob pattern, '**' and '*' in the glob pattern but not ! '!' prefix is optional. Client should not register any other extended glob features that server does not support. \n * @member {Array.} excludedPaths\n */\n exports.prototype['excludedPaths'] = undefined;\n /**\n * any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n * @member {Array.} offlineCachePaths\n */\n exports.prototype['offlineCachePaths'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Workspace.js\n ** module id = 15\n ** module chunks = 0\n **/","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && res.status < 300) {\n return self.callback(err, res);\n }\n\n var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n\n self.callback(new_err, res);\n } catch(e) {\n self.callback(e); // #985 touching res may cause INVALID_STATE_ERR on old Android\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `requestBase`.\n */\n\nEmitter(Request.prototype);\nfor (var key in requestBase) {\n Request.prototype[key] = requestBase[key];\n}\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function(type){\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set responseType to `val`. Presently valid responseTypes are 'blob' and\n * 'arraybuffer'.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.responseType = function(val){\n this._responseType = val;\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function(type){\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} pass\n * @param {Object} options with 'type' property 'auto' or 'basic' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function(user, pass, options){\n if (!options) {\n options = {\n type: 'basic'\n }\n }\n\n switch (options.type) {\n case 'basic':\n var str = btoa(user + ':' + pass);\n this.set('Authorization', 'Basic ' + str);\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n }\n return this;\n};\n\n/**\n* Add query-string `val`.\n*\n* Examples:\n*\n* request.get('/shoes')\n* .query('size=10')\n* .query({ color: 'blue' })\n*\n* @param {Object|String} val\n* @return {Request} for chaining\n* @api public\n*/\n\nRequest.prototype.query = function(val){\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `filename`.\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String} filename\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function(field, file, filename){\n this._getFormData().append(field, file, filename || file.name);\n return this;\n};\n\nRequest.prototype._getFormData = function(){\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function(err, res){\n var fn = this._callback;\n this.clearTimeout();\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function(){\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequest.prototype._timeoutError = function(){\n var timeout = this._timeout;\n var err = new Error('timeout of ' + timeout + 'ms exceeded');\n err.timeout = timeout;\n this.callback(err);\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\nRequest.prototype._appendQueryString = function(){\n var query = this._query.join('&');\n if (query) {\n this.url += ~this.url.indexOf('?')\n ? '&' + query\n : '?' + query;\n }\n};\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function(fn){\n var self = this;\n var xhr = this.xhr = request.getXHR();\n var timeout = this._timeout;\n var data = this._formData || this._data;\n\n // store callback\n this._callback = fn || noop;\n\n // state change\n xhr.onreadystatechange = function(){\n if (4 != xhr.readyState) return;\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try { status = xhr.status } catch(e) { status = 0; }\n\n if (0 == status) {\n if (self.timedout) return self._timeoutError();\n if (self._aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function(e){\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n e.direction = 'download';\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n xhr.onprogress = handleProgress;\n }\n try {\n if (xhr.upload && this.hasListeners('progress')) {\n xhr.upload.onprogress = handleProgress;\n }\n } catch(e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n\n // timeout\n if (timeout && !this._timer) {\n this._timer = setTimeout(function(){\n self.timedout = true;\n self.abort();\n }, timeout);\n }\n\n // querystring\n this._appendQueryString();\n\n // initiate request\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\n\n/**\n * Expose `Request`.\n */\n\nrequest.Request = Request;\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.get = function(url, data, fn){\n var req = request('GET', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.head = function(url, data, fn){\n var req = request('HEAD', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.options = function(url, data, fn){\n var req = request('OPTIONS', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nfunction del(url, fn){\n var req = request('DELETE', url);\n if (fn) req.end(fn);\n return req;\n};\n\nrequest['del'] = del;\nrequest['delete'] = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function(url, data, fn){\n var req = request('PATCH', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.post = function(url, data, fn){\n var req = request('POST', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.put = function(url, data, fn){\n var req = request('PUT', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./is-object\":1,\"./request\":3,\"./request-base\":2,\"emitter\":4,\"reduce\":5}]},{},[6])(6)\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/superagent/superagent.js\n ** module id = 16\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/User', 'model/RestError', 'model/Token', 'model/Credential'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/User'), require('../model/RestError'), require('../model/Token'), require('../model/Credential'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.AuthApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.User, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Token, root.WebidaRestfulApi.Credential);\n }\n}(this, function(ApiClient, User, RestError, Token, Credential) {\n 'use strict';\n\n /**\n * Auth service.\n * @module api/AuthApi\n * @version 0.5.0\n */\n\n /**\n * Constructs a new AuthApi. \n * @alias module:api/AuthApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the getInfo operation.\n * @callback module:api/AuthApi~getInfoCallback\n * @param {String} error Error message, if any.\n * @param {module:model/User} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Gets user information of that can be identified with current access token. Implementations should provide a more restful api based on domain data model, not extending this operation. (e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user) \n * @param {module:api/AuthApi~getInfoCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/User}\n */\n this.getInfo = function(callback) {\n var postBody = null;\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = User;\n\n return this.apiClient.callApi(\n '/auth/info', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the issueToken operation.\n * @callback module:api/AuthApi~issueTokenCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Token} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates new token from current access token, inheriting workspace id & session id. The duration of generated token is (and should not be) parameterizable. Server should set proper duration, respecting \\"reconnect\\" period of socket.io clients. Remember that most of socket.io client implementations (including official js client) do not provide any ways to change connection parameters (header or query) while reconnecting to server. Like login API, this endpoint does not provide any encryption. Server should not set any data to harm security in the token & should provide some signinig/encryption mechanism to protect token. Simple JSON Web Token with HMAC-SHA will do. \n * @param {module:model/String} type \n * @param {Object} opts Optional parameters\n * @param {String} opts.workspaceId recommended to issue a MASTER type token to restrict remote access\n * @param {module:api/AuthApi~issueTokenCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Token}\n */\n this.issueToken = function(type, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'type' is set\n if (type == undefined || type == null) {\n throw \"Missing the required parameter 'type' when calling issueToken\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n 'type': type,\n 'workspaceId': opts['workspaceId']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Token;\n\n return this.apiClient.callApi(\n '/auth/token', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the login operation.\n * @callback module:api/AuthApi~loginCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Token} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * A \\"VERY\\" basic authentication, required to use webida-simple-auth security scheme. Service / Product implementations who need better security, should override this operation or add their own login api or some other specs like OAuth2. Simple auth is not suitable for large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only. Logging-in with master token, the generated access token inherits all restriction from it. On the other hand, normal log-in with login id & password creates an unrestricted access token, with reasonably short expiration time. Every client should spawn another access token with issueToken API before current access token expires, inheriting session id from current token. To save remote access info, client should create a (restricted but long-ttl) master token to start IDE from remote. The remote client should not use the unrestricted acccess token from login to use any other perpose than finding available workspaces, and should not refresh the token. (Let user log-in again) Login API does not force any encryption. Server should provide secure transport channel, usually https, to provide remote access, always. \n * @param {module:model/Credential} body \n * @param {module:api/AuthApi~loginCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Token}\n */\n this.login = function(body, callback) {\n var postBody = body;\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling login\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = [];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Token;\n\n return this.apiClient.callApi(\n '/auth/login', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/AuthApi.js\n ** module id = 17\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.OpsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError);\n }\n}(this, function(ApiClient, RestOK, RestError) {\n 'use strict';\n\n /**\n * Ops service.\n * @module api/OpsApi\n * @version 0.5.0\n */\n\n /**\n * Constructs a new OpsApi. \n * @alias module:api/OpsApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the replace operation.\n * @callback module:api/OpsApi~replaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * replace file contents with regex matching\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {Array.} wfsPathList array of wfsPath, with heading / (collection format may be changed by implementation)\n * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation \n * @param {String} replaceTo string to replace with\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n * @param {module:api/OpsApi~replaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.replace = function(wfsId, wfsPathList, pattern, replaceTo, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling replace\";\n }\n\n // verify the required parameter 'wfsPathList' is set\n if (wfsPathList == undefined || wfsPathList == null) {\n throw \"Missing the required parameter 'wfsPathList' when calling replace\";\n }\n\n // verify the required parameter 'pattern' is set\n if (pattern == undefined || pattern == null) {\n throw \"Missing the required parameter 'pattern' when calling replace\";\n }\n\n // verify the required parameter 'replaceTo' is set\n if (replaceTo == undefined || replaceTo == null) {\n throw \"Missing the required parameter 'replaceTo' when calling replace\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId\n };\n var queryParams = {\n 'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),\n 'pattern': pattern,\n 'replaceTo': replaceTo,\n 'ignoreCase': opts['ignoreCase']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/ops/replace', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the search operation.\n * @callback module:api/OpsApi~searchCallback\n * @param {String} error Error message, if any.\n * @param {Object.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * search files in some path, with given pattern\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation \n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n * @param {module:api/OpsApi~searchCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Object.}\n */\n this.search = function(wfsId, wfsPath, pattern, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling search\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling search\";\n }\n\n // verify the required parameter 'pattern' is set\n if (pattern == undefined || pattern == null) {\n throw \"Missing the required parameter 'pattern' when calling search\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'pattern': pattern,\n 'ignoreCase': opts['ignoreCase']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = {'String': [Match]};\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/ops/search/{wfsPath}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/OpsApi.js\n ** module id = 18\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestError', 'model/RemoteAccess', 'model/RestOK'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestError'), require('../model/RemoteAccess'), require('../model/RestOK'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RemotesApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.RemoteAccess, root.WebidaRestfulApi.RestOK);\n }\n}(this, function(ApiClient, RestError, RemoteAccess, RestOK) {\n 'use strict';\n\n /**\n * Remotes service.\n * @module api/RemotesApi\n * @version 0.5.0\n */\n\n /**\n * Constructs a new RemotesApi. \n * @alias module:api/RemotesApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the findRemoteAccesses operation.\n * @callback module:api/RemotesApi~findRemoteAccessesCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet) \n * @param {module:api/RemotesApi~findRemoteAccessesCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findRemoteAccesses = function(callback) {\n var postBody = null;\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [RemoteAccess];\n\n return this.apiClient.callApi(\n '/remotes', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the putRemoteAccess operation.\n * @callback module:api/RemotesApi~putRemoteAccessCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * create or update a remote workspace access information\n * @param {module:model/RemoteAccess} body \n * @param {module:api/RemotesApi~putRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.putRemoteAccess = function(body, callback) {\n var postBody = body;\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling putRemoteAccess\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/remotes', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the removeRemoteAccess operation.\n * @callback module:api/RemotesApi~removeRemoteAccessCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RemoteAccess} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * delete a remote workspace\n * @param {String} workspaceId workspace Id of remote workspace\n * @param {module:api/RemotesApi~removeRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RemoteAccess}\n */\n this.removeRemoteAccess = function(workspaceId, callback) {\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling removeRemoteAccess\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n 'workspaceId': workspaceId\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RemoteAccess;\n\n return this.apiClient.callApi(\n '/remotes', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/RemotesApi.js\n ** module id = 19\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError', 'model/Session'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Session'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.SessionApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Session);\n }\n}(this, function(ApiClient, RestOK, RestError, Session) {\n 'use strict';\n\n /**\n * Session service.\n * @module api/SessionApi\n * @version 0.5.0\n */\n\n /**\n * Constructs a new SessionApi. \n * @alias module:api/SessionApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the closeSession operation.\n * @callback module:api/SessionApi~closeSessionCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * close session with timeout\n * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n * @param {Integer} closeAfter waiting time before actual closing, to let client save files and prevent reconnect \n * @param {module:api/SessionApi~closeSessionCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.closeSession = function(sessionId, closeAfter, callback) {\n var postBody = null;\n\n // verify the required parameter 'sessionId' is set\n if (sessionId == undefined || sessionId == null) {\n throw \"Missing the required parameter 'sessionId' when calling closeSession\";\n }\n\n // verify the required parameter 'closeAfter' is set\n if (closeAfter == undefined || closeAfter == null) {\n throw \"Missing the required parameter 'closeAfter' when calling closeSession\";\n }\n\n\n var pathParams = {\n 'sessionId': sessionId\n };\n var queryParams = {\n 'closeAfter': closeAfter\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/sessions/{sessionId}', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the findSessions operation.\n * @callback module:api/SessionApi~findSessionsCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * get all / some webida sessions established to server\n * @param {Object} opts Optional parameters\n * @param {String} opts.workspaceId find only sessions working on some given workspace\n * @param {module:api/SessionApi~findSessionsCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findSessions = function(opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n\n var pathParams = {\n };\n var queryParams = {\n 'workspaceId': opts['workspaceId']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [Session];\n\n return this.apiClient.callApi(\n '/sessions', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the getSession operation.\n * @callback module:api/SessionApi~getSessionCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Session} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * get a session object by id\n * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n * @param {module:api/SessionApi~getSessionCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Session}\n */\n this.getSession = function(sessionId, callback) {\n var postBody = null;\n\n // verify the required parameter 'sessionId' is set\n if (sessionId == undefined || sessionId == null) {\n throw \"Missing the required parameter 'sessionId' when calling getSession\";\n }\n\n\n var pathParams = {\n 'sessionId': sessionId\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Session;\n\n return this.apiClient.callApi(\n '/sessions/{sessionId}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/SessionApi.js\n ** module id = 20\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError', 'model/DirEntry', 'model/Stats'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/DirEntry'), require('../model/Stats'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.WfsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n }\n}(this, function(ApiClient, RestOK, RestError, DirEntry, Stats) {\n 'use strict';\n\n /**\n * Wfs service.\n * @module api/WfsApi\n * @version 0.5.0\n */\n\n /**\n * Constructs a new WfsApi. \n * @alias module:api/WfsApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the copy operation.\n * @callback module:api/WfsApi~copyCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, copying a file to directory always returns error and vice versa. this operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed. When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. \n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {String} srcPath source data path of some operations, with have heading /\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n * @param {Boolean} opts.followSymbolicLinks dereference symlinks in source. (default to false)\n * @param {Boolean} opts.preserveTimestamps keep mtime/atime of source file(s) in destination. (default to false)\n * @param {module:api/WfsApi~copyCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.copy = function(wfsId, wfsPath, srcPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling copy\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling copy\";\n }\n\n // verify the required parameter 'srcPath' is set\n if (srcPath == undefined || srcPath == null) {\n throw \"Missing the required parameter 'srcPath' when calling copy\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'srcPath': srcPath,\n 'noOverwrite': opts['noOverwrite'],\n 'followSymbolicLinks': opts['followSymbolicLinks'],\n 'preserveTimestamps': opts['preserveTimestamps']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the createDir operation.\n * @callback module:api/WfsApi~createDirCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * create a directory at the path. returns error when wfsPath exists and not empty this API always creates parent directories if needed. \n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {module:api/WfsApi~createDirCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.createDir = function(wfsId, wfsPath, callback) {\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling createDir\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling createDir\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/dir/{wfsPath}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the dirTree operation.\n * @callback module:api/WfsApi~dirTreeCallback\n * @param {String} error Error message, if any.\n * @param {module:model/DirEntry} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * returns a directory tree of given path, for listing dir and managing file system errors while building sub-tree will be ignored and will not be included in result. \n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {Integer} maxDepth Maximum depth of tree. -1 to build a full tree, 0 to stat, 1 to plain list.\n * @param {module:api/WfsApi~dirTreeCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/DirEntry}\n */\n this.dirTree = function(wfsId, wfsPath, maxDepth, callback) {\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling dirTree\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling dirTree\";\n }\n\n // verify the required parameter 'maxDepth' is set\n if (maxDepth == undefined || maxDepth == null) {\n throw \"Missing the required parameter 'maxDepth' when calling dirTree\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'maxDepth': maxDepth\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = DirEntry;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/dir/{wfsPath}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the move operation.\n * @callback module:api/WfsApi~moveCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Moves source resource to given path. Unlike mv command, wfsPath always denotes an exact path of the resource to be created. So, moving a file to existing directory always returns error and vice versa. (So, This API works like 'rename' rather than 'mv' command) Like copy(), this operation creates parent path of destination, and does not roll-back when operation failes. When destination path exists already, 1) moving file to file : follows noOverwrite flag. 2) moving file to dir : returns 409 error 3) moving dir to file : returns 409 error 4) moving dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. \n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {String} srcPath source data path of some operations, with have heading /\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n * @param {module:api/WfsApi~moveCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.move = function(wfsId, wfsPath, srcPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling move\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling move\";\n }\n\n // verify the required parameter 'srcPath' is set\n if (srcPath == undefined || srcPath == null) {\n throw \"Missing the required parameter 'srcPath' when calling move\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'srcPath': srcPath,\n 'noOverwrite': opts['noOverwrite']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the readFile operation.\n * @callback module:api/WfsApi~readFileCallback\n * @param {String} error Error message, if any.\n * @param {File} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * read file data on path\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {module:api/WfsApi~readFileCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {File}\n */\n this.readFile = function(wfsId, wfsPath, callback) {\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling readFile\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling readFile\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = File;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/file/{wfsPath}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the remove operation.\n * @callback module:api/WfsApi~removeCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * delete file or directory\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.noRecursive if set, deleting non-empty directory will return 409 error. (default to false)\n * @param {module:api/WfsApi~removeCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.remove = function(wfsId, wfsPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling remove\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling remove\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'noRecursive': opts['noRecursive']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the stat operation.\n * @callback module:api/WfsApi~statCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Stats} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Get stats of given path. (stat() returns \\"stats\\" object in node and POSIX system) Since we've no ctime/atime in Stats class, some file system changing events will send 'exactly same' stats object. This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system. \n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ignoreError flag to ignore stat errors to check existence only. If this flag is true, server will returns 'DUMMY' type stats object instead of 404 error when given path does not exists. (invalid wfsId will produce 400 error, not 404) (default to false)\n * @param {module:api/WfsApi~statCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Stats}\n */\n this.stat = function(wfsId, wfsPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling stat\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling stat\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'ignoreError': opts['ignoreError']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Stats;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the writeFile operation.\n * @callback module:api/WfsApi~writeFileCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates / updates file with body data. Server should write the file in 'atomic' manner, and should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written. \n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments \n * @param {File} data file contents to write.\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ensureParents A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but creates to 'parent directory' of the path. (default to false)\n * @param {module:api/WfsApi~writeFileCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.writeFile = function(wfsId, wfsPath, data, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling writeFile\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling writeFile\";\n }\n\n // verify the required parameter 'data' is set\n if (data == undefined || data == null) {\n throw \"Missing the required parameter 'data' when calling writeFile\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'ensureParents': opts['ensureParents']\n };\n var headerParams = {\n };\n var formParams = {\n 'data': data\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['multipart/form-data'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/file/{wfsPath}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/WfsApi.js\n ** module id = 21\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError', 'model/Workspace', 'model/ChildProcess', 'model/Execution', 'model/ExecutionResult'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Workspace'), require('../model/ChildProcess'), require('../model/Execution'), require('../model/ExecutionResult'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.WorkspaceApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Workspace, root.WebidaRestfulApi.ChildProcess, root.WebidaRestfulApi.Execution, root.WebidaRestfulApi.ExecutionResult);\n }\n}(this, function(ApiClient, RestOK, RestError, Workspace, ChildProcess, Execution, ExecutionResult) {\n 'use strict';\n\n /**\n * Workspace service.\n * @module api/WorkspaceApi\n * @version 0.5.0\n */\n\n /**\n * Constructs a new WorkspaceApi. \n * @alias module:api/WorkspaceApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the cancel operation.\n * @callback module:api/WorkspaceApi~cancelCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * cancels an execution, if possible. Killing process may not be graceful. requires proper access rights. if execId is not specified, this api does nothing. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {Object} opts Optional parameters\n * @param {String} opts.execId the id of execution request(different from pid!)\n * @param {module:api/WorkspaceApi~cancelCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.cancel = function(workspaceId, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling cancel\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'execId': opts['execId']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}/exec', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the createWorkspace operation.\n * @callback module:api/WorkspaceApi~createWorkspaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Workspace} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates a new workspace with given local path. Requires an unrestricted access token. \n * @param {String} localPath a real, local path of the system (not unixified)\n * @param {String} name workspace name property\n * @param {String} description workspace name property\n * @param {module:api/WorkspaceApi~createWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Workspace}\n */\n this.createWorkspace = function(localPath, name, description, callback) {\n var postBody = null;\n\n // verify the required parameter 'localPath' is set\n if (localPath == undefined || localPath == null) {\n throw \"Missing the required parameter 'localPath' when calling createWorkspace\";\n }\n\n // verify the required parameter 'name' is set\n if (name == undefined || name == null) {\n throw \"Missing the required parameter 'name' when calling createWorkspace\";\n }\n\n // verify the required parameter 'description' is set\n if (description == undefined || description == null) {\n throw \"Missing the required parameter 'description' when calling createWorkspace\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n 'localPath': localPath,\n 'name': name,\n 'description': description\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Workspace;\n\n return this.apiClient.callApi(\n '/workspaces', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the exec operation.\n * @callback module:api/WorkspaceApi~execCallback\n * @param {String} error Error message, if any.\n * @param {module:model/ExecutionResult} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * execute a shell command on this workspace. requires proper access rights.\n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {module:model/Execution} body \n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.async Spawn a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, with room id /sessions/async-{execId} (default to false)\n * @param {module:api/WorkspaceApi~execCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/ExecutionResult}\n */\n this.exec = function(workspaceId, body, opts, callback) {\n opts = opts || {};\n var postBody = body;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling exec\";\n }\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling exec\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'async': opts['async']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = ExecutionResult;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}/exec', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the findProcs operation.\n * @callback module:api/WorkspaceApi~findProcsCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Gets process info, created by async exec request, on this workspace. If execId is set, this op finds a spawned process whose id is matching. If not, all spawned procs will be found. This op does not returns error when no procs found but empty result array. This operation requires proper access rights. (unrestricted or matching workspace id in access token with parameter) \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {Object} opts Optional parameters\n * @param {String} opts.execId the id of execution request(different from pid!)\n * @param {module:api/WorkspaceApi~findProcsCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findProcs = function(workspaceId, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling findProcs\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'execId': opts['execId']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = [];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [ChildProcess];\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}/exec', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the findWorkspaces operation.\n * @callback module:api/WorkspaceApi~findWorkspacesCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Finds workspaces (no find/search parameters yet). Requires an unrestricted access token. \n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.disposable include disposable workspaces or not (default to false)\n * @param {module:api/WorkspaceApi~findWorkspacesCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findWorkspaces = function(opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n\n var pathParams = {\n };\n var queryParams = {\n 'disposable': opts['disposable']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [Workspace];\n\n return this.apiClient.callApi(\n '/workspaces', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the getWorkspace operation.\n * @callback module:api/WorkspaceApi~getWorkspaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Workspace} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * get a workspace object by id\n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {module:api/WorkspaceApi~getWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Workspace}\n */\n this.getWorkspace = function(workspaceId, callback) {\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling getWorkspace\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Workspace;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the removeWorkspace operation.\n * @callback module:api/WorkspaceApi~removeWorkspaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Workspace} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * This operation will remove the requested workspace when 1) all sessions are closed for request (will be notified by server) 2) excedded time limit value in closeAfter parameter 3) server goes down after accepting remove request \\"willBeRemovedAt\\" property can be set \\"only\\" by this api. This API requires \\"unrestricted\\" access token. Even an access token has matching workspace id, removing an workspace is rejected. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {Object} opts Optional parameters\n * @param {Integer} opts.closeAfter Time in seconds to wait for all sessions save & close their data. (default to 0)\n * @param {module:api/WorkspaceApi~removeWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Workspace}\n */\n this.removeWorkspace = function(workspaceId, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling removeWorkspace\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'closeAfter': opts['closeAfter']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Workspace;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the updateWorkspace operation.\n * @callback module:api/WorkspaceApi~updateWorkspaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Workspace} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Updates workspace. Some protected properties will not be changed by this api. Requires proper access rights in access token. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {module:api/WorkspaceApi~updateWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Workspace}\n */\n this.updateWorkspace = function(workspaceId, callback) {\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling updateWorkspace\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Workspace;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/WorkspaceApi.js\n ** module id = 22\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.5.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Match = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Match model module.\n * @module model/Match\n * @version 0.5.0\n */\n\n /**\n * Constructs a new Match
.\n * search result for a file\n * @alias module:model/Match\n * @class\n * @param line {Integer} \n * @param text {String} \n */\n var exports = function(line, text) {\n var _this = this;\n\n _this['line'] = line;\n _this['text'] = text;\n };\n\n /**\n * Constructs a Match
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Match} obj Optional instance to populate.\n * @return {module:model/Match} The populated Match
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('line')) {\n obj['line'] = ApiClient.convertToType(data['line'], 'Integer');\n }\n if (data.hasOwnProperty('text')) {\n obj['text'] = ApiClient.convertToType(data['text'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {Integer} line\n */\n exports.prototype['line'] = undefined;\n /**\n * @member {String} text\n */\n exports.prototype['text'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Match.js\n ** module id = 23\n ** module chunks = 0\n **/"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///api-bundle.js","webpack:///webpack/bootstrap 7d2699d36ecc58ceef9c","webpack:///./src/index.js","webpack:///./src/ApiClient.js","webpack:///./src/model/RestError.js","webpack:///./src/model/RestOK.js","webpack:///./src/model/DirEntry.js","webpack:///./src/model/Stats.js","webpack:///./src/model/Alias.js","webpack:///./src/model/ChildProcess.js","webpack:///./src/model/Credential.js","webpack:///./src/model/Execution.js","webpack:///./src/model/ExecutionResult.js","webpack:///./src/model/RemoteAccess.js","webpack:///./src/model/Session.js","webpack:///./src/model/Token.js","webpack:///./src/model/User.js","webpack:///./src/model/Workspace.js","webpack:///./~/superagent/superagent.js","webpack:///./src/api/AliasApi.js","webpack:///./src/api/AuthApi.js","webpack:///./src/api/OpsApi.js","webpack:///./src/api/RemotesApi.js","webpack:///./src/api/SessionApi.js","webpack:///./src/api/WfsApi.js","webpack:///./src/api/WorkspaceApi.js","webpack:///./src/model/Match.js"],"names":["define","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","apply","undefined","ApiClient","Alias","ChildProcess","Credential","DirEntry","Execution","ExecutionResult","Match","RemoteAccess","RestError","RestOK","Session","Stats","Token","User","Workspace","AliasApi","AuthApi","OpsApi","RemotesApi","SessionApi","WfsApi","WorkspaceApi","root","this","superagent","basePath","replace","authentications","webida-simple-auth","type","in","name","defaultHeaders","timeout","prototype","paramToString","param","Date","toJSON","toString","buildUrl","path","pathParams","match","url","_this","fullMatch","key","value","hasOwnProperty","encodeURIComponent","isJsonMime","contentType","Boolean","jsonPreferredMime","contentTypes","i","length","isFileParam","window","ReadStream","Buffer","Blob","File","normalizeParams","params","newParams","Array","isArray","CollectionFormatEnum","CSV","SSV","TSV","PIPES","MULTI","buildCollectionParam","collectionFormat","map","join","Error","applyAuthToRequest","request","authNames","forEach","authName","auth","username","password","apiKey","data","apiKeyPrefix","set","query","accessToken","Authorization","deserialize","response","returnType","body","text","convertToType","callApi","httpMethod","queryParams","headerParams","formParams","bodyParam","accepts","callback","header","send","_formParams","attach","field","accept","end","error","parseDate","str","parseInt","parseFloat","String","Object","constructFromObject","itemType","item","keyType","valueType","k","result","obj","instance","message","stats","children","birthtime","mtime","mode","size","nlink","TypeEnum","FILE","DIRECTORY","BLOCK_DEVICE","CHARACTER_DEVICE","LINK","FIFO","SOCKET","DUMMY","pid","command","args","execId","state","startedAt","StateEnum","CREATED","WORKING","KILLING","EXITED","loginId","loginPassword","stdout","stderr","serverUrl","workspaceId","masterToken","clientAddress","connectedAt","disconnectedAt","NORMAL","LOSING","CLOSING","tokenType","expiresAt","issuedAt","TokenTypeEnum","MASTER","ACCESS","description","createdAt","workspacePath","excludedPaths","offlineCachePaths","f","amd","g","global","self","e","t","n","r","s","o","u","a","require","code","l","1","isObject","2","clearTimeout","_timeout","_timer","parse","fn","_parser","serialize","_serializer","ms","then","resolve","reject","_fullfilledPromise","Promise","innerResolve","innerReject","err","res","use","get","_header","toLowerCase","getHeader","val","unset","_getFormData","append","abort","_aborted","xhr","req","emit","withCredentials","_withCredentials","redirects","_maxRedirects","method","_data","_isHost","./is-object","3","RequestConstructor","arguments","4","Emitter","mixin","on","addEventListener","event","_callbacks","push","once","off","removeListener","removeAllListeners","removeEventListener","callbacks","cb","splice","slice","len","listeners","hasListeners","5","arr","initial","idx","curr","6","noop","pairs","pushEncodedKeyValuePair","v","subkey","parseString","pair","pos","split","indexOf","decodeURIComponent","parseHeader","index","line","lines","fields","pop","trim","isJSON","mime","test","shift","reduce","parts","Response","options","responseType","responseText","statusText","_setStatusProperties","status","headers","getAllResponseHeaders","getResponseHeader","_setHeaderProperties","_parseBody","Request","_query","original","rawResponse","statusCode","new_err","del","requestBase","bind","getXHR","XMLHttpRequest","location","protocol","ActiveXObject","serializeObject","types","html","json","xml","urlencoded","form","form-data","application/x-www-form-urlencoded","application/json","JSON","stringify","ct","statusType","info","ok","clientError","serverError","toError","accepted","noContent","badRequest","unauthorized","notAcceptable","notFound","forbidden","msg","_responseType","user","pass","btoa","file","filename","_formData","FormData","_callback","crossDomainError","crossDomain","_timeoutError","_appendQueryString","onreadystatechange","readyState","timedout","handleProgress","total","percent","direction","onprogress","upload","setTimeout","open","setRequestHeader","head","patch","post","put","./request","./request-base","emitter","apiClient","findAliases","aliasId","postBody","putAlias","removeAliases","getInfo","issueToken","opts","login","wfsId","wfsPathList","pattern","replaceTo","ignoreCase","search","findRemoteAccesses","putRemoteAccess","removeRemoteAccess","closeSessions","sessionId","closeAfter","findSessions","copy","wfsPath","srcPath","noOverwrite","followSymbolicLinks","preserveTimestamps","createDir","dirTree","maxDepth","move","readFile","remove","noRecursive","stat","ignoreError","writeFile","ensureParents","cancel","createWorkspace","localPath","exec","async","findProcs","findWorkspaces","disposable","removeWorkspace","expunge","updateWorkspace"],"mappings":"AAAAA,OAAO,WAAa,MAAgB,UAAUC,GCI9C,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,QAAA,EAGAF,EAAAD,QAvBA,GAAAD,KAqCA,OATAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAU,EAAA,GAGAV,EAAA,KDMM,SAASI,EAAQD,EAASH,GE5ChC,GAAAW,GAAAC,EAAAC,GAwBA,SAAAC,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,KAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAKC,SAAAI,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACD,YAiCA,IAAApC,IAKAc,YAKAC,QAKAC,eAKAC,aAKAC,WAKAC,YAKAC,kBAKAC,QAKAC,eAKAC,YAKAC,SAKAC,UAKAC,QAKAC,QAKAC,OAKAC,YAKAC,WAKAC,UAKAC,SAKAC,aAKAC,aAKAC,SAKAC,eAGA,OAAApC,MFoDM,SAASC,EAAQD,EAASH,GG5OhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,KAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAC,GACD,YAcA,IAAAvC,GAAA,WAMAsC,KAAAE,SAAA,wBAAAC,QAAA,WAMAH,KAAAI,iBACAC,sBAA6BC,KAAA,SAAAC,KAAA,SAAAC,KAAA,kBAO7BR,KAAAS,kBAOAT,KAAAU,QAAA,IAwbA,OAhbAhD,GAAAiD,UAAAC,cAAA,SAAAC,GACA,MAAAtC,SAAAsC,GAAA,MAAAA,EACA,GAEAA,YAAAC,MACAD,EAAAE,SAEAF,EAAAG,YAUAtD,EAAAiD,UAAAM,SAAA,SAAAC,EAAAC,GACAD,EAAAE,MAAA,SACAF,EAAA,IAAAA,EAEA,IAAAG,GAAArB,KAAAE,SAAAgB,EACAI,EAAAtB,IAUA,OATAqB,KAAAlB,QAAA,gBAAmC,SAAAoB,EAAAC,GACnC,GAAAC,EAMA,OAJAA,GADAN,EAAAO,eAAAF,GACAF,EAAAV,cAAAO,EAAAK,IAEAD,EAEAI,mBAAAF,MAgBA/D,EAAAiD,UAAAiB,WAAA,SAAAC,GACA,MAAAC,SAAA,MAAAD,KAAAT,MAAA,gCAQA1D,EAAAiD,UAAAoB,kBAAA,SAAAC,GACA,OAAAC,GAAA,EAAmBA,EAAAD,EAAAE,OAAyBD,IAC5C,GAAAjC,KAAA4B,WAAAI,EAAAC,IACA,MAAAD,GAAAC,EAGA,OAAAD,GAAA,IAQAtE,EAAAiD,UAAAwB,YAAA,SAAAtB,GAEA,4BAAAuB,SAEA7E,EAAA,IACAsD,YAAAtD,GAAA,GAAA8E,cAIA,kBAAAC,SAAAzB,YAAAyB,UAIA,kBAAAC,OAAA1B,YAAA0B,OAIA,kBAAAC,OAAA3B,YAAA2B,SAgBA9E,EAAAiD,UAAA8B,gBAAA,SAAAC,GACA,GAAAC,KACA,QAAAnB,KAAAkB,GACA,GAAAA,EAAAhB,eAAAF,IAAAjD,QAAAmE,EAAAlB,IAAA,MAAAkB,EAAAlB,GAAA,CACA,GAAAC,GAAAiB,EAAAlB,EACAxB,MAAAmC,YAAAV,IAAAmB,MAAAC,QAAApB,GACAkB,EAAAnB,GAAAC,EAEAkB,EAAAnB,GAAAxB,KAAAY,cAAAa,GAIA,MAAAkB,IAQAjF,EAAAoF,sBAKAC,IAAA,IAKAC,IAAA,IAKAC,IAAA,KAKAC,MAAA,IAKAC,MAAA,SAUAzF,EAAAiD,UAAAyC,qBAAA,SAAAvC,EAAAwC,GACA,SAAAxC,EACA,WAEA,QAAAwC,GACA,UACA,MAAAxC,GAAAyC,IAAAtD,KAAAY,eAAA2C,KAAA,IACA,WACA,MAAA1C,GAAAyC,IAAAtD,KAAAY,eAAA2C,KAAA,IACA,WACA,MAAA1C,GAAAyC,IAAAtD,KAAAY,eAAA2C,KAAA,KACA,aACA,MAAA1C,GAAAyC,IAAAtD,KAAAY,eAAA2C,KAAA,IACA,aAEA,MAAA1C,GAAAyC,IAAAtD,KAAAY,cACA,SACA,SAAA4C,OAAA,8BAAAH,KASA3F,EAAAiD,UAAA8C,mBAAA,SAAAC,EAAAC,GACA,GAAArC,GAAAtB,IACA2D,GAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAxC,EAAAlB,gBAAAyD,EACA,QAAAC,EAAAxD,MACA,aACAwD,EAAAC,UAAAD,EAAAE,WACAN,EAAAI,OAAAC,UAAA,GAAAD,EAAAE,UAAA,GAEA,MACA,cACA,GAAAF,EAAAG,OAAA,CACA,GAAAC,KACAJ,GAAAK,aACAD,EAAAJ,EAAAtD,MAAAsD,EAAAK,aAAA,IAAAL,EAAAG,OAEAC,EAAAJ,EAAAtD,MAAAsD,EAAAG,OAEA,WAAAH,EAAA,MACAJ,EAAAU,IAAAF,GAEAR,EAAAW,MAAAH,GAGA,KACA,cACAJ,EAAAQ,aACAZ,EAAAU,KAAyBG,cAAA,UAAAT,EAAAQ,aAEzB,MACA,SACA,SAAAd,OAAA,gCAAAM,EAAAxD,UAcA5C,EAAAiD,UAAA6D,YAAA,SAAAC,EAAAC,GACA,SAAAD,GAAA,MAAAC,EACA,WAIA,IAAAR,GAAAO,EAAAE,IAKA,OAJA,OAAAT,IAEAA,EAAAO,EAAAG,MAEAlH,EAAAmH,cAAAX,EAAAQ,IA4BAhH,EAAAiD,UAAAmE,QAAA,SAAA5D,EAAA6D,EAAA5D,EACA6D,EAAAC,EAAAC,EAAAC,EAAAxB,EAAA3B,EAAAoD,EACAV,EAAAW,GAEA,GAAA/D,GAAAtB,KACAqB,EAAArB,KAAAiB,SAAAC,EAAAC,GACAuC,EAAAzD,EAAA8E,EAAA1D,EAGArB,MAAAyD,mBAAAC,EAAAC,GAGAD,EAAAW,MAAArE,KAAAyC,gBAAAuC,IAGAtB,EAAAU,IAAApE,KAAAS,gBAAA2D,IAAApE,KAAAyC,gBAAAwC,IAGAvB,EAAAhD,QAAAV,KAAAU,QAEA,IAAAmB,GAAA7B,KAAA+B,kBAAAC,EASA,IARA,wBAAAH,IACAA,EACA6B,EAAApD,KAAAuB,GACO6B,EAAA4B,OAAA,iBACP5B,EAAApD,KAAA,qBAIA,sCAAAuB,EACA6B,EAAA6B,KAAAvF,KAAAyC,gBAAAyC,QACK,2BAAArD,EAAA,CACL,GAAA2D,GAAAxF,KAAAyC,gBAAAyC,EACA,QAAA1D,KAAAgE,GACAA,EAAA9D,eAAAF,KACAxB,KAAAmC,YAAAqD,EAAAhE,IAEAkC,EAAA+B,OAAAjE,EAAAgE,EAAAhE,IAEAkC,EAAAgC,MAAAlE,EAAAgE,EAAAhE,SAIK2D,IACLzB,EAAA6B,KAAAJ,EAGA,IAAAQ,GAAA3F,KAAA+B,kBAAAqD,EAgBA,OAfAO,IACAjC,EAAAiC,UAIAjC,EAAAkC,IAAA,SAAAC,EAAApB,GACA,GAAAY,EAAA,CACA,GAAAnB,GAAA,IACA2B,KACA3B,EAAA5C,EAAAkD,YAAAC,EAAAC,IAEAW,EAAAQ,EAAA3B,EAAAO,MAIAf,GAQAhG,EAAAoI,UAAA,SAAAC,GACA,UAAAjF,MAAAiF,EAAA5F,QAAA,YAYAzC,EAAAmH,cAAA,SAAAX,EAAA5D,GACA,OAAAA,GACA,cACA,MAAAwB,SAAAoC,EACA,eACA,MAAA8B,UAAA9B,EAAA,GACA,cACA,MAAA+B,YAAA/B,EACA,cACA,MAAAgC,QAAAhC,EACA,YACA,MAAAlE,MAAA8F,UAAAI,OAAAhC,GACA,SACA,GAAA5D,IAAA6F,QAAA7F,IAAAkC,KAEA,MAAA0B,EACS,sBAAA5D,GACT,wBAAAA,GAAA8F,oBAEAlC,EAGA5D,EAAA8F,oBAAAlC,EAES,IAAAtB,MAAAC,QAAAvC,GAAA,CAET,GAAA+F,GAAA/F,EAAA,EACA,OAAA4D,GAAAZ,IAAA,SAAAgD,GACA,MAAA5I,GAAAmH,cAAAyB,EAAAD,KAES,mBAAA/F,GAAA,CAET,GAAAiG,GAAAC,CACA,QAAAC,KAAAnG,GACA,GAAAA,EAAAoB,eAAA+E,GAAA,CACAF,EAAAE,EACAD,EAAAlG,EAAAmG,EACA,OAGA,GAAAC,KACA,QAAAD,KAAAvC,GACA,GAAAA,EAAAxC,eAAA+E,GAAA,CACA,GAAAjF,GAAA9D,EAAAmH,cAAA4B,EAAAF,GACA9E,EAAA/D,EAAAmH,cAAAX,EAAAuC,GAAAD,EACAE,GAAAlF,GAAAC,EAGA,MAAAiF,GAGA,MAAAxC,KAUAxG,EAAA0I,oBAAA,SAAAlC,EAAAyC,EAAAN,GACA,GAAAzD,MAAAC,QAAAqB,GACA,OAAAjC,GAAA,EAAqBA,EAAAiC,EAAAhC,OAAiBD,IACtCiC,EAAAxC,eAAAO,KACA0E,EAAA1E,GAAAvE,EAAAmH,cAAAX,EAAAjC,GAAAoE,QAGA,QAAAI,KAAAvC,GACAA,EAAAxC,eAAA+E,KACAE,EAAAF,GAAA/I,EAAAmH,cAAAX,EAAAuC,GAAAJ,KASA3I,EAAAkJ,SAAA,GAAAlJ,GAEAA,KHoPM,SAASC,EAAQD,EAASH,GI5vBhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAkBA,IAAAd,GAAA,SAAAmJ,GACA,GAAAvF,GAAAtB,IAGAsB,GAAA,QAAAuF,EA4CA,OAjCAnJ,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAcA,MAbAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,aACAiF,EAAA,QAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,WACAiF,EAAA,MAAAnI,EAAAqG,cAAAX,EAAA,kBAGAyC,GAMAjJ,EAAAiD,UAAA,KAAApC,OAIAb,EAAAiD,UAAA,QAAApC,OAKAb,EAAAiD,UAAA,MAAApC,OAIAb,KJswBM,SAASC,EAAQD,EAASH,GK/2BhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAgBA,IAAAd,GAAA,YA+BA,OAlBAA,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAQA,MAPAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,aACAiF,EAAA,QAAAnI,EAAAqG,cAAAX,EAAA,oBAGAyC,GAMAjJ,EAAAiD,UAAA,QAAApC,OAIAb,KLy3BM,SAASC,EAAQD,EAASH,GM/8BhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAI,EAAAQ,GACD,YAoBA,IAAA1B,GAAA,SAAA8C,EAAAsG,EAAAC,GACA,GAAAzF,GAAAtB,IAEAsB,GAAA,KAAAd,EACAc,EAAA,MAAAwF,EACAxF,EAAA,SAAAyF,EA0CA,OAhCArJ,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAcA,MAbAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,WACAiF,EAAA,MAAAvH,EAAAgH,oBAAAlC,EAAA,QAEAA,EAAAxC,eAAA,cACAiF,EAAA,SAAAnI,EAAAqG,cAAAX,EAAA,UAAAtF,MAGA+H,GAMAjJ,EAAAiD,UAAA,KAAApC,OAIAb,EAAAiD,UAAA,MAAApC,OAIAb,EAAAiD,UAAA,SAAApC,OAIAb,KNy9BM,SAASC,EAAQD,EAASH,GOnkChC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAuBA,IAAAd,GAAA,SAAA4C,EAAA0G,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAA9F,GAAAtB,IAEAsB,GAAA,KAAAhB,EACAgB,EAAA,UAAA0F,EACA1F,EAAA,MAAA2F,EACA3F,EAAA,KAAA4F,EACA5F,EAAA,KAAA6F,EACA7F,EAAA,MAAA8F,EA+GA,OArGA1J,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAuBA,MAtBAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,WACAiF,EAAA,MAAAnI,EAAAqG,cAAAX,EAAA,eAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,iBAEAA,EAAAxC,eAAA,WACAiF,EAAA,MAAAnI,EAAAqG,cAAAX,EAAA,mBAGAyC,GAOAjJ,EAAAiD,UAAA,KAAApC,OAIAb,EAAAiD,UAAA,UAAApC,OAIAb,EAAAiD,UAAA,MAAApC,OAIAb,EAAAiD,UAAA,KAAApC,OAIAb,EAAAiD,UAAA,KAAApC,OAIAb,EAAAiD,UAAA,MAAApC,OAQAb,EAAA2J,UAKAC,KAAA,OAKAC,UAAA,YAKAC,aAAA,eAKAC,iBAAA,mBAKAC,KAAA,OAKAC,KAAA,OAKAC,OAAA,SAKAC,MAAA,SAGAnK,KP6kCM,SAASC,EAAQD,KAMjB,SAASC,EAAQD,EAASH,GQxwChC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAiBA,IAAAd,GAAA,YAkDA,OAnCAA,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAcA,MAbAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,QACAiF,EAAA,GAAAnI,EAAAqG,cAAAX,EAAA,cAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,uBAEAA,EAAAxC,eAAA,gBACAiF,EAAA,WAAAnI,EAAAqG,cAAAX,EAAA,uBAGAyC,GAOAjJ,EAAAiD,UAAA,GAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAKAb,EAAAiD,UAAA,WAAApC,OAIAb,KRkxCM,SAASC,EAAQD,EAASH,GS53ChC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAuBA,IAAAd,GAAA,SAAAoK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAA7G,GAAAtB,IAEAsB,GAAA,IAAAwG,EACAxG,EAAA,QAAAyG,EACAzG,EAAA,KAAA0G,EACA1G,EAAA,OAAA2G,EACA3G,EAAA,MAAA4G,EACA5G,EAAA,UAAA6G,EAkHA,OAtGAzK,GAAA0I,oBAAA,SAAAlC,EAAAyC,GA6BA,MA5BAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,SACAiF,EAAA,IAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,aACAiF,EAAA,QAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,kBAEAA,EAAAxC,eAAA,YACAiF,EAAA,OAAAnI,EAAAqG,cAAAX,EAAA,kBAEAA,EAAAxC,eAAA,WACAiF,EAAA,MAAAnI,EAAAqG,cAAAX,EAAA,iBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,cACAiF,EAAA,SAAAnI,EAAAqG,cAAAX,EAAA,qBAEAA,EAAAxC,eAAA,gBACAiF,EAAA,WAAAnI,EAAAqG,cAAAX,EAAA,uBAGAyC,GAOAjJ,EAAAiD,UAAA,IAAApC,OAKAb,EAAAiD,UAAA,QAAApC,OAKAb,EAAAiD,UAAA,KAAApC,OAKAb,EAAAiD,UAAA,OAAApC,OAKAb,EAAAiD,UAAA,MAAApC,OAKAb,EAAAiD,UAAA,UAAApC,OAKAb,EAAAiD,UAAA,SAAApC,OAKAb,EAAAiD,UAAA,WAAApC,OAQAb,EAAA0K,WAKAC,QAAA,UAKAC,QAAA,UAKAC,QAAA,UAKAC,OAAA,UAGA9K,KTs4CM,SAASC,EAAQD,EAASH,GU9jDhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAmBA,IAAAd,GAAA,SAAA+K,EAAAC,GACA,GAAApH,GAAAtB,IAEAsB,GAAA,QAAAmH,EACAnH,EAAA,cAAAoH,EA4CA,OAjCAhL,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAcA,MAbAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,aACAiF,EAAA,QAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,mBACAiF,EAAA,cAAAnI,EAAAqG,cAAAX,EAAA,yBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,wBAGAyC,GAMAjJ,EAAAiD,UAAA,QAAApC,OAIAb,EAAAiD,UAAA,cAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAIAb,KVwkDM,SAASC,EAAQD,EAASH,GWlrDhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAmBA,IAAAd,GAAA,SAAAqK,EAAAC,GACA,GAAA1G,GAAAtB,IAGAsB,GAAA,QAAAyG,EACAzG,EAAA,KAAA0G,EAwEA,OA3DAtK,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAuBA,MAtBAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,QACAiF,EAAA,GAAAnI,EAAAqG,cAAAX,EAAA,cAEAA,EAAAxC,eAAA,aACAiF,EAAA,QAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,kBAEAA,EAAAxC,eAAA,SACAiF,EAAA,IAAAnI,EAAAqG,cAAAX,EAAA,eAEAA,EAAAxC,eAAA,aACAiF,EAAA,QAAAnI,EAAAqG,cAAAX,EAAA,oBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,uBAGAyC,GAOAjJ,EAAAiD,UAAA,GAAApC,OAKAb,EAAAiD,UAAA,QAAApC,OAKAb,EAAAiD,UAAA,KAAApC,OAKAb,EAAAiD,UAAA,IAAApC,OAKAb,EAAAiD,UAAA,QAAApC,OAKAb,EAAAiD,UAAA,UAAApC,OAIAb,KX4rDM,SAASC,EAAQD,EAASH,GYn0DhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAmBA,IAAAd,GAAA,SAAAiL,EAAAC,GACA,GAAAtH,GAAAtB,IAGAsB,GAAA,OAAAqH,EACArH,EAAA,OAAAsH,EA6CA,OAnCAlL,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAcA,MAbAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,WACAiF,EAAA,MAAAnI,EAAAqG,cAAAX,EAAA,iBAEAA,EAAAxC,eAAA,YACAiF,EAAA,OAAAnI,EAAAqG,cAAAX,EAAA,kBAEAA,EAAAxC,eAAA,YACAiF,EAAA,OAAAnI,EAAAqG,cAAAX,EAAA,mBAGAyC,GAOAjJ,EAAAiD,UAAA,MAAApC,OAKAb,EAAAiD,UAAA,OAAApC,OAKAb,EAAAiD,UAAA,OAAApC,OAIAb,KZ60DM,SAASC,EAAQD,EAASH,Gaz7DhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAqBA,IAAAd,GAAA,SAAA8C,EAAAqI,EAAAC,EAAAC,GACA,GAAAzH,GAAAtB,IAEAsB,GAAA,KAAAd,EACAc,EAAA,UAAAuH,EACAvH,EAAA,YAAAwH,EAEAxH,EAAA,YAAAyH,EA6DA,OAnDArL,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAoBA,MAnBAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,qBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,uBAEAA,EAAAxC,eAAA,mBACAiF,EAAA,cAAAnI,EAAAqG,cAAAX,EAAA,yBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,wBAGAyC,GAOAjJ,EAAAiD,UAAA,KAAApC,OAKAb,EAAAiD,UAAA,UAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAKAb,EAAAiD,UAAA,cAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAIAb,Kbm8DM,SAASC,EAAQD,EAASH,GcnkEhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAuBA,IAAAd,GAAA,SAAAE,EAAA4C,EAAA0H,EAAAc,EAAAC,EAAAC,GACA,GAAA5H,GAAAtB,IAEAsB,GAAA,GAAA1D,EACA0D,EAAA,KAAAd,EACAc,EAAA,MAAA4G,EAEA5G,EAAA,cAAA0H,EACA1H,EAAA,YAAA2H,EACA3H,EAAA,eAAA4H,EAqHA,OAzGAxL,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAgCA,MA/BAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,QACAiF,EAAA,GAAAnI,EAAAqG,cAAAX,EAAA,cAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,WACAiF,EAAA,MAAAnI,EAAAqG,cAAAX,EAAA,iBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,uBAEAA,EAAAxC,eAAA,mBACAiF,EAAA,cAAAnI,EAAAqG,cAAAX,EAAA,yBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,qBAEAA,EAAAxC,eAAA,oBACAiF,EAAA,eAAAnI,EAAAqG,cAAAX,EAAA,wBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,qBAEAA,EAAAxC,eAAA,gBACAiF,EAAA,WAAAnI,EAAAqG,cAAAX,EAAA,qBAGAyC,GAOAjJ,EAAAiD,UAAA,GAAApC,OAKAb,EAAAiD,UAAA,KAAApC,OAKAb,EAAAiD,UAAA,MAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAKAb,EAAAiD,UAAA,cAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAKAb,EAAAiD,UAAA,eAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAKAb,EAAAiD,UAAA,WAAApC,OAQAb,EAAA0K,WAKAe,OAAA,SAKAC,OAAA,SAKAC,QAAA,WAGA3L,Kd6kEM,SAASC,EAAQD,EAASH,GezwEhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAqBA,IAAAd,GAAA,SAAAkH,EAAA0E,EAAAC,EAAAC,GACA,GAAAlI,GAAAtB,IAEAsB,GAAA,KAAAsD,EACAtD,EAAA,UAAAgI,EACAhI,EAAA,UAAAiI,EACAjI,EAAA,SAAAkI,EAsFA,OA1EA9L,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAuBA,MAtBAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,qBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,cACAiF,EAAA,SAAAnI,EAAAqG,cAAAX,EAAA,kBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,qBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,wBAGAyC,GAOAjJ,EAAAiD,UAAA,KAAApC,OAKAb,EAAAiD,UAAA,UAAApC,OAIAb,EAAAiD,UAAA,UAAApC,OAIAb,EAAAiD,UAAA,SAAApC,OAKAb,EAAAiD,UAAA,UAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAQAb,EAAA+L,eAKAC,OAAA,SAKAC,OAAA,UAGAjM,KfmxEM,SAASC,EAAQD,EAASH,GgB36EhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAiBA,IAAAd,GAAA,YAgDA,OAjCAA,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAcA,MAbAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,QACAiF,EAAA,GAAAnI,EAAAqG,cAAAX,EAAA,cAEAA,EAAAxC,eAAA,WACAiF,EAAA,MAAAnI,EAAAqG,cAAAX,EAAA,iBAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,iBAGAyC,GAOAjJ,EAAAiD,UAAA,GAAApC,OAIAb,EAAAiD,UAAA,MAAApC,OAIAb,EAAAiD,UAAA,KAAApC,OAIAb,KhBq7EM,SAASC,EAAQD,EAASH,GiB7hFhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAwBA,IAAAd,GAAA,SAAAE,EAAA4C,EAAAoJ,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAA1I,GAAAtB,IAEAsB,GAAA,GAAA1D,EACA0D,EAAA,KAAAd,EACAc,EAAA,YAAAsI,EACAtI,EAAA,UAAAuI,EAEAvI,EAAA,cAAAwI,EAEAxI,EAAA,cAAAyI,EACAzI,EAAA,kBAAA0I,EA6FA,OAnFAtM,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAgCA,MA/BAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,QACAiF,EAAA,GAAAnI,EAAAqG,cAAAX,EAAA,cAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,gBAEAA,EAAAxC,eAAA,iBACAiF,EAAA,YAAAnI,EAAAqG,cAAAX,EAAA,uBAEAA,EAAAxC,eAAA,eACAiF,EAAA,UAAAnI,EAAAqG,cAAAX,EAAA,mBAEAA,EAAAxC,eAAA,gBACAiF,EAAA,WAAAnI,EAAAqG,cAAAX,EAAA,oBAEAA,EAAAxC,eAAA,mBACAiF,EAAA,cAAAnI,EAAAqG,cAAAX,EAAA,yBAEAA,EAAAxC,eAAA,gBACAiF,EAAA,WAAAnI,EAAAqG,cAAAX,EAAA,uBAEAA,EAAAxC,eAAA,mBACAiF,EAAA,cAAAnI,EAAAqG,cAAAX,EAAA,2BAEAA,EAAAxC,eAAA,uBACAiF,EAAA,kBAAAnI,EAAAqG,cAAAX,EAAA,gCAGAyC,GAOAjJ,EAAAiD,UAAA,GAAApC,OAKAb,EAAAiD,UAAA,KAAApC,OAKAb,EAAAiD,UAAA,YAAApC,OAKAb,EAAAiD,UAAA,UAAApC,OAKAb,EAAAiD,UAAA,WAAApC,OAKAb,EAAAiD,UAAA,cAAApC,OAKAb,EAAAiD,UAAA,WAAApC,OAKAb,EAAAiD,UAAA,cAAApC,OAKAb,EAAAiD,UAAA,kBAAApC,OAIAb,KjBuiFM,SAASC,EAAQD,IkB9sFvB,SAAAuM,GAAa,mBAAAvM,IAAA,mBAAAC,GAA2DA,EAAAD,QAAAuM,QAAmB,sBAAA5M,gBAAA6M,IAAgD7M,UAAA4M,OAAa,CAAK,GAAAE,EAAsCA,GAAhC,mBAAA/H,QAAgCA,OAAS,mBAAAgI,QAAqCA,OAAS,mBAAAC,MAAmCA,KAAYrK,KAAOmK,EAAAlK,WAAAgK,MAAoB,WAAuC,eAAAK,GAAAC,EAAAC,EAAAC,GAA0B,QAAAC,GAAAC,EAAAC,GAAgB,IAAAJ,EAAAG,GAAA,CAAU,IAAAJ,EAAAI,GAAA,CAAU,GAAAE,GAAA,kBAAAC,iBAA0C,KAAAF,GAAAC,EAAA,MAAAA,GAAAF,GAAA,EAAwB,IAAA1I,EAAA,MAAAA,GAAA0I,GAAA,EAAoB,IAAAV,GAAA,GAAAzG,OAAA,uBAAAmH,EAAA,IAA8C,MAAAV,GAAAc,KAAA,mBAAAd,EAAkC,GAAAe,GAAAR,EAAAG,IAAYjN,WAAY6M,GAAAI,GAAA,GAAA7M,KAAAkN,EAAAtN,QAAA,SAAA4M,GAAmC,GAAAE,GAAAD,EAAAI,GAAA,GAAAL,EAAiB,OAAAI,GAAAF,IAAAF,IAAgBU,IAAAtN,QAAA4M,EAAAC,EAAAC,EAAAC,GAAsB,MAAAD,GAAAG,GAAAjN,QAA8D,OAA1CuE,GAAA,kBAAA6I,kBAA0CH,EAAA,EAAYA,EAAAF,EAAAvI,OAAWyI,IAAAD,EAAAD,EAAAE,GAAY,OAAAD,KAAYO,GAAA,SAAAH,EAAAnN,EAAAD,GAS9yB,QAAAwN,GAAAvE,GACA,cAAAA,GAAA,gBAAAA,GAGAhJ,EAAAD,QAAAwN,OAEIC,GAAA,SAAAL,EAAAnN,EAAAD,GAIJ,GAAAwN,GAAAJ,EAAA,cASApN,GAAA0N,aAAA,WAGA,MAFApL,MAAAqL,SAAA,EACAD,aAAApL,KAAAsL,QACAtL,MAYAtC,EAAA6N,MAAA,SAAAC,GAEA,MADAxL,MAAAyL,QAAAD,EACAxL,MAYAtC,EAAAgO,UAAA,SAAAF,GAEA,MADAxL,MAAA2L,YAAAH,EACAxL,MAWAtC,EAAAgD,QAAA,SAAAkL,GAEA,MADA5L,MAAAqL,SAAAO,EACA5L,MAWAtC,EAAAmO,KAAA,SAAAC,EAAAC,GACA,IAAA/L,KAAAgM,mBAAA,CACA,GAAA3B,GAAArK,IACAA,MAAAgM,mBAAA,GAAAC,SAAA,SAAAC,EAAAC,GACA9B,EAAAzE,IAAA,SAAAwG,EAAAC,GACAD,EAAAD,EAAAC,GAAkCF,EAAAG,OAIlC,MAAArM,MAAAgM,mBAAAH,KAAAC,EAAAC,IAOArO,EAAA4O,IAAA,SAAAd,GAEA,MADAA,GAAAxL,MACAA,MAaAtC,EAAA6O,IAAA,SAAA7G,GACA,MAAA1F,MAAAwM,QAAA9G,EAAA+G,gBAeA/O,EAAAgP,UAAAhP,EAAA6O,IAuBA7O,EAAA0G,IAAA,SAAAsB,EAAAiH,GACA,GAAAzB,EAAAxF,GAAA,CACA,OAAAlE,KAAAkE,GACA1F,KAAAoE,IAAA5C,EAAAkE,EAAAlE,GAEA,OAAAxB,MAIA,MAFAA,MAAAwM,QAAA9G,EAAA+G,eAAAE,EACA3M,KAAAsF,OAAAI,GAAAiH,EACA3M,MAeAtC,EAAAkP,MAAA,SAAAlH,GAGA,aAFA1F,MAAAwM,QAAA9G,EAAA+G,qBACAzM,MAAAsF,OAAAI,GACA1F,MAkBAtC,EAAAgI,MAAA,SAAAlF,EAAAmM,GAEA,MADA3M,MAAA6M,eAAAC,OAAAtM,EAAAmM,GACA3M,MASAtC,EAAAqP,MAAA,WACA,MAAA/M,MAAAgN,SACAhN,MAEAA,KAAAgN,UAAA,EACAhN,KAAAiN,KAAAjN,KAAAiN,IAAAF,QACA/M,KAAAkN,KAAAlN,KAAAkN,IAAAH,QACA/M,KAAAoL,eACApL,KAAAmN,KAAA,SACAnN,OAcAtC,EAAA0P,gBAAA,WAGA,MADApN,MAAAqN,kBAAA,EACArN,MAWAtC,EAAA4P,UAAA,SAAA9C,GAEA,MADAxK,MAAAuN,cAAA/C,EACAxK,MAYAtC,EAAAqD,OAAA,WACA,OACAyM,OAAAxN,KAAAwN,OACAnM,IAAArB,KAAAqB,IACA6C,KAAAlE,KAAAyN,QAeA/P,EAAAgQ,QAAA,SAAA/G,GACA,GAAAZ,MAAc/E,SAAAlD,KAAA6I,EAEd,QAAAZ,GACA,oBACA,oBACA,wBACA,QACA,SACA,WA4CArI,EAAA6H,KAAA,SAAArB,GACA,GAAAyC,GAAAuE,EAAAhH,GACA5D,EAAAN,KAAAwM,QAAA,eAGA,IAAA7F,GAAAuE,EAAAlL,KAAAyN,OACA,OAAAjM,KAAA0C,GACAlE,KAAAyN,MAAAjM,GAAA0C,EAAA1C,OAEG,gBAAA0C,IAEH5D,GAAAN,KAAAM,KAAA,QACAA,EAAAN,KAAAwM,QAAA,gBACA,qCAAAlM,EACAN,KAAAyN,MAAAzN,KAAAyN,MACAzN,KAAAyN,MAAA,IAAAvJ,EACAA,EAEAlE,KAAAyN,OAAAzN,KAAAyN,OAAA,IAAAvJ,GAGAlE,KAAAyN,MAAAvJ,CAGA,QAAAyC,GAAA3G,KAAA0N,QAAAxJ,GAAAlE,MAGAM,GAAAN,KAAAM,KAAA,QACAN,SAGG2N,cAAA,IAAgBC,GAAA,SAAA9C,EAAAnN,EAAAD,GAkBnB,QAAAgG,GAAAmK,EAAAL,EAAAnM,GAEA,wBAAAA,GACA,GAAAwM,GAAA,MAAAL,GAAA5H,IAAAvE,GAIA,GAAAyM,UAAA5L,OACA,GAAA2L,GAAA,MAAAL,GAGA,GAAAK,GAAAL,EAAAnM,GAGA1D,EAAAD,QAAAgG,OAEIqK,GAAA,SAAAjD,EAAAnN,EAAAD,GAgBJ,QAAAsQ,GAAArH,GACA,GAAAA,EAAA,MAAAsH,GAAAtH,GAWA,QAAAsH,GAAAtH,GACA,OAAAnF,KAAAwM,GAAArN,UACAgG,EAAAnF,GAAAwM,EAAArN,UAAAa,EAEA,OAAAmF,GA1BA,mBAAAhJ,KACAA,EAAAD,QAAAsQ,GAqCAA,EAAArN,UAAAuN,GACAF,EAAArN,UAAAwN,iBAAA,SAAAC,EAAA5C,GAIA,MAHAxL,MAAAqO,WAAArO,KAAAqO,gBACArO,KAAAqO,WAAA,IAAAD,GAAApO,KAAAqO,WAAA,IAAAD,QACAE,KAAA9C,GACAxL,MAaAgO,EAAArN,UAAA4N,KAAA,SAAAH,EAAA5C,GACA,QAAA0C,KACAlO,KAAAwO,IAAAJ,EAAAF,GACA1C,EAAAlN,MAAA0B,KAAA8N,WAKA,MAFAI,GAAA1C,KACAxL,KAAAkO,GAAAE,EAAAF,GACAlO,MAaAgO,EAAArN,UAAA6N,IACAR,EAAArN,UAAA8N,eACAT,EAAArN,UAAA+N,mBACAV,EAAArN,UAAAgO,oBAAA,SAAAP,EAAA5C,GAIA,GAHAxL,KAAAqO,WAAArO,KAAAqO,eAGA,GAAAP,UAAA5L,OAEA,MADAlC,MAAAqO,cACArO,IAIA,IAAA4O,GAAA5O,KAAAqO,WAAA,IAAAD,EACA,KAAAQ,EAAA,MAAA5O,KAGA,OAAA8N,UAAA5L,OAEA,aADAlC,MAAAqO,WAAA,IAAAD,GACApO,IAKA,QADA6O,GACA5M,EAAA,EAAiBA,EAAA2M,EAAA1M,OAAsBD,IAEvC,GADA4M,EAAAD,EAAA3M,GACA4M,IAAArD,GAAAqD,EAAArD,OAAA,CACAoD,EAAAE,OAAA7M,EAAA,EACA,OAGA,MAAAjC,OAWAgO,EAAArN,UAAAwM,KAAA,SAAAiB,GACApO,KAAAqO,WAAArO,KAAAqO,cACA,IAAArG,MAAA+G,MAAAjR,KAAAgQ,UAAA,GACAc,EAAA5O,KAAAqO,WAAA,IAAAD,EAEA,IAAAQ,EAAA,CACAA,IAAAG,MAAA,EACA,QAAA9M,GAAA,EAAA+M,EAAAJ,EAAA1M,OAA2CD,EAAA+M,IAAS/M,EACpD2M,EAAA3M,GAAA3D,MAAA0B,KAAAgI,GAIA,MAAAhI,OAWAgO,EAAArN,UAAAsO,UAAA,SAAAb,GAEA,MADApO,MAAAqO,WAAArO,KAAAqO,eACArO,KAAAqO,WAAA,IAAAD,QAWAJ,EAAArN,UAAAuO,aAAA,SAAAd,GACA,QAAApO,KAAAiP,UAAAb,GAAAlM,aAGIiN,GAAA,SAAArE,EAAAnN,EAAAD,GAYJC,EAAAD,QAAA,SAAA0R,EAAA5D,EAAA6D,GAOA,IANA,GAAAC,GAAA,EACAN,EAAAI,EAAAlN,OACAqN,EAAA,GAAAzB,UAAA5L,OACAmN,EACAD,EAAAE,KAEAA,EAAAN,GACAO,EAAA/D,EAAA1N,KAAA,KAAAyR,EAAAH,EAAAE,OAAAF,EAGA,OAAAG,SAEIC,GAAA,SAAA1E,EAAAnN,EAAAD,GA2BJ,QAAA+R,MA8CA,QAAA/D,GAAA/E,GACA,IAAAuE,EAAAvE,GAAA,MAAAA,EACA,IAAA+I,KACA,QAAAlO,KAAAmF,GACA,MAAAA,EAAAnF,IACAmO,EAAAD,EAAAlO,EAAAmF,EAAAnF,GAGA,OAAAkO,GAAAnM,KAAA,KAYA,QAAAoM,GAAAD,EAAAlO,EAAAmL,GACA,GAAA/J,MAAAC,QAAA8J,GACA,MAAAA,GAAA/I,QAAA,SAAAgM,GACAD,EAAAD,EAAAlO,EAAAoO,IAEG,IAAA1E,EAAAyB,GACH,OAAAkD,KAAAlD,GACAgD,EAAAD,EAAAlO,EAAA,IAAAqO,EAAA,IAAAlD,EAAAkD,QAIAH,GAAApB,KAAA3M,mBAAAH,GACA,IAAAG,mBAAAgL,IAiBA,QAAAmD,GAAA/J,GAMA,OAHAgK,GACAC,EAHArJ,KACA+I,EAAA3J,EAAAkK,MAAA,KAIAhO,EAAA,EAAA+M,EAAAU,EAAAxN,OAAqCD,EAAA+M,IAAS/M,EAC9C8N,EAAAL,EAAAzN,GACA+N,EAAAD,EAAAG,QAAA,KACAF,MACArJ,EAAAwJ,mBAAAJ,IAAA,GAEApJ,EAAAwJ,mBAAAJ,EAAAhB,MAAA,EAAAiB,KACAG,mBAAAJ,EAAAhB,MAAAiB,EAAA,GAIA,OAAArJ,GA8DA,QAAAyJ,GAAArK,GACA,GAEAsK,GACAC,EACA5K,EACAiH,EALA4D,EAAAxK,EAAAkK,MAAA,SACAO,IAMAD,GAAAE,KAEA,QAAAxO,GAAA,EAAA+M,EAAAuB,EAAArO,OAAqCD,EAAA+M,IAAS/M,EAC9CqO,EAAAC,EAAAtO,GACAoO,EAAAC,EAAAJ,QAAA,KACAxK,EAAA4K,EAAAvB,MAAA,EAAAsB,GAAA5D,cACAE,EAAA+D,EAAAJ,EAAAvB,MAAAsB,EAAA,IACAG,EAAA9K,GAAAiH,CAGA,OAAA6D,GAWA,QAAAG,GAAAC,GACA,oBAAAC,KAAAD,GAWA,QAAAtQ,GAAAyF,GACA,MAAAA,GAAAkK,MAAA,SAAuBa,QAWvB,QAAApO,GAAAqD,GACA,MAAAgL,GAAAhL,EAAAkK,MAAA,SAA8B,SAAAtJ,EAAAZ,GAC9B,GAAAiL,GAAAjL,EAAAkK,MAAA,SACAzO,EAAAwP,EAAAF,QACAnE,EAAAqE,EAAAF,OAGA,OADAtP,IAAAmL,IAAAhG,EAAAnF,GAAAmL,GACAhG,OAkDA,QAAAsK,GAAA/D,EAAAgE,GACAA,QACAlR,KAAAkN,MACAlN,KAAAiN,IAAAjN,KAAAkN,IAAAD,IAEAjN,KAAA4E,KAAA,QAAA5E,KAAAkN,IAAAM,SAAA,KAAAxN,KAAAiN,IAAAkE,cAAA,SAAAnR,KAAAiN,IAAAkE,eAAA,mBAAAnR,MAAAiN,IAAAkE,aACAnR,KAAAiN,IAAAmE,aACA,KACApR,KAAAqR,WAAArR,KAAAkN,IAAAD,IAAAoE,WACArR,KAAAsR,qBAAAtR,KAAAiN,IAAAsE,QACAvR,KAAAsF,OAAAtF,KAAAwR,QAAApB,EAAApQ,KAAAiN,IAAAwE,yBAIAzR,KAAAsF,OAAA,gBAAAtF,KAAAiN,IAAAyE,kBAAA,gBACA1R,KAAA2R,qBAAA3R,KAAAsF,QACAtF,KAAA2E,KAAA,QAAA3E,KAAAkN,IAAAM,OACAxN,KAAA4R,WAAA5R,KAAA4E,KAAA5E,KAAA4E,KAAA5E,KAAAiN,IAAAxI,UACA,KAiJA,QAAAoN,GAAArE,EAAAnM,GACA,GAAAgJ,GAAArK,IACAA,MAAA8R,OAAA9R,KAAA8R,WACA9R,KAAAwN,SACAxN,KAAAqB,MACArB,KAAAsF,UACAtF,KAAAwM,WACAxM,KAAAkO,GAAA,iBACA,GAAA9B,GAAA,KACAC,EAAA,IAEA,KACAA,EAAA,GAAA4E,GAAA5G,GACK,MAAAC,GAQL,MAPA8B,GAAA,GAAA5I,OAAA,0CACA4I,EAAAb,OAAA,EACAa,EAAA2F,SAAAzH,EAEA8B,EAAA4F,YAAA3H,EAAA4C,KAAA5C,EAAA4C,IAAAmE,aAAA/G,EAAA4C,IAAAmE,aAAA,KAEAhF,EAAA6F,WAAA5H,EAAA4C,KAAA5C,EAAA4C,IAAAsE,OAAAlH,EAAA4C,IAAAsE,OAAA,KACAlH,EAAAhF,SAAA+G,GAKA,GAFA/B,EAAA8C,KAAA,WAAAd,GAEAD,EACA,MAAA/B,GAAAhF,SAAA+G,EAAAC,EAGA,KACA,GAAAA,EAAAkF,QAAA,KAAAlF,EAAAkF,OAAA,IACA,MAAAlH,GAAAhF,SAAA+G,EAAAC,EAGA,IAAA6F,GAAA,GAAA1O,OAAA6I,EAAAgF,YAAA,6BACAa,GAAAH,SAAA3F,EACA8F,EAAAzN,SAAA4H,EACA6F,EAAAX,OAAAlF,EAAAkF,OAEAlH,EAAAhF,SAAA6M,EAAA7F,GACK,MAAA/B,GACLD,EAAAhF,SAAAiF,MAiZA,QAAA6H,GAAA9Q,EAAAmK,GACA,GAAA0B,GAAAxJ,EAAA,SAAArC,EAEA,OADAmK,IAAA0B,EAAAtH,IAAA4F,GACA0B,EAn5BA,GASAnN,GATAiO,EAAAlD,EAAA,WACAiG,EAAAjG,EAAA,UACAsH,EAAAtH,EAAA,kBACAI,EAAAJ,EAAA,cAQA/K,GADA,mBAAAqC,QACAA,OACC,mBAAAiI,MACDA,KAEArK,IAaA,IAAA0D,GAAA/F,EAAAD,QAAAoN,EAAA,aAAAuH,KAAA,KAAAR,EAMAnO,GAAA4O,OAAA,WACA,MAAAvS,EAAAwS,gBACAxS,EAAAyS,UAAA,SAAAzS,EAAAyS,SAAAC,UACA1S,EAAA2S,eACA,UAAAH,eAEA,KAAS,UAAAG,eAAA,qBAAiD,MAAApI,IAC1D,IAAS,UAAAoI,eAAA,sBAAkD,MAAApI,IAC3D,IAAS,UAAAoI,eAAA,sBAAkD,MAAApI,IAC3D,IAAS,UAAAoI,eAAA,kBAA8C,MAAApI,IAEvD,SAWA,IAAAoG,GAAA,GAAAA,KACA,SAAAhG,GAAiB,MAAAA,GAAAgG,QACjB,SAAAhG,GAAiB,MAAAA,GAAAvK,QAAA,mBAiDjBuD,GAAAiP,gBAAAjH,EAkCAhI,EAAAoM,cASApM,EAAAkP,OACAC,KAAA,YACAC,KAAA,mBACAC,IAAA,kBACAC,WAAA,oCACAC,KAAA,oCACAC,YAAA,qCAYAxP,EAAAgI,WACAyH,oCAAAzH,EACA0H,mBAAAC,KAAAC,WAYA5P,EAAA6H,OACA4H,oCAAArD,EACAsD,mBAAAC,KAAA9H,OAuJA0F,EAAAtQ,UAAA4L,IAAA,SAAA7G,GACA,MAAA1F,MAAAsF,OAAAI,EAAA+G,gBAeAwE,EAAAtQ,UAAAgR,qBAAA,SAAArM,GAEA,GAAAiO,GAAAvT,KAAAsF,OAAA,mBACAtF,MAAAM,OAAAiT,EAGA,IAAA5M,GAAAjE,EAAA6Q,EACA,QAAA/R,KAAAmF,GAAA3G,KAAAwB,GAAAmF,EAAAnF,IAcAyP,EAAAtQ,UAAAiR,WAAA,SAAA7L,GACA,GAAAwF,GAAA7H,EAAA6H,MAAAvL,KAAAM,KAIA,QAHAiL,GAAAoF,EAAA3Q,KAAAM,QACAiL,EAAA7H,EAAA6H,MAAA,qBAEAA,GAAAxF,MAAA7D,QAAA6D,YAAAI,SACAoF,EAAAxF,GACA,MAwBAkL,EAAAtQ,UAAA2Q,qBAAA,SAAAC,GAEA,OAAAA,IACAA,EAAA,IAGA,IAAAjR,GAAAiR,EAAA,KAGAvR,MAAAuR,OAAAvR,KAAAiS,WAAAV,EACAvR,KAAAwT,WAAAlT,EAGAN,KAAAyT,KAAA,GAAAnT,EACAN,KAAA0T,GAAA,GAAApT,EACAN,KAAA2T,YAAA,GAAArT,EACAN,KAAA4T,YAAA,GAAAtT,EACAN,KAAA6F,OAAA,GAAAvF,GAAA,GAAAA,IACAN,KAAA6T,UAIA7T,KAAA8T,SAAA,KAAAvC,EACAvR,KAAA+T,UAAA,KAAAxC,EACAvR,KAAAgU,WAAA,KAAAzC,EACAvR,KAAAiU,aAAA,KAAA1C,EACAvR,KAAAkU,cAAA,KAAA3C,EACAvR,KAAAmU,SAAA,KAAA5C,EACAvR,KAAAoU,UAAA,KAAA7C,GAUAN,EAAAtQ,UAAAkT,QAAA,WACA,GAAA3G,GAAAlN,KAAAkN,IACAM,EAAAN,EAAAM,OACAnM,EAAA6L,EAAA7L,IAEAgT,EAAA,UAAA7G,EAAA,IAAAnM,EAAA,KAAArB,KAAAuR,OAAA,IACAnF,EAAA,GAAA5I,OAAA6Q,EAKA,OAJAjI,GAAAmF,OAAAvR,KAAAuR,OACAnF,EAAAoB,SACApB,EAAA/K,MAEA+K,GAOA1I,EAAAuN,WA6DAjD,EAAA6D,EAAAlR,UACA,QAAAa,KAAA4Q,GACAP,EAAAlR,UAAAa,GAAA4Q,EAAA5Q,EAyBAqQ,GAAAlR,UAAAL,KAAA,SAAAA,GAEA,MADAN,MAAAoE,IAAA,eAAAV,EAAAkP,MAAAtS,OACAN,MAkBA6R,EAAAlR,UAAAwQ,aAAA,SAAAxE,GAEA,MADA3M,MAAAsU,cAAA3H,EACA3M,MAuBA6R,EAAAlR,UAAAgF,OAAA,SAAArF,GAEA,MADAN,MAAAoE,IAAA,SAAAV,EAAAkP,MAAAtS,OACAN,MAaA6R,EAAAlR,UAAAmD,KAAA,SAAAyQ,EAAAC,EAAAtD,GAOA,OANAA,IACAA,GACA5Q,KAAA,UAIA4Q,EAAA5Q,MACA,YACA,GAAAyF,GAAA0O,KAAAF,EAAA,IAAAC,EACAxU,MAAAoE,IAAA,yBAAA2B,EACA,MAEA,YACA/F,KAAA+D,SAAAwQ,EACAvU,KAAAgE,SAAAwQ,EAGA,MAAAxU,OAiBA6R,EAAAlR,UAAA0D,MAAA,SAAAsI,GAGA,MAFA,gBAAAA,OAAAjB,EAAAiB,IACAA,GAAA3M,KAAA8R,OAAAxD,KAAA3B,GACA3M,MAoBA6R,EAAAlR,UAAA8E,OAAA,SAAAC,EAAAgP,EAAAC,GAEA,MADA3U,MAAA6M,eAAAC,OAAApH,EAAAgP,EAAAC,GAAAD,EAAAlU,MACAR,MAGA6R,EAAAlR,UAAAkM,aAAA,WAIA,MAHA7M,MAAA4U,YACA5U,KAAA4U,UAAA,GAAA7U,GAAA8U,UAEA7U,KAAA4U,WAYA/C,EAAAlR,UAAA0E,SAAA,SAAA+G,EAAAC,GACA,GAAAb,GAAAxL,KAAA8U,SACA9U,MAAAoL,eACAI,EAAAY,EAAAC,IASAwF,EAAAlR,UAAAoU,iBAAA,WACA,GAAA3I,GAAA,GAAA5I,OAAA,+JACA4I,GAAA4I,aAAA,EAEA5I,EAAAmF,OAAAvR,KAAAuR,OACAnF,EAAAoB,OAAAxN,KAAAwN,OACApB,EAAA/K,IAAArB,KAAAqB,IAEArB,KAAAqF,SAAA+G,IASAyF,EAAAlR,UAAAsU,cAAA,WACA,GAAAvU,GAAAV,KAAAqL,SACAe,EAAA,GAAA5I,OAAA,cAAA9C,EAAA,cACA0L,GAAA1L,UACAV,KAAAqF,SAAA+G,IASAyF,EAAAlR,UAAAuU,mBAAA,WACA,GAAA7Q,GAAArE,KAAA8R,OAAAvO,KAAA,IACAc,KACArE,KAAAqB,MAAArB,KAAAqB,IAAA6O,QAAA,KACA,IAAA7L,EACA,IAAAA,IAaAwN,EAAAlR,UAAAiF,IAAA,SAAA4F,GACA,GAAAnB,GAAArK,KACAiN,EAAAjN,KAAAiN,IAAAvJ,EAAA4O,SACA5R,EAAAV,KAAAqL,SACAnH,EAAAlE,KAAA4U,WAAA5U,KAAAyN,KAGAzN,MAAA8U,UAAAtJ,GAAAiE,EAGAxC,EAAAkI,mBAAA,WACA,MAAAlI,EAAAmI,WAAA,CAIA,GAAA7D,EACA,KAASA,EAAAtE,EAAAsE,OAAsB,MAAAjH,GAAWiH,EAAA,EAE1C,MAAAA,EAAA,CACA,GAAAlH,EAAAgL,SAAA,MAAAhL,GAAA4K,eACA,IAAA5K,EAAA2C,SAAA,MACA,OAAA3C,GAAA0K,mBAEA1K,EAAA8C,KAAA,QAIA,IAAAmI,GAAA,SAAAhL,GACAA,EAAAiL,MAAA,IACAjL,EAAAkL,QAAAlL,EAAAzM,OAAAyM,EAAAiL,MAAA,KAEAjL,EAAAmL,UAAA,WACApL,EAAA8C,KAAA,WAAA7C,GAEAtK,MAAAkP,aAAA,cACAjC,EAAAyI,WAAAJ,EAEA,KACArI,EAAA0I,QAAA3V,KAAAkP,aAAA,cACAjC,EAAA0I,OAAAD,WAAAJ,GAEG,MAAAhL,IA4BH,GArBA5J,IAAAV,KAAAsL,SACAtL,KAAAsL,OAAAsK,WAAA,WACAvL,EAAAgL,UAAA,EACAhL,EAAA0C,SACKrM,IAILV,KAAAkV,qBAGAlV,KAAA+D,UAAA/D,KAAAgE,SACAiJ,EAAA4I,KAAA7V,KAAAwN,OAAAxN,KAAAqB,KAAA,EAAArB,KAAA+D,SAAA/D,KAAAgE,UAEAiJ,EAAA4I,KAAA7V,KAAAwN,OAAAxN,KAAAqB,KAAA,GAIArB,KAAAqN,mBAAAJ,EAAAG,iBAAA,GAGA,OAAApN,KAAAwN,QAAA,QAAAxN,KAAAwN,QAAA,gBAAAtJ,KAAAlE,KAAA0N,QAAAxJ,GAAA,CAEA,GAAArC,GAAA7B,KAAAwM,QAAA,gBACAd,EAAA1L,KAAA2L,aAAAjI,EAAAgI,UAAA7J,IAAAoO,MAAA,KAA4F,QAC5FvE,GAAAiF,EAAA9O,KAAA6J,EAAAhI,EAAAgI,UAAA,qBACAA,IAAAxH,EAAAwH,EAAAxH,IAIA,OAAAwB,KAAA1F,MAAAsF,OACA,MAAAtF,KAAAsF,OAAAI,IACAuH,EAAA6I,iBAAApQ,EAAA1F,KAAAsF,OAAAI,GAaA,OAVA1F,MAAAsU,gBACArH,EAAAkE,aAAAnR,KAAAsU,eAIAtU,KAAAmN,KAAA,UAAAnN,MAIAiN,EAAA1H,KAAA,mBAAArB,KAAA,MACAlE,MAQA0D,EAAAmO,UAYAnO,EAAA6I,IAAA,SAAAlL,EAAA6C,EAAAsH,GACA,GAAA0B,GAAAxJ,EAAA,MAAArC,EAIA,OAHA,kBAAA6C,KAAAsH,EAAAtH,IAAA,MACAA,GAAAgJ,EAAA7I,MAAAH,GACAsH,GAAA0B,EAAAtH,IAAA4F,GACA0B,GAaAxJ,EAAAqS,KAAA,SAAA1U,EAAA6C,EAAAsH,GACA,GAAA0B,GAAAxJ,EAAA,OAAArC,EAIA,OAHA,kBAAA6C,KAAAsH,EAAAtH,IAAA,MACAA,GAAAgJ,EAAA3H,KAAArB,GACAsH,GAAA0B,EAAAtH,IAAA4F,GACA0B,GAaAxJ,EAAAwN,QAAA,SAAA7P,EAAA6C,EAAAsH,GACA,GAAA0B,GAAAxJ,EAAA,UAAArC,EAIA,OAHA,kBAAA6C,KAAAsH,EAAAtH,IAAA,MACAA,GAAAgJ,EAAA3H,KAAArB,GACAsH,GAAA0B,EAAAtH,IAAA4F,GACA0B,GAkBAxJ,EAAA,IAAAyO,EACAzO,EAAA,UAAAyO,EAYAzO,EAAAsS,MAAA,SAAA3U,EAAA6C,EAAAsH,GACA,GAAA0B,GAAAxJ,EAAA,QAAArC,EAIA,OAHA,kBAAA6C,KAAAsH,EAAAtH,IAAA,MACAA,GAAAgJ,EAAA3H,KAAArB,GACAsH,GAAA0B,EAAAtH,IAAA4F,GACA0B,GAaAxJ,EAAAuS,KAAA,SAAA5U,EAAA6C,EAAAsH,GACA,GAAA0B,GAAAxJ,EAAA,OAAArC,EAIA,OAHA,kBAAA6C,KAAAsH,EAAAtH,IAAA,MACAA,GAAAgJ,EAAA3H,KAAArB,GACAsH,GAAA0B,EAAAtH,IAAA4F,GACA0B,GAaAxJ,EAAAwS,IAAA,SAAA7U,EAAA6C,EAAAsH,GACA,GAAA0B,GAAAxJ,EAAA,MAAArC,EAIA,OAHA,kBAAA6C,KAAAsH,EAAAtH,IAAA,MACAA,GAAAgJ,EAAA3H,KAAArB,GACAsH,GAAA0B,EAAAtH,IAAA4F,GACA0B,KAGGS,cAAA,EAAAwI,YAAA,EAAAC,iBAAA,EAAAC,QAAA,EAAAtF,OAAA,SAA6E,UlBqtF1E,SAASpT,EAAQD,EAASH,GmBpvIhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAC,EAAAQ,EAAAC,GACD,YAeA,IAAAxB,GAAA,SAAA4Y,GACAtW,KAAAsW,aAAA9X,EAAAoI,SAkBA5G,KAAAuW,YAAA,SAAAC,EAAA1N,EAAAzD,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAiY,GAAA,MAAAA,EACA,wEAIA,IAAAjY,QAAAuK,GAAA,MAAAA,EACA,4EAIA,IAAA3H,IACAqV,WAEAxR,GACA8D,eAEA7D,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,GAAAjG,EAEA,OAAAuB,MAAAsW,UAAAxR,QACA,oBAA0B,MAC1B3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAmBArF,KAAA0W,SAAA,SAAAF,EAAA7R,EAAAU,GACA,GAAAoR,GAAA9R,CAGA,IAAApG,QAAAiY,GAAA,MAAAA,EACA,qEAIA,IAAAjY,QAAAoG,GAAA,MAAAA,EACA,kEAIA,IAAAxD,IACAqV,WAEAxR,KAEAC,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,oBAA0B,MAC1B3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAmBArF,KAAA2W,cAAA,SAAAH,EAAA1N,EAAAzD,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAiY,GAAA,MAAAA,EACA,0EAIA,IAAAjY,QAAAuK,GAAA,MAAAA,EACA,8EAIA,IAAA3H,IACAqV,WAEAxR,GACA8D,eAEA7D,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,oBAA0B,SAC1B3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAKA,OAAA3H,MnB4vIM,SAASC,EAAQD,EAASH,GoBl9IhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAc,EAAAL,EAAAI,EAAAV,GACD,YAeA,IAAAjB,GAAA,SAAA4Y,GACAtW,KAAAsW,aAAA9X,EAAAoI,SAgBA5G,KAAA4W,QAAA,SAAAvR,GACA,GAAAoR,GAAA,KAGAtV,KAEA6D,KAEAC,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAApF,CAEA,OAAAU,MAAAsW,UAAAxR,QACA,mBACA3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAoBArF,KAAA6W,WAAA,SAAAvW,EAAAwW,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAA+B,GAAA,MAAAA,EACA,oEAIA,IAAAa,MAEA6D,GACA1E,OACAwI,YAAAgO,EAAA,aAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAArF,CAEA,OAAAW,MAAAsW,UAAAxR,QACA,qBACA3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAkBArF,KAAA+W,MAAA,SAAApS,EAAAU,GACA,GAAAoR,GAAA9R,CAGA,IAAApG,QAAAoG,GAAA,MAAAA,EACA,+DAIA,IAAAxD,MAEA6D,KAEAC,KAEAC,KAGAvB,KACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAArF,CAEA,OAAAW,MAAAsW,UAAAxR,QACA,qBACA3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAKA,OAAA3H,MpB09IM,SAASC,EAAQD,EAASH,GqBxpJhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAU,EAAAD,GACD,YAeA,IAAAvB,GAAA,SAAA4Y,GACAtW,KAAAsW,aAAA9X,EAAAoI,SAsBA5G,KAAAG,QAAA,SAAA6W,EAAAC,EAAAC,EAAAC,EAAAL,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,kEAIA,IAAAzY,QAAA0Y,GAAA,MAAAA,EACA,wEAIA,IAAA1Y,QAAA2Y,GAAA,MAAAA,EACA,oEAIA,IAAA3Y,QAAA4Y,GAAA,MAAAA,EACA,sEAIA,IAAAhW,IACA6V,SAEAhS,GACAiS,YAAAjX,KAAAsW,UAAAlT,qBAAA6T,EAAA,SACAC;AACAE,WAAAN,EAAA,WACAK,aAEAlS,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,2BAAqB,OACrB3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAsBArF,KAAAqX,OAAA,SAAAL,EAAAC,EAAAC,EAAAJ,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,iEAIA,IAAAzY,QAAA0Y,GAAA,MAAAA,EACA,uEAIA,IAAA1Y,QAAA2Y,GAAA,MAAAA,EACA,mEAIA,IAAA/V,IACA6V,SAEAhS,GACAiS,YAAAjX,KAAAsW,UAAAlT,qBAAA6T,EAAA,SACAC,UACAE,WAAAN,EAAA,YAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,GAAwBwB,QAAAnH,OAExB,OAAAiB,MAAAsW,UAAAxR,QACA,0BAAqB,MACrB3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAKA,OAAA3H,MrBgqJM,SAASC,EAAQD,EAASH,GsBh2JhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAS,EAAAD,EAAAE,GACD,YAeA,IAAAxB,GAAA,SAAA4Y,GACAtW,KAAAsW,aAAA9X,EAAAoI,SAgBA5G,KAAAsX,mBAAA,SAAAjS,GACA,GAAAoR,GAAA,KAGAtV,KAEA6D,KAEAC,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,GAAA1F,EAEA,OAAAgB,MAAAsW,UAAAxR,QACA,iBACA3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAkBArF,KAAAuX,gBAAA,SAAA5S,EAAAU,GACA,GAAAoR,GAAA9R,CAGA,IAAApG,QAAAoG,GAAA,MAAAA,EACA,yEAIA,IAAAxD,MAEA6D,KAEAC,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,iBACA3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAkBArF,KAAAwX,mBAAA,SAAA1O,EAAAzD,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAuK,GAAA,MAAAA,EACA,mFAIA,IAAA3H,MAEA6D,GACA8D,eAEA7D,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAA1F,CAEA,OAAAgB,MAAAsW,UAAAxR,QACA,oBACA3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAKA,OAAA3H,MtBw2JM,SAASC,EAAQD,EAASH,GuBliKhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAU,EAAAD,EAAAE,GACD,YAeA,IAAAzB,GAAA,SAAA4Y,GACAtW,KAAAsW,aAAA9X,EAAAoI,SAmBA5G,KAAAyX,cAAA,SAAAC,EAAA5O,EAAA6O,EAAAtS,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAmZ,GAAA,MAAAA,EACA,4EAIA,IAAAnZ,QAAAuK,GAAA,MAAAA,EACA,8EAIA,IAAAvK,QAAAoZ,GAAA,MAAAA,EACA,6EAIA,IAAAxW,IACAuW,aAEA1S,GACA8D,cACA6O,cAEA1S,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,wBAA8B,SAC9B3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAmBArF,KAAA4X,aAAA,SAAAF,EAAA5O,EAAAzD,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAmZ,GAAA,MAAAA,EACA,2EAIA,IAAAnZ,QAAAuK,GAAA,MAAAA,EACA,6EAIA,IAAA3H,IACAuW,aAEA1S,GACA8D,eAEA7D,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,GAAAvF,EAEA,OAAAa,MAAAsW,UAAAxR,QACA,wBAA8B,MAC9B3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAKA,OAAA3H,MvB0iKM,SAASC,EAAQD,EAASH,GwBptKhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAU,EAAAD,EAAAL,EAAAQ,GACD,YAeA,IAAA1B,GAAA,SAAA4Y,GACAtW,KAAAsW,aAAA9X,EAAAoI,SAuBA5G,KAAA6X,KAAA,SAAAb,EAAAc,EAAAC,EAAAjB,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,+DAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,iEAIA,IAAAvZ,QAAAwZ,GAAA,MAAAA,EACA,iEAIA,IAAA5W,IACA6V,QACAc,WAEA9S,GACA+S,UACAC,YAAAlB,EAAA,YACAmB,oBAAAnB,EAAA,oBACAoB,mBAAApB,EAAA,oBAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,6BAAmC,MACnC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAmBArF,KAAAmY,UAAA,SAAAnB,EAAAc,EAAAzS,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,oEAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,sEAIA,IAAA3W,IACA6V,QACAc,WAEA9S,KAEAC,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,6BAAmC,MACnC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAoBArF,KAAAoY,QAAA,SAAApB,EAAAc,EAAAO,EAAAhT,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,kEAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,oEAIA,IAAAvZ,QAAA8Z,GAAA,MAAAA,EACA,qEAIA,IAAAlX,IACA6V,QACAc,WAEA9S,GACAqT,YAEApT,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAA9F,CAEA,OAAAoB,MAAAsW,UAAAxR,QACA,6BAAmC,MACnC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAsBArF,KAAAsY,KAAA,SAAAtB,EAAAc,EAAAC,EAAAjB,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,+DAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,iEAIA,IAAAvZ,QAAAwZ,GAAA,MAAAA,EACA,iEAIA,IAAA5W,IACA6V,QACAc,WAEA9S,GACA+S,UACAC,YAAAlB,EAAA,aAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,6BAAmC,OACnC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAmBArF,KAAAuY,SAAA,SAAAvB,EAAAc,EAAAzS,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,mEAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,qEAIA,IAAA3W,IACA6V,QACAc,WAEA9S,KAEAC,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAlC,IAEA,OAAAxC,MAAAsW,UAAAxR,QACA,8BAAoC,MACpC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAqBArF,KAAAwY,OAAA,SAAAxB,EAAAc,EAAAhB,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,iEAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,mEAIA,IAAA3W,IACA6V,QACAc,WAEA9S,GACAyT,YAAA3B,EAAA,aAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,6BAAmC,SACnC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAqBArF,KAAA0Y,KAAA,SAAA1B,EAAAc,EAAAhB,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,+DAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,iEAIA,IAAA3W,IACA6V,QACAc,WAEA9S,GACA2T,YAAA7B,EAAA,aAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAtF,CAEA,OAAAY,MAAAsW,UAAAxR,QACA,6BAAmC,MACnC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAsBArF,KAAA4Y,UAAA,SAAA5B,EAAAc,EAAA5T,EAAA4S,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAyY,GAAA,MAAAA,EACA,oEAIA,IAAAzY,QAAAuZ,GAAA,MAAAA,EACA,sEAIA,IAAAvZ,QAAA2F,GAAA,MAAAA,EACA,mEAIA,IAAA/C,IACA6V,QACAc,WAEA9S,GACA6T,cAAA/B,EAAA,eAEA7R,KAEAC,GACAhB,QAGAP,GAAA,sBACA3B,GAAA,uBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,8BAAoC,MACpC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAKA,OAAA3H,MxB4tKM,SAASC,EAAQD,EAASH,GyB3uLhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,KAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,EAAAU,EAAAD,EAAAM,EAAAb,EAAAG,EAAAC,GACD,YAeA,IAAApB,GAAA,SAAA4Y,GACAtW,KAAAsW,aAAA9X,EAAAoI,SAkBA5G,KAAA8Y,OAAA,SAAAhQ,EAAAb,EAAA5C,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAuK,GAAA,MAAAA,EACA,uEAIA,IAAAvK,QAAA0J,GAAA,MAAAA,EACA,kEAIA,IAAA9G,IACA2H,eAEA9D,GACAiD,UAEAhD,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,iCAAkC,SAClC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAqBArF,KAAA+Y,gBAAA,SAAAjQ,EAAAkQ,EAAAxY,EAAAoJ,EAAAvE,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAuK,GAAA,MAAAA,EACA,gFAIA,IAAAvK,QAAAya,GAAA,MAAAA,EACA,8EAIA,IAAAza,QAAAiC,GAAA,MAAAA,EACA,yEAIA,IAAAjC,QAAAqL,GAAA,MAAAA,EACA,gFAIA,IAAAzI,IACA2H,eAEA9D,GACAgU,YACAxY,OACAoJ,eAEA3E,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAnF,CAEA,OAAAS,MAAAsW,UAAAxR,QACA,4BAAkC,OAClC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAqBArF,KAAAiZ,KAAA,SAAAnQ,EAAAnE,EAAAmS,EAAAzR,GACAyR,OACA,IAAAL,GAAA9R,CAGA,IAAApG,QAAAuK,GAAA,MAAAA,EACA,qEAIA,IAAAvK,QAAAoG,GAAA,MAAAA,EACA,8DAIA,IAAAxD,IACA2H,eAEA9D,GACAkU,MAAApC,EAAA,OAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAA5F,CAEA,OAAAkB,MAAAsW,UAAAxR,QACA,iCAAkC,OAClC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAmBArF,KAAAmZ,UAAA,SAAArQ,EAAAb,EAAA5C,GACA,GAAAoR,GAAA,IAGA,IAAAlY,QAAAuK,GAAA,MAAAA,EACA,0EAIA,IAAAvK,QAAA0J,GAAA,MAAAA,EACA,qEAIA,IAAA9G,IACA2H,eAEA9D,GACAiD,UAEAhD,KAEAC,KAGAvB,KACA3B,GAAA,oBACAoD,GAAA,+CACAV,GAAAhG,EAEA,OAAAsB,MAAAsW,UAAAxR,QACA,iCAAkC,MAClC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAoBArF,KAAAoZ,eAAA,SAAAtQ,EAAAgO,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAuK,GAAA,MAAAA,EACA,+EAIA,IAAA3H,IACA2H,eAEA9D,GACAqU,WAAAvC,EAAA,YAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,GAAAnF,EAEA,OAAAS,MAAAsW,UAAAxR,QACA,4BAAkC,MAClC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAqBArF,KAAAsZ,gBAAA,SAAAxQ,EAAAgO,EAAAzR,GACAyR,OACA,IAAAL,GAAA,IAGA,IAAAlY,QAAAuK,GAAA,MAAAA,EACA,gFAIA,IAAA3H,IACA2H,eAEA9D,GACA2S,WAAAb,EAAA,WACAyC,QAAAzC,EAAA,SAEA7R,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAxF,CAEA,OAAAc,MAAAsW,UAAAxR,QACA,4BAAkC,SAClC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAmBArF,KAAAwZ,gBAAA,SAAA1Q,EAAAnE,EAAAU,GACA,GAAAoR,GAAA9R,CAGA,IAAApG,QAAAuK,GAAA,MAAAA,EACA,gFAIA,IAAAvK,QAAAoG,GAAA,MAAAA,EACA,yEAIA,IAAAxD,IACA2H,eAEA9D,KAEAC,KAEAC,KAGAvB,GAAA,sBACA3B,GAAA,oBACAoD,GAAA,+CACAV,EAAAnF,CAEA,OAAAS,MAAAsW,UAAAxR,QACA,4BAAkC,MAClC3D,EAAA6D,EAAAC,EAAAC,EAAAuR,EACA9S,EAAA3B,EAAAoD,EAAAV,EAAAW,IAKA,OAAA3H,MzBmvLM,SAASC,EAAQD,EAASH,G0BtqMhC,GAAAW,GAAAC,EAAAC,GAwBA,SAAA2B,EAAA1B,GAGAF,GAAAZ,EAAA,IAAAW,EAAA,EAAAE,EAAA,kBAAAF,KAAAI,MAAAZ,EAAAS,GAAAD,IAAAK,SAAAH,IAAAT,EAAAD,QAAAU,KAWC4B,KAAA,SAAAxB,GACD,YAmBA,IAAAd,GAAA,SAAA4S,EAAA1L,GACA,GAAAtD,GAAAtB,IAEAsB,GAAA,KAAAgP,EACAhP,EAAA,KAAAsD,EAmCA,OAzBAlH,GAAA0I,oBAAA,SAAAlC,EAAAyC,GAWA,MAVAzC,KACAyC,KAAA,GAAAjJ,GAEAwG,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,iBAEAA,EAAAxC,eAAA,UACAiF,EAAA,KAAAnI,EAAAqG,cAAAX,EAAA,iBAGAyC,GAMAjJ,EAAAiD,UAAA,KAAApC,OAIAb,EAAAiD,UAAA,KAAApC,OAIAb","file":"api-bundle.js","sourcesContent":["define(function() { return /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(7), __webpack_require__(8), __webpack_require__(9), __webpack_require__(4), __webpack_require__(10), __webpack_require__(11), __webpack_require__(25), __webpack_require__(12), __webpack_require__(2), __webpack_require__(3), __webpack_require__(13), __webpack_require__(5), __webpack_require__(14), __webpack_require__(15), __webpack_require__(16), __webpack_require__(18), __webpack_require__(19), __webpack_require__(20), __webpack_require__(21), __webpack_require__(22), __webpack_require__(23), __webpack_require__(24)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('./ApiClient'), require('./model/Alias'), require('./model/ChildProcess'), require('./model/Credential'), require('./model/DirEntry'), require('./model/Execution'), require('./model/ExecutionResult'), require('./model/Match'), require('./model/RemoteAccess'), require('./model/RestError'), require('./model/RestOK'), require('./model/Session'), require('./model/Stats'), require('./model/Token'), require('./model/User'), require('./model/Workspace'), require('./api/AliasApi'), require('./api/AuthApi'), require('./api/OpsApi'), require('./api/RemotesApi'), require('./api/SessionApi'), require('./api/WfsApi'), require('./api/WorkspaceApi'));\n\t }\n\t}(function(ApiClient, Alias, ChildProcess, Credential, DirEntry, Execution, ExecutionResult, Match, RemoteAccess, RestError, RestOK, Session, Stats, Token, User, Workspace, AliasApi, AuthApi, OpsApi, RemotesApi, SessionApi, WfsApi, WorkspaceApi) {\n\t 'use strict';\n\t\n\t /**\n\t * Restful_API_for_Webida_clients_to_use_servers_data__features.
\n\t * The index
module provides access to constructors for all the classes which comprise the public API.\n\t * \n\t * An AMD (recommended!) or CommonJS application will generally do something equivalent to the following:\n\t *
\n\t * var WebidaRestfulApi = require('index'); // See note below*.\n\t * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n\t * var yyyModel = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n\t * yyyModel.someProperty = 'someValue';\n\t * ...\n\t * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n\t * ...\n\t *
\n\t * *NOTE: For a top-level AMD script, use require(['index'], function(){...})\n\t * and put the application logic within the callback function.\n\t * \n\t * \n\t * A non-AMD browser application (discouraged) might do something like this:\n\t *
\n\t * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n\t * var yyy = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n\t * yyyModel.someProperty = 'someValue';\n\t * ...\n\t * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n\t * ...\n\t *
\n\t * \n\t * @module index\n\t * @version 0.6.0\n\t */\n\t var exports = {\n\t /**\n\t * The ApiClient constructor.\n\t * @property {module:ApiClient}\n\t */\n\t ApiClient: ApiClient,\n\t /**\n\t * The Alias model constructor.\n\t * @property {module:model/Alias}\n\t */\n\t Alias: Alias,\n\t /**\n\t * The ChildProcess model constructor.\n\t * @property {module:model/ChildProcess}\n\t */\n\t ChildProcess: ChildProcess,\n\t /**\n\t * The Credential model constructor.\n\t * @property {module:model/Credential}\n\t */\n\t Credential: Credential,\n\t /**\n\t * The DirEntry model constructor.\n\t * @property {module:model/DirEntry}\n\t */\n\t DirEntry: DirEntry,\n\t /**\n\t * The Execution model constructor.\n\t * @property {module:model/Execution}\n\t */\n\t Execution: Execution,\n\t /**\n\t * The ExecutionResult model constructor.\n\t * @property {module:model/ExecutionResult}\n\t */\n\t ExecutionResult: ExecutionResult,\n\t /**\n\t * The Match model constructor.\n\t * @property {module:model/Match}\n\t */\n\t Match: Match,\n\t /**\n\t * The RemoteAccess model constructor.\n\t * @property {module:model/RemoteAccess}\n\t */\n\t RemoteAccess: RemoteAccess,\n\t /**\n\t * The RestError model constructor.\n\t * @property {module:model/RestError}\n\t */\n\t RestError: RestError,\n\t /**\n\t * The RestOK model constructor.\n\t * @property {module:model/RestOK}\n\t */\n\t RestOK: RestOK,\n\t /**\n\t * The Session model constructor.\n\t * @property {module:model/Session}\n\t */\n\t Session: Session,\n\t /**\n\t * The Stats model constructor.\n\t * @property {module:model/Stats}\n\t */\n\t Stats: Stats,\n\t /**\n\t * The Token model constructor.\n\t * @property {module:model/Token}\n\t */\n\t Token: Token,\n\t /**\n\t * The User model constructor.\n\t * @property {module:model/User}\n\t */\n\t User: User,\n\t /**\n\t * The Workspace model constructor.\n\t * @property {module:model/Workspace}\n\t */\n\t Workspace: Workspace,\n\t /**\n\t * The AliasApi service constructor.\n\t * @property {module:api/AliasApi}\n\t */\n\t AliasApi: AliasApi,\n\t /**\n\t * The AuthApi service constructor.\n\t * @property {module:api/AuthApi}\n\t */\n\t AuthApi: AuthApi,\n\t /**\n\t * The OpsApi service constructor.\n\t * @property {module:api/OpsApi}\n\t */\n\t OpsApi: OpsApi,\n\t /**\n\t * The RemotesApi service constructor.\n\t * @property {module:api/RemotesApi}\n\t */\n\t RemotesApi: RemotesApi,\n\t /**\n\t * The SessionApi service constructor.\n\t * @property {module:api/SessionApi}\n\t */\n\t SessionApi: SessionApi,\n\t /**\n\t * The WfsApi service constructor.\n\t * @property {module:api/WfsApi}\n\t */\n\t WfsApi: WfsApi,\n\t /**\n\t * The WorkspaceApi service constructor.\n\t * @property {module:api/WorkspaceApi}\n\t */\n\t WorkspaceApi: WorkspaceApi\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(17)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('superagent'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.ApiClient = factory(root.superagent);\n\t }\n\t}(this, function(superagent) {\n\t 'use strict';\n\t\n\t /**\n\t * @module ApiClient\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an\n\t * application to use this class directly - the *Api and model classes provide the public API for the service. The\n\t * contents of this file should be regarded as internal but are documented for completeness.\n\t * @alias module:ApiClient\n\t * @class\n\t */\n\t var exports = function() {\n\t /**\n\t * The base URL against which to resolve every API call's (relative) path.\n\t * @type {String}\n\t * @default https://localhost/api\n\t */\n\t this.basePath = 'https://localhost/api'.replace(/\\/+$/, '');\n\t\n\t /**\n\t * The authentication methods to be included for all API calls.\n\t * @type {Array.}\n\t */\n\t this.authentications = {\n\t 'webida-simple-auth': {type: 'apiKey', 'in': 'header', name: 'Authorization'}\n\t };\n\t /**\n\t * The default HTTP headers to be included for all API calls.\n\t * @type {Array.}\n\t * @default {}\n\t */\n\t this.defaultHeaders = {};\n\t\n\t /**\n\t * The default HTTP timeout for all API calls.\n\t * @type {Number}\n\t * @default 60000\n\t */\n\t this.timeout = 60000;\n\t };\n\t\n\t /**\n\t * Returns a string representation for an actual parameter.\n\t * @param param The actual parameter.\n\t * @returns {String} The string representation of param
.\n\t */\n\t exports.prototype.paramToString = function(param) {\n\t if (param == undefined || param == null) {\n\t return '';\n\t }\n\t if (param instanceof Date) {\n\t return param.toJSON();\n\t }\n\t return param.toString();\n\t };\n\t\n\t /**\n\t * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values.\n\t * NOTE: query parameters are not handled here.\n\t * @param {String} path The path to append to the base URL.\n\t * @param {Object} pathParams The parameter values to append.\n\t * @returns {String} The encoded path with parameter values substituted.\n\t */\n\t exports.prototype.buildUrl = function(path, pathParams) {\n\t if (!path.match(/^\\//)) {\n\t path = '/' + path;\n\t }\n\t var url = this.basePath + path;\n\t var _this = this;\n\t url = url.replace(/\\{([\\w-]+)\\}/g, function(fullMatch, key) {\n\t var value;\n\t if (pathParams.hasOwnProperty(key)) {\n\t value = _this.paramToString(pathParams[key]);\n\t } else {\n\t value = fullMatch;\n\t }\n\t return encodeURIComponent(value);\n\t });\n\t return url;\n\t };\n\t\n\t /**\n\t * Checks whether the given content type represents JSON.
\n\t * JSON content type examples:
\n\t * \n\t * - application/json
\n\t * - application/json; charset=UTF8
\n\t * - APPLICATION/JSON
\n\t *
\n\t * @param {String} contentType The MIME content type to check.\n\t * @returns {Boolean} true
if contentType
represents JSON, otherwise false
.\n\t */\n\t exports.prototype.isJsonMime = function(contentType) {\n\t return Boolean(contentType != null && contentType.match(/^application\\/json(;.*)?$/i));\n\t };\n\t\n\t /**\n\t * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first.\n\t * @param {Array.} contentTypes\n\t * @returns {String} The chosen content type, preferring JSON.\n\t */\n\t exports.prototype.jsonPreferredMime = function(contentTypes) {\n\t for (var i = 0; i < contentTypes.length; i++) {\n\t if (this.isJsonMime(contentTypes[i])) {\n\t return contentTypes[i];\n\t }\n\t }\n\t return contentTypes[0];\n\t };\n\t\n\t /**\n\t * Checks whether the given parameter value represents file-like content.\n\t * @param param The parameter to check.\n\t * @returns {Boolean} true
if param
represents a file. \n\t */\n\t exports.prototype.isFileParam = function(param) {\n\t // fs.ReadStream in Node.js (but not in runtime like browserify)\n\t if (typeof window === 'undefined' &&\n\t \"function\" === 'function' &&\n\t __webpack_require__(6) &&\n\t param instanceof __webpack_require__(6).ReadStream) {\n\t return true;\n\t }\n\t // Buffer in Node.js\n\t if (typeof Buffer === 'function' && param instanceof Buffer) {\n\t return true;\n\t }\n\t // Blob in browser\n\t if (typeof Blob === 'function' && param instanceof Blob) {\n\t return true;\n\t }\n\t // File in browser (it seems File object is also instance of Blob, but keep this for safe)\n\t if (typeof File === 'function' && param instanceof File) {\n\t return true;\n\t }\n\t return false;\n\t };\n\t\n\t /**\n\t * Normalizes parameter values:\n\t * \n\t * - remove nils
\n\t * - keep files and arrays
\n\t * - format to string with `paramToString` for other cases
\n\t *
\n\t * @param {Object.} params The parameters as object properties.\n\t * @returns {Object.} normalized parameters.\n\t */\n\t exports.prototype.normalizeParams = function(params) {\n\t var newParams = {};\n\t for (var key in params) {\n\t if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) {\n\t var value = params[key];\n\t if (this.isFileParam(value) || Array.isArray(value)) {\n\t newParams[key] = value;\n\t } else {\n\t newParams[key] = this.paramToString(value);\n\t }\n\t }\n\t }\n\t return newParams;\n\t };\n\t\n\t /**\n\t * Enumeration of collection format separator strategies.\n\t * @enum {String} \n\t * @readonly\n\t */\n\t exports.CollectionFormatEnum = {\n\t /**\n\t * Comma-separated values. Value: csv
\n\t * @const\n\t */\n\t CSV: ',',\n\t /**\n\t * Space-separated values. Value: ssv
\n\t * @const\n\t */\n\t SSV: ' ',\n\t /**\n\t * Tab-separated values. Value: tsv
\n\t * @const\n\t */\n\t TSV: '\\t',\n\t /**\n\t * Pipe(|)-separated values. Value: pipes
\n\t * @const\n\t */\n\t PIPES: '|',\n\t /**\n\t * Native array. Value: multi
\n\t * @const\n\t */\n\t MULTI: 'multi'\n\t };\n\t\n\t /**\n\t * Builds a string representation of an array-type actual parameter, according to the given collection format.\n\t * @param {Array} param An array parameter.\n\t * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy.\n\t * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns\n\t * param
as is if collectionFormat
is multi
.\n\t */\n\t exports.prototype.buildCollectionParam = function buildCollectionParam(param, collectionFormat) {\n\t if (param == null) {\n\t return null;\n\t }\n\t switch (collectionFormat) {\n\t case 'csv':\n\t return param.map(this.paramToString).join(',');\n\t case 'ssv':\n\t return param.map(this.paramToString).join(' ');\n\t case 'tsv':\n\t return param.map(this.paramToString).join('\\t');\n\t case 'pipes':\n\t return param.map(this.paramToString).join('|');\n\t case 'multi':\n\t // return the array directly as SuperAgent will handle it as expected\n\t return param.map(this.paramToString);\n\t default:\n\t throw new Error('Unknown collection format: ' + collectionFormat);\n\t }\n\t };\n\t\n\t /**\n\t * Applies authentication headers to the request.\n\t * @param {Object} request The request object created by a superagent()
call.\n\t * @param {Array.} authNames An array of authentication method names.\n\t */\n\t exports.prototype.applyAuthToRequest = function(request, authNames) {\n\t var _this = this;\n\t authNames.forEach(function(authName) {\n\t var auth = _this.authentications[authName];\n\t switch (auth.type) {\n\t case 'basic':\n\t if (auth.username || auth.password) {\n\t request.auth(auth.username || '', auth.password || '');\n\t }\n\t break;\n\t case 'apiKey':\n\t if (auth.apiKey) {\n\t var data = {};\n\t if (auth.apiKeyPrefix) {\n\t data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey;\n\t } else {\n\t data[auth.name] = auth.apiKey;\n\t }\n\t if (auth['in'] === 'header') {\n\t request.set(data);\n\t } else {\n\t request.query(data);\n\t }\n\t }\n\t break;\n\t case 'oauth2':\n\t if (auth.accessToken) {\n\t request.set({'Authorization': 'Bearer ' + auth.accessToken});\n\t }\n\t break;\n\t default:\n\t throw new Error('Unknown authentication type: ' + auth.type);\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * Deserializes an HTTP response body into a value of the specified type.\n\t * @param {Object} response A SuperAgent response object.\n\t * @param {(String|Array.|Object.|Function)} returnType The type to return. Pass a string for simple types\n\t * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n\t * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n\t * all properties on data will be converted to this type.\n\t * @returns A value of the specified type.\n\t */\n\t exports.prototype.deserialize = function deserialize(response, returnType) {\n\t if (response == null || returnType == null) {\n\t return null;\n\t }\n\t // Rely on SuperAgent for parsing response body.\n\t // See http://visionmedia.github.io/superagent/#parsing-response-bodies\n\t var data = response.body;\n\t if (data == null) {\n\t // SuperAgent does not always produce a body; use the unparsed response as a fallback\n\t data = response.text;\n\t }\n\t return exports.convertToType(data, returnType);\n\t };\n\t\n\t /**\n\t * Callback function to receive the result of the operation.\n\t * @callback module:ApiClient~callApiCallback\n\t * @param {String} error Error message, if any.\n\t * @param data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Invokes the REST service using the supplied settings and parameters.\n\t * @param {String} path The base URL to invoke.\n\t * @param {String} httpMethod The HTTP method to use.\n\t * @param {Object.} pathParams A map of path parameters and their values.\n\t * @param {Object.} queryParams A map of query parameters and their values.\n\t * @param {Object.} headerParams A map of header parameters and their values.\n\t * @param {Object.} formParams A map of form parameters and their values.\n\t * @param {Object} bodyParam The value to pass as the request body.\n\t * @param {Array.} authNames An array of authentication type names.\n\t * @param {Array.} contentTypes An array of request MIME types.\n\t * @param {Array.} accepts An array of acceptable response MIME types.\n\t * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the\n\t * constructor for a complex type.\n\t * @param {module:ApiClient~callApiCallback} callback The callback function.\n\t * @returns {Object} The SuperAgent request object.\n\t */\n\t exports.prototype.callApi = function callApi(path, httpMethod, pathParams,\n\t queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts,\n\t returnType, callback) {\n\t\n\t var _this = this;\n\t var url = this.buildUrl(path, pathParams);\n\t var request = superagent(httpMethod, url);\n\t\n\t // apply authentications\n\t this.applyAuthToRequest(request, authNames);\n\t\n\t // set query parameters\n\t request.query(this.normalizeParams(queryParams));\n\t\n\t // set header parameters\n\t request.set(this.defaultHeaders).set(this.normalizeParams(headerParams));\n\t\n\t // set request timeout\n\t request.timeout(this.timeout);\n\t\n\t var contentType = this.jsonPreferredMime(contentTypes);\n\t if (contentType !== 'multipart/form-data') {\n\t if (contentType) {\n\t request.type(contentType);\n\t } else if (!request.header['Content-Type']) {\n\t request.type('application/json');\n\t }\n\t }\n\t\n\t if (contentType === 'application/x-www-form-urlencoded') {\n\t request.send(this.normalizeParams(formParams));\n\t } else if (contentType == 'multipart/form-data') {\n\t var _formParams = this.normalizeParams(formParams);\n\t for (var key in _formParams) {\n\t if (_formParams.hasOwnProperty(key)) {\n\t if (this.isFileParam(_formParams[key])) {\n\t // file field\n\t request.attach(key, _formParams[key]);\n\t } else {\n\t request.field(key, _formParams[key]);\n\t }\n\t }\n\t }\n\t } else if (bodyParam) {\n\t request.send(bodyParam);\n\t }\n\t\n\t var accept = this.jsonPreferredMime(accepts);\n\t if (accept) {\n\t request.accept(accept);\n\t }\n\t\n\t\n\t request.end(function(error, response) {\n\t if (callback) {\n\t var data = null;\n\t if (!error) {\n\t data = _this.deserialize(response, returnType);\n\t }\n\t callback(error, data, response);\n\t }\n\t });\n\t\n\t return request;\n\t };\n\t\n\t /**\n\t * Parses an ISO-8601 string representation of a date value.\n\t * @param {String} str The date value as a string.\n\t * @returns {Date} The parsed date object.\n\t */\n\t exports.parseDate = function(str) {\n\t return new Date(str.replace(/T/i, ' '));\n\t };\n\t\n\t /**\n\t * Converts a value to the specified type.\n\t * @param {(String|Object)} data The data to convert, as a string or object.\n\t * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types\n\t * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n\t * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n\t * all properties on data will be converted to this type.\n\t * @returns An instance of the specified type.\n\t */\n\t exports.convertToType = function(data, type) {\n\t switch (type) {\n\t case 'Boolean':\n\t return Boolean(data);\n\t case 'Integer':\n\t return parseInt(data, 10);\n\t case 'Number':\n\t return parseFloat(data);\n\t case 'String':\n\t return String(data);\n\t case 'Date':\n\t return this.parseDate(String(data));\n\t default:\n\t if (type === Object || type === File) {\n\t // generic object or Blob - return directly\n\t return data;\n\t } else if (typeof type === 'function') {\n\t if (typeof type.constructFromObject !== 'function') {\n\t // some manually written models might have no factory function\n\t return data;\n\t } else {\n\t // for model type like: User\n\t return type.constructFromObject(data);\n\t }\n\t } else if (Array.isArray(type)) {\n\t // for array type like: ['String']\n\t var itemType = type[0];\n\t return data.map(function(item) {\n\t return exports.convertToType(item, itemType);\n\t });\n\t } else if (typeof type === 'object') {\n\t // for plain object type like: {'String': 'Integer'}\n\t var keyType, valueType;\n\t for (var k in type) {\n\t if (type.hasOwnProperty(k)) {\n\t keyType = k;\n\t valueType = type[k];\n\t break;\n\t }\n\t }\n\t var result = {};\n\t for (var k in data) {\n\t if (data.hasOwnProperty(k)) {\n\t var key = exports.convertToType(k, keyType);\n\t var value = exports.convertToType(data[k], valueType);\n\t result[key] = value;\n\t }\n\t }\n\t return result;\n\t } else {\n\t // for unknown type, return the data directly\n\t return data;\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Constructs a new map or array model from REST data.\n\t * @param data {Object|Array} The REST data.\n\t * @param obj {Object|Array} The target object or array.\n\t */\n\t exports.constructFromObject = function(data, obj, itemType) {\n\t if (Array.isArray(data)) {\n\t for (var i = 0; i < data.length; i++) {\n\t if (data.hasOwnProperty(i))\n\t obj[i] = exports.convertToType(data[i], itemType);\n\t }\n\t } else {\n\t for (var k in data) {\n\t if (data.hasOwnProperty(k))\n\t obj[k] = exports.convertToType(data[k], itemType);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * The default API client implementation.\n\t * @type {module:ApiClient}\n\t */\n\t exports.instance = new exports();\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RestError = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The RestError model module.\n\t * @module model/RestError\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new RestError
.\n\t * Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code \\"Invalid Argument\\" instead of \\"Conflic\\". So, Client should read message property to know what happend exactly, when an error is returned from server. And, some 500 errors can have system errno instead of useless \\"internal\\". Like other errors, details are hidden in message.\n\t * @alias module:model/RestError\n\t * @class\n\t * @param message {String} \n\t */\n\t var exports = function(message) {\n\t var _this = this;\n\t\n\t\n\t _this['message'] = message;\n\t\n\t };\n\t\n\t /**\n\t * Constructs a RestError
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/RestError} obj Optional instance to populate.\n\t * @return {module:model/RestError} The populated RestError
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('code')) {\n\t obj['code'] = ApiClient.convertToType(data['code'], 'String');\n\t }\n\t if (data.hasOwnProperty('message')) {\n\t obj['message'] = ApiClient.convertToType(data['message'], 'String');\n\t }\n\t if (data.hasOwnProperty('errno')) {\n\t obj['errno'] = ApiClient.convertToType(data['errno'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} code\n\t */\n\t exports.prototype['code'] = undefined;\n\t /**\n\t * @member {String} message\n\t */\n\t exports.prototype['message'] = undefined;\n\t /**\n\t * errno code for some internal errors in server. Since service implementation can use many different platform api & runtime, client should avoid relying on errno code.\n\t * @member {String} errno\n\t */\n\t exports.prototype['errno'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RestOK = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The RestOK model module.\n\t * @module model/RestOK\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new RestOK
.\n\t * @alias module:model/RestOK\n\t * @class\n\t */\n\t var exports = function() {\n\t var _this = this;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a RestOK
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/RestOK} obj Optional instance to populate.\n\t * @return {module:model/RestOK} The populated RestOK
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('message')) {\n\t obj['message'] = ApiClient.convertToType(data['message'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} message\n\t */\n\t exports.prototype['message'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(4), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('./DirEntry'), require('./Stats'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.DirEntry = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n\t }\n\t}(this, function(ApiClient, DirEntry, Stats) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The DirEntry model module.\n\t * @module model/DirEntry\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new DirEntry
.\n\t * a directory entry (file or directory) with children that represents a (sub) tree\n\t * @alias module:model/DirEntry\n\t * @class\n\t * @param name {String} \n\t * @param stats {module:model/Stats} \n\t * @param children {Array.} \n\t */\n\t var exports = function(name, stats, children) {\n\t var _this = this;\n\t\n\t _this['name'] = name;\n\t _this['stats'] = stats;\n\t _this['children'] = children;\n\t };\n\t\n\t /**\n\t * Constructs a DirEntry
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/DirEntry} obj Optional instance to populate.\n\t * @return {module:model/DirEntry} The populated DirEntry
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('stats')) {\n\t obj['stats'] = Stats.constructFromObject(data['stats']);\n\t }\n\t if (data.hasOwnProperty('children')) {\n\t obj['children'] = ApiClient.convertToType(data['children'], [DirEntry]);\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * @member {module:model/Stats} stats\n\t */\n\t exports.prototype['stats'] = undefined;\n\t /**\n\t * @member {Array.} children\n\t */\n\t exports.prototype['children'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Stats = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Stats model module.\n\t * @module model/Stats\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Stats
.\n\t * simplified/augmented fs.Stats class - see node.js doc for all properties\n\t * @alias module:model/Stats\n\t * @class\n\t * @param type {module:model/Stats.TypeEnum} All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.\n\t * @param birthtime {Date} \n\t * @param mtime {Date} \n\t * @param mode {String} \n\t * @param size {Integer} \n\t * @param nlink {Integer} \n\t */\n\t var exports = function(type, birthtime, mtime, mode, size, nlink) {\n\t var _this = this;\n\t\n\t _this['type'] = type;\n\t _this['birthtime'] = birthtime;\n\t _this['mtime'] = mtime;\n\t _this['mode'] = mode;\n\t _this['size'] = size;\n\t _this['nlink'] = nlink;\n\t };\n\t\n\t /**\n\t * Constructs a Stats
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Stats} obj Optional instance to populate.\n\t * @return {module:model/Stats} The populated Stats
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('type')) {\n\t obj['type'] = ApiClient.convertToType(data['type'], 'String');\n\t }\n\t if (data.hasOwnProperty('birthtime')) {\n\t obj['birthtime'] = ApiClient.convertToType(data['birthtime'], 'Date');\n\t }\n\t if (data.hasOwnProperty('mtime')) {\n\t obj['mtime'] = ApiClient.convertToType(data['mtime'], 'Date');\n\t }\n\t if (data.hasOwnProperty('mode')) {\n\t obj['mode'] = ApiClient.convertToType(data['mode'], 'String');\n\t }\n\t if (data.hasOwnProperty('size')) {\n\t obj['size'] = ApiClient.convertToType(data['size'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('nlink')) {\n\t obj['nlink'] = ApiClient.convertToType(data['nlink'], 'Integer');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.\n\t * @member {module:model/Stats.TypeEnum} type\n\t */\n\t exports.prototype['type'] = undefined;\n\t /**\n\t * @member {Date} birthtime\n\t */\n\t exports.prototype['birthtime'] = undefined;\n\t /**\n\t * @member {Date} mtime\n\t */\n\t exports.prototype['mtime'] = undefined;\n\t /**\n\t * @member {String} mode\n\t */\n\t exports.prototype['mode'] = undefined;\n\t /**\n\t * @member {Integer} size\n\t */\n\t exports.prototype['size'] = undefined;\n\t /**\n\t * @member {Integer} nlink\n\t */\n\t exports.prototype['nlink'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the type
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.TypeEnum = {\n\t /**\n\t * value: \"FILE\"\n\t * @const\n\t */\n\t \"FILE\": \"FILE\",\n\t /**\n\t * value: \"DIRECTORY\"\n\t * @const\n\t */\n\t \"DIRECTORY\": \"DIRECTORY\",\n\t /**\n\t * value: \"BLOCK_DEVICE\"\n\t * @const\n\t */\n\t \"BLOCK_DEVICE\": \"BLOCK_DEVICE\",\n\t /**\n\t * value: \"CHARACTER_DEVICE\"\n\t * @const\n\t */\n\t \"CHARACTER_DEVICE\": \"CHARACTER_DEVICE\",\n\t /**\n\t * value: \"LINK\"\n\t * @const\n\t */\n\t \"LINK\": \"LINK\",\n\t /**\n\t * value: \"FIFO\"\n\t * @const\n\t */\n\t \"FIFO\": \"FIFO\",\n\t /**\n\t * value: \"SOCKET\"\n\t * @const\n\t */\n\t \"SOCKET\": \"SOCKET\",\n\t /**\n\t * value: \"DUMMY\"\n\t * @const\n\t */\n\t \"DUMMY\": \"DUMMY\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Alias = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Alias model module.\n\t * @module model/Alias\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Alias
.\n\t * alias to access file system using git or direct http requests who can't call swagger api with proper tokens\n\t * @alias module:model/Alias\n\t * @class\n\t */\n\t var exports = function() {\n\t var _this = this;\n\t\n\t\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Alias
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Alias} obj Optional instance to populate.\n\t * @return {module:model/Alias} The populated Alias
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspaceId')) {\n\t obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n\t }\n\t if (data.hasOwnProperty('sourcePath')) {\n\t obj['sourcePath'] = ApiClient.convertToType(data['sourcePath'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * id, and the path-fragment to access. Since this id is a path-fragment, any unsafe chars for path should not be included, especially / char. ?, *, and other special characters for shell are not also allowed.\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * id of the workspace that contains source of alias\n\t * @member {String} workspaceId\n\t */\n\t exports.prototype['workspaceId'] = undefined;\n\t /**\n\t * the source of alias, relative path to workspace root directory.\n\t * @member {String} sourcePath\n\t */\n\t exports.prototype['sourcePath'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.ChildProcess = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The ChildProcess model module.\n\t * @module model/ChildProcess\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new ChildProcess
.\n\t * a process in execution, spawned by async exec or other mean\n\t * @alias module:model/ChildProcess\n\t * @class\n\t * @param pid {Integer} child process pid\n\t * @param command {String} execution command in execution request\n\t * @param args {Array.} arguments of command in execution request\n\t * @param execId {String} execution id from execution request\n\t * @param state {module:model/ChildProcess.StateEnum} State of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n\t * @param startedAt {Date} the time when this process is spawned\n\t */\n\t var exports = function(pid, command, args, execId, state, startedAt) {\n\t var _this = this;\n\t\n\t _this['pid'] = pid;\n\t _this['command'] = command;\n\t _this['args'] = args;\n\t _this['execId'] = execId;\n\t _this['state'] = state;\n\t _this['startedAt'] = startedAt;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a ChildProcess
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/ChildProcess} obj Optional instance to populate.\n\t * @return {module:model/ChildProcess} The populated ChildProcess
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('pid')) {\n\t obj['pid'] = ApiClient.convertToType(data['pid'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('command')) {\n\t obj['command'] = ApiClient.convertToType(data['command'], 'String');\n\t }\n\t if (data.hasOwnProperty('args')) {\n\t obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n\t }\n\t if (data.hasOwnProperty('execId')) {\n\t obj['execId'] = ApiClient.convertToType(data['execId'], 'String');\n\t }\n\t if (data.hasOwnProperty('state')) {\n\t obj['state'] = ApiClient.convertToType(data['state'], 'String');\n\t }\n\t if (data.hasOwnProperty('startedAt')) {\n\t obj['startedAt'] = ApiClient.convertToType(data['startedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('exitCode')) {\n\t obj['exitCode'] = ApiClient.convertToType(data['exitCode'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('exitSignal')) {\n\t obj['exitSignal'] = ApiClient.convertToType(data['exitSignal'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * child process pid\n\t * @member {Integer} pid\n\t */\n\t exports.prototype['pid'] = undefined;\n\t /**\n\t * execution command in execution request\n\t * @member {String} command\n\t */\n\t exports.prototype['command'] = undefined;\n\t /**\n\t * arguments of command in execution request\n\t * @member {Array.} args\n\t */\n\t exports.prototype['args'] = undefined;\n\t /**\n\t * execution id from execution request\n\t * @member {String} execId\n\t */\n\t exports.prototype['execId'] = undefined;\n\t /**\n\t * State of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n\t * @member {module:model/ChildProcess.StateEnum} state\n\t */\n\t exports.prototype['state'] = undefined;\n\t /**\n\t * the time when this process is spawned\n\t * @member {Date} startedAt\n\t */\n\t exports.prototype['startedAt'] = undefined;\n\t /**\n\t * the exit code of child process. available with EXITED procs only.\n\t * @member {Integer} exitCode\n\t */\n\t exports.prototype['exitCode'] = undefined;\n\t /**\n\t * the signal that killed this child process.(not always available)\n\t * @member {String} exitSignal\n\t */\n\t exports.prototype['exitSignal'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the state
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.StateEnum = {\n\t /**\n\t * value: \"CREATED\"\n\t * @const\n\t */\n\t \"CREATED\": \"CREATED\",\n\t /**\n\t * value: \"WORKING\"\n\t * @const\n\t */\n\t \"WORKING\": \"WORKING\",\n\t /**\n\t * value: \"KILLING\"\n\t * @const\n\t */\n\t \"KILLING\": \"KILLING\",\n\t /**\n\t * value: \"EXITED\"\n\t * @const\n\t */\n\t \"EXITED\": \"EXITED\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Credential = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Credential model module.\n\t * @module model/Credential\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Credential
.\n\t * User credential to login. Use https to protect credential. master token can replace actual id/password pair.\n\t * @alias module:model/Credential\n\t * @class\n\t * @param loginId {String} \n\t * @param loginPassword {String} \n\t */\n\t var exports = function(loginId, loginPassword) {\n\t var _this = this;\n\t\n\t _this['loginId'] = loginId;\n\t _this['loginPassword'] = loginPassword;\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Credential
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Credential} obj Optional instance to populate.\n\t * @return {module:model/Credential} The populated Credential
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('loginId')) {\n\t obj['loginId'] = ApiClient.convertToType(data['loginId'], 'String');\n\t }\n\t if (data.hasOwnProperty('loginPassword')) {\n\t obj['loginPassword'] = ApiClient.convertToType(data['loginPassword'], 'String');\n\t }\n\t if (data.hasOwnProperty('masterToken')) {\n\t obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {String} loginId\n\t */\n\t exports.prototype['loginId'] = undefined;\n\t /**\n\t * @member {String} loginPassword\n\t */\n\t exports.prototype['loginPassword'] = undefined;\n\t /**\n\t * A master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password for login, non-empty. the values can be used to identify client type.\n\t * @member {String} masterToken\n\t */\n\t exports.prototype['masterToken'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Execution = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Execution model module.\n\t * @module model/Execution\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Execution
.\n\t * execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability * encoding : fixed to utf-8 * shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.) * killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed. * uid & gid : will not be set for security * stdio : all streams are handled by server. no options are avaliable to client. * detached : always false \n\t * @alias module:model/Execution\n\t * @class\n\t * @param command {String} The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always.\n\t * @param args {Array.} The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n\t */\n\t var exports = function(command, args) {\n\t var _this = this;\n\t\n\t\n\t _this['command'] = command;\n\t _this['args'] = args;\n\t\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Execution
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Execution} obj Optional instance to populate.\n\t * @return {module:model/Execution} The populated Execution
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('command')) {\n\t obj['command'] = ApiClient.convertToType(data['command'], 'String');\n\t }\n\t if (data.hasOwnProperty('args')) {\n\t obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n\t }\n\t if (data.hasOwnProperty('cwd')) {\n\t obj['cwd'] = ApiClient.convertToType(data['cwd'], 'String');\n\t }\n\t if (data.hasOwnProperty('timeout')) {\n\t obj['timeout'] = ApiClient.convertToType(data['timeout'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('maxBuffer')) {\n\t obj['maxBuffer'] = ApiClient.convertToType(data['maxBuffer'], 'Integer');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id.\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always.\n\t * @member {String} command\n\t */\n\t exports.prototype['command'] = undefined;\n\t /**\n\t * The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n\t * @member {Array.} args\n\t */\n\t exports.prototype['args'] = undefined;\n\t /**\n\t * Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an absolute cwd path.\n\t * @member {String} cwd\n\t */\n\t exports.prototype['cwd'] = undefined;\n\t /**\n\t * The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked\n\t * @member {Integer} timeout\n\t */\n\t exports.prototype['timeout'] = undefined;\n\t /**\n\t * Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough.\n\t * @member {Integer} maxBuffer\n\t */\n\t exports.prototype['maxBuffer'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.ExecutionResult = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The ExecutionResult model module.\n\t * @module model/ExecutionResult\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new ExecutionResult
.\n\t * execution response\n\t * @alias module:model/ExecutionResult\n\t * @class\n\t * @param stdout {String} standard out of child process.\n\t * @param stderr {String} standard error of child process.\n\t */\n\t var exports = function(stdout, stderr) {\n\t var _this = this;\n\t\n\t\n\t _this['stdout'] = stdout;\n\t _this['stderr'] = stderr;\n\t };\n\t\n\t /**\n\t * Constructs a ExecutionResult
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/ExecutionResult} obj Optional instance to populate.\n\t * @return {module:model/ExecutionResult} The populated ExecutionResult
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('error')) {\n\t obj['error'] = ApiClient.convertToType(data['error'], 'String');\n\t }\n\t if (data.hasOwnProperty('stdout')) {\n\t obj['stdout'] = ApiClient.convertToType(data['stdout'], 'String');\n\t }\n\t if (data.hasOwnProperty('stderr')) {\n\t obj['stderr'] = ApiClient.convertToType(data['stderr'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * error message when execution failed.\n\t * @member {String} error\n\t */\n\t exports.prototype['error'] = undefined;\n\t /**\n\t * standard out of child process.\n\t * @member {String} stdout\n\t */\n\t exports.prototype['stdout'] = undefined;\n\t /**\n\t * standard error of child process.\n\t * @member {String} stderr\n\t */\n\t exports.prototype['stderr'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RemoteAccess = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The RemoteAccess model module.\n\t * @module model/RemoteAccess\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new RemoteAccess
.\n\t * Access information of remote workspace in remote server\n\t * @alias module:model/RemoteAccess\n\t * @class\n\t * @param name {String} display text of remote workspace. can be different from original name.\n\t * @param serverUrl {String} the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path.\n\t * @param workspaceId {String} the id of remote workspace, read from remote server\n\t * @param masterToken {String} master token to access service, issued from remote server\n\t */\n\t var exports = function(name, serverUrl, workspaceId, masterToken) {\n\t var _this = this;\n\t\n\t _this['name'] = name;\n\t _this['serverUrl'] = serverUrl;\n\t _this['workspaceId'] = workspaceId;\n\t\n\t _this['masterToken'] = masterToken;\n\t };\n\t\n\t /**\n\t * Constructs a RemoteAccess
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/RemoteAccess} obj Optional instance to populate.\n\t * @return {module:model/RemoteAccess} The populated RemoteAccess
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('serverUrl')) {\n\t obj['serverUrl'] = ApiClient.convertToType(data['serverUrl'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspaceId')) {\n\t obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspacePath')) {\n\t obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n\t }\n\t if (data.hasOwnProperty('masterToken')) {\n\t obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * display text of remote workspace. can be different from original name.\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path.\n\t * @member {String} serverUrl\n\t */\n\t exports.prototype['serverUrl'] = undefined;\n\t /**\n\t * the id of remote workspace, read from remote server\n\t * @member {String} workspaceId\n\t */\n\t exports.prototype['workspaceId'] = undefined;\n\t /**\n\t * Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \\\"named root directory\\\" in workspace fs tree.\n\t * @member {String} workspacePath\n\t */\n\t exports.prototype['workspacePath'] = undefined;\n\t /**\n\t * master token to access service, issued from remote server\n\t * @member {String} masterToken\n\t */\n\t exports.prototype['masterToken'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Session = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Session model module.\n\t * @module model/Session\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Session
.\n\t * an application session per ide instance. bound to access token\n\t * @alias module:model/Session\n\t * @class\n\t * @param id {String} the id of a session. usually same to socket id.\n\t * @param name {String} human readable name, usually derived from workspace name.\n\t * @param state {module:model/Session.StateEnum} NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) There\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n\t * @param clientAddress {String} the peer address of session connection. not always\n\t * @param connectedAt {Date} the time when socket connection is established\n\t * @param disconnectedAt {Date} the time when socket is closed.\n\t */\n\t var exports = function(id, name, state, clientAddress, connectedAt, disconnectedAt) {\n\t var _this = this;\n\t\n\t _this['id'] = id;\n\t _this['name'] = name;\n\t _this['state'] = state;\n\t\n\t _this['clientAddress'] = clientAddress;\n\t _this['connectedAt'] = connectedAt;\n\t _this['disconnectedAt'] = disconnectedAt;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Session
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Session} obj Optional instance to populate.\n\t * @return {module:model/Session} The populated Session
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('state')) {\n\t obj['state'] = ApiClient.convertToType(data['state'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspaceId')) {\n\t obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n\t }\n\t if (data.hasOwnProperty('clientAddress')) {\n\t obj['clientAddress'] = ApiClient.convertToType(data['clientAddress'], 'String');\n\t }\n\t if (data.hasOwnProperty('connectedAt')) {\n\t obj['connectedAt'] = ApiClient.convertToType(data['connectedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('disconnectedAt')) {\n\t obj['disconnectedAt'] = ApiClient.convertToType(data['disconnectedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('willCloseAt')) {\n\t obj['willCloseAt'] = ApiClient.convertToType(data['willCloseAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('willLoseAt')) {\n\t obj['willLoseAt'] = ApiClient.convertToType(data['willLoseAt'], 'Date');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * the id of a session. usually same to socket id.\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * human readable name, usually derived from workspace name.\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) There\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n\t * @member {module:model/Session.StateEnum} state\n\t */\n\t exports.prototype['state'] = undefined;\n\t /**\n\t * the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id.\n\t * @member {String} workspaceId\n\t */\n\t exports.prototype['workspaceId'] = undefined;\n\t /**\n\t * the peer address of session connection. not always\n\t * @member {String} clientAddress\n\t */\n\t exports.prototype['clientAddress'] = undefined;\n\t /**\n\t * the time when socket connection is established\n\t * @member {Date} connectedAt\n\t */\n\t exports.prototype['connectedAt'] = undefined;\n\t /**\n\t * the time when socket is closed.\n\t * @member {Date} disconnectedAt\n\t */\n\t exports.prototype['disconnectedAt'] = undefined;\n\t /**\n\t * when state becomes CLOSING, actual closing time will be updated by server.\n\t * @member {Date} willCloseAt\n\t */\n\t exports.prototype['willCloseAt'] = undefined;\n\t /**\n\t * when state becomes LOSING, server will not wait for reconnection after this time.\n\t * @member {Date} willLoseAt\n\t */\n\t exports.prototype['willLoseAt'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the state
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.StateEnum = {\n\t /**\n\t * value: \"NORMAL\"\n\t * @const\n\t */\n\t \"NORMAL\": \"NORMAL\",\n\t /**\n\t * value: \"LOSING\"\n\t * @const\n\t */\n\t \"LOSING\": \"LOSING\",\n\t /**\n\t * value: \"CLOSING\"\n\t * @const\n\t */\n\t \"CLOSING\": \"CLOSING\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Token = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Token model module.\n\t * @module model/Token\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Token
.\n\t * a json webtoken and accessible data\n\t * @alias module:model/Token\n\t * @class\n\t * @param text {String} actual token text that should be shipped in header or query\n\t * @param tokenType {module:model/Token.TokenTypeEnum} MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n\t * @param expiresAt {Date} \n\t * @param issuedAt {Date} \n\t */\n\t var exports = function(text, tokenType, expiresAt, issuedAt) {\n\t var _this = this;\n\t\n\t _this['text'] = text;\n\t _this['tokenType'] = tokenType;\n\t _this['expiresAt'] = expiresAt;\n\t _this['issuedAt'] = issuedAt;\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a Token
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Token} obj Optional instance to populate.\n\t * @return {module:model/Token} The populated Token
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('text')) {\n\t obj['text'] = ApiClient.convertToType(data['text'], 'String');\n\t }\n\t if (data.hasOwnProperty('tokenType')) {\n\t obj['tokenType'] = ApiClient.convertToType(data['tokenType'], 'String');\n\t }\n\t if (data.hasOwnProperty('expiresAt')) {\n\t obj['expiresAt'] = ApiClient.convertToType(data['expiresAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('issuedAt')) {\n\t obj['issuedAt'] = ApiClient.convertToType(data['issuedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('sessionId')) {\n\t obj['sessionId'] = ApiClient.convertToType(data['sessionId'], 'String');\n\t }\n\t if (data.hasOwnProperty('workspaceId')) {\n\t obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * actual token text that should be shipped in header or query\n\t * @member {String} text\n\t */\n\t exports.prototype['text'] = undefined;\n\t /**\n\t * MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n\t * @member {module:model/Token.TokenTypeEnum} tokenType\n\t */\n\t exports.prototype['tokenType'] = undefined;\n\t /**\n\t * @member {Date} expiresAt\n\t */\n\t exports.prototype['expiresAt'] = undefined;\n\t /**\n\t * @member {Date} issuedAt\n\t */\n\t exports.prototype['issuedAt'] = undefined;\n\t /**\n\t * mandatory for ACCESS token, identifying client instance\n\t * @member {String} sessionId\n\t */\n\t exports.prototype['sessionId'] = undefined;\n\t /**\n\t * If truthy, access rights are restricted to specified workspace only.\n\t * @member {String} workspaceId\n\t */\n\t exports.prototype['workspaceId'] = undefined;\n\t\n\t\n\t /**\n\t * Allowed values for the tokenType
property.\n\t * @enum {String}\n\t * @readonly\n\t */\n\t exports.TokenTypeEnum = {\n\t /**\n\t * value: \"MASTER\"\n\t * @const\n\t */\n\t \"MASTER\": \"MASTER\",\n\t /**\n\t * value: \"ACCESS\"\n\t * @const\n\t */\n\t \"ACCESS\": \"ACCESS\" };\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.User = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The User model module.\n\t * @module model/User\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new User
.\n\t * Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients.\n\t * @alias module:model/User\n\t * @class\n\t */\n\t var exports = function() {\n\t var _this = this;\n\t\n\t\n\t\n\t\n\t };\n\t\n\t /**\n\t * Constructs a User
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/User} obj Optional instance to populate.\n\t * @return {module:model/User} The populated User
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('email')) {\n\t obj['email'] = ApiClient.convertToType(data['email'], 'String');\n\t }\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * unique id per user (email is also unique)\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * @member {String} email\n\t */\n\t exports.prototype['email'] = undefined;\n\t /**\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Workspace = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Workspace model module.\n\t * @module model/Workspace\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Workspace
.\n\t * A workspace in server\n\t * @alias module:model/Workspace\n\t * @class\n\t * @param id {String} the id of a workspace. usually same to file system id\n\t * @param name {String} display text of this workspace for UI\n\t * @param description {String} human readable description on this workspace\n\t * @param createdAt {Date} the time when this workspace is created (registered from local file system)\n\t * @param workspacePath {String} absolute path of this workspace in server. server may not expose this property to some untrusted clients.\n\t * @param excludedPaths {Array.} Ignore patterns to exclude from watch service and search-and-replace operations. Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\\\' char for the beginning '!' and ending white-spaces shoule be supported, too. To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats. \n\t * @param offlineCachePaths {Array.} Any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n\t */\n\t var exports = function(id, name, description, createdAt, workspacePath, excludedPaths, offlineCachePaths) {\n\t var _this = this;\n\t\n\t _this['id'] = id;\n\t _this['name'] = name;\n\t _this['description'] = description;\n\t _this['createdAt'] = createdAt;\n\t\n\t _this['workspacePath'] = workspacePath;\n\t\n\t _this['excludedPaths'] = excludedPaths;\n\t _this['offlineCachePaths'] = offlineCachePaths;\n\t };\n\t\n\t /**\n\t * Constructs a Workspace
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Workspace} obj Optional instance to populate.\n\t * @return {module:model/Workspace} The populated Workspace
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('id')) {\n\t obj['id'] = ApiClient.convertToType(data['id'], 'String');\n\t }\n\t if (data.hasOwnProperty('name')) {\n\t obj['name'] = ApiClient.convertToType(data['name'], 'String');\n\t }\n\t if (data.hasOwnProperty('description')) {\n\t obj['description'] = ApiClient.convertToType(data['description'], 'String');\n\t }\n\t if (data.hasOwnProperty('createdAt')) {\n\t obj['createdAt'] = ApiClient.convertToType(data['createdAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('accessedAt')) {\n\t obj['accessedAt'] = ApiClient.convertToType(data['accessedAt'], 'Date');\n\t }\n\t if (data.hasOwnProperty('workspacePath')) {\n\t obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n\t }\n\t if (data.hasOwnProperty('disposable')) {\n\t obj['disposable'] = ApiClient.convertToType(data['disposable'], 'Boolean');\n\t }\n\t if (data.hasOwnProperty('excludedPaths')) {\n\t obj['excludedPaths'] = ApiClient.convertToType(data['excludedPaths'], ['String']);\n\t }\n\t if (data.hasOwnProperty('offlineCachePaths')) {\n\t obj['offlineCachePaths'] = ApiClient.convertToType(data['offlineCachePaths'], ['String']);\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * the id of a workspace. usually same to file system id\n\t * @member {String} id\n\t */\n\t exports.prototype['id'] = undefined;\n\t /**\n\t * display text of this workspace for UI\n\t * @member {String} name\n\t */\n\t exports.prototype['name'] = undefined;\n\t /**\n\t * human readable description on this workspace\n\t * @member {String} description\n\t */\n\t exports.prototype['description'] = undefined;\n\t /**\n\t * the time when this workspace is created (registered from local file system)\n\t * @member {Date} createdAt\n\t */\n\t exports.prototype['createdAt'] = undefined;\n\t /**\n\t * the time when the last session on this workspace was made. (optional)\n\t * @member {Date} accessedAt\n\t */\n\t exports.prototype['accessedAt'] = undefined;\n\t /**\n\t * absolute path of this workspace in server. server may not expose this property to some untrusted clients.\n\t * @member {String} workspacePath\n\t */\n\t exports.prototype['workspacePath'] = undefined;\n\t /**\n\t * If set, workspace is ephemeral - server will not keep persistence when it stops working. Ususally, side-loaded workspace via desktop app is disposable. Client with proper access right can flip this flag to declare the workspace should be persist. \n\t * @member {Boolean} disposable\n\t */\n\t exports.prototype['disposable'] = undefined;\n\t /**\n\t * Ignore patterns to exclude from watch service and search-and-replace operations. Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\\\' char for the beginning '!' and ending white-spaces shoule be supported, too. To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats. \n\t * @member {Array.} excludedPaths\n\t */\n\t exports.prototype['excludedPaths'] = undefined;\n\t /**\n\t * Any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n\t * @member {Array.} offlineCachePaths\n\t */\n\t exports.prototype['offlineCachePaths'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\t(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && res.status < 300) {\n\t return self.callback(err, res);\n\t }\n\t\n\t var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n\t new_err.original = err;\n\t new_err.response = res;\n\t new_err.status = res.status;\n\t\n\t self.callback(new_err, res);\n\t } catch(e) {\n\t self.callback(e); // #985 touching res may cause INVALID_STATE_ERR on old Android\n\t }\n\t });\n\t}\n\t\n\t/**\n\t * Mixin `Emitter` and `requestBase`.\n\t */\n\t\n\tEmitter(Request.prototype);\n\tfor (var key in requestBase) {\n\t Request.prototype[key] = requestBase[key];\n\t}\n\t\n\t/**\n\t * Set Content-Type to `type`, mapping values from `request.types`.\n\t *\n\t * Examples:\n\t *\n\t * superagent.types.xml = 'application/xml';\n\t *\n\t * request.post('/')\n\t * .type('xml')\n\t * .send(xmlstring)\n\t * .end(callback);\n\t *\n\t * request.post('/')\n\t * .type('application/xml')\n\t * .send(xmlstring)\n\t * .end(callback);\n\t *\n\t * @param {String} type\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.type = function(type){\n\t this.set('Content-Type', request.types[type] || type);\n\t return this;\n\t};\n\t\n\t/**\n\t * Set responseType to `val`. Presently valid responseTypes are 'blob' and\n\t * 'arraybuffer'.\n\t *\n\t * Examples:\n\t *\n\t * req.get('/')\n\t * .responseType('blob')\n\t * .end(callback);\n\t *\n\t * @param {String} val\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.responseType = function(val){\n\t this._responseType = val;\n\t return this;\n\t};\n\t\n\t/**\n\t * Set Accept to `type`, mapping values from `request.types`.\n\t *\n\t * Examples:\n\t *\n\t * superagent.types.json = 'application/json';\n\t *\n\t * request.get('/agent')\n\t * .accept('json')\n\t * .end(callback);\n\t *\n\t * request.get('/agent')\n\t * .accept('application/json')\n\t * .end(callback);\n\t *\n\t * @param {String} accept\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.accept = function(type){\n\t this.set('Accept', request.types[type] || type);\n\t return this;\n\t};\n\t\n\t/**\n\t * Set Authorization field value with `user` and `pass`.\n\t *\n\t * @param {String} user\n\t * @param {String} pass\n\t * @param {Object} options with 'type' property 'auto' or 'basic' (default 'basic')\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.auth = function(user, pass, options){\n\t if (!options) {\n\t options = {\n\t type: 'basic'\n\t }\n\t }\n\t\n\t switch (options.type) {\n\t case 'basic':\n\t var str = btoa(user + ':' + pass);\n\t this.set('Authorization', 'Basic ' + str);\n\t break;\n\t\n\t case 'auto':\n\t this.username = user;\n\t this.password = pass;\n\t break;\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t* Add query-string `val`.\n\t*\n\t* Examples:\n\t*\n\t* request.get('/shoes')\n\t* .query('size=10')\n\t* .query({ color: 'blue' })\n\t*\n\t* @param {Object|String} val\n\t* @return {Request} for chaining\n\t* @api public\n\t*/\n\t\n\tRequest.prototype.query = function(val){\n\t if ('string' != typeof val) val = serialize(val);\n\t if (val) this._query.push(val);\n\t return this;\n\t};\n\t\n\t/**\n\t * Queue the given `file` as an attachment to the specified `field`,\n\t * with optional `filename`.\n\t *\n\t * ``` js\n\t * request.post('/upload')\n\t * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n\t * .end(callback);\n\t * ```\n\t *\n\t * @param {String} field\n\t * @param {Blob|File} file\n\t * @param {String} filename\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.attach = function(field, file, filename){\n\t this._getFormData().append(field, file, filename || file.name);\n\t return this;\n\t};\n\t\n\tRequest.prototype._getFormData = function(){\n\t if (!this._formData) {\n\t this._formData = new root.FormData();\n\t }\n\t return this._formData;\n\t};\n\t\n\t/**\n\t * Invoke the callback with `err` and `res`\n\t * and handle arity check.\n\t *\n\t * @param {Error} err\n\t * @param {Response} res\n\t * @api private\n\t */\n\t\n\tRequest.prototype.callback = function(err, res){\n\t var fn = this._callback;\n\t this.clearTimeout();\n\t fn(err, res);\n\t};\n\t\n\t/**\n\t * Invoke callback with x-domain error.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.crossDomainError = function(){\n\t var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n\t err.crossDomain = true;\n\t\n\t err.status = this.status;\n\t err.method = this.method;\n\t err.url = this.url;\n\t\n\t this.callback(err);\n\t};\n\t\n\t/**\n\t * Invoke callback with timeout error.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype._timeoutError = function(){\n\t var timeout = this._timeout;\n\t var err = new Error('timeout of ' + timeout + 'ms exceeded');\n\t err.timeout = timeout;\n\t this.callback(err);\n\t};\n\t\n\t/**\n\t * Compose querystring to append to req.url\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype._appendQueryString = function(){\n\t var query = this._query.join('&');\n\t if (query) {\n\t this.url += ~this.url.indexOf('?')\n\t ? '&' + query\n\t : '?' + query;\n\t }\n\t};\n\t\n\t/**\n\t * Initiate request, invoking callback `fn(res)`\n\t * with an instanceof `Response`.\n\t *\n\t * @param {Function} fn\n\t * @return {Request} for chaining\n\t * @api public\n\t */\n\t\n\tRequest.prototype.end = function(fn){\n\t var self = this;\n\t var xhr = this.xhr = request.getXHR();\n\t var timeout = this._timeout;\n\t var data = this._formData || this._data;\n\t\n\t // store callback\n\t this._callback = fn || noop;\n\t\n\t // state change\n\t xhr.onreadystatechange = function(){\n\t if (4 != xhr.readyState) return;\n\t\n\t // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n\t // result in the error \"Could not complete the operation due to error c00c023f\"\n\t var status;\n\t try { status = xhr.status } catch(e) { status = 0; }\n\t\n\t if (0 == status) {\n\t if (self.timedout) return self._timeoutError();\n\t if (self._aborted) return;\n\t return self.crossDomainError();\n\t }\n\t self.emit('end');\n\t };\n\t\n\t // progress\n\t var handleProgress = function(e){\n\t if (e.total > 0) {\n\t e.percent = e.loaded / e.total * 100;\n\t }\n\t e.direction = 'download';\n\t self.emit('progress', e);\n\t };\n\t if (this.hasListeners('progress')) {\n\t xhr.onprogress = handleProgress;\n\t }\n\t try {\n\t if (xhr.upload && this.hasListeners('progress')) {\n\t xhr.upload.onprogress = handleProgress;\n\t }\n\t } catch(e) {\n\t // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n\t // Reported here:\n\t // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n\t }\n\t\n\t // timeout\n\t if (timeout && !this._timer) {\n\t this._timer = setTimeout(function(){\n\t self.timedout = true;\n\t self.abort();\n\t }, timeout);\n\t }\n\t\n\t // querystring\n\t this._appendQueryString();\n\t\n\t // initiate request\n\t if (this.username && this.password) {\n\t xhr.open(this.method, this.url, true, this.username, this.password);\n\t } else {\n\t xhr.open(this.method, this.url, true);\n\t }\n\t\n\t // CORS\n\t if (this._withCredentials) xhr.withCredentials = true;\n\t\n\t // body\n\t if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n\t // serialize stuff\n\t var contentType = this._header['content-type'];\n\t var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n\t if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];\n\t if (serialize) data = serialize(data);\n\t }\n\t\n\t // set header fields\n\t for (var field in this.header) {\n\t if (null == this.header[field]) continue;\n\t xhr.setRequestHeader(field, this.header[field]);\n\t }\n\t\n\t if (this._responseType) {\n\t xhr.responseType = this._responseType;\n\t }\n\t\n\t // send stuff\n\t this.emit('request', this);\n\t\n\t // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n\t // We need null here if data is undefined\n\t xhr.send(typeof data !== 'undefined' ? data : null);\n\t return this;\n\t};\n\t\n\t\n\t/**\n\t * Expose `Request`.\n\t */\n\t\n\trequest.Request = Request;\n\t\n\t/**\n\t * GET `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.get = function(url, data, fn){\n\t var req = request('GET', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.query(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * HEAD `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.head = function(url, data, fn){\n\t var req = request('HEAD', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * OPTIONS query to `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.options = function(url, data, fn){\n\t var req = request('OPTIONS', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * DELETE `url` with optional callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\tfunction del(url, fn){\n\t var req = request('DELETE', url);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\trequest['del'] = del;\n\trequest['delete'] = del;\n\t\n\t/**\n\t * PATCH `url` with optional `data` and callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed} data\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.patch = function(url, data, fn){\n\t var req = request('PATCH', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * POST `url` with optional `data` and callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed} data\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.post = function(url, data, fn){\n\t var req = request('POST', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t/**\n\t * PUT `url` with optional `data` and callback `fn(res)`.\n\t *\n\t * @param {String} url\n\t * @param {Mixed|Function} data or fn\n\t * @param {Function} fn\n\t * @return {Request}\n\t * @api public\n\t */\n\t\n\trequest.put = function(url, data, fn){\n\t var req = request('PUT', url);\n\t if ('function' == typeof data) fn = data, data = null;\n\t if (data) req.send(data);\n\t if (fn) req.end(fn);\n\t return req;\n\t};\n\t\n\t},{\"./is-object\":1,\"./request\":3,\"./request-base\":2,\"emitter\":4,\"reduce\":5}]},{},[6])(6)\n\t});\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(7), __webpack_require__(2), __webpack_require__(3)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/Alias'), require('../model/RestError'), require('../model/RestOK'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.AliasApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.Alias, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.RestOK);\n\t }\n\t}(this, function(ApiClient, Alias, RestError, RestOK) {\n\t 'use strict';\n\t\n\t /**\n\t * Alias service.\n\t * @module api/AliasApi\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new AliasApi. \n\t * @alias module:api/AliasApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the findAliases operation.\n\t * @callback module:api/AliasApi~findAliasesCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * get alias objects. set aliasId to '*' to find all aliases in some workspace. if alias id is given, only 0 or 1 matched alias object will be returned.\n\t * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.\n\t * @param {String} workspaceId webida workspace id in query part\n\t * @param {module:api/AliasApi~findAliasesCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findAliases = function(aliasId, workspaceId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'aliasId' is set\n\t if (aliasId == undefined || aliasId == null) {\n\t throw \"Missing the required parameter 'aliasId' when calling findAliases\";\n\t }\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling findAliases\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'aliasId': aliasId\n\t };\n\t var queryParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [Alias];\n\t\n\t return this.apiClient.callApi(\n\t '/aliass/{aliasId}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the putAlias operation.\n\t * @callback module:api/AliasApi~putAliasCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * create, or update an alias.\n\t * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.\n\t * @param {module:model/Alias} body alias object to write. should have same id to aliasId parameter.\n\t * @param {module:api/AliasApi~putAliasCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.putAlias = function(aliasId, body, callback) {\n\t var postBody = body;\n\t\n\t // verify the required parameter 'aliasId' is set\n\t if (aliasId == undefined || aliasId == null) {\n\t throw \"Missing the required parameter 'aliasId' when calling putAlias\";\n\t }\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling putAlias\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'aliasId': aliasId\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/aliass/{aliasId}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the removeAliases operation.\n\t * @callback module:api/AliasApi~removeAliasesCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * remove alias. targeting rule is same to findAliases() operation.\n\t * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.\n\t * @param {String} workspaceId webida workspace id in query part\n\t * @param {module:api/AliasApi~removeAliasesCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.removeAliases = function(aliasId, workspaceId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'aliasId' is set\n\t if (aliasId == undefined || aliasId == null) {\n\t throw \"Missing the required parameter 'aliasId' when calling removeAliases\";\n\t }\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling removeAliases\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'aliasId': aliasId\n\t };\n\t var queryParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/aliass/{aliasId}', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(15), __webpack_require__(2), __webpack_require__(14), __webpack_require__(9)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/User'), require('../model/RestError'), require('../model/Token'), require('../model/Credential'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.AuthApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.User, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Token, root.WebidaRestfulApi.Credential);\n\t }\n\t}(this, function(ApiClient, User, RestError, Token, Credential) {\n\t 'use strict';\n\t\n\t /**\n\t * Auth service.\n\t * @module api/AuthApi\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new AuthApi. \n\t * @alias module:api/AuthApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the getInfo operation.\n\t * @callback module:api/AuthApi~getInfoCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/User} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Gets user information of that can be identified with current access token. Implementations should provide a more restful api based on domain data model, not extending this operation. (e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user) \n\t * @param {module:api/AuthApi~getInfoCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/User}\n\t */\n\t this.getInfo = function(callback) {\n\t var postBody = null;\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = User;\n\t\n\t return this.apiClient.callApi(\n\t '/auth/info', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the issueToken operation.\n\t * @callback module:api/AuthApi~issueTokenCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Token} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates new token from current access token, inheriting workspace id & session id. The duration of generated token is (and should not be) parameterizable. Server should set proper duration, respecting \\"reconnect\\" period of socket.io clients. Remember that most of socket.io client implementations (including official js client) do not provide any ways to change connection parameters (header or query) while reconnecting to server. Like login API, this endpoint does not provide any encryption. Server should not set any data to harm security in the token & should provide some signinig/encryption mechanism to protect token. Simple JSON Web Token with HMAC-SHA will do. \n\t * @param {module:model/String} type \n\t * @param {Object} opts Optional parameters\n\t * @param {String} opts.workspaceId Clients to save some remote access info should issue a MASTER type token restricted to specific workspace id.\n\t * @param {module:api/AuthApi~issueTokenCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Token}\n\t */\n\t this.issueToken = function(type, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'type' is set\n\t if (type == undefined || type == null) {\n\t throw \"Missing the required parameter 'type' when calling issueToken\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t 'type': type,\n\t 'workspaceId': opts['workspaceId']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Token;\n\t\n\t return this.apiClient.callApi(\n\t '/auth/token', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the login operation.\n\t * @callback module:api/AuthApi~loginCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Token} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * A \\"VERY\\" basic authentication, required to use webida-simple-auth security scheme. Service / Product implementations who need better security, should override this operation or add their own login api or some other specs like OAuth2. Simple auth is not suitable for large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only. Logging-in with master token, the generated access token inherits all restriction from it. On the other hand, normal log-in with login id & password creates an unrestricted access token, with reasonably short expiration time. Every client should spawn another access token with issueToken API before current access token expires, inheriting session id from current token. To save remote access info, client should create a (restricted but long-ttl) master token to start IDE from remote. The remote client should not use the unrestricted acccess token from login to use any other perpose than finding available workspaces, and should not refresh the token. (Let user log-in again) Login API does not force any encryption. Server should provide secure transport channel, usually https, to provide remote access, always. \n\t * @param {module:model/Credential} body \n\t * @param {module:api/AuthApi~loginCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Token}\n\t */\n\t this.login = function(body, callback) {\n\t var postBody = body;\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling login\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = [];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Token;\n\t\n\t return this.apiClient.callApi(\n\t '/auth/login', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.OpsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError) {\n\t 'use strict';\n\t\n\t /**\n\t * Ops service.\n\t * @module api/OpsApi\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new OpsApi. \n\t * @alias module:api/OpsApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the replace operation.\n\t * @callback module:api/OpsApi~replaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * replace file contents with regex matching\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {Array.} wfsPathList array of wfsPath, with heading /. (collectionFormat may be changed by implementation)\n\t * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation\n\t * @param {String} replaceTo string to replace with\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n\t * @param {module:api/OpsApi~replaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.replace = function(wfsId, wfsPathList, pattern, replaceTo, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling replace\";\n\t }\n\t\n\t // verify the required parameter 'wfsPathList' is set\n\t if (wfsPathList == undefined || wfsPathList == null) {\n\t throw \"Missing the required parameter 'wfsPathList' when calling replace\";\n\t }\n\t\n\t // verify the required parameter 'pattern' is set\n\t if (pattern == undefined || pattern == null) {\n\t throw \"Missing the required parameter 'pattern' when calling replace\";\n\t }\n\t\n\t // verify the required parameter 'replaceTo' is set\n\t if (replaceTo == undefined || replaceTo == null) {\n\t throw \"Missing the required parameter 'replaceTo' when calling replace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId\n\t };\n\t var queryParams = {\n\t 'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),\n\t 'pattern': pattern,\n\t 'ignoreCase': opts['ignoreCase'],\n\t 'replaceTo': replaceTo\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/ops/replace', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the search operation.\n\t * @callback module:api/OpsApi~searchCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Object.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * search files in some path, with given pattern\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {Array.} wfsPathList array of wfsPath, with heading /. (collectionFormat may be changed by implementation)\n\t * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n\t * @param {module:api/OpsApi~searchCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Object.}\n\t */\n\t this.search = function(wfsId, wfsPathList, pattern, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling search\";\n\t }\n\t\n\t // verify the required parameter 'wfsPathList' is set\n\t if (wfsPathList == undefined || wfsPathList == null) {\n\t throw \"Missing the required parameter 'wfsPathList' when calling search\";\n\t }\n\t\n\t // verify the required parameter 'pattern' is set\n\t if (pattern == undefined || pattern == null) {\n\t throw \"Missing the required parameter 'pattern' when calling search\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId\n\t };\n\t var queryParams = {\n\t 'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),\n\t 'pattern': pattern,\n\t 'ignoreCase': opts['ignoreCase']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = {'String': [Match]};\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/ops/search', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(2), __webpack_require__(12), __webpack_require__(3)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestError'), require('../model/RemoteAccess'), require('../model/RestOK'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.RemotesApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.RemoteAccess, root.WebidaRestfulApi.RestOK);\n\t }\n\t}(this, function(ApiClient, RestError, RemoteAccess, RestOK) {\n\t 'use strict';\n\t\n\t /**\n\t * Remotes service.\n\t * @module api/RemotesApi\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new RemotesApi. \n\t * @alias module:api/RemotesApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the findRemoteAccesses operation.\n\t * @callback module:api/RemotesApi~findRemoteAccessesCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)\n\t * @param {module:api/RemotesApi~findRemoteAccessesCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findRemoteAccesses = function(callback) {\n\t var postBody = null;\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [RemoteAccess];\n\t\n\t return this.apiClient.callApi(\n\t '/remotes', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the putRemoteAccess operation.\n\t * @callback module:api/RemotesApi~putRemoteAccessCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Ceates or updates a remote workspace access information\n\t * @param {module:model/RemoteAccess} body \n\t * @param {module:api/RemotesApi~putRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.putRemoteAccess = function(body, callback) {\n\t var postBody = body;\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling putRemoteAccess\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/remotes', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the removeRemoteAccess operation.\n\t * @callback module:api/RemotesApi~removeRemoteAccessCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RemoteAccess} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Removes remote workspace access information\n\t * @param {String} workspaceId workspace Id of remote workspace\n\t * @param {module:api/RemotesApi~removeRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RemoteAccess}\n\t */\n\t this.removeRemoteAccess = function(workspaceId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling removeRemoteAccess\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t };\n\t var queryParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RemoteAccess;\n\t\n\t return this.apiClient.callApi(\n\t '/remotes', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2), __webpack_require__(13)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Session'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.SessionApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Session);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError, Session) {\n\t 'use strict';\n\t\n\t /**\n\t * Session service.\n\t * @module api/SessionApi\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new SessionApi. \n\t * @alias module:api/SessionApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the closeSessions operation.\n\t * @callback module:api/SessionApi~closeSessionsCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Closes session with timeout. Targets are selected by same rule to findSessions() op. While targeting multiple sessions, this operation requires same access rights with findSessions(). Closing a single session requires 'same session id' or 'unrestricted workspace acceess'.\n\t * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n\t * @param {String} workspaceId webida workspace id in query part\n\t * @param {Integer} closeAfter Waiting time before actual closing, to let client save files and prevent reconnecting. \n\t * @param {module:api/SessionApi~closeSessionsCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.closeSessions = function(sessionId, workspaceId, closeAfter, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'sessionId' is set\n\t if (sessionId == undefined || sessionId == null) {\n\t throw \"Missing the required parameter 'sessionId' when calling closeSessions\";\n\t }\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling closeSessions\";\n\t }\n\t\n\t // verify the required parameter 'closeAfter' is set\n\t if (closeAfter == undefined || closeAfter == null) {\n\t throw \"Missing the required parameter 'closeAfter' when calling closeSessions\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'sessionId': sessionId\n\t };\n\t var queryParams = {\n\t 'workspaceId': workspaceId,\n\t 'closeAfter': closeAfter\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/sessions/{sessionId}', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the findSessions operation.\n\t * @callback module:api/SessionApi~findSessionsCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Finds webida sessions established to server. if session id is given, matched session info will be returned and workspace id parameter will be ignored. To find all sessions of some workspace, set session id to '*' and specify workspace id. This operation requires proper accsss rights. 1) To find all sessions, an unrestricted token is required. 2) To find some workspace sesions, token should have proper access right on the workspace. \n\t * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n\t * @param {String} workspaceId webida workspace id in query part\n\t * @param {module:api/SessionApi~findSessionsCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findSessions = function(sessionId, workspaceId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'sessionId' is set\n\t if (sessionId == undefined || sessionId == null) {\n\t throw \"Missing the required parameter 'sessionId' when calling findSessions\";\n\t }\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling findSessions\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'sessionId': sessionId\n\t };\n\t var queryParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [Session];\n\t\n\t return this.apiClient.callApi(\n\t '/sessions/{sessionId}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2), __webpack_require__(4), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/DirEntry'), require('../model/Stats'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.WfsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError, DirEntry, Stats) {\n\t 'use strict';\n\t\n\t /**\n\t * Wfs service.\n\t * @module api/WfsApi\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new WfsApi. \n\t * @alias module:api/WfsApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the copy operation.\n\t * @callback module:api/WfsApi~copyCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. This operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed. \n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {String} srcPath source data path of some operations, with have heading /\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n\t * @param {Boolean} opts.followSymbolicLinks dereference symlinks in source. (default to false)\n\t * @param {Boolean} opts.preserveTimestamps keep mtime/atime of source file(s) in destination. (default to false)\n\t * @param {module:api/WfsApi~copyCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.copy = function(wfsId, wfsPath, srcPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling copy\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling copy\";\n\t }\n\t\n\t // verify the required parameter 'srcPath' is set\n\t if (srcPath == undefined || srcPath == null) {\n\t throw \"Missing the required parameter 'srcPath' when calling copy\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'srcPath': srcPath,\n\t 'noOverwrite': opts['noOverwrite'],\n\t 'followSymbolicLinks': opts['followSymbolicLinks'],\n\t 'preserveTimestamps': opts['preserveTimestamps']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the createDir operation.\n\t * @callback module:api/WfsApi~createDirCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates a directory at the path. When the path is found to be a directory, this api does not return error and does not care it's empty or not. Always creates parent directories if needed.\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {module:api/WfsApi~createDirCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.createDir = function(wfsId, wfsPath, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling createDir\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling createDir\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/dir/{wfsPath}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the dirTree operation.\n\t * @callback module:api/WfsApi~dirTreeCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/DirEntry} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Returns a directory tree of given path, the errors while building sub-tree will be ignored and result will not include the path that has errors. Client may have to stat some suspicious paths manually, if listing is not complete.\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {Integer} maxDepth Maximum depth of tree. -1 to build a full tree, 0 to stat, 1 to plain list.\n\t * @param {module:api/WfsApi~dirTreeCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/DirEntry}\n\t */\n\t this.dirTree = function(wfsId, wfsPath, maxDepth, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling dirTree\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling dirTree\";\n\t }\n\t\n\t // verify the required parameter 'maxDepth' is set\n\t if (maxDepth == undefined || maxDepth == null) {\n\t throw \"Missing the required parameter 'maxDepth' when calling dirTree\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'maxDepth': maxDepth\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = DirEntry;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/dir/{wfsPath}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the move operation.\n\t * @callback module:api/WfsApi~moveCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Moves source resource to given path. Follows same rule to deal with existing path. So, this operation works like rename rather than mv. Just like copy(), this operations creates paraent dirs if needed and does not roll-back. Symbolic link and timestamp values will be moved without touching.\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {String} srcPath source data path of some operations, with have heading /\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n\t * @param {module:api/WfsApi~moveCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.move = function(wfsId, wfsPath, srcPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling move\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling move\";\n\t }\n\t\n\t // verify the required parameter 'srcPath' is set\n\t if (srcPath == undefined || srcPath == null) {\n\t throw \"Missing the required parameter 'srcPath' when calling move\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'srcPath': srcPath,\n\t 'noOverwrite': opts['noOverwrite']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the readFile operation.\n\t * @callback module:api/WfsApi~readFileCallback\n\t * @param {String} error Error message, if any.\n\t * @param {File} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * read file data on path\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {module:api/WfsApi~readFileCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {File}\n\t */\n\t this.readFile = function(wfsId, wfsPath, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling readFile\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling readFile\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = File;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/file/{wfsPath}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the remove operation.\n\t * @callback module:api/WfsApi~removeCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * delete file or directory\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.noRecursive if set, deleting non-empty directory will return 409 error. (default to false)\n\t * @param {module:api/WfsApi~removeCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.remove = function(wfsId, wfsPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling remove\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling remove\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'noRecursive': opts['noRecursive']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the stat operation.\n\t * @callback module:api/WfsApi~statCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Stats} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Get stats of given path. (stat() returns stats object in node and POSIX system). This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ignoreError When true, operation ignore ENOENT error and returns DUMMY stats object instead of 404 error. (default to false)\n\t * @param {module:api/WfsApi~statCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Stats}\n\t */\n\t this.stat = function(wfsId, wfsPath, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling stat\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling stat\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'ignoreError': opts['ignoreError']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Stats;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/any/{wfsPath}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the writeFile operation.\n\t * @callback module:api/WfsApi~writeFileCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates / updates file with body data. Server should write the file in atomic manner nd should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.\n\t * @param {String} wfsId webida file system id (same to workspace id) to access.\n\t * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n\t * @param {File} data file contents to write.\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.ensureParents A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter (default to false)\n\t * @param {module:api/WfsApi~writeFileCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.writeFile = function(wfsId, wfsPath, data, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'wfsId' is set\n\t if (wfsId == undefined || wfsId == null) {\n\t throw \"Missing the required parameter 'wfsId' when calling writeFile\";\n\t }\n\t\n\t // verify the required parameter 'wfsPath' is set\n\t if (wfsPath == undefined || wfsPath == null) {\n\t throw \"Missing the required parameter 'wfsPath' when calling writeFile\";\n\t }\n\t\n\t // verify the required parameter 'data' is set\n\t if (data == undefined || data == null) {\n\t throw \"Missing the required parameter 'data' when calling writeFile\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'wfsId': wfsId,\n\t 'wfsPath': wfsPath\n\t };\n\t var queryParams = {\n\t 'ensureParents': opts['ensureParents']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t 'data': data\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['multipart/form-data'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/wfs/{wfsId}/file/{wfsPath}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1), __webpack_require__(3), __webpack_require__(2), __webpack_require__(16), __webpack_require__(8), __webpack_require__(10), __webpack_require__(11)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Workspace'), require('../model/ChildProcess'), require('../model/Execution'), require('../model/ExecutionResult'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.WorkspaceApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Workspace, root.WebidaRestfulApi.ChildProcess, root.WebidaRestfulApi.Execution, root.WebidaRestfulApi.ExecutionResult);\n\t }\n\t}(this, function(ApiClient, RestOK, RestError, Workspace, ChildProcess, Execution, ExecutionResult) {\n\t 'use strict';\n\t\n\t /**\n\t * Workspace service.\n\t * @module api/WorkspaceApi\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new WorkspaceApi. \n\t * @alias module:api/WorkspaceApi\n\t * @class\n\t * @param {module:ApiClient} apiClient Optional API client implementation to use,\n\t * default to {@link module:ApiClient#instance} if unspecified.\n\t */\n\t var exports = function(apiClient) {\n\t this.apiClient = apiClient || ApiClient.instance;\n\t\n\t\n\t /**\n\t * Callback function to receive the result of the cancel operation.\n\t * @callback module:api/WorkspaceApi~cancelCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Cancels executions, killing the spawned processes. To terminate all spawned processes, set execId to '*'. Requires proper access rights. Since killing a process usually takes a little bit long time, this api does not returns actual result but works in async manner. (So, client should listen to web socket channels for the processes). This operation Requires same access rights to exec().\n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {String} execId the id from execution request (different from pid!)\n\t * @param {module:api/WorkspaceApi~cancelCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.cancel = function(workspaceId, execId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling cancel\";\n\t }\n\t\n\t // verify the required parameter 'execId' is set\n\t if (execId == undefined || execId == null) {\n\t throw \"Missing the required parameter 'execId' when calling cancel\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'execId': execId\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}/exec', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the createWorkspace operation.\n\t * @callback module:api/WorkspaceApi~createWorkspaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Workspace} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Creates a new workspace with given local path. Requires an unrestricted access token. the workspace id parameter is ignored and will be replaced by new, unique value by server. it's recommended to set the value to simple, bogus one, like '*' or '-' (since it's path parameter, empty value is not allowed. 404 error will be returned for the case). excludedPath will be set with default values, including .git/, bower_components/ and node_modules/ Needs an unrestricted access token. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {String} localPath a real, local path of the system (not unixified)\n\t * @param {String} name workspace name property\n\t * @param {String} description workspace name property\n\t * @param {module:api/WorkspaceApi~createWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Workspace}\n\t */\n\t this.createWorkspace = function(workspaceId, localPath, name, description, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling createWorkspace\";\n\t }\n\t\n\t // verify the required parameter 'localPath' is set\n\t if (localPath == undefined || localPath == null) {\n\t throw \"Missing the required parameter 'localPath' when calling createWorkspace\";\n\t }\n\t\n\t // verify the required parameter 'name' is set\n\t if (name == undefined || name == null) {\n\t throw \"Missing the required parameter 'name' when calling createWorkspace\";\n\t }\n\t\n\t // verify the required parameter 'description' is set\n\t if (description == undefined || description == null) {\n\t throw \"Missing the required parameter 'description' when calling createWorkspace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'localPath': localPath,\n\t 'name': name,\n\t 'description': description\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Workspace;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the exec operation.\n\t * @callback module:api/WorkspaceApi~execCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/ExecutionResult} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Executes a shell command or spawns a background process on this workspace. Requires proper access rights.\n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {module:model/Execution} body the process to be executed or spawned.\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.async Spawns a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, using execution id. (default to false)\n\t * @param {module:api/WorkspaceApi~execCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/ExecutionResult}\n\t */\n\t this.exec = function(workspaceId, body, opts, callback) {\n\t opts = opts || {};\n\t var postBody = body;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling exec\";\n\t }\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling exec\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'async': opts['async']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = ExecutionResult;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}/exec', 'POST',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the findProcs operation.\n\t * @callback module:api/WorkspaceApi~findProcsCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Gets process info, created by async exec request, on this workspace. To find all spawned processes, set id to '*'. This op does not returns error when no procs found but empty result array. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {String} execId the id from execution request (different from pid!)\n\t * @param {module:api/WorkspaceApi~findProcsCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findProcs = function(workspaceId, execId, callback) {\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling findProcs\";\n\t }\n\t\n\t // verify the required parameter 'execId' is set\n\t if (execId == undefined || execId == null) {\n\t throw \"Missing the required parameter 'execId' when calling findProcs\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'execId': execId\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = [];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [ChildProcess];\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}/exec', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the findWorkspaces operation.\n\t * @callback module:api/WorkspaceApi~findWorkspacesCallback\n\t * @param {String} error Error message, if any.\n\t * @param {Array.} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Finds workspaces with given id or parameters. if workspaceId = '*', all workspaces in server are returned. No empty workspace id is allowed for it's a path parameter. When a workspace id is not '*' and non-existing workspace are requested, server should send 404 error and should ignore disposable parameter. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {Object} opts Optional parameters\n\t * @param {Boolean} opts.disposable flag to include disposable workspaces or not, when workspaceId is '*' (default to false)\n\t * @param {module:api/WorkspaceApi~findWorkspacesCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {Array.}\n\t */\n\t this.findWorkspaces = function(workspaceId, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling findWorkspaces\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'disposable': opts['disposable']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = [Workspace];\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}', 'GET',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the removeWorkspace operation.\n\t * @callback module:api/WorkspaceApi~removeWorkspaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/RestOK} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Removes a workspace. If no sessions are connected, this api 'works' before returning result. if some sesions are, workspace will be removed when 1) all sessions are closed for request (will be notified by server) 2) exceeded time limit value in closeAfter parameter 3) server stops after accepting remove request and willBeRemoved value is set. So, client may 'find' the workspace to be removed after calling this operation. Requires \\"unrestricted\\" access rights. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {Object} opts Optional parameters\n\t * @param {Integer} opts.closeAfter Time in seconds to wait for all sessions save & close their data. (default to 0)\n\t * @param {Boolean} opts.expunge Time in seconds to wait for all sessions save & close their data.\n\t * @param {module:api/WorkspaceApi~removeWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/RestOK}\n\t */\n\t this.removeWorkspace = function(workspaceId, opts, callback) {\n\t opts = opts || {};\n\t var postBody = null;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling removeWorkspace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t 'closeAfter': opts['closeAfter'],\n\t 'expunge': opts['expunge']\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = RestOK;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}', 'DELETE',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t\n\t /**\n\t * Callback function to receive the result of the updateWorkspace operation.\n\t * @callback module:api/WorkspaceApi~updateWorkspaceCallback\n\t * @param {String} error Error message, if any.\n\t * @param {module:model/Workspace} data The data returned by the service call.\n\t * @param {String} response The complete HTTP response.\n\t */\n\t\n\t /**\n\t * Updates workspace. Some protected properties will not be changed by this op. If server cannot apply changed properties before returning workspace, such properties should not be updated with this operation. Clients should not rely on request body for further works, and should always check response to see what's changed actually. Requires proper access rights. \n\t * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n\t * @param {module:model/Workspace} body workspace object that contains updates\n\t * @param {module:api/WorkspaceApi~updateWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n\t * data is of type: {module:model/Workspace}\n\t */\n\t this.updateWorkspace = function(workspaceId, body, callback) {\n\t var postBody = body;\n\t\n\t // verify the required parameter 'workspaceId' is set\n\t if (workspaceId == undefined || workspaceId == null) {\n\t throw \"Missing the required parameter 'workspaceId' when calling updateWorkspace\";\n\t }\n\t\n\t // verify the required parameter 'body' is set\n\t if (body == undefined || body == null) {\n\t throw \"Missing the required parameter 'body' when calling updateWorkspace\";\n\t }\n\t\n\t\n\t var pathParams = {\n\t 'workspaceId': workspaceId\n\t };\n\t var queryParams = {\n\t };\n\t var headerParams = {\n\t };\n\t var formParams = {\n\t };\n\t\n\t var authNames = ['webida-simple-auth'];\n\t var contentTypes = ['application/json'];\n\t var accepts = ['application/json', 'application/octet-stream'];\n\t var returnType = Workspace;\n\t\n\t return this.apiClient.callApi(\n\t '/workspaces/{workspaceId}', 'PUT',\n\t pathParams, queryParams, headerParams, formParams, postBody,\n\t authNames, contentTypes, accepts, returnType, callback\n\t );\n\t }\n\t };\n\t\n\t return exports;\n\t}));\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Webida Restful API\n\t * Restful API for Webida clients to use server's data & features\n\t *\n\t * OpenAPI spec version: 0.6.0\n\t * \n\t *\n\t * NOTE: This class is auto generated by the swagger code generator program.\n\t * https://github.com/swagger-api/swagger-codegen.git\n\t * Do not edit the class manually.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t(function(root, factory) {\n\t if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof module === 'object' && module.exports) {\n\t // CommonJS-like environments that support module.exports, like Node.\n\t module.exports = factory(require('../ApiClient'));\n\t } else {\n\t // Browser globals (root is window)\n\t if (!root.WebidaRestfulApi) {\n\t root.WebidaRestfulApi = {};\n\t }\n\t root.WebidaRestfulApi.Match = factory(root.WebidaRestfulApi.ApiClient);\n\t }\n\t}(this, function(ApiClient) {\n\t 'use strict';\n\t\n\t\n\t\n\t\n\t /**\n\t * The Match model module.\n\t * @module model/Match\n\t * @version 0.6.0\n\t */\n\t\n\t /**\n\t * Constructs a new Match
.\n\t * search result for a file\n\t * @alias module:model/Match\n\t * @class\n\t * @param line {Integer} \n\t * @param text {String} \n\t */\n\t var exports = function(line, text) {\n\t var _this = this;\n\t\n\t _this['line'] = line;\n\t _this['text'] = text;\n\t };\n\t\n\t /**\n\t * Constructs a Match
from a plain JavaScript object, optionally creating a new instance.\n\t * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n\t * @param {Object} data The plain JavaScript object bearing properties of interest.\n\t * @param {module:model/Match} obj Optional instance to populate.\n\t * @return {module:model/Match} The populated Match
instance.\n\t */\n\t exports.constructFromObject = function(data, obj) {\n\t if (data) {\n\t obj = obj || new exports();\n\t\n\t if (data.hasOwnProperty('line')) {\n\t obj['line'] = ApiClient.convertToType(data['line'], 'Integer');\n\t }\n\t if (data.hasOwnProperty('text')) {\n\t obj['text'] = ApiClient.convertToType(data['text'], 'String');\n\t }\n\t }\n\t return obj;\n\t }\n\t\n\t /**\n\t * @member {Integer} line\n\t */\n\t exports.prototype['line'] = undefined;\n\t /**\n\t * @member {String} text\n\t */\n\t exports.prototype['text'] = undefined;\n\t\n\t\n\t\n\t return exports;\n\t}));\n\t\n\t\n\n\n/***/ }\n/******/ ])});;\n\n\n/** WEBPACK FOOTER **\n ** api-bundle.js\n **/"," \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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7d2699d36ecc58ceef9c\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/Alias', 'model/ChildProcess', 'model/Credential', 'model/DirEntry', 'model/Execution', 'model/ExecutionResult', 'model/Match', 'model/RemoteAccess', 'model/RestError', 'model/RestOK', 'model/Session', 'model/Stats', 'model/Token', 'model/User', 'model/Workspace', 'api/AliasApi', 'api/AuthApi', 'api/OpsApi', 'api/RemotesApi', 'api/SessionApi', 'api/WfsApi', 'api/WorkspaceApi'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('./ApiClient'), require('./model/Alias'), require('./model/ChildProcess'), require('./model/Credential'), require('./model/DirEntry'), require('./model/Execution'), require('./model/ExecutionResult'), require('./model/Match'), require('./model/RemoteAccess'), require('./model/RestError'), require('./model/RestOK'), require('./model/Session'), require('./model/Stats'), require('./model/Token'), require('./model/User'), require('./model/Workspace'), require('./api/AliasApi'), require('./api/AuthApi'), require('./api/OpsApi'), require('./api/RemotesApi'), require('./api/SessionApi'), require('./api/WfsApi'), require('./api/WorkspaceApi'));\n }\n}(function(ApiClient, Alias, ChildProcess, Credential, DirEntry, Execution, ExecutionResult, Match, RemoteAccess, RestError, RestOK, Session, Stats, Token, User, Workspace, AliasApi, AuthApi, OpsApi, RemotesApi, SessionApi, WfsApi, WorkspaceApi) {\n 'use strict';\n\n /**\n * Restful_API_for_Webida_clients_to_use_servers_data__features.
\n * The index
module provides access to constructors for all the classes which comprise the public API.\n * \n * An AMD (recommended!) or CommonJS application will generally do something equivalent to the following:\n *
\n * var WebidaRestfulApi = require('index'); // See note below*.\n * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n * var yyyModel = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n * yyyModel.someProperty = 'someValue';\n * ...\n * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n * ...\n *
\n * *NOTE: For a top-level AMD script, use require(['index'], function(){...})\n * and put the application logic within the callback function.\n * \n * \n * A non-AMD browser application (discouraged) might do something like this:\n *
\n * var xxxSvc = new WebidaRestfulApi.XxxApi(); // Allocate the API class we're going to use.\n * var yyy = new WebidaRestfulApi.Yyy(); // Construct a model instance.\n * yyyModel.someProperty = 'someValue';\n * ...\n * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.\n * ...\n *
\n * \n * @module index\n * @version 0.6.0\n */\n var exports = {\n /**\n * The ApiClient constructor.\n * @property {module:ApiClient}\n */\n ApiClient: ApiClient,\n /**\n * The Alias model constructor.\n * @property {module:model/Alias}\n */\n Alias: Alias,\n /**\n * The ChildProcess model constructor.\n * @property {module:model/ChildProcess}\n */\n ChildProcess: ChildProcess,\n /**\n * The Credential model constructor.\n * @property {module:model/Credential}\n */\n Credential: Credential,\n /**\n * The DirEntry model constructor.\n * @property {module:model/DirEntry}\n */\n DirEntry: DirEntry,\n /**\n * The Execution model constructor.\n * @property {module:model/Execution}\n */\n Execution: Execution,\n /**\n * The ExecutionResult model constructor.\n * @property {module:model/ExecutionResult}\n */\n ExecutionResult: ExecutionResult,\n /**\n * The Match model constructor.\n * @property {module:model/Match}\n */\n Match: Match,\n /**\n * The RemoteAccess model constructor.\n * @property {module:model/RemoteAccess}\n */\n RemoteAccess: RemoteAccess,\n /**\n * The RestError model constructor.\n * @property {module:model/RestError}\n */\n RestError: RestError,\n /**\n * The RestOK model constructor.\n * @property {module:model/RestOK}\n */\n RestOK: RestOK,\n /**\n * The Session model constructor.\n * @property {module:model/Session}\n */\n Session: Session,\n /**\n * The Stats model constructor.\n * @property {module:model/Stats}\n */\n Stats: Stats,\n /**\n * The Token model constructor.\n * @property {module:model/Token}\n */\n Token: Token,\n /**\n * The User model constructor.\n * @property {module:model/User}\n */\n User: User,\n /**\n * The Workspace model constructor.\n * @property {module:model/Workspace}\n */\n Workspace: Workspace,\n /**\n * The AliasApi service constructor.\n * @property {module:api/AliasApi}\n */\n AliasApi: AliasApi,\n /**\n * The AuthApi service constructor.\n * @property {module:api/AuthApi}\n */\n AuthApi: AuthApi,\n /**\n * The OpsApi service constructor.\n * @property {module:api/OpsApi}\n */\n OpsApi: OpsApi,\n /**\n * The RemotesApi service constructor.\n * @property {module:api/RemotesApi}\n */\n RemotesApi: RemotesApi,\n /**\n * The SessionApi service constructor.\n * @property {module:api/SessionApi}\n */\n SessionApi: SessionApi,\n /**\n * The WfsApi service constructor.\n * @property {module:api/WfsApi}\n */\n WfsApi: WfsApi,\n /**\n * The WorkspaceApi service constructor.\n * @property {module:api/WorkspaceApi}\n */\n WorkspaceApi: WorkspaceApi\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/index.js\n ** module id = 0\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['superagent'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('superagent'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.ApiClient = factory(root.superagent);\n }\n}(this, function(superagent) {\n 'use strict';\n\n /**\n * @module ApiClient\n * @version 0.6.0\n */\n\n /**\n * Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an\n * application to use this class directly - the *Api and model classes provide the public API for the service. The\n * contents of this file should be regarded as internal but are documented for completeness.\n * @alias module:ApiClient\n * @class\n */\n var exports = function() {\n /**\n * The base URL against which to resolve every API call's (relative) path.\n * @type {String}\n * @default https://localhost/api\n */\n this.basePath = 'https://localhost/api'.replace(/\\/+$/, '');\n\n /**\n * The authentication methods to be included for all API calls.\n * @type {Array.}\n */\n this.authentications = {\n 'webida-simple-auth': {type: 'apiKey', 'in': 'header', name: 'Authorization'}\n };\n /**\n * The default HTTP headers to be included for all API calls.\n * @type {Array.}\n * @default {}\n */\n this.defaultHeaders = {};\n\n /**\n * The default HTTP timeout for all API calls.\n * @type {Number}\n * @default 60000\n */\n this.timeout = 60000;\n };\n\n /**\n * Returns a string representation for an actual parameter.\n * @param param The actual parameter.\n * @returns {String} The string representation of param
.\n */\n exports.prototype.paramToString = function(param) {\n if (param == undefined || param == null) {\n return '';\n }\n if (param instanceof Date) {\n return param.toJSON();\n }\n return param.toString();\n };\n\n /**\n * Builds full URL by appending the given path to the base URL and replacing path parameter place-holders with parameter values.\n * NOTE: query parameters are not handled here.\n * @param {String} path The path to append to the base URL.\n * @param {Object} pathParams The parameter values to append.\n * @returns {String} The encoded path with parameter values substituted.\n */\n exports.prototype.buildUrl = function(path, pathParams) {\n if (!path.match(/^\\//)) {\n path = '/' + path;\n }\n var url = this.basePath + path;\n var _this = this;\n url = url.replace(/\\{([\\w-]+)\\}/g, function(fullMatch, key) {\n var value;\n if (pathParams.hasOwnProperty(key)) {\n value = _this.paramToString(pathParams[key]);\n } else {\n value = fullMatch;\n }\n return encodeURIComponent(value);\n });\n return url;\n };\n\n /**\n * Checks whether the given content type represents JSON.
\n * JSON content type examples:
\n * \n * - application/json
\n * - application/json; charset=UTF8
\n * - APPLICATION/JSON
\n *
\n * @param {String} contentType The MIME content type to check.\n * @returns {Boolean} true
if contentType
represents JSON, otherwise false
.\n */\n exports.prototype.isJsonMime = function(contentType) {\n return Boolean(contentType != null && contentType.match(/^application\\/json(;.*)?$/i));\n };\n\n /**\n * Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first.\n * @param {Array.} contentTypes\n * @returns {String} The chosen content type, preferring JSON.\n */\n exports.prototype.jsonPreferredMime = function(contentTypes) {\n for (var i = 0; i < contentTypes.length; i++) {\n if (this.isJsonMime(contentTypes[i])) {\n return contentTypes[i];\n }\n }\n return contentTypes[0];\n };\n\n /**\n * Checks whether the given parameter value represents file-like content.\n * @param param The parameter to check.\n * @returns {Boolean} true
if param
represents a file. \n */\n exports.prototype.isFileParam = function(param) {\n // fs.ReadStream in Node.js (but not in runtime like browserify)\n if (typeof window === 'undefined' &&\n typeof require === 'function' &&\n require('fs') &&\n param instanceof require('fs').ReadStream) {\n return true;\n }\n // Buffer in Node.js\n if (typeof Buffer === 'function' && param instanceof Buffer) {\n return true;\n }\n // Blob in browser\n if (typeof Blob === 'function' && param instanceof Blob) {\n return true;\n }\n // File in browser (it seems File object is also instance of Blob, but keep this for safe)\n if (typeof File === 'function' && param instanceof File) {\n return true;\n }\n return false;\n };\n\n /**\n * Normalizes parameter values:\n * \n * - remove nils
\n * - keep files and arrays
\n * - format to string with `paramToString` for other cases
\n *
\n * @param {Object.} params The parameters as object properties.\n * @returns {Object.} normalized parameters.\n */\n exports.prototype.normalizeParams = function(params) {\n var newParams = {};\n for (var key in params) {\n if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) {\n var value = params[key];\n if (this.isFileParam(value) || Array.isArray(value)) {\n newParams[key] = value;\n } else {\n newParams[key] = this.paramToString(value);\n }\n }\n }\n return newParams;\n };\n\n /**\n * Enumeration of collection format separator strategies.\n * @enum {String} \n * @readonly\n */\n exports.CollectionFormatEnum = {\n /**\n * Comma-separated values. Value: csv
\n * @const\n */\n CSV: ',',\n /**\n * Space-separated values. Value: ssv
\n * @const\n */\n SSV: ' ',\n /**\n * Tab-separated values. Value: tsv
\n * @const\n */\n TSV: '\\t',\n /**\n * Pipe(|)-separated values. Value: pipes
\n * @const\n */\n PIPES: '|',\n /**\n * Native array. Value: multi
\n * @const\n */\n MULTI: 'multi'\n };\n\n /**\n * Builds a string representation of an array-type actual parameter, according to the given collection format.\n * @param {Array} param An array parameter.\n * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy.\n * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns\n * param
as is if collectionFormat
is multi
.\n */\n exports.prototype.buildCollectionParam = function buildCollectionParam(param, collectionFormat) {\n if (param == null) {\n return null;\n }\n switch (collectionFormat) {\n case 'csv':\n return param.map(this.paramToString).join(',');\n case 'ssv':\n return param.map(this.paramToString).join(' ');\n case 'tsv':\n return param.map(this.paramToString).join('\\t');\n case 'pipes':\n return param.map(this.paramToString).join('|');\n case 'multi':\n // return the array directly as SuperAgent will handle it as expected\n return param.map(this.paramToString);\n default:\n throw new Error('Unknown collection format: ' + collectionFormat);\n }\n };\n\n /**\n * Applies authentication headers to the request.\n * @param {Object} request The request object created by a superagent()
call.\n * @param {Array.} authNames An array of authentication method names.\n */\n exports.prototype.applyAuthToRequest = function(request, authNames) {\n var _this = this;\n authNames.forEach(function(authName) {\n var auth = _this.authentications[authName];\n switch (auth.type) {\n case 'basic':\n if (auth.username || auth.password) {\n request.auth(auth.username || '', auth.password || '');\n }\n break;\n case 'apiKey':\n if (auth.apiKey) {\n var data = {};\n if (auth.apiKeyPrefix) {\n data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey;\n } else {\n data[auth.name] = auth.apiKey;\n }\n if (auth['in'] === 'header') {\n request.set(data);\n } else {\n request.query(data);\n }\n }\n break;\n case 'oauth2':\n if (auth.accessToken) {\n request.set({'Authorization': 'Bearer ' + auth.accessToken});\n }\n break;\n default:\n throw new Error('Unknown authentication type: ' + auth.type);\n }\n });\n };\n\n /**\n * Deserializes an HTTP response body into a value of the specified type.\n * @param {Object} response A SuperAgent response object.\n * @param {(String|Array.|Object.|Function)} returnType The type to return. Pass a string for simple types\n * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n * all properties on data will be converted to this type.\n * @returns A value of the specified type.\n */\n exports.prototype.deserialize = function deserialize(response, returnType) {\n if (response == null || returnType == null) {\n return null;\n }\n // Rely on SuperAgent for parsing response body.\n // See http://visionmedia.github.io/superagent/#parsing-response-bodies\n var data = response.body;\n if (data == null) {\n // SuperAgent does not always produce a body; use the unparsed response as a fallback\n data = response.text;\n }\n return exports.convertToType(data, returnType);\n };\n\n /**\n * Callback function to receive the result of the operation.\n * @callback module:ApiClient~callApiCallback\n * @param {String} error Error message, if any.\n * @param data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Invokes the REST service using the supplied settings and parameters.\n * @param {String} path The base URL to invoke.\n * @param {String} httpMethod The HTTP method to use.\n * @param {Object.} pathParams A map of path parameters and their values.\n * @param {Object.} queryParams A map of query parameters and their values.\n * @param {Object.} headerParams A map of header parameters and their values.\n * @param {Object.} formParams A map of form parameters and their values.\n * @param {Object} bodyParam The value to pass as the request body.\n * @param {Array.} authNames An array of authentication type names.\n * @param {Array.} contentTypes An array of request MIME types.\n * @param {Array.} accepts An array of acceptable response MIME types.\n * @param {(String|Array|ObjectFunction)} returnType The required type to return; can be a string for simple types or the\n * constructor for a complex type.\n * @param {module:ApiClient~callApiCallback} callback The callback function.\n * @returns {Object} The SuperAgent request object.\n */\n exports.prototype.callApi = function callApi(path, httpMethod, pathParams,\n queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts,\n returnType, callback) {\n\n var _this = this;\n var url = this.buildUrl(path, pathParams);\n var request = superagent(httpMethod, url);\n\n // apply authentications\n this.applyAuthToRequest(request, authNames);\n\n // set query parameters\n request.query(this.normalizeParams(queryParams));\n\n // set header parameters\n request.set(this.defaultHeaders).set(this.normalizeParams(headerParams));\n\n // set request timeout\n request.timeout(this.timeout);\n\n var contentType = this.jsonPreferredMime(contentTypes);\n if (contentType !== 'multipart/form-data') {\n if (contentType) {\n request.type(contentType);\n } else if (!request.header['Content-Type']) {\n request.type('application/json');\n }\n }\n\n if (contentType === 'application/x-www-form-urlencoded') {\n request.send(this.normalizeParams(formParams));\n } else if (contentType == 'multipart/form-data') {\n var _formParams = this.normalizeParams(formParams);\n for (var key in _formParams) {\n if (_formParams.hasOwnProperty(key)) {\n if (this.isFileParam(_formParams[key])) {\n // file field\n request.attach(key, _formParams[key]);\n } else {\n request.field(key, _formParams[key]);\n }\n }\n }\n } else if (bodyParam) {\n request.send(bodyParam);\n }\n\n var accept = this.jsonPreferredMime(accepts);\n if (accept) {\n request.accept(accept);\n }\n\n\n request.end(function(error, response) {\n if (callback) {\n var data = null;\n if (!error) {\n data = _this.deserialize(response, returnType);\n }\n callback(error, data, response);\n }\n });\n\n return request;\n };\n\n /**\n * Parses an ISO-8601 string representation of a date value.\n * @param {String} str The date value as a string.\n * @returns {Date} The parsed date object.\n */\n exports.parseDate = function(str) {\n return new Date(str.replace(/T/i, ' '));\n };\n\n /**\n * Converts a value to the specified type.\n * @param {(String|Object)} data The data to convert, as a string or object.\n * @param {(String|Array.|Object.|Function)} type The type to return. Pass a string for simple types\n * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To\n * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:\n * all properties on data will be converted to this type.\n * @returns An instance of the specified type.\n */\n exports.convertToType = function(data, type) {\n switch (type) {\n case 'Boolean':\n return Boolean(data);\n case 'Integer':\n return parseInt(data, 10);\n case 'Number':\n return parseFloat(data);\n case 'String':\n return String(data);\n case 'Date':\n return this.parseDate(String(data));\n default:\n if (type === Object || type === File) {\n // generic object or Blob - return directly\n return data;\n } else if (typeof type === 'function') {\n if (typeof type.constructFromObject !== 'function') {\n // some manually written models might have no factory function\n return data;\n } else {\n // for model type like: User\n return type.constructFromObject(data);\n }\n } else if (Array.isArray(type)) {\n // for array type like: ['String']\n var itemType = type[0];\n return data.map(function(item) {\n return exports.convertToType(item, itemType);\n });\n } else if (typeof type === 'object') {\n // for plain object type like: {'String': 'Integer'}\n var keyType, valueType;\n for (var k in type) {\n if (type.hasOwnProperty(k)) {\n keyType = k;\n valueType = type[k];\n break;\n }\n }\n var result = {};\n for (var k in data) {\n if (data.hasOwnProperty(k)) {\n var key = exports.convertToType(k, keyType);\n var value = exports.convertToType(data[k], valueType);\n result[key] = value;\n }\n }\n return result;\n } else {\n // for unknown type, return the data directly\n return data;\n }\n }\n };\n\n /**\n * Constructs a new map or array model from REST data.\n * @param data {Object|Array} The REST data.\n * @param obj {Object|Array} The target object or array.\n */\n exports.constructFromObject = function(data, obj, itemType) {\n if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n if (data.hasOwnProperty(i))\n obj[i] = exports.convertToType(data[i], itemType);\n }\n } else {\n for (var k in data) {\n if (data.hasOwnProperty(k))\n obj[k] = exports.convertToType(data[k], itemType);\n }\n }\n };\n\n /**\n * The default API client implementation.\n * @type {module:ApiClient}\n */\n exports.instance = new exports();\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/ApiClient.js\n ** module id = 1\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RestError = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The RestError model module.\n * @module model/RestError\n * @version 0.6.0\n */\n\n /**\n * Constructs a new RestError
.\n * Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code \\"Invalid Argument\\" instead of \\"Conflic\\". So, Client should read message property to know what happend exactly, when an error is returned from server. And, some 500 errors can have system errno instead of useless \\"internal\\". Like other errors, details are hidden in message.\n * @alias module:model/RestError\n * @class\n * @param message {String} \n */\n var exports = function(message) {\n var _this = this;\n\n\n _this['message'] = message;\n\n };\n\n /**\n * Constructs a RestError
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/RestError} obj Optional instance to populate.\n * @return {module:model/RestError} The populated RestError
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('code')) {\n obj['code'] = ApiClient.convertToType(data['code'], 'String');\n }\n if (data.hasOwnProperty('message')) {\n obj['message'] = ApiClient.convertToType(data['message'], 'String');\n }\n if (data.hasOwnProperty('errno')) {\n obj['errno'] = ApiClient.convertToType(data['errno'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {String} code\n */\n exports.prototype['code'] = undefined;\n /**\n * @member {String} message\n */\n exports.prototype['message'] = undefined;\n /**\n * errno code for some internal errors in server. Since service implementation can use many different platform api & runtime, client should avoid relying on errno code.\n * @member {String} errno\n */\n exports.prototype['errno'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/RestError.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RestOK = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The RestOK model module.\n * @module model/RestOK\n * @version 0.6.0\n */\n\n /**\n * Constructs a new RestOK
.\n * @alias module:model/RestOK\n * @class\n */\n var exports = function() {\n var _this = this;\n\n\n };\n\n /**\n * Constructs a RestOK
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/RestOK} obj Optional instance to populate.\n * @return {module:model/RestOK} The populated RestOK
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('message')) {\n obj['message'] = ApiClient.convertToType(data['message'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {String} message\n */\n exports.prototype['message'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/RestOK.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/DirEntry', 'model/Stats'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('./DirEntry'), require('./Stats'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.DirEntry = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n }\n}(this, function(ApiClient, DirEntry, Stats) {\n 'use strict';\n\n\n\n\n /**\n * The DirEntry model module.\n * @module model/DirEntry\n * @version 0.6.0\n */\n\n /**\n * Constructs a new DirEntry
.\n * a directory entry (file or directory) with children that represents a (sub) tree\n * @alias module:model/DirEntry\n * @class\n * @param name {String} \n * @param stats {module:model/Stats} \n * @param children {Array.} \n */\n var exports = function(name, stats, children) {\n var _this = this;\n\n _this['name'] = name;\n _this['stats'] = stats;\n _this['children'] = children;\n };\n\n /**\n * Constructs a DirEntry
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/DirEntry} obj Optional instance to populate.\n * @return {module:model/DirEntry} The populated DirEntry
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('stats')) {\n obj['stats'] = Stats.constructFromObject(data['stats']);\n }\n if (data.hasOwnProperty('children')) {\n obj['children'] = ApiClient.convertToType(data['children'], [DirEntry]);\n }\n }\n return obj;\n }\n\n /**\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * @member {module:model/Stats} stats\n */\n exports.prototype['stats'] = undefined;\n /**\n * @member {Array.} children\n */\n exports.prototype['children'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/DirEntry.js\n ** module id = 4\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Stats = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Stats model module.\n * @module model/Stats\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Stats
.\n * simplified/augmented fs.Stats class - see node.js doc for all properties\n * @alias module:model/Stats\n * @class\n * @param type {module:model/Stats.TypeEnum} All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.\n * @param birthtime {Date} \n * @param mtime {Date} \n * @param mode {String} \n * @param size {Integer} \n * @param nlink {Integer} \n */\n var exports = function(type, birthtime, mtime, mode, size, nlink) {\n var _this = this;\n\n _this['type'] = type;\n _this['birthtime'] = birthtime;\n _this['mtime'] = mtime;\n _this['mode'] = mode;\n _this['size'] = size;\n _this['nlink'] = nlink;\n };\n\n /**\n * Constructs a Stats
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Stats} obj Optional instance to populate.\n * @return {module:model/Stats} The populated Stats
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('type')) {\n obj['type'] = ApiClient.convertToType(data['type'], 'String');\n }\n if (data.hasOwnProperty('birthtime')) {\n obj['birthtime'] = ApiClient.convertToType(data['birthtime'], 'Date');\n }\n if (data.hasOwnProperty('mtime')) {\n obj['mtime'] = ApiClient.convertToType(data['mtime'], 'Date');\n }\n if (data.hasOwnProperty('mode')) {\n obj['mode'] = ApiClient.convertToType(data['mode'], 'String');\n }\n if (data.hasOwnProperty('size')) {\n obj['size'] = ApiClient.convertToType(data['size'], 'Integer');\n }\n if (data.hasOwnProperty('nlink')) {\n obj['nlink'] = ApiClient.convertToType(data['nlink'], 'Integer');\n }\n }\n return obj;\n }\n\n /**\n * All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.\n * @member {module:model/Stats.TypeEnum} type\n */\n exports.prototype['type'] = undefined;\n /**\n * @member {Date} birthtime\n */\n exports.prototype['birthtime'] = undefined;\n /**\n * @member {Date} mtime\n */\n exports.prototype['mtime'] = undefined;\n /**\n * @member {String} mode\n */\n exports.prototype['mode'] = undefined;\n /**\n * @member {Integer} size\n */\n exports.prototype['size'] = undefined;\n /**\n * @member {Integer} nlink\n */\n exports.prototype['nlink'] = undefined;\n\n\n /**\n * Allowed values for the type
property.\n * @enum {String}\n * @readonly\n */\n exports.TypeEnum = {\n /**\n * value: \"FILE\"\n * @const\n */\n \"FILE\": \"FILE\",\n /**\n * value: \"DIRECTORY\"\n * @const\n */\n \"DIRECTORY\": \"DIRECTORY\",\n /**\n * value: \"BLOCK_DEVICE\"\n * @const\n */\n \"BLOCK_DEVICE\": \"BLOCK_DEVICE\",\n /**\n * value: \"CHARACTER_DEVICE\"\n * @const\n */\n \"CHARACTER_DEVICE\": \"CHARACTER_DEVICE\",\n /**\n * value: \"LINK\"\n * @const\n */\n \"LINK\": \"LINK\",\n /**\n * value: \"FIFO\"\n * @const\n */\n \"FIFO\": \"FIFO\",\n /**\n * value: \"SOCKET\"\n * @const\n */\n \"SOCKET\": \"SOCKET\",\n /**\n * value: \"DUMMY\"\n * @const\n */\n \"DUMMY\": \"DUMMY\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Stats.js\n ** module id = 5\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Alias = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Alias model module.\n * @module model/Alias\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Alias
.\n * alias to access file system using git or direct http requests who can't call swagger api with proper tokens\n * @alias module:model/Alias\n * @class\n */\n var exports = function() {\n var _this = this;\n\n\n\n\n };\n\n /**\n * Constructs a Alias
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Alias} obj Optional instance to populate.\n * @return {module:model/Alias} The populated Alias
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('workspaceId')) {\n obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n }\n if (data.hasOwnProperty('sourcePath')) {\n obj['sourcePath'] = ApiClient.convertToType(data['sourcePath'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * id, and the path-fragment to access. Since this id is a path-fragment, any unsafe chars for path should not be included, especially / char. ?, *, and other special characters for shell are not also allowed.\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * id of the workspace that contains source of alias\n * @member {String} workspaceId\n */\n exports.prototype['workspaceId'] = undefined;\n /**\n * the source of alias, relative path to workspace root directory.\n * @member {String} sourcePath\n */\n exports.prototype['sourcePath'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Alias.js\n ** module id = 7\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.ChildProcess = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The ChildProcess model module.\n * @module model/ChildProcess\n * @version 0.6.0\n */\n\n /**\n * Constructs a new ChildProcess
.\n * a process in execution, spawned by async exec or other mean\n * @alias module:model/ChildProcess\n * @class\n * @param pid {Integer} child process pid\n * @param command {String} execution command in execution request\n * @param args {Array.} arguments of command in execution request\n * @param execId {String} execution id from execution request\n * @param state {module:model/ChildProcess.StateEnum} State of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n * @param startedAt {Date} the time when this process is spawned\n */\n var exports = function(pid, command, args, execId, state, startedAt) {\n var _this = this;\n\n _this['pid'] = pid;\n _this['command'] = command;\n _this['args'] = args;\n _this['execId'] = execId;\n _this['state'] = state;\n _this['startedAt'] = startedAt;\n\n\n };\n\n /**\n * Constructs a ChildProcess
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/ChildProcess} obj Optional instance to populate.\n * @return {module:model/ChildProcess} The populated ChildProcess
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('pid')) {\n obj['pid'] = ApiClient.convertToType(data['pid'], 'Integer');\n }\n if (data.hasOwnProperty('command')) {\n obj['command'] = ApiClient.convertToType(data['command'], 'String');\n }\n if (data.hasOwnProperty('args')) {\n obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n }\n if (data.hasOwnProperty('execId')) {\n obj['execId'] = ApiClient.convertToType(data['execId'], 'String');\n }\n if (data.hasOwnProperty('state')) {\n obj['state'] = ApiClient.convertToType(data['state'], 'String');\n }\n if (data.hasOwnProperty('startedAt')) {\n obj['startedAt'] = ApiClient.convertToType(data['startedAt'], 'Date');\n }\n if (data.hasOwnProperty('exitCode')) {\n obj['exitCode'] = ApiClient.convertToType(data['exitCode'], 'Integer');\n }\n if (data.hasOwnProperty('exitSignal')) {\n obj['exitSignal'] = ApiClient.convertToType(data['exitSignal'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * child process pid\n * @member {Integer} pid\n */\n exports.prototype['pid'] = undefined;\n /**\n * execution command in execution request\n * @member {String} command\n */\n exports.prototype['command'] = undefined;\n /**\n * arguments of command in execution request\n * @member {Array.} args\n */\n exports.prototype['args'] = undefined;\n /**\n * execution id from execution request\n * @member {String} execId\n */\n exports.prototype['execId'] = undefined;\n /**\n * State of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. \n * @member {module:model/ChildProcess.StateEnum} state\n */\n exports.prototype['state'] = undefined;\n /**\n * the time when this process is spawned\n * @member {Date} startedAt\n */\n exports.prototype['startedAt'] = undefined;\n /**\n * the exit code of child process. available with EXITED procs only.\n * @member {Integer} exitCode\n */\n exports.prototype['exitCode'] = undefined;\n /**\n * the signal that killed this child process.(not always available)\n * @member {String} exitSignal\n */\n exports.prototype['exitSignal'] = undefined;\n\n\n /**\n * Allowed values for the state
property.\n * @enum {String}\n * @readonly\n */\n exports.StateEnum = {\n /**\n * value: \"CREATED\"\n * @const\n */\n \"CREATED\": \"CREATED\",\n /**\n * value: \"WORKING\"\n * @const\n */\n \"WORKING\": \"WORKING\",\n /**\n * value: \"KILLING\"\n * @const\n */\n \"KILLING\": \"KILLING\",\n /**\n * value: \"EXITED\"\n * @const\n */\n \"EXITED\": \"EXITED\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/ChildProcess.js\n ** module id = 8\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Credential = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Credential model module.\n * @module model/Credential\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Credential
.\n * User credential to login. Use https to protect credential. master token can replace actual id/password pair.\n * @alias module:model/Credential\n * @class\n * @param loginId {String} \n * @param loginPassword {String} \n */\n var exports = function(loginId, loginPassword) {\n var _this = this;\n\n _this['loginId'] = loginId;\n _this['loginPassword'] = loginPassword;\n\n };\n\n /**\n * Constructs a Credential
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Credential} obj Optional instance to populate.\n * @return {module:model/Credential} The populated Credential
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('loginId')) {\n obj['loginId'] = ApiClient.convertToType(data['loginId'], 'String');\n }\n if (data.hasOwnProperty('loginPassword')) {\n obj['loginPassword'] = ApiClient.convertToType(data['loginPassword'], 'String');\n }\n if (data.hasOwnProperty('masterToken')) {\n obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {String} loginId\n */\n exports.prototype['loginId'] = undefined;\n /**\n * @member {String} loginPassword\n */\n exports.prototype['loginPassword'] = undefined;\n /**\n * A master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password for login, non-empty. the values can be used to identify client type.\n * @member {String} masterToken\n */\n exports.prototype['masterToken'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Credential.js\n ** module id = 9\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Execution = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Execution model module.\n * @module model/Execution\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Execution
.\n * execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability * encoding : fixed to utf-8 * shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.) * killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed. * uid & gid : will not be set for security * stdio : all streams are handled by server. no options are avaliable to client. * detached : always false \n * @alias module:model/Execution\n * @class\n * @param command {String} The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always.\n * @param args {Array.} The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n */\n var exports = function(command, args) {\n var _this = this;\n\n\n _this['command'] = command;\n _this['args'] = args;\n\n\n\n };\n\n /**\n * Constructs a Execution
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Execution} obj Optional instance to populate.\n * @return {module:model/Execution} The populated Execution
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('command')) {\n obj['command'] = ApiClient.convertToType(data['command'], 'String');\n }\n if (data.hasOwnProperty('args')) {\n obj['args'] = ApiClient.convertToType(data['args'], ['String']);\n }\n if (data.hasOwnProperty('cwd')) {\n obj['cwd'] = ApiClient.convertToType(data['cwd'], 'String');\n }\n if (data.hasOwnProperty('timeout')) {\n obj['timeout'] = ApiClient.convertToType(data['timeout'], 'Integer');\n }\n if (data.hasOwnProperty('maxBuffer')) {\n obj['maxBuffer'] = ApiClient.convertToType(data['maxBuffer'], 'Integer');\n }\n }\n return obj;\n }\n\n /**\n * unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id.\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always.\n * @member {String} command\n */\n exports.prototype['command'] = undefined;\n /**\n * The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\\\Program Files\\\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. \n * @member {Array.} args\n */\n exports.prototype['args'] = undefined;\n /**\n * Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an absolute cwd path.\n * @member {String} cwd\n */\n exports.prototype['cwd'] = undefined;\n /**\n * The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked\n * @member {Integer} timeout\n */\n exports.prototype['timeout'] = undefined;\n /**\n * Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough.\n * @member {Integer} maxBuffer\n */\n exports.prototype['maxBuffer'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Execution.js\n ** module id = 10\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.ExecutionResult = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The ExecutionResult model module.\n * @module model/ExecutionResult\n * @version 0.6.0\n */\n\n /**\n * Constructs a new ExecutionResult
.\n * execution response\n * @alias module:model/ExecutionResult\n * @class\n * @param stdout {String} standard out of child process.\n * @param stderr {String} standard error of child process.\n */\n var exports = function(stdout, stderr) {\n var _this = this;\n\n\n _this['stdout'] = stdout;\n _this['stderr'] = stderr;\n };\n\n /**\n * Constructs a ExecutionResult
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/ExecutionResult} obj Optional instance to populate.\n * @return {module:model/ExecutionResult} The populated ExecutionResult
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('error')) {\n obj['error'] = ApiClient.convertToType(data['error'], 'String');\n }\n if (data.hasOwnProperty('stdout')) {\n obj['stdout'] = ApiClient.convertToType(data['stdout'], 'String');\n }\n if (data.hasOwnProperty('stderr')) {\n obj['stderr'] = ApiClient.convertToType(data['stderr'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * error message when execution failed.\n * @member {String} error\n */\n exports.prototype['error'] = undefined;\n /**\n * standard out of child process.\n * @member {String} stdout\n */\n exports.prototype['stdout'] = undefined;\n /**\n * standard error of child process.\n * @member {String} stderr\n */\n exports.prototype['stderr'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/ExecutionResult.js\n ** module id = 11\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RemoteAccess = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The RemoteAccess model module.\n * @module model/RemoteAccess\n * @version 0.6.0\n */\n\n /**\n * Constructs a new RemoteAccess
.\n * Access information of remote workspace in remote server\n * @alias module:model/RemoteAccess\n * @class\n * @param name {String} display text of remote workspace. can be different from original name.\n * @param serverUrl {String} the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path.\n * @param workspaceId {String} the id of remote workspace, read from remote server\n * @param masterToken {String} master token to access service, issued from remote server\n */\n var exports = function(name, serverUrl, workspaceId, masterToken) {\n var _this = this;\n\n _this['name'] = name;\n _this['serverUrl'] = serverUrl;\n _this['workspaceId'] = workspaceId;\n\n _this['masterToken'] = masterToken;\n };\n\n /**\n * Constructs a RemoteAccess
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/RemoteAccess} obj Optional instance to populate.\n * @return {module:model/RemoteAccess} The populated RemoteAccess
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('serverUrl')) {\n obj['serverUrl'] = ApiClient.convertToType(data['serverUrl'], 'String');\n }\n if (data.hasOwnProperty('workspaceId')) {\n obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n }\n if (data.hasOwnProperty('workspacePath')) {\n obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n }\n if (data.hasOwnProperty('masterToken')) {\n obj['masterToken'] = ApiClient.convertToType(data['masterToken'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * display text of remote workspace. can be different from original name.\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * the url of remote server. Should have no path/query parameters, even \\\"/\\\" in path.\n * @member {String} serverUrl\n */\n exports.prototype['serverUrl'] = undefined;\n /**\n * the id of remote workspace, read from remote server\n * @member {String} workspaceId\n */\n exports.prototype['workspaceId'] = undefined;\n /**\n * Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \\\"named root directory\\\" in workspace fs tree.\n * @member {String} workspacePath\n */\n exports.prototype['workspacePath'] = undefined;\n /**\n * master token to access service, issued from remote server\n * @member {String} masterToken\n */\n exports.prototype['masterToken'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/RemoteAccess.js\n ** module id = 12\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Session = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Session model module.\n * @module model/Session\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Session
.\n * an application session per ide instance. bound to access token\n * @alias module:model/Session\n * @class\n * @param id {String} the id of a session. usually same to socket id.\n * @param name {String} human readable name, usually derived from workspace name.\n * @param state {module:model/Session.StateEnum} NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) There\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n * @param clientAddress {String} the peer address of session connection. not always\n * @param connectedAt {Date} the time when socket connection is established\n * @param disconnectedAt {Date} the time when socket is closed.\n */\n var exports = function(id, name, state, clientAddress, connectedAt, disconnectedAt) {\n var _this = this;\n\n _this['id'] = id;\n _this['name'] = name;\n _this['state'] = state;\n\n _this['clientAddress'] = clientAddress;\n _this['connectedAt'] = connectedAt;\n _this['disconnectedAt'] = disconnectedAt;\n\n\n };\n\n /**\n * Constructs a Session
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Session} obj Optional instance to populate.\n * @return {module:model/Session} The populated Session
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('state')) {\n obj['state'] = ApiClient.convertToType(data['state'], 'String');\n }\n if (data.hasOwnProperty('workspaceId')) {\n obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n }\n if (data.hasOwnProperty('clientAddress')) {\n obj['clientAddress'] = ApiClient.convertToType(data['clientAddress'], 'String');\n }\n if (data.hasOwnProperty('connectedAt')) {\n obj['connectedAt'] = ApiClient.convertToType(data['connectedAt'], 'Date');\n }\n if (data.hasOwnProperty('disconnectedAt')) {\n obj['disconnectedAt'] = ApiClient.convertToType(data['disconnectedAt'], 'Date');\n }\n if (data.hasOwnProperty('willCloseAt')) {\n obj['willCloseAt'] = ApiClient.convertToType(data['willCloseAt'], 'Date');\n }\n if (data.hasOwnProperty('willLoseAt')) {\n obj['willLoseAt'] = ApiClient.convertToType(data['willLoseAt'], 'Date');\n }\n }\n return obj;\n }\n\n /**\n * the id of a session. usually same to socket id.\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * human readable name, usually derived from workspace name.\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) There\\\"s no \\\"CLOSED\\\" / \\\"LOST\\\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. \n * @member {module:model/Session.StateEnum} state\n */\n exports.prototype['state'] = undefined;\n /**\n * the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id.\n * @member {String} workspaceId\n */\n exports.prototype['workspaceId'] = undefined;\n /**\n * the peer address of session connection. not always\n * @member {String} clientAddress\n */\n exports.prototype['clientAddress'] = undefined;\n /**\n * the time when socket connection is established\n * @member {Date} connectedAt\n */\n exports.prototype['connectedAt'] = undefined;\n /**\n * the time when socket is closed.\n * @member {Date} disconnectedAt\n */\n exports.prototype['disconnectedAt'] = undefined;\n /**\n * when state becomes CLOSING, actual closing time will be updated by server.\n * @member {Date} willCloseAt\n */\n exports.prototype['willCloseAt'] = undefined;\n /**\n * when state becomes LOSING, server will not wait for reconnection after this time.\n * @member {Date} willLoseAt\n */\n exports.prototype['willLoseAt'] = undefined;\n\n\n /**\n * Allowed values for the state
property.\n * @enum {String}\n * @readonly\n */\n exports.StateEnum = {\n /**\n * value: \"NORMAL\"\n * @const\n */\n \"NORMAL\": \"NORMAL\",\n /**\n * value: \"LOSING\"\n * @const\n */\n \"LOSING\": \"LOSING\",\n /**\n * value: \"CLOSING\"\n * @const\n */\n \"CLOSING\": \"CLOSING\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Session.js\n ** module id = 13\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Token = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Token model module.\n * @module model/Token\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Token
.\n * a json webtoken and accessible data\n * @alias module:model/Token\n * @class\n * @param text {String} actual token text that should be shipped in header or query\n * @param tokenType {module:model/Token.TokenTypeEnum} MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n * @param expiresAt {Date} \n * @param issuedAt {Date} \n */\n var exports = function(text, tokenType, expiresAt, issuedAt) {\n var _this = this;\n\n _this['text'] = text;\n _this['tokenType'] = tokenType;\n _this['expiresAt'] = expiresAt;\n _this['issuedAt'] = issuedAt;\n\n\n };\n\n /**\n * Constructs a Token
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Token} obj Optional instance to populate.\n * @return {module:model/Token} The populated Token
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('text')) {\n obj['text'] = ApiClient.convertToType(data['text'], 'String');\n }\n if (data.hasOwnProperty('tokenType')) {\n obj['tokenType'] = ApiClient.convertToType(data['tokenType'], 'String');\n }\n if (data.hasOwnProperty('expiresAt')) {\n obj['expiresAt'] = ApiClient.convertToType(data['expiresAt'], 'Date');\n }\n if (data.hasOwnProperty('issuedAt')) {\n obj['issuedAt'] = ApiClient.convertToType(data['issuedAt'], 'Date');\n }\n if (data.hasOwnProperty('sessionId')) {\n obj['sessionId'] = ApiClient.convertToType(data['sessionId'], 'String');\n }\n if (data.hasOwnProperty('workspaceId')) {\n obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * actual token text that should be shipped in header or query\n * @member {String} text\n */\n exports.prototype['text'] = undefined;\n /**\n * MASTER : used to create an access token from clients, without login credential ACCESS : protects api access. should be unique for each ide session Note that here\\\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances. \n * @member {module:model/Token.TokenTypeEnum} tokenType\n */\n exports.prototype['tokenType'] = undefined;\n /**\n * @member {Date} expiresAt\n */\n exports.prototype['expiresAt'] = undefined;\n /**\n * @member {Date} issuedAt\n */\n exports.prototype['issuedAt'] = undefined;\n /**\n * mandatory for ACCESS token, identifying client instance\n * @member {String} sessionId\n */\n exports.prototype['sessionId'] = undefined;\n /**\n * If truthy, access rights are restricted to specified workspace only.\n * @member {String} workspaceId\n */\n exports.prototype['workspaceId'] = undefined;\n\n\n /**\n * Allowed values for the tokenType
property.\n * @enum {String}\n * @readonly\n */\n exports.TokenTypeEnum = {\n /**\n * value: \"MASTER\"\n * @const\n */\n \"MASTER\": \"MASTER\",\n /**\n * value: \"ACCESS\"\n * @const\n */\n \"ACCESS\": \"ACCESS\" };\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Token.js\n ** module id = 14\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.User = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The User model module.\n * @module model/User\n * @version 0.6.0\n */\n\n /**\n * Constructs a new User
.\n * Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients.\n * @alias module:model/User\n * @class\n */\n var exports = function() {\n var _this = this;\n\n\n\n\n };\n\n /**\n * Constructs a User
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/User} obj Optional instance to populate.\n * @return {module:model/User} The populated User
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('email')) {\n obj['email'] = ApiClient.convertToType(data['email'], 'String');\n }\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * unique id per user (email is also unique)\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * @member {String} email\n */\n exports.prototype['email'] = undefined;\n /**\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/User.js\n ** module id = 15\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Workspace = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Workspace model module.\n * @module model/Workspace\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Workspace
.\n * A workspace in server\n * @alias module:model/Workspace\n * @class\n * @param id {String} the id of a workspace. usually same to file system id\n * @param name {String} display text of this workspace for UI\n * @param description {String} human readable description on this workspace\n * @param createdAt {Date} the time when this workspace is created (registered from local file system)\n * @param workspacePath {String} absolute path of this workspace in server. server may not expose this property to some untrusted clients.\n * @param excludedPaths {Array.} Ignore patterns to exclude from watch service and search-and-replace operations. Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\\\' char for the beginning '!' and ending white-spaces shoule be supported, too. To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats. \n * @param offlineCachePaths {Array.} Any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n */\n var exports = function(id, name, description, createdAt, workspacePath, excludedPaths, offlineCachePaths) {\n var _this = this;\n\n _this['id'] = id;\n _this['name'] = name;\n _this['description'] = description;\n _this['createdAt'] = createdAt;\n\n _this['workspacePath'] = workspacePath;\n\n _this['excludedPaths'] = excludedPaths;\n _this['offlineCachePaths'] = offlineCachePaths;\n };\n\n /**\n * Constructs a Workspace
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Workspace} obj Optional instance to populate.\n * @return {module:model/Workspace} The populated Workspace
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('id')) {\n obj['id'] = ApiClient.convertToType(data['id'], 'String');\n }\n if (data.hasOwnProperty('name')) {\n obj['name'] = ApiClient.convertToType(data['name'], 'String');\n }\n if (data.hasOwnProperty('description')) {\n obj['description'] = ApiClient.convertToType(data['description'], 'String');\n }\n if (data.hasOwnProperty('createdAt')) {\n obj['createdAt'] = ApiClient.convertToType(data['createdAt'], 'Date');\n }\n if (data.hasOwnProperty('accessedAt')) {\n obj['accessedAt'] = ApiClient.convertToType(data['accessedAt'], 'Date');\n }\n if (data.hasOwnProperty('workspacePath')) {\n obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');\n }\n if (data.hasOwnProperty('disposable')) {\n obj['disposable'] = ApiClient.convertToType(data['disposable'], 'Boolean');\n }\n if (data.hasOwnProperty('excludedPaths')) {\n obj['excludedPaths'] = ApiClient.convertToType(data['excludedPaths'], ['String']);\n }\n if (data.hasOwnProperty('offlineCachePaths')) {\n obj['offlineCachePaths'] = ApiClient.convertToType(data['offlineCachePaths'], ['String']);\n }\n }\n return obj;\n }\n\n /**\n * the id of a workspace. usually same to file system id\n * @member {String} id\n */\n exports.prototype['id'] = undefined;\n /**\n * display text of this workspace for UI\n * @member {String} name\n */\n exports.prototype['name'] = undefined;\n /**\n * human readable description on this workspace\n * @member {String} description\n */\n exports.prototype['description'] = undefined;\n /**\n * the time when this workspace is created (registered from local file system)\n * @member {Date} createdAt\n */\n exports.prototype['createdAt'] = undefined;\n /**\n * the time when the last session on this workspace was made. (optional)\n * @member {Date} accessedAt\n */\n exports.prototype['accessedAt'] = undefined;\n /**\n * absolute path of this workspace in server. server may not expose this property to some untrusted clients.\n * @member {String} workspacePath\n */\n exports.prototype['workspacePath'] = undefined;\n /**\n * If set, workspace is ephemeral - server will not keep persistence when it stops working. Ususally, side-loaded workspace via desktop app is disposable. Client with proper access right can flip this flag to declare the workspace should be persist. \n * @member {Boolean} disposable\n */\n exports.prototype['disposable'] = undefined;\n /**\n * Ignore patterns to exclude from watch service and search-and-replace operations. Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\\\' char for the beginning '!' and ending white-spaces shoule be supported, too. To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats. \n * @member {Array.} excludedPaths\n */\n exports.prototype['excludedPaths'] = undefined;\n /**\n * Any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. \n * @member {Array.} offlineCachePaths\n */\n exports.prototype['offlineCachePaths'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Workspace.js\n ** module id = 16\n ** module chunks = 0\n **/","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.superagent = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 200 && res.status < 300) {\n return self.callback(err, res);\n }\n\n var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n\n self.callback(new_err, res);\n } catch(e) {\n self.callback(e); // #985 touching res may cause INVALID_STATE_ERR on old Android\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `requestBase`.\n */\n\nEmitter(Request.prototype);\nfor (var key in requestBase) {\n Request.prototype[key] = requestBase[key];\n}\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function(type){\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set responseType to `val`. Presently valid responseTypes are 'blob' and\n * 'arraybuffer'.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.responseType = function(val){\n this._responseType = val;\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function(type){\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} pass\n * @param {Object} options with 'type' property 'auto' or 'basic' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function(user, pass, options){\n if (!options) {\n options = {\n type: 'basic'\n }\n }\n\n switch (options.type) {\n case 'basic':\n var str = btoa(user + ':' + pass);\n this.set('Authorization', 'Basic ' + str);\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n }\n return this;\n};\n\n/**\n* Add query-string `val`.\n*\n* Examples:\n*\n* request.get('/shoes')\n* .query('size=10')\n* .query({ color: 'blue' })\n*\n* @param {Object|String} val\n* @return {Request} for chaining\n* @api public\n*/\n\nRequest.prototype.query = function(val){\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `filename`.\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String} filename\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function(field, file, filename){\n this._getFormData().append(field, file, filename || file.name);\n return this;\n};\n\nRequest.prototype._getFormData = function(){\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function(err, res){\n var fn = this._callback;\n this.clearTimeout();\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function(){\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequest.prototype._timeoutError = function(){\n var timeout = this._timeout;\n var err = new Error('timeout of ' + timeout + 'ms exceeded');\n err.timeout = timeout;\n this.callback(err);\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\n\nRequest.prototype._appendQueryString = function(){\n var query = this._query.join('&');\n if (query) {\n this.url += ~this.url.indexOf('?')\n ? '&' + query\n : '?' + query;\n }\n};\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function(fn){\n var self = this;\n var xhr = this.xhr = request.getXHR();\n var timeout = this._timeout;\n var data = this._formData || this._data;\n\n // store callback\n this._callback = fn || noop;\n\n // state change\n xhr.onreadystatechange = function(){\n if (4 != xhr.readyState) return;\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try { status = xhr.status } catch(e) { status = 0; }\n\n if (0 == status) {\n if (self.timedout) return self._timeoutError();\n if (self._aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function(e){\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n e.direction = 'download';\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n xhr.onprogress = handleProgress;\n }\n try {\n if (xhr.upload && this.hasListeners('progress')) {\n xhr.upload.onprogress = handleProgress;\n }\n } catch(e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n\n // timeout\n if (timeout && !this._timer) {\n this._timer = setTimeout(function(){\n self.timedout = true;\n self.abort();\n }, timeout);\n }\n\n // querystring\n this._appendQueryString();\n\n // initiate request\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\n\n/**\n * Expose `Request`.\n */\n\nrequest.Request = Request;\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.get = function(url, data, fn){\n var req = request('GET', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.head = function(url, data, fn){\n var req = request('HEAD', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.options = function(url, data, fn){\n var req = request('OPTIONS', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nfunction del(url, fn){\n var req = request('DELETE', url);\n if (fn) req.end(fn);\n return req;\n};\n\nrequest['del'] = del;\nrequest['delete'] = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function(url, data, fn){\n var req = request('PATCH', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.post = function(url, data, fn){\n var req = request('POST', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.put = function(url, data, fn){\n var req = request('PUT', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n},{\"./is-object\":1,\"./request\":3,\"./request-base\":2,\"emitter\":4,\"reduce\":5}]},{},[6])(6)\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/superagent/superagent.js\n ** module id = 17\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/Alias', 'model/RestError', 'model/RestOK'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/Alias'), require('../model/RestError'), require('../model/RestOK'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.AliasApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.Alias, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.RestOK);\n }\n}(this, function(ApiClient, Alias, RestError, RestOK) {\n 'use strict';\n\n /**\n * Alias service.\n * @module api/AliasApi\n * @version 0.6.0\n */\n\n /**\n * Constructs a new AliasApi. \n * @alias module:api/AliasApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the findAliases operation.\n * @callback module:api/AliasApi~findAliasesCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * get alias objects. set aliasId to '*' to find all aliases in some workspace. if alias id is given, only 0 or 1 matched alias object will be returned.\n * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.\n * @param {String} workspaceId webida workspace id in query part\n * @param {module:api/AliasApi~findAliasesCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findAliases = function(aliasId, workspaceId, callback) {\n var postBody = null;\n\n // verify the required parameter 'aliasId' is set\n if (aliasId == undefined || aliasId == null) {\n throw \"Missing the required parameter 'aliasId' when calling findAliases\";\n }\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling findAliases\";\n }\n\n\n var pathParams = {\n 'aliasId': aliasId\n };\n var queryParams = {\n 'workspaceId': workspaceId\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [Alias];\n\n return this.apiClient.callApi(\n '/aliass/{aliasId}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the putAlias operation.\n * @callback module:api/AliasApi~putAliasCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * create, or update an alias.\n * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.\n * @param {module:model/Alias} body alias object to write. should have same id to aliasId parameter.\n * @param {module:api/AliasApi~putAliasCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.putAlias = function(aliasId, body, callback) {\n var postBody = body;\n\n // verify the required parameter 'aliasId' is set\n if (aliasId == undefined || aliasId == null) {\n throw \"Missing the required parameter 'aliasId' when calling putAlias\";\n }\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling putAlias\";\n }\n\n\n var pathParams = {\n 'aliasId': aliasId\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/aliass/{aliasId}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the removeAliases operation.\n * @callback module:api/AliasApi~removeAliasesCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * remove alias. targeting rule is same to findAliases() operation.\n * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.\n * @param {String} workspaceId webida workspace id in query part\n * @param {module:api/AliasApi~removeAliasesCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.removeAliases = function(aliasId, workspaceId, callback) {\n var postBody = null;\n\n // verify the required parameter 'aliasId' is set\n if (aliasId == undefined || aliasId == null) {\n throw \"Missing the required parameter 'aliasId' when calling removeAliases\";\n }\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling removeAliases\";\n }\n\n\n var pathParams = {\n 'aliasId': aliasId\n };\n var queryParams = {\n 'workspaceId': workspaceId\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/aliass/{aliasId}', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/AliasApi.js\n ** module id = 18\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/User', 'model/RestError', 'model/Token', 'model/Credential'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/User'), require('../model/RestError'), require('../model/Token'), require('../model/Credential'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.AuthApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.User, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Token, root.WebidaRestfulApi.Credential);\n }\n}(this, function(ApiClient, User, RestError, Token, Credential) {\n 'use strict';\n\n /**\n * Auth service.\n * @module api/AuthApi\n * @version 0.6.0\n */\n\n /**\n * Constructs a new AuthApi. \n * @alias module:api/AuthApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the getInfo operation.\n * @callback module:api/AuthApi~getInfoCallback\n * @param {String} error Error message, if any.\n * @param {module:model/User} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Gets user information of that can be identified with current access token. Implementations should provide a more restful api based on domain data model, not extending this operation. (e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user) \n * @param {module:api/AuthApi~getInfoCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/User}\n */\n this.getInfo = function(callback) {\n var postBody = null;\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = User;\n\n return this.apiClient.callApi(\n '/auth/info', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the issueToken operation.\n * @callback module:api/AuthApi~issueTokenCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Token} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates new token from current access token, inheriting workspace id & session id. The duration of generated token is (and should not be) parameterizable. Server should set proper duration, respecting \\"reconnect\\" period of socket.io clients. Remember that most of socket.io client implementations (including official js client) do not provide any ways to change connection parameters (header or query) while reconnecting to server. Like login API, this endpoint does not provide any encryption. Server should not set any data to harm security in the token & should provide some signinig/encryption mechanism to protect token. Simple JSON Web Token with HMAC-SHA will do. \n * @param {module:model/String} type \n * @param {Object} opts Optional parameters\n * @param {String} opts.workspaceId Clients to save some remote access info should issue a MASTER type token restricted to specific workspace id.\n * @param {module:api/AuthApi~issueTokenCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Token}\n */\n this.issueToken = function(type, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'type' is set\n if (type == undefined || type == null) {\n throw \"Missing the required parameter 'type' when calling issueToken\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n 'type': type,\n 'workspaceId': opts['workspaceId']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Token;\n\n return this.apiClient.callApi(\n '/auth/token', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the login operation.\n * @callback module:api/AuthApi~loginCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Token} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * A \\"VERY\\" basic authentication, required to use webida-simple-auth security scheme. Service / Product implementations who need better security, should override this operation or add their own login api or some other specs like OAuth2. Simple auth is not suitable for large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only. Logging-in with master token, the generated access token inherits all restriction from it. On the other hand, normal log-in with login id & password creates an unrestricted access token, with reasonably short expiration time. Every client should spawn another access token with issueToken API before current access token expires, inheriting session id from current token. To save remote access info, client should create a (restricted but long-ttl) master token to start IDE from remote. The remote client should not use the unrestricted acccess token from login to use any other perpose than finding available workspaces, and should not refresh the token. (Let user log-in again) Login API does not force any encryption. Server should provide secure transport channel, usually https, to provide remote access, always. \n * @param {module:model/Credential} body \n * @param {module:api/AuthApi~loginCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Token}\n */\n this.login = function(body, callback) {\n var postBody = body;\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling login\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = [];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Token;\n\n return this.apiClient.callApi(\n '/auth/login', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/AuthApi.js\n ** module id = 19\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.OpsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError);\n }\n}(this, function(ApiClient, RestOK, RestError) {\n 'use strict';\n\n /**\n * Ops service.\n * @module api/OpsApi\n * @version 0.6.0\n */\n\n /**\n * Constructs a new OpsApi. \n * @alias module:api/OpsApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the replace operation.\n * @callback module:api/OpsApi~replaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * replace file contents with regex matching\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {Array.} wfsPathList array of wfsPath, with heading /. (collectionFormat may be changed by implementation)\n * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation\n * @param {String} replaceTo string to replace with\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n * @param {module:api/OpsApi~replaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.replace = function(wfsId, wfsPathList, pattern, replaceTo, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling replace\";\n }\n\n // verify the required parameter 'wfsPathList' is set\n if (wfsPathList == undefined || wfsPathList == null) {\n throw \"Missing the required parameter 'wfsPathList' when calling replace\";\n }\n\n // verify the required parameter 'pattern' is set\n if (pattern == undefined || pattern == null) {\n throw \"Missing the required parameter 'pattern' when calling replace\";\n }\n\n // verify the required parameter 'replaceTo' is set\n if (replaceTo == undefined || replaceTo == null) {\n throw \"Missing the required parameter 'replaceTo' when calling replace\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId\n };\n var queryParams = {\n 'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),\n 'pattern': pattern,\n 'ignoreCase': opts['ignoreCase'],\n 'replaceTo': replaceTo\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/ops/replace', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the search operation.\n * @callback module:api/OpsApi~searchCallback\n * @param {String} error Error message, if any.\n * @param {Object.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * search files in some path, with given pattern\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {Array.} wfsPathList array of wfsPath, with heading /. (collectionFormat may be changed by implementation)\n * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)\n * @param {module:api/OpsApi~searchCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Object.}\n */\n this.search = function(wfsId, wfsPathList, pattern, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling search\";\n }\n\n // verify the required parameter 'wfsPathList' is set\n if (wfsPathList == undefined || wfsPathList == null) {\n throw \"Missing the required parameter 'wfsPathList' when calling search\";\n }\n\n // verify the required parameter 'pattern' is set\n if (pattern == undefined || pattern == null) {\n throw \"Missing the required parameter 'pattern' when calling search\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId\n };\n var queryParams = {\n 'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),\n 'pattern': pattern,\n 'ignoreCase': opts['ignoreCase']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = {'String': [Match]};\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/ops/search', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/OpsApi.js\n ** module id = 20\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestError', 'model/RemoteAccess', 'model/RestOK'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestError'), require('../model/RemoteAccess'), require('../model/RestOK'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.RemotesApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.RemoteAccess, root.WebidaRestfulApi.RestOK);\n }\n}(this, function(ApiClient, RestError, RemoteAccess, RestOK) {\n 'use strict';\n\n /**\n * Remotes service.\n * @module api/RemotesApi\n * @version 0.6.0\n */\n\n /**\n * Constructs a new RemotesApi. \n * @alias module:api/RemotesApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the findRemoteAccesses operation.\n * @callback module:api/RemotesApi~findRemoteAccessesCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)\n * @param {module:api/RemotesApi~findRemoteAccessesCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findRemoteAccesses = function(callback) {\n var postBody = null;\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [RemoteAccess];\n\n return this.apiClient.callApi(\n '/remotes', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the putRemoteAccess operation.\n * @callback module:api/RemotesApi~putRemoteAccessCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Ceates or updates a remote workspace access information\n * @param {module:model/RemoteAccess} body \n * @param {module:api/RemotesApi~putRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.putRemoteAccess = function(body, callback) {\n var postBody = body;\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling putRemoteAccess\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/remotes', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the removeRemoteAccess operation.\n * @callback module:api/RemotesApi~removeRemoteAccessCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RemoteAccess} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Removes remote workspace access information\n * @param {String} workspaceId workspace Id of remote workspace\n * @param {module:api/RemotesApi~removeRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RemoteAccess}\n */\n this.removeRemoteAccess = function(workspaceId, callback) {\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling removeRemoteAccess\";\n }\n\n\n var pathParams = {\n };\n var queryParams = {\n 'workspaceId': workspaceId\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RemoteAccess;\n\n return this.apiClient.callApi(\n '/remotes', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/RemotesApi.js\n ** module id = 21\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError', 'model/Session'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Session'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.SessionApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Session);\n }\n}(this, function(ApiClient, RestOK, RestError, Session) {\n 'use strict';\n\n /**\n * Session service.\n * @module api/SessionApi\n * @version 0.6.0\n */\n\n /**\n * Constructs a new SessionApi. \n * @alias module:api/SessionApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the closeSessions operation.\n * @callback module:api/SessionApi~closeSessionsCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Closes session with timeout. Targets are selected by same rule to findSessions() op. While targeting multiple sessions, this operation requires same access rights with findSessions(). Closing a single session requires 'same session id' or 'unrestricted workspace acceess'.\n * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n * @param {String} workspaceId webida workspace id in query part\n * @param {Integer} closeAfter Waiting time before actual closing, to let client save files and prevent reconnecting. \n * @param {module:api/SessionApi~closeSessionsCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.closeSessions = function(sessionId, workspaceId, closeAfter, callback) {\n var postBody = null;\n\n // verify the required parameter 'sessionId' is set\n if (sessionId == undefined || sessionId == null) {\n throw \"Missing the required parameter 'sessionId' when calling closeSessions\";\n }\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling closeSessions\";\n }\n\n // verify the required parameter 'closeAfter' is set\n if (closeAfter == undefined || closeAfter == null) {\n throw \"Missing the required parameter 'closeAfter' when calling closeSessions\";\n }\n\n\n var pathParams = {\n 'sessionId': sessionId\n };\n var queryParams = {\n 'workspaceId': workspaceId,\n 'closeAfter': closeAfter\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/sessions/{sessionId}', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the findSessions operation.\n * @callback module:api/SessionApi~findSessionsCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Finds webida sessions established to server. if session id is given, matched session info will be returned and workspace id parameter will be ignored. To find all sessions of some workspace, set session id to '*' and specify workspace id. This operation requires proper accsss rights. 1) To find all sessions, an unrestricted token is required. 2) To find some workspace sesions, token should have proper access right on the workspace. \n * @param {String} sessionId webida session id (usually different from socket id from sock.io)\n * @param {String} workspaceId webida workspace id in query part\n * @param {module:api/SessionApi~findSessionsCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findSessions = function(sessionId, workspaceId, callback) {\n var postBody = null;\n\n // verify the required parameter 'sessionId' is set\n if (sessionId == undefined || sessionId == null) {\n throw \"Missing the required parameter 'sessionId' when calling findSessions\";\n }\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling findSessions\";\n }\n\n\n var pathParams = {\n 'sessionId': sessionId\n };\n var queryParams = {\n 'workspaceId': workspaceId\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [Session];\n\n return this.apiClient.callApi(\n '/sessions/{sessionId}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/SessionApi.js\n ** module id = 22\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError', 'model/DirEntry', 'model/Stats'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/DirEntry'), require('../model/Stats'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.WfsApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.DirEntry, root.WebidaRestfulApi.Stats);\n }\n}(this, function(ApiClient, RestOK, RestError, DirEntry, Stats) {\n 'use strict';\n\n /**\n * Wfs service.\n * @module api/WfsApi\n * @version 0.6.0\n */\n\n /**\n * Constructs a new WfsApi. \n * @alias module:api/WfsApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the copy operation.\n * @callback module:api/WfsApi~copyCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. This operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed. \n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {String} srcPath source data path of some operations, with have heading /\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n * @param {Boolean} opts.followSymbolicLinks dereference symlinks in source. (default to false)\n * @param {Boolean} opts.preserveTimestamps keep mtime/atime of source file(s) in destination. (default to false)\n * @param {module:api/WfsApi~copyCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.copy = function(wfsId, wfsPath, srcPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling copy\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling copy\";\n }\n\n // verify the required parameter 'srcPath' is set\n if (srcPath == undefined || srcPath == null) {\n throw \"Missing the required parameter 'srcPath' when calling copy\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'srcPath': srcPath,\n 'noOverwrite': opts['noOverwrite'],\n 'followSymbolicLinks': opts['followSymbolicLinks'],\n 'preserveTimestamps': opts['preserveTimestamps']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the createDir operation.\n * @callback module:api/WfsApi~createDirCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates a directory at the path. When the path is found to be a directory, this api does not return error and does not care it's empty or not. Always creates parent directories if needed.\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {module:api/WfsApi~createDirCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.createDir = function(wfsId, wfsPath, callback) {\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling createDir\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling createDir\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/dir/{wfsPath}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the dirTree operation.\n * @callback module:api/WfsApi~dirTreeCallback\n * @param {String} error Error message, if any.\n * @param {module:model/DirEntry} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Returns a directory tree of given path, the errors while building sub-tree will be ignored and result will not include the path that has errors. Client may have to stat some suspicious paths manually, if listing is not complete.\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {Integer} maxDepth Maximum depth of tree. -1 to build a full tree, 0 to stat, 1 to plain list.\n * @param {module:api/WfsApi~dirTreeCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/DirEntry}\n */\n this.dirTree = function(wfsId, wfsPath, maxDepth, callback) {\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling dirTree\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling dirTree\";\n }\n\n // verify the required parameter 'maxDepth' is set\n if (maxDepth == undefined || maxDepth == null) {\n throw \"Missing the required parameter 'maxDepth' when calling dirTree\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'maxDepth': maxDepth\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = DirEntry;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/dir/{wfsPath}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the move operation.\n * @callback module:api/WfsApi~moveCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Moves source resource to given path. Follows same rule to deal with existing path. So, this operation works like rename rather than mv. Just like copy(), this operations creates paraent dirs if needed and does not roll-back. Symbolic link and timestamp values will be moved without touching.\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {String} srcPath source data path of some operations, with have heading /\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)\n * @param {module:api/WfsApi~moveCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.move = function(wfsId, wfsPath, srcPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling move\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling move\";\n }\n\n // verify the required parameter 'srcPath' is set\n if (srcPath == undefined || srcPath == null) {\n throw \"Missing the required parameter 'srcPath' when calling move\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'srcPath': srcPath,\n 'noOverwrite': opts['noOverwrite']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the readFile operation.\n * @callback module:api/WfsApi~readFileCallback\n * @param {String} error Error message, if any.\n * @param {File} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * read file data on path\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {module:api/WfsApi~readFileCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {File}\n */\n this.readFile = function(wfsId, wfsPath, callback) {\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling readFile\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling readFile\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = File;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/file/{wfsPath}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the remove operation.\n * @callback module:api/WfsApi~removeCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * delete file or directory\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.noRecursive if set, deleting non-empty directory will return 409 error. (default to false)\n * @param {module:api/WfsApi~removeCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.remove = function(wfsId, wfsPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling remove\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling remove\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'noRecursive': opts['noRecursive']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the stat operation.\n * @callback module:api/WfsApi~statCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Stats} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Get stats of given path. (stat() returns stats object in node and POSIX system). This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ignoreError When true, operation ignore ENOENT error and returns DUMMY stats object instead of 404 error. (default to false)\n * @param {module:api/WfsApi~statCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Stats}\n */\n this.stat = function(wfsId, wfsPath, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling stat\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling stat\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'ignoreError': opts['ignoreError']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Stats;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/any/{wfsPath}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the writeFile operation.\n * @callback module:api/WfsApi~writeFileCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates / updates file with body data. Server should write the file in atomic manner nd should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.\n * @param {String} wfsId webida file system id (same to workspace id) to access.\n * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments\n * @param {File} data file contents to write.\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.ensureParents A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter (default to false)\n * @param {module:api/WfsApi~writeFileCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.writeFile = function(wfsId, wfsPath, data, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'wfsId' is set\n if (wfsId == undefined || wfsId == null) {\n throw \"Missing the required parameter 'wfsId' when calling writeFile\";\n }\n\n // verify the required parameter 'wfsPath' is set\n if (wfsPath == undefined || wfsPath == null) {\n throw \"Missing the required parameter 'wfsPath' when calling writeFile\";\n }\n\n // verify the required parameter 'data' is set\n if (data == undefined || data == null) {\n throw \"Missing the required parameter 'data' when calling writeFile\";\n }\n\n\n var pathParams = {\n 'wfsId': wfsId,\n 'wfsPath': wfsPath\n };\n var queryParams = {\n 'ensureParents': opts['ensureParents']\n };\n var headerParams = {\n };\n var formParams = {\n 'data': data\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['multipart/form-data'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/wfs/{wfsId}/file/{wfsPath}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/WfsApi.js\n ** module id = 23\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient', 'model/RestOK', 'model/RestError', 'model/Workspace', 'model/ChildProcess', 'model/Execution', 'model/ExecutionResult'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'), require('../model/RestOK'), require('../model/RestError'), require('../model/Workspace'), require('../model/ChildProcess'), require('../model/Execution'), require('../model/ExecutionResult'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.WorkspaceApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.RestOK, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.Workspace, root.WebidaRestfulApi.ChildProcess, root.WebidaRestfulApi.Execution, root.WebidaRestfulApi.ExecutionResult);\n }\n}(this, function(ApiClient, RestOK, RestError, Workspace, ChildProcess, Execution, ExecutionResult) {\n 'use strict';\n\n /**\n * Workspace service.\n * @module api/WorkspaceApi\n * @version 0.6.0\n */\n\n /**\n * Constructs a new WorkspaceApi. \n * @alias module:api/WorkspaceApi\n * @class\n * @param {module:ApiClient} apiClient Optional API client implementation to use,\n * default to {@link module:ApiClient#instance} if unspecified.\n */\n var exports = function(apiClient) {\n this.apiClient = apiClient || ApiClient.instance;\n\n\n /**\n * Callback function to receive the result of the cancel operation.\n * @callback module:api/WorkspaceApi~cancelCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Cancels executions, killing the spawned processes. To terminate all spawned processes, set execId to '*'. Requires proper access rights. Since killing a process usually takes a little bit long time, this api does not returns actual result but works in async manner. (So, client should listen to web socket channels for the processes). This operation Requires same access rights to exec().\n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {String} execId the id from execution request (different from pid!)\n * @param {module:api/WorkspaceApi~cancelCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.cancel = function(workspaceId, execId, callback) {\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling cancel\";\n }\n\n // verify the required parameter 'execId' is set\n if (execId == undefined || execId == null) {\n throw \"Missing the required parameter 'execId' when calling cancel\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'execId': execId\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}/exec', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the createWorkspace operation.\n * @callback module:api/WorkspaceApi~createWorkspaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Workspace} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Creates a new workspace with given local path. Requires an unrestricted access token. the workspace id parameter is ignored and will be replaced by new, unique value by server. it's recommended to set the value to simple, bogus one, like '*' or '-' (since it's path parameter, empty value is not allowed. 404 error will be returned for the case). excludedPath will be set with default values, including .git/, bower_components/ and node_modules/ Needs an unrestricted access token. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {String} localPath a real, local path of the system (not unixified)\n * @param {String} name workspace name property\n * @param {String} description workspace name property\n * @param {module:api/WorkspaceApi~createWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Workspace}\n */\n this.createWorkspace = function(workspaceId, localPath, name, description, callback) {\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling createWorkspace\";\n }\n\n // verify the required parameter 'localPath' is set\n if (localPath == undefined || localPath == null) {\n throw \"Missing the required parameter 'localPath' when calling createWorkspace\";\n }\n\n // verify the required parameter 'name' is set\n if (name == undefined || name == null) {\n throw \"Missing the required parameter 'name' when calling createWorkspace\";\n }\n\n // verify the required parameter 'description' is set\n if (description == undefined || description == null) {\n throw \"Missing the required parameter 'description' when calling createWorkspace\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'localPath': localPath,\n 'name': name,\n 'description': description\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Workspace;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the exec operation.\n * @callback module:api/WorkspaceApi~execCallback\n * @param {String} error Error message, if any.\n * @param {module:model/ExecutionResult} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Executes a shell command or spawns a background process on this workspace. Requires proper access rights.\n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {module:model/Execution} body the process to be executed or spawned.\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.async Spawns a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, using execution id. (default to false)\n * @param {module:api/WorkspaceApi~execCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/ExecutionResult}\n */\n this.exec = function(workspaceId, body, opts, callback) {\n opts = opts || {};\n var postBody = body;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling exec\";\n }\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling exec\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'async': opts['async']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = ExecutionResult;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}/exec', 'POST',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the findProcs operation.\n * @callback module:api/WorkspaceApi~findProcsCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Gets process info, created by async exec request, on this workspace. To find all spawned processes, set id to '*'. This op does not returns error when no procs found but empty result array. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {String} execId the id from execution request (different from pid!)\n * @param {module:api/WorkspaceApi~findProcsCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findProcs = function(workspaceId, execId, callback) {\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling findProcs\";\n }\n\n // verify the required parameter 'execId' is set\n if (execId == undefined || execId == null) {\n throw \"Missing the required parameter 'execId' when calling findProcs\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'execId': execId\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = [];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [ChildProcess];\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}/exec', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the findWorkspaces operation.\n * @callback module:api/WorkspaceApi~findWorkspacesCallback\n * @param {String} error Error message, if any.\n * @param {Array.} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Finds workspaces with given id or parameters. if workspaceId = '*', all workspaces in server are returned. No empty workspace id is allowed for it's a path parameter. When a workspace id is not '*' and non-existing workspace are requested, server should send 404 error and should ignore disposable parameter. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {Object} opts Optional parameters\n * @param {Boolean} opts.disposable flag to include disposable workspaces or not, when workspaceId is '*' (default to false)\n * @param {module:api/WorkspaceApi~findWorkspacesCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {Array.}\n */\n this.findWorkspaces = function(workspaceId, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling findWorkspaces\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'disposable': opts['disposable']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = [Workspace];\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}', 'GET',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the removeWorkspace operation.\n * @callback module:api/WorkspaceApi~removeWorkspaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/RestOK} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Removes a workspace. If no sessions are connected, this api 'works' before returning result. if some sesions are, workspace will be removed when 1) all sessions are closed for request (will be notified by server) 2) exceeded time limit value in closeAfter parameter 3) server stops after accepting remove request and willBeRemoved value is set. So, client may 'find' the workspace to be removed after calling this operation. Requires \\"unrestricted\\" access rights. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {Object} opts Optional parameters\n * @param {Integer} opts.closeAfter Time in seconds to wait for all sessions save & close their data. (default to 0)\n * @param {Boolean} opts.expunge Time in seconds to wait for all sessions save & close their data.\n * @param {module:api/WorkspaceApi~removeWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/RestOK}\n */\n this.removeWorkspace = function(workspaceId, opts, callback) {\n opts = opts || {};\n var postBody = null;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling removeWorkspace\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n 'closeAfter': opts['closeAfter'],\n 'expunge': opts['expunge']\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = RestOK;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}', 'DELETE',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n\n /**\n * Callback function to receive the result of the updateWorkspace operation.\n * @callback module:api/WorkspaceApi~updateWorkspaceCallback\n * @param {String} error Error message, if any.\n * @param {module:model/Workspace} data The data returned by the service call.\n * @param {String} response The complete HTTP response.\n */\n\n /**\n * Updates workspace. Some protected properties will not be changed by this op. If server cannot apply changed properties before returning workspace, such properties should not be updated with this operation. Clients should not rely on request body for further works, and should always check response to see what's changed actually. Requires proper access rights. \n * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)\n * @param {module:model/Workspace} body workspace object that contains updates\n * @param {module:api/WorkspaceApi~updateWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response\n * data is of type: {module:model/Workspace}\n */\n this.updateWorkspace = function(workspaceId, body, callback) {\n var postBody = body;\n\n // verify the required parameter 'workspaceId' is set\n if (workspaceId == undefined || workspaceId == null) {\n throw \"Missing the required parameter 'workspaceId' when calling updateWorkspace\";\n }\n\n // verify the required parameter 'body' is set\n if (body == undefined || body == null) {\n throw \"Missing the required parameter 'body' when calling updateWorkspace\";\n }\n\n\n var pathParams = {\n 'workspaceId': workspaceId\n };\n var queryParams = {\n };\n var headerParams = {\n };\n var formParams = {\n };\n\n var authNames = ['webida-simple-auth'];\n var contentTypes = ['application/json'];\n var accepts = ['application/json', 'application/octet-stream'];\n var returnType = Workspace;\n\n return this.apiClient.callApi(\n '/workspaces/{workspaceId}', 'PUT',\n pathParams, queryParams, headerParams, formParams, postBody,\n authNames, contentTypes, accepts, returnType, callback\n );\n }\n };\n\n return exports;\n}));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/api/WorkspaceApi.js\n ** module id = 24\n ** module chunks = 0\n **/","/**\n * Webida Restful API\n * Restful API for Webida clients to use server's data & features\n *\n * OpenAPI spec version: 0.6.0\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['ApiClient'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports, like Node.\n module.exports = factory(require('../ApiClient'));\n } else {\n // Browser globals (root is window)\n if (!root.WebidaRestfulApi) {\n root.WebidaRestfulApi = {};\n }\n root.WebidaRestfulApi.Match = factory(root.WebidaRestfulApi.ApiClient);\n }\n}(this, function(ApiClient) {\n 'use strict';\n\n\n\n\n /**\n * The Match model module.\n * @module model/Match\n * @version 0.6.0\n */\n\n /**\n * Constructs a new Match
.\n * search result for a file\n * @alias module:model/Match\n * @class\n * @param line {Integer} \n * @param text {String} \n */\n var exports = function(line, text) {\n var _this = this;\n\n _this['line'] = line;\n _this['text'] = text;\n };\n\n /**\n * Constructs a Match
from a plain JavaScript object, optionally creating a new instance.\n * Copies all relevant properties from data
to obj
if supplied or a new instance if not.\n * @param {Object} data The plain JavaScript object bearing properties of interest.\n * @param {module:model/Match} obj Optional instance to populate.\n * @return {module:model/Match} The populated Match
instance.\n */\n exports.constructFromObject = function(data, obj) {\n if (data) {\n obj = obj || new exports();\n\n if (data.hasOwnProperty('line')) {\n obj['line'] = ApiClient.convertToType(data['line'], 'Integer');\n }\n if (data.hasOwnProperty('text')) {\n obj['text'] = ApiClient.convertToType(data['text'], 'String');\n }\n }\n return obj;\n }\n\n /**\n * @member {Integer} line\n */\n exports.prototype['line'] = undefined;\n /**\n * @member {String} text\n */\n exports.prototype['text'] = undefined;\n\n\n\n return exports;\n}));\n\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/model/Match.js\n ** module id = 25\n ** module chunks = 0\n **/"],"sourceRoot":""}
\ No newline at end of file
diff --git a/api-spec/swagger.json b/api-spec/swagger.json
index 489303b..c11209a 100644
--- a/api-spec/swagger.json
+++ b/api-spec/swagger.json
@@ -2,7 +2,7 @@
"swagger" : "2.0",
"info" : {
"description" : "Restful API for Webida clients to use server's data & features",
- "version" : "0.5.0",
+ "version" : "0.6.0",
"title" : "Webida Restful API",
"license" : {
"name" : "Apache 2.0",
@@ -13,10 +13,125 @@
"consumes" : [ "application/json" ],
"produces" : [ "application/json", "application/octet-stream" ],
"paths" : {
+ "/aliass/{aliasId}" : {
+ "get" : {
+ "tags" : [ "alias" ],
+ "description" : "get alias objects. set aliasId to '*' to find all aliases in some workspace. if alias id is given, only 0 or 1 matched alias object will be returned.",
+ "operationId" : "findAliases",
+ "parameters" : [ {
+ "name" : "aliasId",
+ "in" : "path",
+ "description" : "url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "workspaceId",
+ "in" : "query",
+ "description" : "webida workspace id in query part",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "alias list",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Alias"
+ }
+ }
+ },
+ "default" : {
+ "description" : "Error",
+ "schema" : {
+ "$ref" : "#/definitions/RestError"
+ }
+ }
+ },
+ "security" : [ {
+ "webida-simple-auth" : [ ]
+ } ],
+ "x-handler" : "handlers/alias/findAliasesjs"
+ },
+ "put" : {
+ "tags" : [ "alias" ],
+ "description" : "create, or update an alias.",
+ "operationId" : "putAlias",
+ "parameters" : [ {
+ "name" : "aliasId",
+ "in" : "path",
+ "description" : "url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "alias object to write. should have same id to aliasId parameter.",
+ "required" : true,
+ "schema" : {
+ "$ref" : "#/definitions/Alias"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK.",
+ "schema" : {
+ "$ref" : "#/definitions/RestOK"
+ }
+ },
+ "default" : {
+ "description" : "Error",
+ "schema" : {
+ "$ref" : "#/definitions/RestError"
+ }
+ }
+ },
+ "security" : [ {
+ "webida-simple-auth" : [ ]
+ } ],
+ "x-handler" : "handlers/alias/putAlias.js"
+ },
+ "delete" : {
+ "tags" : [ "alias" ],
+ "description" : "remove alias. targeting rule is same to findAliases() operation.",
+ "operationId" : "removeAliases",
+ "parameters" : [ {
+ "name" : "aliasId",
+ "in" : "path",
+ "description" : "url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "workspaceId",
+ "in" : "query",
+ "description" : "webida workspace id in query part",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK.",
+ "schema" : {
+ "$ref" : "#/definitions/RestOK"
+ }
+ },
+ "default" : {
+ "description" : "Error",
+ "schema" : {
+ "$ref" : "#/definitions/RestError"
+ }
+ }
+ },
+ "security" : [ {
+ "webida-simple-auth" : [ ]
+ } ],
+ "x-handler" : "handlers/alias/removeAlias.js"
+ }
+ },
"/auth/info" : {
"get" : {
"tags" : [ "auth" ],
- "description" : "Gets user information of that can be identified with current access token. Implementations\nshould provide a more restful api based on domain data model, not extending this operation.\n(e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user)\n",
+ "description" : "Gets user information of that can be identified with current access token. Implementations should provide a more restful api based on domain data model, not extending this operation. (e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user)\n",
"operationId" : "getInfo",
"parameters" : [ ],
"responses" : {
@@ -48,7 +163,7 @@
"/auth/login" : {
"post" : {
"tags" : [ "auth" ],
- "description" : "A \"VERY\" basic authentication, required to use webida-simple-auth security scheme.\n\nService / Product implementations who need better security, should override this operation\nor add their own login api or some other specs like OAuth2. Simple auth is not suitable\nfor large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only.\n\nLogging-in with master token, the generated access token inherits all restriction from it.\nOn the other hand, normal log-in with login id & password creates an unrestricted access\ntoken, with reasonably short expiration time.\n\nEvery client should spawn another access token with issueToken API before current\naccess token expires, inheriting session id from current token. To save remote access\ninfo, client should create a (restricted but long-ttl) master token to start IDE from\nremote. The remote client should not use the unrestricted acccess token from login\nto use any other perpose than finding available workspaces, and should not refresh\nthe token. (Let user log-in again)\n\nLogin API does not force any encryption. Server should provide secure transport channel,\nusually https, to provide remote access, always.\n",
+ "description" : "A \"VERY\" basic authentication, required to use webida-simple-auth security scheme.\n\nService / Product implementations who need better security, should override this operation or add their own login api or some other specs like OAuth2. Simple auth is not suitable for large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only.\n\nLogging-in with master token, the generated access token inherits all restriction from it. On the other hand, normal log-in with login id & password creates an unrestricted access token, with reasonably short expiration time.\n\nEvery client should spawn another access token with issueToken API before current access token expires, inheriting session id from current token. To save remote access info, client should create a (restricted but long-ttl) master token to start IDE from remote. The remote client should not use the unrestricted acccess token from login to use any other perpose than finding available workspaces, and should not refresh the token. (Let user log-in again)\n\nLogin API does not force any encryption. Server should provide secure transport channel, usually https, to provide remote access, always.\n",
"operationId" : "login",
"parameters" : [ {
"in" : "body",
@@ -78,7 +193,7 @@
"/auth/token" : {
"post" : {
"tags" : [ "auth" ],
- "description" : "Creates new token from current access token, inheriting workspace id & session id.\nThe duration of generated token is (and should not be) parameterizable. Server should\nset proper duration, respecting \"reconnect\" period of socket.io clients. Remember that\nmost of socket.io client implementations (including official js client) do not provide\nany ways to change connection parameters (header or query) while reconnecting to server.\n\nLike login API, this endpoint does not provide any encryption. Server should not set any\ndata to harm security in the token & should provide some signinig/encryption mechanism\nto protect token. Simple JSON Web Token with HMAC-SHA will do.\n",
+ "description" : "Creates new token from current access token, inheriting workspace id & session id. The duration of generated token is (and should not be) parameterizable. Server should set proper duration, respecting \"reconnect\" period of socket.io clients. Remember that most of socket.io client implementations (including official js client) do not provide any ways to change connection parameters (header or query) while reconnecting to server.\n\nLike login API, this endpoint does not provide any encryption. Server should not set any data to harm security in the token & should provide some signinig/encryption mechanism to protect token. Simple JSON Web Token with HMAC-SHA will do.\n",
"operationId" : "issueToken",
"parameters" : [ {
"name" : "type",
@@ -89,7 +204,7 @@
}, {
"name" : "workspaceId",
"in" : "query",
- "description" : "recommended to issue a MASTER type token to restrict remote access",
+ "description" : "Clients to save some remote access info should issue a MASTER type token restricted to specific workspace id.",
"required" : false,
"type" : "string"
} ],
@@ -116,12 +231,12 @@
"/remotes" : {
"get" : {
"tags" : [ "remotes" ],
- "description" : "Get all access informations See RemoteWorkspaceAccess definition for details (no fancy\nfind / search feature yet)\n",
+ "description" : "Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)",
"operationId" : "findRemoteAccesses",
"parameters" : [ ],
"responses" : {
"200" : {
- "description" : "array of remote workspaces",
+ "description" : "Array of remote workspaces",
"schema" : {
"type" : "array",
"items" : {
@@ -143,7 +258,7 @@
},
"put" : {
"tags" : [ "remotes" ],
- "description" : "create or update a remote workspace access information",
+ "description" : "Ceates or updates a remote workspace access information",
"operationId" : "putRemoteAccess",
"parameters" : [ {
"in" : "body",
@@ -173,7 +288,7 @@
},
"delete" : {
"tags" : [ "remotes" ],
- "description" : "delete a remote workspace",
+ "description" : "Removes remote workspace access information",
"operationId" : "removeRemoteAccess",
"parameters" : [ {
"name" : "workspaceId",
@@ -201,16 +316,22 @@
} ]
}
},
- "/sessions" : {
+ "/sessions/{sessionId}" : {
"get" : {
"tags" : [ "session" ],
- "description" : "get all / some webida sessions established to server",
+ "description" : "Finds webida sessions established to server. if session id is given, matched session info will be returned and workspace id parameter will be ignored. To find all sessions of some workspace, set session id to '*' and specify workspace id.\n\nThis operation requires proper accsss rights.\n 1) To find all sessions, an unrestricted token is required.\n 2) To find some workspace sesions, token should have proper access right on the workspace.\n",
"operationId" : "findSessions",
"parameters" : [ {
+ "name" : "sessionId",
+ "in" : "path",
+ "description" : "webida session id (usually different from socket id from sock.io)",
+ "required" : true,
+ "type" : "string"
+ }, {
"name" : "workspaceId",
"in" : "query",
- "description" : "find only sessions working on some given workspace",
- "required" : false,
+ "description" : "webida workspace id in query part",
+ "required" : true,
"type" : "string"
} ],
"responses" : {
@@ -234,53 +355,27 @@
"webida-simple-auth" : [ ]
} ],
"x-handler" : "handlers/session/findSessions.js"
- }
- },
- "/sessions/{sessionId}" : {
- "get" : {
- "tags" : [ "session" ],
- "description" : "get a session object by id",
- "operationId" : "getSession",
- "parameters" : [ {
- "name" : "sessionId",
- "in" : "path",
- "description" : "webida session id (usually different from socket id from sock.io)",
- "required" : true,
- "type" : "string"
- } ],
- "responses" : {
- "200" : {
- "description" : "session",
- "schema" : {
- "$ref" : "#/definitions/Session"
- }
- },
- "default" : {
- "description" : "Error",
- "schema" : {
- "$ref" : "#/definitions/RestError"
- }
- }
- },
- "security" : [ {
- "webida-simple-auth" : [ ]
- } ],
- "x-handler" : "handlers/session/getSession.js"
},
"delete" : {
"tags" : [ "session" ],
- "description" : "close session with timeout",
- "operationId" : "closeSession",
+ "description" : "Closes session with timeout. Targets are selected by same rule to findSessions() op. While targeting multiple sessions, this operation requires same access rights with findSessions(). Closing a single session requires 'same session id' or 'unrestricted workspace acceess'.",
+ "operationId" : "closeSessions",
"parameters" : [ {
"name" : "sessionId",
"in" : "path",
"description" : "webida session id (usually different from socket id from sock.io)",
"required" : true,
"type" : "string"
+ }, {
+ "name" : "workspaceId",
+ "in" : "query",
+ "description" : "webida workspace id in query part",
+ "required" : true,
+ "type" : "string"
}, {
"name" : "closeAfter",
"in" : "query",
- "description" : "waiting time before actual closing, to let client save files and prevent reconnect\n",
+ "description" : "Waiting time before actual closing, to let client save files and prevent reconnecting.\n",
"required" : true,
"type" : "integer"
} ],
@@ -307,7 +402,7 @@
"/wfs/{wfsId}/any/{wfsPath}" : {
"get" : {
"tags" : [ "wfs" ],
- "description" : "Get stats of given path. (stat() returns \"stats\" object in node and POSIX system)\nSince we've no ctime/atime in Stats class, some file system changing events will\nsend 'exactly same' stats object. This API should be called only when stats of some\nfile system path is stale for unknown reason (e.g. losting change events).\nUse dirTree operation and session events to detect stats, if possible. This API\ncan be used to check a path is valid, existing one, but it's not recommended to\ncheck existence of individual paths by API. Clients should use dirTree and session\nevents to synchorize some in-app file system with webida file system.\n",
+ "description" : "Get stats of given path. (stat() returns stats object in node and POSIX system). This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.",
"operationId" : "stat",
"parameters" : [ {
"name" : "wfsId",
@@ -318,14 +413,14 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
}, {
"name" : "ignoreError",
"in" : "query",
- "description" : "flag to ignore stat errors to check existence only. If this flag is true,\nserver will returns 'DUMMY' type stats object instead of 404 error when\ngiven path does not exists. (invalid wfsId will produce 400 error, not 404)\n",
+ "description" : "When true, operation ignore ENOENT error and returns DUMMY stats object instead of 404 error.",
"required" : false,
"type" : "boolean",
"default" : false
@@ -351,7 +446,7 @@
},
"post" : {
"tags" : [ "wfs" ],
- "description" : "Moves source resource to given path. Unlike mv command, wfsPath always denotes an exact\npath of the resource to be created. So, moving a file to existing directory always\nreturns error and vice versa. (So, This API works like 'rename' rather than 'mv' command)\n\nLike copy(), this operation creates parent path of destination, and does not roll-back\nwhen operation failes.\n\nWhen destination path exists already,\n1) moving file to file : follows noOverwrite flag.\n2) moving file to dir : returns 409 error\n3) moving dir to file : returns 409 error\n4) moving dir to dir : merge srcPath/* to wfsPath, following noOverwite flag.\n",
+ "description" : "Moves source resource to given path. Follows same rule to deal with existing path. So, this operation works like rename rather than mv. Just like copy(), this operations creates paraent dirs if needed and does not roll-back. Symbolic link and timestamp values will be moved without touching.",
"operationId" : "move",
"parameters" : [ {
"name" : "wfsId",
@@ -362,7 +457,7 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
@@ -401,7 +496,7 @@
},
"put" : {
"tags" : [ "wfs" ],
- "description" : "Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact\npath of the resource to be created. So, copying a file to directory always returns error\nand vice versa.\n\nthis operation creates the parents dir of destination path always, and does not\nroll-back the creation when operation failed. So, clients should roll-back if needed.\n\nWhen destination path exists already,\n1) copying file to file : follows noOverwrite flag. (does not return error)\n2) copying file to dir : returns 409 error\n3) copying dir to file : returns 409 error\n4) copying dir to dir : merge srcPath/* to wfsPath, following noOverwite flag.\n",
+ "description" : "Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created.\n\nSo, When destination path exists already,\n 1) copying file to file : follows noOverwrite flag. (does not return error)\n 2) copying file to dir : returns 409 error\n 3) copying dir to file : returns 409 error\n 4) copying dir to dir : merge srcPath/* to wfsPath, following noOverwite flag.\n\nThis operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed.\n",
"operationId" : "copy",
"parameters" : [ {
"name" : "wfsId",
@@ -412,7 +507,7 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
@@ -476,7 +571,7 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
@@ -511,7 +606,7 @@
"/wfs/{wfsId}/dir/{wfsPath}" : {
"get" : {
"tags" : [ "wfs" ],
- "description" : "returns a directory tree of given path, for listing dir and managing file system\nerrors while building sub-tree will be ignored and will not be included in result.\n",
+ "description" : "Returns a directory tree of given path, the errors while building sub-tree will be ignored and result will not include the path that has errors. Client may have to stat some suspicious paths manually, if listing is not complete.",
"operationId" : "dirTree",
"parameters" : [ {
"name" : "wfsId",
@@ -522,7 +617,7 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
@@ -554,7 +649,7 @@
},
"put" : {
"tags" : [ "wfs" ],
- "description" : "create a directory at the path. returns error when wfsPath exists and not empty\nthis API always creates parent directories if needed.\n",
+ "description" : "Creates a directory at the path. When the path is found to be a directory, this api does not return error and does not care it's empty or not. Always creates parent directories if needed.",
"operationId" : "createDir",
"parameters" : [ {
"name" : "wfsId",
@@ -565,7 +660,7 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
@@ -604,14 +699,14 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
} ],
"responses" : {
"200" : {
- "description" : "File contents. Content-Type is application/octet-stream or follows file name extension.\n",
+ "description" : "File contents. Content-Type is application/octet-stream or follows file name extension.",
"schema" : {
"type" : "file"
}
@@ -630,7 +725,7 @@
},
"put" : {
"tags" : [ "wfs" ],
- "description" : "Creates / updates file with body data. Server should write the file in 'atomic' manner,\nand should not write down request body into final destination path directly. In other words,\nwheather writeFile() succeeds or not, the contents of the file should not be corrupted nor\nhalf-written.\n",
+ "description" : "Creates / updates file with body data. Server should write the file in atomic manner nd should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.",
"operationId" : "writeFile",
"consumes" : [ "multipart/form-data" ],
"parameters" : [ {
@@ -642,14 +737,14 @@
}, {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
}, {
"name" : "ensureParents",
"in" : "query",
- "description" : "A flag to create all parent directories to create file or dir, like mkdir -p. This parameter\ndoes not create entire path, but creates to 'parent directory' of the path.\n",
+ "description" : "A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter",
"required" : false,
"type" : "boolean",
"default" : false
@@ -694,7 +789,7 @@
}, {
"name" : "wfsPathList",
"in" : "query",
- "description" : "array of wfsPath, with heading / (collection format may be changed by implementation)",
+ "description" : "array of wfsPath, with heading /. (collectionFormat may be changed by implementation)",
"required" : true,
"type" : "array",
"items" : {
@@ -704,22 +799,22 @@
}, {
"name" : "pattern",
"in" : "query",
- "description" : "regex pattern to match in search or replace.\nIn replace operation, pattern should be same to the parttern in search operation\n",
- "required" : true,
- "type" : "string"
- }, {
- "name" : "replaceTo",
- "in" : "query",
- "description" : "string to replace with",
+ "description" : "regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation",
"required" : true,
"type" : "string"
}, {
"name" : "ignoreCase",
"in" : "query",
- "description" : "regex matching option to ignore case.\nIn replace operation, this option should be same to one used in search operation\n",
+ "description" : "regex matching option to ignore case. In replace operation, this option should be same to one used in search operation",
"required" : false,
"type" : "boolean",
"default" : false
+ }, {
+ "name" : "replaceTo",
+ "in" : "query",
+ "description" : "string to replace with",
+ "required" : true,
+ "type" : "string"
} ],
"responses" : {
"200" : {
@@ -741,7 +836,7 @@
"x-handler" : "handlers/wfs/replace.js"
}
},
- "/wfs/{wfsId}/ops/search/{wfsPath}" : {
+ "/wfs/{wfsId}/ops/search" : {
"get" : {
"tags" : [ "ops" ],
"description" : "search files in some path, with given pattern",
@@ -753,22 +848,25 @@
"required" : true,
"type" : "string"
}, {
- "name" : "wfsPath",
- "in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "name" : "wfsPathList",
+ "in" : "query",
+ "description" : "array of wfsPath, with heading /. (collectionFormat may be changed by implementation)",
"required" : true,
- "type" : "string",
- "pattern" : ".*"
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
}, {
"name" : "pattern",
"in" : "query",
- "description" : "regex pattern to match in search or replace.\nIn replace operation, pattern should be same to the parttern in search operation\n",
+ "description" : "regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation",
"required" : true,
"type" : "string"
}, {
"name" : "ignoreCase",
"in" : "query",
- "description" : "regex matching option to ignore case.\nIn replace operation, this option should be same to one used in search operation\n",
+ "description" : "regex matching option to ignore case. In replace operation, this option should be same to one used in search operation",
"required" : false,
"type" : "boolean",
"default" : false
@@ -799,22 +897,28 @@
"x-handler" : "handlers/wfs/search.js"
}
},
- "/workspaces" : {
+ "/workspaces/{workspaceId}" : {
"get" : {
"tags" : [ "workspace" ],
- "description" : "Finds workspaces (no find/search parameters yet). Requires an unrestricted access token. \n",
+ "description" : "Finds workspaces with given id or parameters. if workspaceId = '*', all workspaces in server are returned. No empty workspace id is allowed for it's a path parameter. When a workspace id is not '*' and non-existing workspace are requested, server should send 404 error and should ignore disposable parameter.\n",
"operationId" : "findWorkspaces",
"parameters" : [ {
+ "name" : "workspaceId",
+ "in" : "path",
+ "description" : "webida workspace id (usually same to file system id, wfsId)",
+ "required" : true,
+ "type" : "string"
+ }, {
"name" : "disposable",
"in" : "query",
- "description" : "include disposable workspaces or not",
+ "description" : "flag to include disposable workspaces or not, when workspaceId is '*'",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
- "description" : "array of local workspaces",
+ "description" : "array of local workspaces found",
"schema" : {
"type" : "array",
"items" : {
@@ -836,9 +940,15 @@
},
"post" : {
"tags" : [ "workspace" ],
- "description" : "Creates a new workspace with given local path. Requires an unrestricted access token. \n",
+ "description" : "Creates a new workspace with given local path. Requires an unrestricted access token. the workspace id parameter is ignored and will be replaced by new, unique value by server. it's recommended to set the value to simple, bogus one, like '*' or '-' (since it's path parameter, empty value is not allowed. 404 error will be returned for the case). excludedPath will be set with default values, including .git/, bower_components/ and node_modules/\n\nNeeds an unrestricted access token.\n",
"operationId" : "createWorkspace",
"parameters" : [ {
+ "name" : "workspaceId",
+ "in" : "path",
+ "description" : "webida workspace id (usually same to file system id, wfsId)",
+ "required" : true,
+ "type" : "string"
+ }, {
"name" : "localPath",
"in" : "query",
"description" : "a real, local path of the system (not unixified)",
@@ -875,42 +985,10 @@
"webida-simple-auth" : [ ]
} ],
"x-handler" : "handlers/workspace/createWorkspace.js"
- }
- },
- "/workspaces/{workspaceId}" : {
- "get" : {
- "tags" : [ "workspace" ],
- "description" : "get a workspace object by id",
- "operationId" : "getWorkspace",
- "parameters" : [ {
- "name" : "workspaceId",
- "in" : "path",
- "description" : "webida workspace id (usually same to file system id, wfsId)",
- "required" : true,
- "type" : "string"
- } ],
- "responses" : {
- "200" : {
- "description" : "the workspace",
- "schema" : {
- "$ref" : "#/definitions/Workspace"
- }
- },
- "default" : {
- "description" : "Error",
- "schema" : {
- "$ref" : "#/definitions/RestError"
- }
- }
- },
- "security" : [ {
- "webida-simple-auth" : [ ]
- } ],
- "x-handler" : "handlers/workspace/getWorkspace.js"
},
"put" : {
"tags" : [ "workspace" ],
- "description" : "Updates workspace. Some protected properties will not be changed by this api. Requires \nproper access rights in access token. \n",
+ "description" : "Updates workspace. Some protected properties will not be changed by this op. If server cannot apply changed properties before returning workspace, such properties should not be updated with this operation. Clients should not rely on request body for further works, and should always check response to see what's changed actually.\n\nRequires proper access rights.\n",
"operationId" : "updateWorkspace",
"parameters" : [ {
"name" : "workspaceId",
@@ -918,10 +996,18 @@
"description" : "webida workspace id (usually same to file system id, wfsId)",
"required" : true,
"type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "workspace object that contains updates",
+ "required" : true,
+ "schema" : {
+ "$ref" : "#/definitions/Workspace"
+ }
} ],
"responses" : {
"200" : {
- "description" : "updated Workspace object",
+ "description" : "updated Workspace object. some properties may different from input.",
"schema" : {
"$ref" : "#/definitions/Workspace"
}
@@ -940,7 +1026,7 @@
},
"delete" : {
"tags" : [ "workspace" ],
- "description" : "This operation will remove the requested workspace when\n 1) all sessions are closed for request (will be notified by server)\n 2) excedded time limit value in closeAfter parameter\n 3) server goes down after accepting remove request\n\"willBeRemovedAt\" property can be set \"only\" by this api.\nThis API requires \"unrestricted\" access token. Even an access token has matching\nworkspace id, removing an workspace is rejected.\n",
+ "description" : "Removes a workspace. If no sessions are connected, this api 'works' before returning result. if some sesions are, workspace will be removed when\n 1) all sessions are closed for request (will be notified by server)\n 2) exceeded time limit value in closeAfter parameter\n 3) server stops after accepting remove request\nand willBeRemoved value is set. So, client may 'find' the workspace to be removed after calling this operation.\n\nRequires \"unrestricted\" access rights.\n",
"operationId" : "removeWorkspace",
"parameters" : [ {
"name" : "workspaceId",
@@ -955,12 +1041,18 @@
"required" : false,
"type" : "integer",
"default" : 0
+ }, {
+ "name" : "expunge",
+ "in" : "query",
+ "description" : "Time in seconds to wait for all sessions save & close their data.",
+ "required" : false,
+ "type" : "boolean"
} ],
"responses" : {
"200" : {
- "description" : "removed Workspace object",
+ "description" : "OK. removed",
"schema" : {
- "$ref" : "#/definitions/Workspace"
+ "$ref" : "#/definitions/RestOK"
}
},
"default" : {
@@ -979,7 +1071,7 @@
"/workspaces/{workspaceId}/exec" : {
"get" : {
"tags" : [ "workspace" ],
- "description" : "Gets process info, created by async exec request, on this workspace. If execId is set,\nthis op finds a spawned process whose id is matching. If not, all spawned procs will be\nfound. This op does not returns error when no procs found but empty result array.\n\nThis operation requires proper access rights. (unrestricted or matching workspace id in\naccess token with parameter)\n",
+ "description" : "Gets process info, created by async exec request, on this workspace. To find all spawned processes, set id to '*'. This op does not returns error when no procs found but empty result array.\n",
"operationId" : "findProcs",
"parameters" : [ {
"name" : "workspaceId",
@@ -990,8 +1082,8 @@
}, {
"name" : "execId",
"in" : "query",
- "description" : "the id of execution request(different from pid!)",
- "required" : false,
+ "description" : "the id from execution request (different from pid!)",
+ "required" : true,
"type" : "string"
} ],
"responses" : {
@@ -1015,7 +1107,7 @@
},
"post" : {
"tags" : [ "workspace" ],
- "description" : "execute a shell command on this workspace. requires proper access rights.",
+ "description" : "Executes a shell command or spawns a background process on this workspace. Requires proper access rights.",
"operationId" : "exec",
"parameters" : [ {
"name" : "workspaceId",
@@ -1026,13 +1118,14 @@
}, {
"name" : "async",
"in" : "query",
- "description" : "Spawn a child process for given command and returns the created child proc info.\nActual output (stream of message) will be delivered to web socket channel, with\nroom id /sessions/async-{execId}\n",
+ "description" : "Spawns a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, using execution id.",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
+ "description" : "the process to be executed or spawned.",
"required" : true,
"schema" : {
"$ref" : "#/definitions/Execution"
@@ -1040,13 +1133,13 @@
} ],
"responses" : {
"200" : {
- "description" : "Execution result with all captured standard ouput and error. If execution is completed\nwithout error, cancelesponse#error should be a falsy value. If some error has happened,\nthen ExecutionResult#error (and #stderr, optionally) should be set. For other cases\n(e.g. insufficient/invalid arguments), normal RestError should be returned with 4xx\nor 5xx error code. client-side callback should distinguish from execution error from\nplain RestError.\n",
+ "description" : "Execution result with all captured standard ouput and error. If execution is completed without error, the error property in result object should be a falsy value. If some error has happened, then it will be an error message, without stack. A plain RestError will be returned with 4xx or 5xx error code (e.g. insufficient/invalid arguments) when it's found before creating process. So, clients may handle the 'invocation error' and 'errors from the command' differently.",
"schema" : {
"$ref" : "#/definitions/ExecutionResult"
}
},
"201" : {
- "description" : "spawned process infomation created by async execution. If server could not create\na child process, error event will be sent to client via socket channel but RestError\nwill not be ruturned from this operation. When a client has got 'error' event from\nthe socket channel, the client should close the channel wheather it receives subsequent\nexit event or not (with some proper timeout if needed). Server should not send the\nerrors related to 'killing' child processes\n",
+ "description" : "Spawned process infomation created by async execution. If server could not create a child process, error event will be sent to client via socket channel but RestError will not be ruturned from this operation. When a client has got 'error' event from the socket channel, the client should close the channel wheather it receives subsequent exit event or not (with some proper timeout if needed). Server should not send the errors related to 'killing' child processes.",
"schema" : {
"$ref" : "#/definitions/ChildProcess"
}
@@ -1065,7 +1158,7 @@
},
"delete" : {
"tags" : [ "workspace" ],
- "description" : "cancels an execution, if possible. Killing process may not be graceful. requires proper\naccess rights. if execId is not specified, this api does nothing.\n",
+ "description" : "Cancels executions, killing the spawned processes. To terminate all spawned processes, set execId to '*'. Requires proper access rights. Since killing a process usually takes a little bit long time, this api does not returns actual result but works in async manner. (So, client should listen to web socket channels for the processes). This operation Requires same access rights to exec().",
"operationId" : "cancel",
"parameters" : [ {
"name" : "workspaceId",
@@ -1076,8 +1169,8 @@
}, {
"name" : "execId",
"in" : "query",
- "description" : "the id of execution request(different from pid!)",
- "required" : false,
+ "description" : "the id from execution request (different from pid!)",
+ "required" : true,
"type" : "string"
} ],
"responses" : {
@@ -1126,9 +1219,13 @@
},
"message" : {
"type" : "string"
+ },
+ "errno" : {
+ "type" : "string",
+ "description" : "errno code for some internal errors in server. Since service implementation can use many different platform api & runtime, client should avoid relying on errno code."
}
},
- "description" : "Error object with code and message. code is bound to status code, but not always same to\nstandard HTTP status text. For example, some 409 error may have code \"Invalid Argument\"\ninstead of \"Conflic\". So, Client should read message property to know what happend exactly\nwhen an error is returned from server. And, some 500 errors can have system errno instead\nof useless \"internal\". Like other errors, details are hidden in message.\n"
+ "description" : "Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code \"Invalid Argument\" instead of \"Conflic\". So, Client should read message property to know what happend exactly, when an error is returned from server. And, some 500 errors can have system errno instead of useless \"internal\". Like other errors, details are hidden in message."
},
"Token" : {
"type" : "object",
@@ -1140,7 +1237,7 @@
},
"tokenType" : {
"type" : "string",
- "description" : "MASTER : used to create an access token from clients, without login credential\nACCESS : protects api access. should be unique for each ide session\n\nNote that here\"s no REFRESH token, nor LOGIN token. The login api will create\nunrestricted access token & master token pair. Desktop app has a side-way to\ncreate an unrestricted master token before starting IDE instances.\n",
+ "description" : "MASTER : used to create an access token from clients, without login credential\nACCESS : protects api access. should be unique for each ide session\n\nNote that here\"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances.\n",
"enum" : [ "MASTER", "ACCESS" ]
},
"expiresAt" : {
@@ -1174,10 +1271,10 @@
},
"masterToken" : {
"type" : "string",
- "description" : "a master token is issued when user wants to access webida api without id/password\nfrom remote or local desktop app. When masterToken is set, client should put some\nbogus id/password, non-empty. (The values can be used to identify client type)\n"
+ "description" : "A master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password for login, non-empty. the values can be used to identify client type."
}
},
- "description" : "user credential to login. Use https to protect credential."
+ "description" : "User credential to login. Use https to protect credential. master token can replace actual id/password pair."
},
"User" : {
"type" : "object",
@@ -1193,7 +1290,7 @@
"type" : "string"
}
},
- "description" : "Any services/products should define some admin apis to manage users in the system and\nexpose what should be exposed to client app. So, no properties are mandatory.\nCurrently, the properties are defined for compatiblity with legacy clients.\n"
+ "description" : "Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients."
},
"Stats" : {
"type" : "object",
@@ -1201,7 +1298,7 @@
"properties" : {
"type" : {
"type" : "string",
- "description" : "All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile()\nis true, then type will be 'FILE') If type is not decidable by the methods, default type\nis 'FILE', for everything on the file system is basically a file. 'DUMMY' type means\nthat some object 'does not exist for now'. Client may use 'DUMMY' type to mark something\ndangling, not written or created on real file system yet but visible to user.\n",
+ "description" : "All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.",
"enum" : [ "FILE", "DIRECTORY", "BLOCK_DEVICE", "CHARACTER_DEVICE", "LINK", "FIFO", "SOCKET", "DUMMY" ]
},
"birthtime" : {
@@ -1284,18 +1381,22 @@
},
"workspacePath" : {
"type" : "string",
- "description" : "absolute path of this workspace in server."
+ "description" : "absolute path of this workspace in server. server may not expose this property to some untrusted clients."
+ },
+ "disposable" : {
+ "type" : "boolean",
+ "description" : "If set, workspace is ephemeral - server will not keep persistence when it stops working. Ususally, side-loaded workspace via desktop app is disposable. Client with proper access right can flip this flag to declare the workspace should be persist.\n"
},
"excludedPaths" : {
"type" : "array",
- "description" : "glob patterns (Not regular expression!) or directory paths (Not a file path!) to\nbe excluded for watch service and search & replace operation. If a value has no '*'\nchar, it will be treated as directory path.\n\nLike most of operation parameters, paths (and patterns not prefixed with '*') should\nhave relative, unixified form. If not, server should reject or discard the absolute\n values.\n\nIf a directory is specified to be excluded, watch service may deliver unlinkDir/addDir\nevents of the dir, but should not deliver any events from its sub-dirs and files.\nSearch and replace operation should ignore any files under the directory. If path\ndenotes a file, server may reject or discard the path.\n\nServer should support basic glob pattern, '**' and '*' in the glob pattern but not !\n'!' prefix is optional. Client should not register any other extended glob features\nthat server does not support.\n",
+ "description" : "Ignore patterns to exclude from watch service and search-and-replace operations.\n\nPattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\' char for the beginning '!' and ending white-spaces shoule be supported, too.\n\nTo exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats.\n",
"items" : {
"type" : "string"
}
},
"offlineCachePaths" : {
"type" : "array",
- "description" : "any paths (including excluded paths) to be cached in remote clients.\n\nBrowser client should respect offline cache paths always. Desktop-app client\nmay not use off-line cache for local (embedded) server but shall use cache for any\nremote servers, even for same host. All caches should be partitioned with workspace\nid, globally unique value through time and space.\n\nClient should pre-fetch the contents of offline cache paths when it start IDE sessions\non a workspace to use for off-line state. When client goes to off-line, after losing\nconnection to server, it can use cached data as reply of some WFS operations and can\nwrite some data to cache to save workspace data & metadata. The changes should be\npersistent on client side safely. C\n\nWhen a client recovers connectivity to server, it should check the stats of files and\ndirs to upload if it has got some changes in offline state. If server has more recents\ncontents, client should drop chagnes and refill the cache with fresher data. Client may\nhave some 'time-tolerance' to accept server's data is fresher than client's, smaller than\nserveral seconds. If server has more recent contents, client should drop the changes and\nrefill the cache with fresher data. If not, client should replay the changes 1 by 1.\n\nSame protocol should be applied when client application starts with some 'unuploaded\nchange' evertime. That means, client should save 'change history' with 'changed data'\ntoo, to process it later, when starting app again in normal condition.\n\nAll Clients should not replay any 'delete' operations while replaying changes on client's\ncache, to protect from more serious problems with skewed timer or unexpected behaviors.\nAnd, of course, client should not rely on cached data while connection state is healthy.\n",
+ "description" : "Any paths (including excluded paths) to be cached in remote clients.\n\nBrowser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space.\n\nClient should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C\n\nWhen a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1.\n\nSame protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition.\n\nAll Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy.\n",
"items" : {
"type" : "string"
}
@@ -1309,11 +1410,11 @@
"properties" : {
"name" : {
"type" : "string",
- "description" : "display text of remote workspace. can be different from original name.\n"
+ "description" : "display text of remote workspace. can be different from original name."
},
"serverUrl" : {
"type" : "string",
- "description" : "the url of remote server. Should have no path/query parameters, even \"/\" in path.\n"
+ "description" : "the url of remote server. Should have no path/query parameters, even \"/\" in path."
},
"workspaceId" : {
"type" : "string",
@@ -1321,7 +1422,7 @@
},
"workspacePath" : {
"type" : "string",
- "description" : "Full path of remote workspace, read from remote server. this property will be removed\nwhen clients are able to work without \"named root directory\" in workspace fs tree.\n"
+ "description" : "Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \"named root directory\" in workspace fs tree."
},
"masterToken" : {
"type" : "string",
@@ -1344,12 +1445,12 @@
},
"state" : {
"type" : "string",
- "description" : "state of this session\nNORMAL = connected, normally working\nLOSING = disconnected, waiting reconnection. still accessible with api\nCLOSING = socket connection will close connection by server (clinet will be notified)\nthere\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry\nwhen the server closes connection or stops waiting for reconnection for timeout.\n",
+ "description" : "NORMAL = connected, normally working\nLOSING = disconnected, waiting reconnection. still accessible with api\nCLOSING = socket connection will close connection by server (clinet will be notified)\n\nThere\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout.\n",
"enum" : [ "NORMAL", "LOSING", "CLOSING" ]
},
"workspaceId" : {
"type" : "string",
- "description" : "the id of workspace that this sessions is working on. If falsy, then this session is\nnot belonged to any workpsace. Usually, dashboard / monitoring app will create a session\nwithout workspace id.\n"
+ "description" : "the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id."
},
"clientAddress" : {
"type" : "string",
@@ -1384,33 +1485,33 @@
"properties" : {
"id" : {
"type" : "string",
- "description" : "unique identifier of execution, to demux response stream or cancel request.\nServer should reject an async exec request without id.\n"
+ "description" : "unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id."
},
"command" : {
"type" : "string",
- "description" : "The command to run. Server may not support pipe, redirection nor shell variables in\ncommand. Client should not assume any 'specific shell' in server and should not\nusing the shell features for portability.\n\nIn windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually\na shell script in PATH may work as command but probably allocates console window while\nrunning the command. Implementations (both of server & client) should avoid allocating\nadditional console device while running service for costs and UX, and should provide\na portable way to invoke commands. Shortly, when a service/product embeds some\n'.sh' file to run, it must provide '.cmd' file doing same thing, always.\n"
+ "description" : "The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability.\nIn windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always."
},
"args" : {
"type" : "array",
- "description" : "the arguments array. Server can join this args to command with proper white-space char,\nwhen underlying platform api (e.g. child_process#exec() in node.js) does not support\nadditional arguments vector. It's recommended to use args vector than making a long\ncommand, to find & see child processes easily with this Rest API. So, args should be\nalways provided, even empty array.\n\nWhen some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking\ncommand understands escaping or quotation, but not always. Client should add proper\nescaping or quotation chars to args vector manually. server should not change any\ncommand or arguments.\n",
+ "description" : "The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array.\n\nWhen some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments.\n",
"items" : {
"type" : "string"
}
},
"cwd" : {
"type" : "string",
- "description" : "Current working directory of spawned process, relative to workspace root. If abscent,\ncwd will be the workspace directory. Does not accept any evaluatable form like\n$HOME, %USERPROFILE%. path should be unixified. Server may reject an 'absolute'\nproperty.\n"
+ "description" : "Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an absolute cwd path."
},
"timeout" : {
"type" : "integer",
- "description" : "The value which In 'miliseconds' the maximum amount of time the child is allowed\nto run. (not idle time of stdout / stderr stream) for sync exec. Server should not\napply default value for async exec, when omitted. The child process spawned by async\nexecution should be killed when\n 1) server goes down\n 2) process exits by self\n 3) cancel operation is invoked\n"
+ "description" : "The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked"
},
"maxBuffer" : {
"type" : "integer",
- "description" : "Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server\nshould not apply this limit to async execution. In sync exec, server may kill a\nchild process that has exceeded limit. default value is 512KB, large enough.\n"
+ "description" : "Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough."
}
},
- "description" : "execution request, simlilar to node.js exec()/spawn(). see node.js documentation for\ndetails of each properties. some properties are not configurable for portability\n - encoding : fixed to utf-8\n - shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh\n or bash in git-for-windows even they are available.)\n - killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or\n invoke taskkill, to ensure chlid process is killed.\n - uid & gid : will not be set for security\n - stdio : all streams are handled by server. no options are avaliable to client.\n - detached : always false\n"
+ "description" : "execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability\n * encoding : fixed to utf-8\n * shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.)\n * killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed.\n * uid & gid : will not be set for security\n * stdio : all streams are handled by server. no options are avaliable to client.\n * detached : always false\n"
},
"ExecutionResult" : {
"type" : "object",
@@ -1456,7 +1557,7 @@
},
"state" : {
"type" : "string",
- "description" : "state of process. Where\n CREATED - process is just created. no event has arrived yet\n WORKING - some output on stdout/stderr is arrived\n KILLING - sent kill signal, by cancel operation or error event from the process\n EXITED - process has exited.\n",
+ "description" : "State of process. Where\n CREATED - process is just created. no event has arrived yet\n WORKING - some output on stdout/stderr is arrived\n KILLING - sent kill signal, by cancel operation or error event from the process\n EXITED - process has exited.\n",
"enum" : [ "CREATED", "WORKING", "KILLING", "EXITED" ]
},
"startedAt" : {
@@ -1474,6 +1575,24 @@
}
},
"description" : "a process in execution, spawned by async exec or other mean"
+ },
+ "Alias" : {
+ "type" : "object",
+ "properties" : {
+ "id" : {
+ "type" : "string",
+ "description" : "id, and the path-fragment to access. Since this id is a path-fragment, any unsafe chars for path should not be included, especially / char. ?, *, and other special characters for shell are not also allowed."
+ },
+ "workspaceId" : {
+ "type" : "string",
+ "description" : "id of the workspace that contains source of alias"
+ },
+ "sourcePath" : {
+ "type" : "string",
+ "description" : "the source of alias, relative path to workspace root directory."
+ }
+ },
+ "description" : "alias to access file system using git or direct http requests who can't call swagger api with proper tokens"
}
},
"parameters" : {
@@ -1487,7 +1606,7 @@
"wfsPath" : {
"name" : "wfsPath",
"in" : "path",
- "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments\n",
+ "description" : "webida file system path to access. without heading /. should be placed at the end of path arguments",
"required" : true,
"type" : "string",
"pattern" : ".*"
@@ -1502,7 +1621,7 @@
"wfsPathList" : {
"name" : "wfsPathList",
"in" : "query",
- "description" : "array of wfsPath, with heading / (collection format may be changed by implementation)",
+ "description" : "array of wfsPath, with heading /. (collectionFormat may be changed by implementation)",
"required" : true,
"type" : "array",
"items" : {
@@ -1513,7 +1632,7 @@
"ensureParents" : {
"name" : "ensureParents",
"in" : "query",
- "description" : "A flag to create all parent directories to create file or dir, like mkdir -p. This parameter\ndoes not create entire path, but creates to 'parent directory' of the path.\n",
+ "description" : "A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter",
"required" : false,
"type" : "boolean",
"default" : false
@@ -1529,14 +1648,14 @@
"pattern" : {
"name" : "pattern",
"in" : "query",
- "description" : "regex pattern to match in search or replace.\nIn replace operation, pattern should be same to the parttern in search operation\n",
+ "description" : "regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation",
"required" : true,
"type" : "string"
},
"ignoreCase" : {
"name" : "ignoreCase",
"in" : "query",
- "description" : "regex matching option to ignore case.\nIn replace operation, this option should be same to one used in search operation\n",
+ "description" : "regex matching option to ignore case. In replace operation, this option should be same to one used in search operation",
"required" : false,
"type" : "boolean",
"default" : false
@@ -1548,11 +1667,18 @@
"required" : true,
"type" : "string"
},
+ "workspaceIdQuery" : {
+ "name" : "workspaceId",
+ "in" : "query",
+ "description" : "webida workspace id in query part",
+ "required" : true,
+ "type" : "string"
+ },
"execId" : {
"name" : "execId",
"in" : "query",
- "description" : "the id of execution request(different from pid!)",
- "required" : false,
+ "description" : "the id from execution request (different from pid!)",
+ "required" : true,
"type" : "string"
},
"sessionId" : {
@@ -1561,6 +1687,13 @@
"description" : "webida session id (usually different from socket id from sock.io)",
"required" : true,
"type" : "string"
+ },
+ "aliasId" : {
+ "name" : "aliasId",
+ "in" : "path",
+ "description" : "url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.",
+ "required" : true,
+ "type" : "string"
}
}
}
\ No newline at end of file
diff --git a/api-spec/swagger.yaml b/api-spec/swagger.yaml
index 5d7a5c5..f1ad499 100644
--- a/api-spec/swagger.yaml
+++ b/api-spec/swagger.yaml
@@ -21,7 +21,7 @@
swagger: "2.0"
info:
- version: "0.5.0"
+ version: "0.6.0"
title: Webida Restful API
description: Restful API for Webida clients to use server's data & features
license:
@@ -50,23 +50,13 @@ paths:
description: |
A "VERY" basic authentication, required to use webida-simple-auth security scheme.
- Service / Product implementations who need better security, should override this operation
- or add their own login api or some other specs like OAuth2. Simple auth is not suitable
- for large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only.
+ Service / Product implementations who need better security, should override this operation or add their own login api or some other specs like OAuth2. Simple auth is not suitable for large-sacle, multi-tennant service, for the scheme assumes a single, trusted user only.
- Logging-in with master token, the generated access token inherits all restriction from it.
- On the other hand, normal log-in with login id & password creates an unrestricted access
- token, with reasonably short expiration time.
+ Logging-in with master token, the generated access token inherits all restriction from it. On the other hand, normal log-in with login id & password creates an unrestricted access token, with reasonably short expiration time.
- Every client should spawn another access token with issueToken API before current
- access token expires, inheriting session id from current token. To save remote access
- info, client should create a (restricted but long-ttl) master token to start IDE from
- remote. The remote client should not use the unrestricted acccess token from login
- to use any other perpose than finding available workspaces, and should not refresh
- the token. (Let user log-in again)
+ Every client should spawn another access token with issueToken API before current access token expires, inheriting session id from current token. To save remote access info, client should create a (restricted but long-ttl) master token to start IDE from remote. The remote client should not use the unrestricted acccess token from login to use any other perpose than finding available workspaces, and should not refresh the token. (Let user log-in again)
- Login API does not force any encryption. Server should provide secure transport channel,
- usually https, to provide remote access, always.
+ Login API does not force any encryption. Server should provide secure transport channel, usually https, to provide remote access, always.
operationId: login
parameters:
- name: body
@@ -89,10 +79,7 @@ paths:
x-handler: handlers/auth/getInfo.js
tags: ["auth"]
description: |
- Gets user information of that can be identified with current access token. Implementations
- should provide a more restful api based on domain data model, not extending this operation.
- (e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user)
-
+ Gets user information of that can be identified with current access token. Implementations should provide a more restful api based on domain data model, not extending this operation. (e.g. GET,PUT and DELETE on /Users/{userId} to read, update and delete user)
operationId: getInfo
security:
- webida-simple-auth: []
@@ -115,15 +102,9 @@ paths:
x-handler: handlers/auth/issueToken.js
tags: ["auth"]
description: |
- Creates new token from current access token, inheriting workspace id & session id.
- The duration of generated token is (and should not be) parameterizable. Server should
- set proper duration, respecting "reconnect" period of socket.io clients. Remember that
- most of socket.io client implementations (including official js client) do not provide
- any ways to change connection parameters (header or query) while reconnecting to server.
+ Creates new token from current access token, inheriting workspace id & session id. The duration of generated token is (and should not be) parameterizable. Server should set proper duration, respecting "reconnect" period of socket.io clients. Remember that most of socket.io client implementations (including official js client) do not provide any ways to change connection parameters (header or query) while reconnecting to server.
- Like login API, this endpoint does not provide any encryption. Server should not set any
- data to harm security in the token & should provide some signinig/encryption mechanism
- to protect token. Simple JSON Web Token with HMAC-SHA will do.
+ Like login API, this endpoint does not provide any encryption. Server should not set any data to harm security in the token & should provide some signinig/encryption mechanism to protect token. Simple JSON Web Token with HMAC-SHA will do.
operationId: issueToken
security:
@@ -138,7 +119,7 @@ paths:
in: query
required: false
type: string
- description: recommended to issue a MASTER type token to restrict remote access
+ description: Clients to save some remote access info should issue a MASTER type token restricted to specific workspace id.
responses:
"200":
description: new token generated
@@ -149,28 +130,24 @@ paths:
schema:
$ref: "#/definitions/RestError"
- #
- # wfs paths starts with /wfs/{wfsId}
+
+ # Basic WFS operations , read/write file, create dir, delete, copy, move, ...
+ # wfs paths starts with /wfs/{wfsId}
# /file/{wfsPath} file CRUD C,U is PUT, not POST
# GET - read file
# PUT - write file
# /dir/{wfsPath} directory CRUD
- # GET - list (read) dir
+ # GET - list (tree) dir
# PUT - create (can be expanded to import, later)
# /any/{wfsPath}
# GET?{ignoreError} - stat / exists
# PUT?{src} - copy
# POST?{src} - move
- # DELETE - delete
- # /ops/search/{wfsPath} for search (GET) and replace (POST)
- # /ops/replace?{wfsPath} for search (GET) and replace (POST)
- #
- # We can"t use /wfs/{wfsId}/{wfsPath} form because swagger does not support "one-of"
- # in json schema nor path spec with query parameter. For example, a GET request,
- # having 3 semantics - stat/list/read.
- # So, reading from /{wfsId}/{wfsPath} requires 3 endpoint paths.
- #
+ # DELETE - remove
+ # /ops/search?{wfsPathQuery} for search (GET) and replace (POST)
+ # /ops/replace?{wfsPathQuery} for search (GET) and replace (POST)
+ # WFS File operations - read/write
/wfs/{wfsId}/file/{wfsPath}:
# readFile.
get:
@@ -185,8 +162,7 @@ paths:
- $ref: "#/parameters/wfsPath"
responses:
"200":
- description: |
- File contents. Content-Type is application/octet-stream or follows file name extension.
+ description: File contents. Content-Type is application/octet-stream or follows file name extension.
schema:
type: file
default:
@@ -198,11 +174,7 @@ paths:
put:
x-handler: handlers/wfs/writeFile.js
tags: ["wfs"]
- description: |
- Creates / updates file with body data. Server should write the file in 'atomic' manner,
- and should not write down request body into final destination path directly. In other words,
- wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor
- half-written.
+ description: Creates / updates file with body data. Server should write the file in atomic manner nd should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.
operationId: writeFile
consumes:
- multipart/form-data
@@ -227,14 +199,13 @@ paths:
schema:
$ref: "#/definitions/RestError"
+ # WFS Dir operations - list(tree) and create empty one
/wfs/{wfsId}/dir/{wfsPath}:
# dirTree
get:
x-handler: handlers/wfs/dirTree.js
tags: ["wfs"]
- description: |
- returns a directory tree of given path, for listing dir and managing file system
- errors while building sub-tree will be ignored and will not be included in result.
+ description: Returns a directory tree of given path, the errors while building sub-tree will be ignored and result will not include the path that has errors. Client may have to stat some suspicious paths manually, if listing is not complete.
operationId: dirTree
security:
- webida-simple-auth: []
@@ -260,9 +231,7 @@ paths:
put:
x-handler: handlers/wfs/createDir.js
tags: ["wfs"]
- description: |
- create a directory at the path. returns error when wfsPath exists and not empty
- this API always creates parent directories if needed.
+ description: Creates a directory at the path. When the path is found to be a directory, this api does not return error and does not care it's empty or not. Always creates parent directories if needed.
operationId: createDir
security:
- webida-simple-auth: []
@@ -279,21 +248,13 @@ paths:
schema:
$ref: "#/definitions/RestError"
+ # WFS Any operations - stat & exist, copy, move, remove
/wfs/{wfsId}/any/{wfsPath}:
# stat
get:
x-handler: handlers/wfs/stat.js
tags: ["wfs"]
- description: |
- Get stats of given path. (stat() returns "stats" object in node and POSIX system)
- Since we've no ctime/atime in Stats class, some file system changing events will
- send 'exactly same' stats object. This API should be called only when stats of some
- file system path is stale for unknown reason (e.g. losting change events).
- Use dirTree operation and session events to detect stats, if possible. This API
- can be used to check a path is valid, existing one, but it's not recommended to
- check existence of individual paths by API. Clients should use dirTree and session
- events to synchorize some in-app file system with webida file system.
-
+ description: Get stats of given path. (stat() returns stats object in node and POSIX system). This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.
operationId: stat
security:
- webida-simple-auth: []
@@ -303,10 +264,7 @@ paths:
- name: ignoreError
in: query
required: false
- description: |
- flag to ignore stat errors to check existence only. If this flag is true,
- server will returns 'DUMMY' type stats object instead of 404 error when
- given path does not exists. (invalid wfsId will produce 400 error, not 404)
+ description: When true, operation ignore ENOENT error and returns DUMMY stats object instead of 404 error.
type: boolean
default: false
responses:
@@ -324,18 +282,15 @@ paths:
x-handler: handlers/wfs/copy.js
tags: ["wfs"]
description: |
- Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact
- path of the resource to be created. So, copying a file to directory always returns error
- and vice versa.
+ Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created.
- this operation creates the parents dir of destination path always, and does not
- roll-back the creation when operation failed. So, clients should roll-back if needed.
+ So, When destination path exists already,
+ 1) copying file to file : follows noOverwrite flag. (does not return error)
+ 2) copying file to dir : returns 409 error
+ 3) copying dir to file : returns 409 error
+ 4) copying dir to dir : merge srcPath/* to wfsPath, following noOverwite flag.
- When destination path exists already,
- 1) copying file to file : follows noOverwrite flag. (does not return error)
- 2) copying file to dir : returns 409 error
- 3) copying dir to file : returns 409 error
- 4) copying dir to dir : merge srcPath/* to wfsPath, following noOverwite flag.
+ This operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed.
operationId: copy
security:
@@ -371,20 +326,7 @@ paths:
post:
x-handler: handlers/wfs/move.js
tags: ["wfs"]
- description: |
- Moves source resource to given path. Unlike mv command, wfsPath always denotes an exact
- path of the resource to be created. So, moving a file to existing directory always
- returns error and vice versa. (So, This API works like 'rename' rather than 'mv' command)
-
- Like copy(), this operation creates parent path of destination, and does not roll-back
- when operation failes.
-
- When destination path exists already,
- 1) moving file to file : follows noOverwrite flag.
- 2) moving file to dir : returns 409 error
- 3) moving dir to file : returns 409 error
- 4) moving dir to dir : merge srcPath/* to wfsPath, following noOverwite flag.
-
+ description: Moves source resource to given path. Follows same rule to deal with existing path. So, this operation works like rename rather than mv. Just like copy(), this operations creates paraent dirs if needed and does not roll-back. Symbolic link and timestamp values will be moved without touching.
operationId: move
security:
- webida-simple-auth: []
@@ -403,7 +345,6 @@ paths:
schema:
$ref: "#/definitions/RestError"
-
# remove / delete
delete:
x-handler: handlers/wfs/remove.js
@@ -431,8 +372,8 @@ paths:
schema:
$ref: "#/definitions/RestError"
- # search
- /wfs/{wfsId}/ops/search/{wfsPath}:
+ # WFS search operation
+ /wfs/{wfsId}/ops/search:
get:
x-handler: handlers/wfs/search.js
tags: ["ops"]
@@ -442,7 +383,7 @@ paths:
- webida-simple-auth: []
parameters:
- $ref: "#/parameters/wfsId"
- - $ref: "#/parameters/wfsPath"
+ - $ref: "#/parameters/wfsPathList"
- $ref: "#/parameters/pattern"
- $ref: "#/parameters/ignoreCase"
responses:
@@ -459,7 +400,7 @@ paths:
schema:
$ref: "#/definitions/RestError"
- # replace
+ # WFS replace operation
/wfs/{wfsId}/ops/replace:
post:
x-handler: handlers/wfs/replace.js
@@ -472,12 +413,12 @@ paths:
- $ref: "#/parameters/wfsId"
- $ref: "#/parameters/wfsPathList"
- $ref: "#/parameters/pattern"
+ - $ref: "#/parameters/ignoreCase"
- name: replaceTo
in: query
description: string to replace with
type: string
required: true
- - $ref: "#/parameters/ignoreCase"
responses:
"200":
description: done
@@ -488,36 +429,33 @@ paths:
schema:
$ref: "#/definitions/RestError"
- # (local) workspace related apis
- # workspaces/
- # GET : get all local workspaces
- # POST : create single local workspace
+ # workspace management operations
# workspaces/{workspaceId} - individual local workspaces
- # GET : get single workspace object
+ # GET : find workspaces
+ # POST: create workspace
# PUT : update single workspace
# DELETE : delete single workspace
- # workspaces/{workspaceId}/exec
-
- /workspaces:
+ /workspaces/{workspaceId}:
# findWorkspaces
get:
x-handler: handlers/workspace/findWorkspaces.js
tags: ["workspace"]
- description: |
- Finds workspaces (no find/search parameters yet). Requires an unrestricted access token.
+ description: |
+ Finds workspaces with given id or parameters. if workspaceId = '*', all workspaces in server are returned. No empty workspace id is allowed for it's a path parameter. When a workspace id is not '*' and non-existing workspace are requested, server should send 404 error and should ignore disposable parameter.
operationId: findWorkspaces
security:
- webida-simple-auth: []
parameters:
+ - $ref: "#/parameters/workspaceId"
- name: disposable
in: query
required: false
- description: include disposable workspaces or not
+ description: flag to include disposable workspaces or not, when workspaceId is '*'
type: boolean
default: false
responses:
"200":
- description: array of local workspaces
+ description: array of local workspaces found
schema:
type: array
items:
@@ -531,12 +469,15 @@ paths:
post:
x-handler: handlers/workspace/createWorkspace.js
tags: ["workspace"]
- description: |
- Creates a new workspace with given local path. Requires an unrestricted access token.
+ description: |
+ Creates a new workspace with given local path. Requires an unrestricted access token. the workspace id parameter is ignored and will be replaced by new, unique value by server. it's recommended to set the value to simple, bogus one, like '*' or '-' (since it's path parameter, empty value is not allowed. 404 error will be returned for the case). excludedPath will be set with default values, including .git/, bower_components/ and node_modules/
+
+ Needs an unrestricted access token.
operationId: createWorkspace
security:
- webida-simple-auth: []
parameters:
+ - $ref: "#/parameters/workspaceId"
- name: localPath
in: query
required: true
@@ -562,42 +503,28 @@ paths:
schema:
$ref: "#/definitions/RestError"
- /workspaces/{workspaceId}:
- # getWorkspace
- get:
- x-handler: handlers/workspace/getWorkspace.js
- tags: ["workspace"]
- description: get a workspace object by id
- operationId: getWorkspace
- security:
- - webida-simple-auth: []
- parameters:
- - $ref: "#/parameters/workspaceId"
- responses:
- "200":
- description: the workspace
- schema:
- $ref: "#/definitions/Workspace"
- default:
- description: Error
- schema:
- $ref: "#/definitions/RestError"
-
# update workspace
put:
x-handler: handlers/workspace/updateWorkspace.js
tags: ["workspace"]
- description: |
- Updates workspace. Some protected properties will not be changed by this api. Requires
- proper access rights in access token.
+ description: |
+ Updates workspace. Some protected properties will not be changed by this op. If server cannot apply changed properties before returning workspace, such properties should not be updated with this operation. Clients should not rely on request body for further works, and should always check response to see what's changed actually.
+
+ Requires proper access rights.
operationId: updateWorkspace
security:
- webida-simple-auth: []
parameters:
- $ref: "#/parameters/workspaceId"
+ - name: body
+ in: body
+ description: workspace object that contains updates
+ required: true
+ schema:
+ $ref: "#/definitions/Workspace"
responses:
"200":
- description: updated Workspace object
+ description: updated Workspace object. some properties may different from input.
schema:
$ref: "#/definitions/Workspace"
default:
@@ -610,13 +537,13 @@ paths:
x-handler: handlers/workspace/removeWorkspace.js
tags: ["workspace"]
description: |
- This operation will remove the requested workspace when
+ Removes a workspace. If no sessions are connected, this api 'works' before returning result. if some sesions are, workspace will be removed when
1) all sessions are closed for request (will be notified by server)
- 2) excedded time limit value in closeAfter parameter
- 3) server goes down after accepting remove request
- "willBeRemovedAt" property can be set "only" by this api.
- This API requires "unrestricted" access token. Even an access token has matching
- workspace id, removing an workspace is rejected.
+ 2) exceeded time limit value in closeAfter parameter
+ 3) server stops after accepting remove request
+ and willBeRemoved value is set. So, client may 'find' the workspace to be removed after calling this operation.
+
+ Requires "unrestricted" access rights.
operationId: removeWorkspace
security:
- webida-simple-auth: []
@@ -628,29 +555,33 @@ paths:
type: integer
required: false
default: 0
+ - name: expunge
+ in: query
+ description: Time in seconds to wait for all sessions save & close their data.
+ type: boolean
+ required: false
responses:
"200":
- description: removed Workspace object
+ description: OK. removed
schema:
- $ref: "#/definitions/Workspace"
+ $ref: "#/definitions/RestOK"
default:
description: Error
schema:
$ref: "#/definitions/RestError"
+ # workspace - exec operations
+ # workspaces/{workspaceId}/exec
+ # GET : findProcs
+ # POST: exec
+ # DELETE : cancel (for async exec only)
/workspaces/{workspaceId}/exec:
-
- #getChildProcs
+ #findProcs
get:
x-handler: handlers/workspace/findProcs.js
tags: ["workspace"]
description: |
- Gets process info, created by async exec request, on this workspace. If execId is set,
- this op finds a spawned process whose id is matching. If not, all spawned procs will be
- found. This op does not returns error when no procs found but empty result array.
-
- This operation requires proper access rights. (unrestricted or matching workspace id in
- access token with parameter)
+ Gets process info, created by async exec request, on this workspace. To find all spawned processes, set id to '*'. This op does not returns error when no procs found but empty result array.
operationId: findProcs
parameters:
- $ref: "#/parameters/workspaceId"
@@ -671,7 +602,7 @@ paths:
post:
x-handler: handlers/workspace/exec.js
tags: ["workspace"]
- description: execute a shell command on this workspace. requires proper access rights.
+ description: Executes a shell command or spawns a background process on this workspace. Requires proper access rights.
operationId: exec
security:
- webida-simple-auth: []
@@ -679,37 +610,23 @@ paths:
- $ref: "#/parameters/workspaceId"
- name: async
in: query
- description: |
- Spawn a child process for given command and returns the created child proc info.
- Actual output (stream of message) will be delivered to web socket channel, with
- room id /sessions/async-{execId}
+ description: Spawns a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, using execution id.
type: boolean
required: false
default: false
- name: body
in: body
+ description: the process to be executed or spawned.
required: true
schema:
$ref: "#/definitions/Execution"
responses:
"200":
- description: |
- Execution result with all captured standard ouput and error. If execution is completed
- without error, cancelesponse#error should be a falsy value. If some error has happened,
- then ExecutionResult#error (and #stderr, optionally) should be set. For other cases
- (e.g. insufficient/invalid arguments), normal RestError should be returned with 4xx
- or 5xx error code. client-side callback should distinguish from execution error from
- plain RestError.
+ description: Execution result with all captured standard ouput and error. If execution is completed without error, the error property in result object should be a falsy value. If some error has happened, then it will be an error message, without stack. A plain RestError will be returned with 4xx or 5xx error code (e.g. insufficient/invalid arguments) when it's found before creating process. So, clients may handle the 'invocation error' and 'errors from the command' differently.
schema:
$ref: "#/definitions/ExecutionResult"
"201":
- description: |
- spawned process infomation created by async execution. If server could not create
- a child process, error event will be sent to client via socket channel but RestError
- will not be ruturned from this operation. When a client has got 'error' event from
- the socket channel, the client should close the channel wheather it receives subsequent
- exit event or not (with some proper timeout if needed). Server should not send the
- errors related to 'killing' child processes
+ description: Spawned process infomation created by async execution. If server could not create a child process, error event will be sent to client via socket channel but RestError will not be ruturned from this operation. When a client has got 'error' event from the socket channel, the client should close the channel wheather it receives subsequent exit event or not (with some proper timeout if needed). Server should not send the errors related to 'killing' child processes.
schema:
$ref: '#/definitions/ChildProcess'
default:
@@ -720,9 +637,7 @@ paths:
#cancel
delete:
tags: ["workspace"]
- description: |
- cancels an execution, if possible. Killing process may not be graceful. requires proper
- access rights. if execId is not specified, this api does nothing.
+ description: Cancels executions, killing the spawned processes. To terminate all spawned processes, set execId to '*'. Requires proper access rights. Since killing a process usually takes a little bit long time, this api does not returns actual result but works in async manner. (So, client should listen to web socket channels for the processes). This operation Requires same access rights to exec().
operationId: cancel
security:
- webida-simple-auth: []
@@ -739,26 +654,22 @@ paths:
schema:
$ref: "#/definitions/RestError"
- #
- # remote-access
+ # remote-access operations
# GET : get all remote workspaces" access info, registered to local server
# PUT : put (upsert) a remote workspace access info
# DELETE : delete single remote workspace" access info
- #
/remotes:
# findRemoteAccess
get:
x-handler: handlers/remotes/findRemoteAccesses.js
tags: ["remotes"]
- description: |
- Get all access informations See RemoteWorkspaceAccess definition for details (no fancy
- find / search feature yet)
+ description: Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)
operationId: findRemoteAccesses
security:
- webida-simple-auth: []
responses:
"200":
- description: array of remote workspaces
+ description: Array of remote workspaces
schema:
type: array
items:
@@ -771,7 +682,7 @@ paths:
# putRemoteAccess
put:
tags: ["remotes"]
- description: create or update a remote workspace access information
+ description: Ceates or updates a remote workspace access information
operationId: putRemoteAccess
security:
- webida-simple-auth: []
@@ -794,7 +705,7 @@ paths:
# removeRemoteWorkspace
delete:
tags: ["remotes"]
- description: delete a remote workspace
+ description: Removes remote workspace access information
operationId: removeRemoteAccess
security:
- webida-simple-auth: []
@@ -814,20 +725,26 @@ paths:
schema:
$ref: "#/definitions/RestError"
- /sessions:
+ # session management operations
+ # GET : find session
+ # DELETE: close session
+ /sessions/{sessionId}:
+ # findSessions
get:
x-handler: handlers/session/findSessions.js
tags: ["session"]
- description: get all / some webida sessions established to server
+ description: |
+ Finds webida sessions established to server. if session id is given, matched session info will be returned and workspace id parameter will be ignored. To find all sessions of some workspace, set session id to '*' and specify workspace id.
+
+ This operation requires proper accsss rights.
+ 1) To find all sessions, an unrestricted token is required.
+ 2) To find some workspace sesions, token should have proper access right on the workspace.
operationId: findSessions
security:
- webida-simple-auth: []
parameters:
- - name: workspaceId
- in: query
- required: false
- description: find only sessions working on some given workspace
- type: string
+ - $ref: "#/parameters/sessionId"
+ - $ref: "#/parameters/workspaceIdQuery"
responses:
"200":
description: array of sessions
@@ -840,45 +757,74 @@ paths:
schema:
$ref: "#/definitions/RestError"
- # We dont define method POST here, for all sessions are made from web socket connections.
- # And, we should separate ws connection end-point from API, for some servers may not be
- # able to host web socket in api implementation.
-
- /sessions/{sessionId}:
- get:
- x-handler: handlers/session/getSession.js
+ # closeSessions
+ delete:
+ x-handler: handlers/session/closeSession.js
tags: ["session"]
- description: get a session object by id
- operationId: getSession
+ description: Closes session with timeout. Targets are selected by same rule to findSessions() op. While targeting multiple sessions, this operation requires same access rights with findSessions(). Closing a single session requires 'same session id' or 'unrestricted workspace acceess'.
+ operationId: closeSessions
security:
- webida-simple-auth: []
parameters:
- $ref: "#/parameters/sessionId"
+ - $ref: "#/parameters/workspaceIdQuery"
+ - name: closeAfter
+ in: query
+ type: integer
+ description: |
+ Waiting time before actual closing, to let client save files and prevent reconnecting.
+ required: true
responses:
"200":
- description: session
+ description: OK.
schema:
- $ref: "#/definitions/Session"
+ $ref: "#/definitions/RestOK"
default:
description: Error
schema:
$ref: "#/definitions/RestError"
+ # no POST or PUT, for session should be created or updated by web-socket
- delete:
- x-handler: handlers/session/closeSession.js
- tags: ["session"]
- description: close session with timeout
- operationId: closeSession
+ /aliass/{aliasId}:
+ # findAliases
+ get:
+ x-handler: handlers/alias/findAliasesjs
+ tags: ["alias"]
+ description: get alias objects. set aliasId to '*' to find all aliases in some workspace. if alias id is given, only 0 or 1 matched alias object will be returned.
+ operationId: findAliases
security:
- webida-simple-auth: []
parameters:
- - $ref: "#/parameters/sessionId"
- - name: closeAfter
- in: query
- type: integer
- description: |
- waiting time before actual closing, to let client save files and prevent reconnect
+ - $ref: "#/parameters/aliasId"
+ - $ref: "#/parameters/workspaceIdQuery"
+ responses:
+ "200":
+ description: alias list
+ schema:
+ type: array
+ items:
+ $ref: "#/definitions/Alias"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/RestError"
+
+ # putAlias
+ put:
+ x-handler: handlers/alias/putAlias.js
+ tags: ["alias"]
+ description: create, or update an alias.
+ operationId: putAlias
+ security:
+ - webida-simple-auth: []
+ parameters:
+ - $ref: "#/parameters/aliasId"
+ - name: body
+ in: body
+ description: alias object to write. should have same id to aliasId parameter.
required: true
+ schema:
+ $ref: "#/definitions/Alias"
responses:
"200":
description: OK.
@@ -889,6 +835,26 @@ paths:
schema:
$ref: "#/definitions/RestError"
+ # removeAliases
+ delete:
+ x-handler: handlers/alias/removeAlias.js
+ tags: ["alias"]
+ description: remove alias. targeting rule is same to findAliases() operation.
+ operationId: removeAliases
+ security:
+ - webida-simple-auth: []
+ parameters:
+ - $ref: "#/parameters/aliasId"
+ - $ref: "#/parameters/workspaceIdQuery"
+ responses:
+ "200":
+ description: OK.
+ schema:
+ $ref: "#/definitions/RestOK"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/RestError"
securityDefinitions:
webida-simple-auth:
@@ -908,8 +874,7 @@ parameters:
wfsPath:
name: wfsPath
in: path
- description: |
- webida file system path to access. without heading /. should be placed at the end of path arguments
+ description: webida file system path to access. without heading /. should be placed at the end of path arguments
required: true
type: string
pattern: .*
@@ -924,7 +889,7 @@ parameters:
wfsPathList:
name: wfsPathList
in: query
- description: array of wfsPath, with heading / (collection format may be changed by implementation)
+ description: array of wfsPath, with heading /. (collectionFormat may be changed by implementation)
required: true
type: array
items:
@@ -934,9 +899,7 @@ parameters:
ensureParents:
name: ensureParents
in: query
- description: |
- A flag to create all parent directories to create file or dir, like mkdir -p. This parameter
- does not create entire path, but creates to 'parent directory' of the path.
+ description: A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter
type: boolean
required: false
default: false
@@ -952,18 +915,14 @@ parameters:
pattern:
name: pattern
in: query
- description: |
- regex pattern to match in search or replace.
- In replace operation, pattern should be same to the parttern in search operation
+ description: regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
type: string
required: true
ignoreCase:
name: ignoreCase
in: query
- description: |
- regex matching option to ignore case.
- In replace operation, this option should be same to one used in search operation
+ description: regex matching option to ignore case. In replace operation, this option should be same to one used in search operation
type: boolean
required: false
default: false
@@ -975,12 +934,19 @@ parameters:
required: true
type: string
+ workspaceIdQuery:
+ name: workspaceId
+ in: query
+ description: webida workspace id in query part
+ required: true
+ type: string
+
execId:
name: execId
in: query
- description: the id of execution request(different from pid!)
+ description: the id from execution request (different from pid!)
type: string
- required: false
+ required: true
sessionId:
name: sessionId
@@ -989,6 +955,13 @@ parameters:
required: true
type: string
+ aliasId:
+ name: aliasId
+ in: path
+ description: url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+ required: true
+ type: string
+
definitions:
RestOK:
@@ -999,17 +972,17 @@ definitions:
RestError:
type: object
- description: |
- Error object with code and message. code is bound to status code, but not always same to
- standard HTTP status text. For example, some 409 error may have code "Invalid Argument"
- instead of "Conflic". So, Client should read message property to know what happend exactly
- when an error is returned from server. And, some 500 errors can have system errno instead
- of useless "internal". Like other errors, details are hidden in message.
+ description: Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code "Invalid Argument" instead of "Conflic". So, Client should read message property to know what happend exactly, when an error is returned from server. And, some 500 errors can have system errno instead of useless "internal". Like other errors, details are hidden in message.
properties:
code:
type: string
message:
type: string
+ errno:
+ description: errno code for some internal errors in server. Since service implementation can use many different platform api & runtime, client should avoid relying on errno code.
+ type: string
+ stack:
+ description: stack trace for this error. Server should not include stack trace in production and client should not print or show this stack to user. This property should be used in 'developer mode' only, for debugging.
required:
- message
@@ -1027,9 +1000,7 @@ definitions:
MASTER : used to create an access token from clients, without login credential
ACCESS : protects api access. should be unique for each ide session
- Note that here"s no REFRESH token, nor LOGIN token. The login api will create
- unrestricted access token & master token pair. Desktop app has a side-way to
- create an unrestricted master token before starting IDE instances.
+ Note that here"s no REFRESH token, nor LOGIN token. The login api will create unrestricted access token & master token pair. Desktop app has a side-way to create an unrestricted master token before starting IDE instances.
expiresAt:
type: string
format: date-time
@@ -1050,7 +1021,7 @@ definitions:
Credential:
type: object
- description: user credential to login. Use https to protect credential.
+ description: User credential to login. Use https to protect credential. master token can replace actual id/password pair.
properties:
loginId:
type: string
@@ -1058,20 +1029,14 @@ definitions:
type: string
masterToken:
type: string
- description: |
- a master token is issued when user wants to access webida api without id/password
- from remote or local desktop app. When masterToken is set, client should put some
- bogus id/password, non-empty. (The values can be used to identify client type)
+ description: A master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password for login, non-empty. the values can be used to identify client type.
required:
- loginId
- loginPassword
User:
type: object
- description: |
- Any services/products should define some admin apis to manage users in the system and
- expose what should be exposed to client app. So, no properties are mandatory.
- Currently, the properties are defined for compatiblity with legacy clients.
+ description: Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients.
properties:
id:
type: string
@@ -1103,12 +1068,7 @@ definitions:
- "FIFO"
- "SOCKET"
- "DUMMY"
- description: |
- All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile()
- is true, then type will be 'FILE') If type is not decidable by the methods, default type
- is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means
- that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something
- dangling, not written or created on real file system yet but visible to user.
+ description: All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.
birthtime:
type: string
format: date-time
@@ -1173,62 +1133,38 @@ definitions:
type: string
format: date-time
workspacePath:
- description: absolute path of this workspace in server.
+ description: absolute path of this workspace in server. server may not expose this property to some untrusted clients.
type: string
+ disposable:
+ description: |
+ If set, workspace is ephemeral - server will not keep persistence when it stops working. Ususally, side-loaded workspace via desktop app is disposable. Client with proper access right can flip this flag to declare the workspace should be persist.
+ type: boolean
excludedPaths:
description: |
- glob patterns (Not regular expression!) or directory paths (Not a file path!) to
- be excluded for watch service and search & replace operation. If a value has no '*'
- char, it will be treated as directory path.
-
- Like most of operation parameters, paths (and patterns not prefixed with '*') should
- have relative, unixified form. If not, server should reject or discard the absolute
- values.
-
- If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir
- events of the dir, but should not deliver any events from its sub-dirs and files.
- Search and replace operation should ignore any files under the directory. If path
- denotes a file, server may reject or discard the path.
-
- Server should support basic glob pattern, '**' and '*' in the glob pattern but not !
- '!' prefix is optional. Client should not register any other extended glob features
- that server does not support.
+ Ignore patterns to exclude from watch service and search-and-replace operations.
+
+ Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\' char for the beginning '!' and ending white-spaces shoule be supported, too.
+
+ To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats.
type: array
items:
type: string
offlineCachePaths:
description: |
- any paths (including excluded paths) to be cached in remote clients.
-
- Browser client should respect offline cache paths always. Desktop-app client
- may not use off-line cache for local (embedded) server but shall use cache for any
- remote servers, even for same host. All caches should be partitioned with workspace
- id, globally unique value through time and space.
-
- Client should pre-fetch the contents of offline cache paths when it start IDE sessions
- on a workspace to use for off-line state. When client goes to off-line, after losing
- connection to server, it can use cached data as reply of some WFS operations and can
- write some data to cache to save workspace data & metadata. The changes should be
- persistent on client side safely. C
-
- When a client recovers connectivity to server, it should check the stats of files and
- dirs to upload if it has got some changes in offline state. If server has more recents
- contents, client should drop chagnes and refill the cache with fresher data. Client may
- have some 'time-tolerance' to accept server's data is fresher than client's, smaller than
- serveral seconds. If server has more recent contents, client should drop the changes and
- refill the cache with fresher data. If not, client should replay the changes 1 by 1.
-
- Same protocol should be applied when client application starts with some 'unuploaded
- change' evertime. That means, client should save 'change history' with 'changed data'
- too, to process it later, when starting app again in normal condition.
-
- All Clients should not replay any 'delete' operations while replaying changes on client's
- cache, to protect from more serious problems with skewed timer or unexpected behaviors.
- And, of course, client should not rely on cached data while connection state is healthy.
+ Any paths (including excluded paths) to be cached in remote clients.
+
+ Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space.
+
+ Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C
+
+ When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1.
+
+ Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition.
+
+ All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy.
type: array
items:
type: string
-
required:
- id
- name
@@ -1243,20 +1179,16 @@ definitions:
description: Access information of remote workspace in remote server
properties:
name:
- description: |
- display text of remote workspace. can be different from original name.
+ description: display text of remote workspace. can be different from original name.
type: string
serverUrl:
- description: |
- the url of remote server. Should have no path/query parameters, even "/" in path.
+ description: the url of remote server. Should have no path/query parameters, even "/" in path.
type: string
workspaceId:
description: the id of remote workspace, read from remote server
type: string
workspacePath:
- description: |
- Full path of remote workspace, read from remote server. this property will be removed
- when clients are able to work without "named root directory" in workspace fs tree.
+ description: Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without "named root directory" in workspace fs tree.
type: string
masterToken:
description: master token to access service, issued from remote server
@@ -1279,22 +1211,18 @@ definitions:
type: string
state:
description: |
- state of this session
NORMAL = connected, normally working
LOSING = disconnected, waiting reconnection. still accessible with api
CLOSING = socket connection will close connection by server (clinet will be notified)
- there"s no "CLOSED" / "LOST" state, for server will remove session object in registry
- when the server closes connection or stops waiting for reconnection for timeout.
+
+ There"s no "CLOSED" / "LOST" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout.
type: string
enum:
- NORMAL
- LOSING
- CLOSING
workspaceId:
- description: |
- the id of workspace that this sessions is working on. If falsy, then this session is
- not belonged to any workpsace. Usually, dashboard / monitoring app will create a session
- without workspace id.
+ description: the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id.
type: string
clientAddress:
description: the peer address of session connection. not always
@@ -1326,80 +1254,48 @@ definitions:
Execution:
type: object
description: |
- execution request, simlilar to node.js exec()/spawn(). see node.js documentation for
- details of each properties. some properties are not configurable for portability
- - encoding : fixed to utf-8
- - shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh
- or bash in git-for-windows even they are available.)
- - killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or
- invoke taskkill, to ensure chlid process is killed.
- - uid & gid : will not be set for security
- - stdio : all streams are handled by server. no options are avaliable to client.
- - detached : always false
+ execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability
+ * encoding : fixed to utf-8
+ * shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.)
+ * killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed.
+ * uid & gid : will not be set for security
+ * stdio : all streams are handled by server. no options are avaliable to client.
+ * detached : always false
properties:
id:
- description: |
- unique identifier of execution, to demux response stream or cancel request.
- Server should reject an async exec request without id.
+ description: unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id.
type: string
command:
- description: |
- The command to run. Server may not support pipe, redirection nor shell variables in
- command. Client should not assume any 'specific shell' in server and should not
- using the shell features for portability.
-
- In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually
- a shell script in PATH may work as command but probably allocates console window while
- running the command. Implementations (both of server & client) should avoid allocating
- additional console device while running service for costs and UX, and should provide
- a portable way to invoke commands. Shortly, when a service/product embeds some
- '.sh' file to run, it must provide '.cmd' file doing same thing, always.
+ description: The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability.
+
+ In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always.
type: string
args:
description: |
- the arguments array. Server can join this args to command with proper white-space char,
- when underlying platform api (e.g. child_process#exec() in node.js) does not support
- additional arguments vector. It's recommended to use args vector than making a long
- command, to find & see child processes easily with this Rest API. So, args should be
- always provided, even empty array.
-
- When some arguments has a white space (e.g. C:\Program Files\webida), usually invoking
- command understands escaping or quotation, but not always. Client should add proper
- escaping or quotation chars to args vector manually. server should not change any
- command or arguments.
+ The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array.
+
+ When some arguments has a white space (e.g. C:\Program Files\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments.
type: array
items:
type: string
cwd:
- description: |
- Current working directory of spawned process, relative to workspace root. If abscent,
- cwd will be the workspace directory. Does not accept any evaluatable form like
- $HOME, %USERPROFILE%. path should be unixified. Server may reject an 'absolute'
- property.
+ description: Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an absolute cwd path.
type: string
timeout:
- description: |
- The value which In 'miliseconds' the maximum amount of time the child is allowed
- to run. (not idle time of stdout / stderr stream) for sync exec. Server should not
- apply default value for async exec, when omitted. The child process spawned by async
- execution should be killed when
+ description: The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when
1) server goes down
2) process exits by self
3) cancel operation is invoked
type: integer
default: 60000
maxBuffer:
- description: |
- Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server
- should not apply this limit to async execution. In sync exec, server may kill a
- child process that has exceeded limit. default value is 512KB, large enough.
+ description: Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough.
type: integer
default: 524288
required:
- command
- args
-
ExecutionResult:
type: object
description: execution response
@@ -1437,7 +1333,7 @@ definitions:
type: string
state:
description: |
- state of process. Where
+ State of process. Where
CREATED - process is just created. no event has arrived yet
WORKING - some output on stdout/stderr is arrived
KILLING - sent kill signal, by cancel operation or error event from the process
@@ -1464,4 +1360,18 @@ definitions:
- args
- execId
- state
- - startedAt
\ No newline at end of file
+ - startedAt
+
+ Alias:
+ type: object
+ description: alias to access file system using git or direct http requests who can't call swagger api with proper tokens
+ properties:
+ id:
+ description: id, and the path-fragment to access. Since this id is a path-fragment, any unsafe chars for path should not be included, especially / char. ?, *, and other special characters for shell are not also allowed.
+ type: string
+ workspaceId:
+ description: id of the workspace that contains source of alias
+ type: string
+ sourcePath:
+ description: the source of alias, relative path to workspace root directory.
+ type: string
\ No newline at end of file
diff --git a/builder/templates/package.mustache b/builder/templates/package.mustache
index 6f86d65..bdcd4c8 100644
--- a/builder/templates/package.mustache
+++ b/builder/templates/package.mustache
@@ -1,6 +1,6 @@
{
"name": "webida-restful-api",
- "version": "0.5.0",
+ "version": "0.6.0",
"description": "Webida Restful API Spec & generated clients",
"license": "Apache-2.0",
"main": "{{sourceFolder}}{{#invokerPackage}}/{{invokerPackage}}{{/invokerPackage}}/index.js",
diff --git a/docs/Alias.md b/docs/Alias.md
new file mode 100644
index 0000000..4958b25
--- /dev/null
+++ b/docs/Alias.md
@@ -0,0 +1,10 @@
+# WebidaRestfulApi.Alias
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **String** | id, and the path-fragment to access. Since this id is a path-fragment, any unsafe chars for path should not be included, especially / char. ?, *, and other special characters for shell are not also allowed. | [optional]
+**workspaceId** | **String** | id of the workspace that contains source of alias | [optional]
+**sourcePath** | **String** | the source of alias, relative path to workspace root directory. | [optional]
+
+
diff --git a/docs/AliasApi.md b/docs/AliasApi.md
new file mode 100644
index 0000000..d5f4acd
--- /dev/null
+++ b/docs/AliasApi.md
@@ -0,0 +1,179 @@
+# WebidaRestfulApi.AliasApi
+
+All URIs are relative to *https://localhost/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**findAliases**](AliasApi.md#findAliases) | **GET** /aliass/{aliasId} |
+[**putAlias**](AliasApi.md#putAlias) | **PUT** /aliass/{aliasId} |
+[**removeAliases**](AliasApi.md#removeAliases) | **DELETE** /aliass/{aliasId} |
+
+
+
+# **findAliases**
+> [Alias] findAliases(aliasId, workspaceId, )
+
+
+
+get alias objects. set aliasId to '*' to find all aliases in some workspace. if alias id is given, only 0 or 1 matched alias object will be returned.
+
+### Example
+```javascript
+var WebidaRestfulApi = require('webida_restful_api');
+var defaultClient = WebidaRestfulApi.ApiClient.default;
+
+// Configure API key authorization: webida-simple-auth
+var webida-simple-auth = defaultClient.authentications['webida-simple-auth'];
+webida-simple-auth.apiKey = 'YOUR API KEY';
+// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+//webida-simple-auth.apiKeyPrefix = 'Token';
+
+var apiInstance = new WebidaRestfulApi.AliasApi();
+
+var aliasId = "aliasId_example"; // String | url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+
+var workspaceId = "workspaceId_example"; // String | webida workspace id in query part
+
+
+var callback = function(error, data, response) {
+ if (error) {
+ console.error(error);
+ } else {
+ console.log('API called successfully. Returned data: ' + data);
+ }
+};
+apiInstance.findAliases(aliasId, workspaceId, , callback);
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **aliasId** | **String**| url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case. |
+ **workspaceId** | **String**| webida workspace id in query part |
+
+### Return type
+
+[**[Alias]**](Alias.md)
+
+### Authorization
+
+[webida-simple-auth](../README.md#webida-simple-auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json, application/octet-stream
+
+
+# **putAlias**
+> RestOK putAlias(aliasId, body)
+
+
+
+create, or update an alias.
+
+### Example
+```javascript
+var WebidaRestfulApi = require('webida_restful_api');
+var defaultClient = WebidaRestfulApi.ApiClient.default;
+
+// Configure API key authorization: webida-simple-auth
+var webida-simple-auth = defaultClient.authentications['webida-simple-auth'];
+webida-simple-auth.apiKey = 'YOUR API KEY';
+// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+//webida-simple-auth.apiKeyPrefix = 'Token';
+
+var apiInstance = new WebidaRestfulApi.AliasApi();
+
+var aliasId = "aliasId_example"; // String | url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+
+var body = new WebidaRestfulApi.Alias(); // Alias | alias object to write. should have same id to aliasId parameter.
+
+
+var callback = function(error, data, response) {
+ if (error) {
+ console.error(error);
+ } else {
+ console.log('API called successfully. Returned data: ' + data);
+ }
+};
+apiInstance.putAlias(aliasId, body, callback);
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **aliasId** | **String**| url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case. |
+ **body** | [**Alias**](Alias.md)| alias object to write. should have same id to aliasId parameter. |
+
+### Return type
+
+[**RestOK**](RestOK.md)
+
+### Authorization
+
+[webida-simple-auth](../README.md#webida-simple-auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json, application/octet-stream
+
+
+# **removeAliases**
+> RestOK removeAliases(aliasId, workspaceId, )
+
+
+
+remove alias. targeting rule is same to findAliases() operation.
+
+### Example
+```javascript
+var WebidaRestfulApi = require('webida_restful_api');
+var defaultClient = WebidaRestfulApi.ApiClient.default;
+
+// Configure API key authorization: webida-simple-auth
+var webida-simple-auth = defaultClient.authentications['webida-simple-auth'];
+webida-simple-auth.apiKey = 'YOUR API KEY';
+// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+//webida-simple-auth.apiKeyPrefix = 'Token';
+
+var apiInstance = new WebidaRestfulApi.AliasApi();
+
+var aliasId = "aliasId_example"; // String | url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+
+var workspaceId = "workspaceId_example"; // String | webida workspace id in query part
+
+
+var callback = function(error, data, response) {
+ if (error) {
+ console.error(error);
+ } else {
+ console.log('API called successfully. Returned data: ' + data);
+ }
+};
+apiInstance.removeAliases(aliasId, workspaceId, , callback);
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **aliasId** | **String**| url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case. |
+ **workspaceId** | **String**| webida workspace id in query part |
+
+### Return type
+
+[**RestOK**](RestOK.md)
+
+### Authorization
+
+[webida-simple-auth](../README.md#webida-simple-auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json, application/octet-stream
+
diff --git a/docs/AuthApi.md b/docs/AuthApi.md
index 0426c31..39b01ce 100644
--- a/docs/AuthApi.md
+++ b/docs/AuthApi.md
@@ -80,7 +80,7 @@ var apiInstance = new WebidaRestfulApi.AuthApi();
var type = "type_example"; // String |
var opts = {
- 'workspaceId': "workspaceId_example" // String | recommended to issue a MASTER type token to restrict remote access
+ 'workspaceId': "workspaceId_example" // String | Clients to save some remote access info should issue a MASTER type token restricted to specific workspace id.
};
var callback = function(error, data, response) {
@@ -98,7 +98,7 @@ apiInstance.issueToken(type, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**type** | **String**| |
- **workspaceId** | **String**| recommended to issue a MASTER type token to restrict remote access | [optional]
+ **workspaceId** | **String**| Clients to save some remote access info should issue a MASTER type token restricted to specific workspace id. | [optional]
### Return type
diff --git a/docs/ChildProcess.md b/docs/ChildProcess.md
index 58e090e..917319b 100644
--- a/docs/ChildProcess.md
+++ b/docs/ChildProcess.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
**command** | **String** | execution command in execution request |
**args** | **[String]** | arguments of command in execution request |
**execId** | **String** | execution id from execution request |
-**state** | **String** | state of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. |
+**state** | **String** | State of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited. |
**startedAt** | **Date** | the time when this process is spawned |
**exitCode** | **Integer** | the exit code of child process. available with EXITED procs only. | [optional]
**exitSignal** | **String** | the signal that killed this child process.(not always available) | [optional]
diff --git a/docs/Credential.md b/docs/Credential.md
index 65dc09d..20be8e0 100644
--- a/docs/Credential.md
+++ b/docs/Credential.md
@@ -5,6 +5,6 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**loginId** | **String** | |
**loginPassword** | **String** | |
-**masterToken** | **String** | a master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password, non-empty. (The values can be used to identify client type) | [optional]
+**masterToken** | **String** | A master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password for login, non-empty. the values can be used to identify client type. | [optional]
diff --git a/docs/Execution.md b/docs/Execution.md
index 849999d..07e586d 100644
--- a/docs/Execution.md
+++ b/docs/Execution.md
@@ -3,11 +3,11 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **String** | unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id. | [optional]
-**command** | **String** | The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any 'specific shell' in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating additional console device while running service for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some '.sh' file to run, it must provide '.cmd' file doing same thing, always. |
-**args** | **[String]** | the arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. |
-**cwd** | **String** | Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an 'absolute' property. | [optional]
-**timeout** | **Integer** | The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked | [optional]
-**maxBuffer** | **Integer** | Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough. | [optional]
+**id** | **String** | unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id. | [optional]
+**command** | **String** | The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always. |
+**args** | **[String]** | The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments. |
+**cwd** | **String** | Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an absolute cwd path. | [optional]
+**timeout** | **Integer** | The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked | [optional]
+**maxBuffer** | **Integer** | Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough. | [optional]
diff --git a/docs/OpsApi.md b/docs/OpsApi.md
index 31f235b..85d4e24 100644
--- a/docs/OpsApi.md
+++ b/docs/OpsApi.md
@@ -5,7 +5,7 @@ All URIs are relative to *https://localhost/api*
Method | HTTP request | Description
------------- | ------------- | -------------
[**replace**](OpsApi.md#replace) | **POST** /wfs/{wfsId}/ops/replace |
-[**search**](OpsApi.md#search) | **GET** /wfs/{wfsId}/ops/search/{wfsPath} |
+[**search**](OpsApi.md#search) | **GET** /wfs/{wfsId}/ops/search |
@@ -31,14 +31,14 @@ var apiInstance = new WebidaRestfulApi.OpsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPathList = ["wfsPathList_example"]; // [String] | array of wfsPath, with heading / (collection format may be changed by implementation)
+var wfsPathList = ["wfsPathList_example"]; // [String] | array of wfsPath, with heading /. (collectionFormat may be changed by implementation)
-var pattern = "pattern_example"; // String | regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
+var pattern = "pattern_example"; // String | regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
var replaceTo = "replaceTo_example"; // String | string to replace with
var opts = {
- 'ignoreCase': false // Boolean | regex matching option to ignore case. In replace operation, this option should be same to one used in search operation
+ 'ignoreCase': false // Boolean | regex matching option to ignore case. In replace operation, this option should be same to one used in search operation
};
var callback = function(error, data, response) {
@@ -56,10 +56,10 @@ apiInstance.replace(wfsId, wfsPathList, patternreplaceTo, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPathList** | [**[String]**](String.md)| array of wfsPath, with heading / (collection format may be changed by implementation) |
- **pattern** | **String**| regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation |
+ **wfsPathList** | [**[String]**](String.md)| array of wfsPath, with heading /. (collectionFormat may be changed by implementation) |
+ **pattern** | **String**| regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation |
**replaceTo** | **String**| string to replace with |
- **ignoreCase** | **Boolean**| regex matching option to ignore case. In replace operation, this option should be same to one used in search operation | [optional] [default to false]
+ **ignoreCase** | **Boolean**| regex matching option to ignore case. In replace operation, this option should be same to one used in search operation | [optional] [default to false]
### Return type
@@ -76,7 +76,7 @@ Name | Type | Description | Notes
# **search**
-> {'String': [Match]} search(wfsId, wfsPath, pattern, opts)
+> {'String': [Match]} search(wfsId, wfsPathList, pattern, opts)
@@ -97,12 +97,12 @@ var apiInstance = new WebidaRestfulApi.OpsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPathList = ["wfsPathList_example"]; // [String] | array of wfsPath, with heading /. (collectionFormat may be changed by implementation)
-var pattern = "pattern_example"; // String | regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
+var pattern = "pattern_example"; // String | regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
var opts = {
- 'ignoreCase': false // Boolean | regex matching option to ignore case. In replace operation, this option should be same to one used in search operation
+ 'ignoreCase': false // Boolean | regex matching option to ignore case. In replace operation, this option should be same to one used in search operation
};
var callback = function(error, data, response) {
@@ -112,7 +112,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.search(wfsId, wfsPath, pattern, opts, callback);
+apiInstance.search(wfsId, wfsPathList, pattern, opts, callback);
```
### Parameters
@@ -120,9 +120,9 @@ apiInstance.search(wfsId, wfsPath, pattern, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
- **pattern** | **String**| regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation |
- **ignoreCase** | **Boolean**| regex matching option to ignore case. In replace operation, this option should be same to one used in search operation | [optional] [default to false]
+ **wfsPathList** | [**[String]**](String.md)| array of wfsPath, with heading /. (collectionFormat may be changed by implementation) |
+ **pattern** | **String**| regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation |
+ **ignoreCase** | **Boolean**| regex matching option to ignore case. In replace operation, this option should be same to one used in search operation | [optional] [default to false]
### Return type
diff --git a/docs/RemoteAccess.md b/docs/RemoteAccess.md
index 79f4843..13c3731 100644
--- a/docs/RemoteAccess.md
+++ b/docs/RemoteAccess.md
@@ -3,10 +3,10 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**name** | **String** | display text of remote workspace. can be different from original name. |
-**serverUrl** | **String** | the url of remote server. Should have no path/query parameters, even \"/\" in path. |
+**name** | **String** | display text of remote workspace. can be different from original name. |
+**serverUrl** | **String** | the url of remote server. Should have no path/query parameters, even \"/\" in path. |
**workspaceId** | **String** | the id of remote workspace, read from remote server |
-**workspacePath** | **String** | Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \"named root directory\" in workspace fs tree. | [optional]
+**workspacePath** | **String** | Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \"named root directory\" in workspace fs tree. | [optional]
**masterToken** | **String** | master token to access service, issued from remote server |
diff --git a/docs/RemotesApi.md b/docs/RemotesApi.md
index f960011..204fa12 100644
--- a/docs/RemotesApi.md
+++ b/docs/RemotesApi.md
@@ -15,7 +15,7 @@ Method | HTTP request | Description
-Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)
+Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)
### Example
```javascript
@@ -62,7 +62,7 @@ This endpoint does not need any parameter.
-create or update a remote workspace access information
+Ceates or updates a remote workspace access information
### Example
```javascript
@@ -115,7 +115,7 @@ Name | Type | Description | Notes
-delete a remote workspace
+Removes remote workspace access information
### Example
```javascript
diff --git a/docs/RestError.md b/docs/RestError.md
index 997135b..da8158c 100644
--- a/docs/RestError.md
+++ b/docs/RestError.md
@@ -5,5 +5,6 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**code** | **String** | | [optional]
**message** | **String** | |
+**errno** | **String** | errno code for some internal errors in server. Since service implementation can use many different platform api & runtime, client should avoid relying on errno code. | [optional]
diff --git a/docs/Session.md b/docs/Session.md
index e6029ba..8e28a2f 100644
--- a/docs/Session.md
+++ b/docs/Session.md
@@ -5,8 +5,8 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | the id of a session. usually same to socket id. |
**name** | **String** | human readable name, usually derived from workspace name. |
-**state** | **String** | state of this session NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) there\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. |
-**workspaceId** | **String** | the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id. | [optional]
+**state** | **String** | NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) There\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout. |
+**workspaceId** | **String** | the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id. | [optional]
**clientAddress** | **String** | the peer address of session connection. not always |
**connectedAt** | **Date** | the time when socket connection is established |
**disconnectedAt** | **Date** | the time when socket is closed. |
diff --git a/docs/SessionApi.md b/docs/SessionApi.md
index 641951c..ce30e45 100644
--- a/docs/SessionApi.md
+++ b/docs/SessionApi.md
@@ -4,18 +4,17 @@ All URIs are relative to *https://localhost/api*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**closeSession**](SessionApi.md#closeSession) | **DELETE** /sessions/{sessionId} |
-[**findSessions**](SessionApi.md#findSessions) | **GET** /sessions |
-[**getSession**](SessionApi.md#getSession) | **GET** /sessions/{sessionId} |
+[**closeSessions**](SessionApi.md#closeSessions) | **DELETE** /sessions/{sessionId} |
+[**findSessions**](SessionApi.md#findSessions) | **GET** /sessions/{sessionId} |
-
-# **closeSession**
-> RestOK closeSession(sessionId, closeAfter)
+
+# **closeSessions**
+> RestOK closeSessions(sessionId, workspaceId, closeAfter)
-close session with timeout
+Closes session with timeout. Targets are selected by same rule to findSessions() op. While targeting multiple sessions, this operation requires same access rights with findSessions(). Closing a single session requires 'same session id' or 'unrestricted workspace acceess'.
### Example
```javascript
@@ -32,7 +31,9 @@ var apiInstance = new WebidaRestfulApi.SessionApi();
var sessionId = "sessionId_example"; // String | webida session id (usually different from socket id from sock.io)
-var closeAfter = 56; // Integer | waiting time before actual closing, to let client save files and prevent reconnect
+var workspaceId = "workspaceId_example"; // String | webida workspace id in query part
+
+var closeAfter = 56; // Integer | Waiting time before actual closing, to let client save files and prevent reconnecting.
var callback = function(error, data, response) {
@@ -42,7 +43,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.closeSession(sessionId, closeAfter, callback);
+apiInstance.closeSessions(sessionId, workspaceId, closeAfter, callback);
```
### Parameters
@@ -50,7 +51,8 @@ apiInstance.closeSession(sessionId, closeAfter, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**sessionId** | **String**| webida session id (usually different from socket id from sock.io) |
- **closeAfter** | **Integer**| waiting time before actual closing, to let client save files and prevent reconnect |
+ **workspaceId** | **String**| webida workspace id in query part |
+ **closeAfter** | **Integer**| Waiting time before actual closing, to let client save files and prevent reconnecting. |
### Return type
@@ -67,65 +69,11 @@ Name | Type | Description | Notes
# **findSessions**
-> [Session] findSessions(opts)
+> [Session] findSessions(sessionId, workspaceId, )
-get all / some webida sessions established to server
-
-### Example
-```javascript
-var WebidaRestfulApi = require('webida_restful_api');
-var defaultClient = WebidaRestfulApi.ApiClient.default;
-
-// Configure API key authorization: webida-simple-auth
-var webida-simple-auth = defaultClient.authentications['webida-simple-auth'];
-webida-simple-auth.apiKey = 'YOUR API KEY';
-// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
-//webida-simple-auth.apiKeyPrefix = 'Token';
-
-var apiInstance = new WebidaRestfulApi.SessionApi();
-
-var opts = {
- 'workspaceId': "workspaceId_example" // String | find only sessions working on some given workspace
-};
-
-var callback = function(error, data, response) {
- if (error) {
- console.error(error);
- } else {
- console.log('API called successfully. Returned data: ' + data);
- }
-};
-apiInstance.findSessions(opts, callback);
-```
-
-### Parameters
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **workspaceId** | **String**| find only sessions working on some given workspace | [optional]
-
-### Return type
-
-[**[Session]**](Session.md)
-
-### Authorization
-
-[webida-simple-auth](../README.md#webida-simple-auth)
-
-### HTTP request headers
-
- - **Content-Type**: application/json
- - **Accept**: application/json, application/octet-stream
-
-
-# **getSession**
-> Session getSession(sessionId, )
-
-
-
-get a session object by id
+Finds webida sessions established to server. if session id is given, matched session info will be returned and workspace id parameter will be ignored. To find all sessions of some workspace, set session id to '*' and specify workspace id. This operation requires proper accsss rights. 1) To find all sessions, an unrestricted token is required. 2) To find some workspace sesions, token should have proper access right on the workspace.
### Example
```javascript
@@ -142,6 +90,8 @@ var apiInstance = new WebidaRestfulApi.SessionApi();
var sessionId = "sessionId_example"; // String | webida session id (usually different from socket id from sock.io)
+var workspaceId = "workspaceId_example"; // String | webida workspace id in query part
+
var callback = function(error, data, response) {
if (error) {
@@ -150,7 +100,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.getSession(sessionId, , callback);
+apiInstance.findSessions(sessionId, workspaceId, , callback);
```
### Parameters
@@ -158,10 +108,11 @@ apiInstance.getSession(sessionId, , callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**sessionId** | **String**| webida session id (usually different from socket id from sock.io) |
+ **workspaceId** | **String**| webida workspace id in query part |
### Return type
-[**Session**](Session.md)
+[**[Session]**](Session.md)
### Authorization
diff --git a/docs/Stats.md b/docs/Stats.md
index 2091ea2..ffed647 100644
--- a/docs/Stats.md
+++ b/docs/Stats.md
@@ -3,7 +3,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**type** | **String** | All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user. |
+**type** | **String** | All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user. |
**birthtime** | **Date** | |
**mtime** | **Date** | |
**mode** | **String** | |
diff --git a/docs/WfsApi.md b/docs/WfsApi.md
index bcfd7f2..4b66dc2 100644
--- a/docs/WfsApi.md
+++ b/docs/WfsApi.md
@@ -20,7 +20,7 @@ Method | HTTP request | Description
-Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, copying a file to directory always returns error and vice versa. this operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed. When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag.
+Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. This operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed.
### Example
```javascript
@@ -37,7 +37,7 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var srcPath = "srcPath_example"; // String | source data path of some operations, with have heading /
@@ -62,7 +62,7 @@ apiInstance.copy(wfsId, wfsPath, srcPath, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
**srcPath** | **String**| source data path of some operations, with have heading / |
**noOverwrite** | **Boolean**| does not overwrites any existing file while copying or moving | [optional] [default to false]
**followSymbolicLinks** | **Boolean**| dereference symlinks in source. | [optional] [default to false]
@@ -87,7 +87,7 @@ Name | Type | Description | Notes
-create a directory at the path. returns error when wfsPath exists and not empty this API always creates parent directories if needed.
+Creates a directory at the path. When the path is found to be a directory, this api does not return error and does not care it's empty or not. Always creates parent directories if needed.
### Example
```javascript
@@ -104,7 +104,7 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var callback = function(error, data, response) {
@@ -122,7 +122,7 @@ apiInstance.createDir(wfsId, wfsPath, , callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
### Return type
@@ -143,7 +143,7 @@ Name | Type | Description | Notes
-returns a directory tree of given path, for listing dir and managing file system errors while building sub-tree will be ignored and will not be included in result.
+Returns a directory tree of given path, the errors while building sub-tree will be ignored and result will not include the path that has errors. Client may have to stat some suspicious paths manually, if listing is not complete.
### Example
```javascript
@@ -160,7 +160,7 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var maxDepth = 56; // Integer | Maximum depth of tree. -1 to build a full tree, 0 to stat, 1 to plain list.
@@ -180,7 +180,7 @@ apiInstance.dirTree(wfsId, wfsPath, maxDepth, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
**maxDepth** | **Integer**| Maximum depth of tree. -1 to build a full tree, 0 to stat, 1 to plain list. |
### Return type
@@ -202,7 +202,7 @@ Name | Type | Description | Notes
-Moves source resource to given path. Unlike mv command, wfsPath always denotes an exact path of the resource to be created. So, moving a file to existing directory always returns error and vice versa. (So, This API works like 'rename' rather than 'mv' command) Like copy(), this operation creates parent path of destination, and does not roll-back when operation failes. When destination path exists already, 1) moving file to file : follows noOverwrite flag. 2) moving file to dir : returns 409 error 3) moving dir to file : returns 409 error 4) moving dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag.
+Moves source resource to given path. Follows same rule to deal with existing path. So, this operation works like rename rather than mv. Just like copy(), this operations creates paraent dirs if needed and does not roll-back. Symbolic link and timestamp values will be moved without touching.
### Example
```javascript
@@ -219,7 +219,7 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var srcPath = "srcPath_example"; // String | source data path of some operations, with have heading /
@@ -242,7 +242,7 @@ apiInstance.move(wfsId, wfsPath, srcPath, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
**srcPath** | **String**| source data path of some operations, with have heading / |
**noOverwrite** | **Boolean**| does not overwrites any existing file while copying or moving | [optional] [default to false]
@@ -282,7 +282,7 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var callback = function(error, data, response) {
@@ -300,7 +300,7 @@ apiInstance.readFile(wfsId, wfsPath, , callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
### Return type
@@ -338,7 +338,7 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var opts = {
'noRecursive': false // Boolean | if set, deleting non-empty directory will return 409 error.
@@ -359,7 +359,7 @@ apiInstance.remove(wfsId, wfsPath, , opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
**noRecursive** | **Boolean**| if set, deleting non-empty directory will return 409 error. | [optional] [default to false]
### Return type
@@ -381,7 +381,7 @@ Name | Type | Description | Notes
-Get stats of given path. (stat() returns \"stats\" object in node and POSIX system) Since we've no ctime/atime in Stats class, some file system changing events will send 'exactly same' stats object. This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.
+Get stats of given path. (stat() returns stats object in node and POSIX system). This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.
### Example
```javascript
@@ -398,10 +398,10 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var opts = {
- 'ignoreError': false // Boolean | flag to ignore stat errors to check existence only. If this flag is true, server will returns 'DUMMY' type stats object instead of 404 error when given path does not exists. (invalid wfsId will produce 400 error, not 404)
+ 'ignoreError': false // Boolean | When true, operation ignore ENOENT error and returns DUMMY stats object instead of 404 error.
};
var callback = function(error, data, response) {
@@ -419,8 +419,8 @@ apiInstance.stat(wfsId, wfsPath, , opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
- **ignoreError** | **Boolean**| flag to ignore stat errors to check existence only. If this flag is true, server will returns 'DUMMY' type stats object instead of 404 error when given path does not exists. (invalid wfsId will produce 400 error, not 404) | [optional] [default to false]
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **ignoreError** | **Boolean**| When true, operation ignore ENOENT error and returns DUMMY stats object instead of 404 error. | [optional] [default to false]
### Return type
@@ -441,7 +441,7 @@ Name | Type | Description | Notes
-Creates / updates file with body data. Server should write the file in 'atomic' manner, and should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.
+Creates / updates file with body data. Server should write the file in atomic manner nd should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.
### Example
```javascript
@@ -458,12 +458,12 @@ var apiInstance = new WebidaRestfulApi.WfsApi();
var wfsId = "wfsId_example"; // String | webida file system id (same to workspace id) to access.
-var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
+var wfsPath = "wfsPath_example"; // String | webida file system path to access. without heading /. should be placed at the end of path arguments
var data = "/path/to/file.txt"; // File | file contents to write.
var opts = {
- 'ensureParents': false // Boolean | A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but creates to 'parent directory' of the path.
+ 'ensureParents': false // Boolean | A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter
};
var callback = function(error, data, response) {
@@ -481,9 +481,9 @@ apiInstance.writeFile(wfsId, wfsPath, data, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**wfsId** | **String**| webida file system id (same to workspace id) to access. |
- **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
+ **wfsPath** | **String**| webida file system path to access. without heading /. should be placed at the end of path arguments |
**data** | **File**| file contents to write. |
- **ensureParents** | **Boolean**| A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but creates to 'parent directory' of the path. | [optional] [default to false]
+ **ensureParents** | **Boolean**| A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter | [optional] [default to false]
### Return type
diff --git a/docs/Workspace.md b/docs/Workspace.md
index 90a6338..cd7a097 100644
--- a/docs/Workspace.md
+++ b/docs/Workspace.md
@@ -8,8 +8,9 @@ Name | Type | Description | Notes
**description** | **String** | human readable description on this workspace |
**createdAt** | **Date** | the time when this workspace is created (registered from local file system) |
**accessedAt** | **Date** | the time when the last session on this workspace was made. (optional) | [optional]
-**workspacePath** | **String** | absolute path of this workspace in server. |
-**excludedPaths** | **[String]** | glob patterns (Not regular expression!) or directory paths (Not a file path!) to be excluded for watch service and search & replace operation. If a value has no '*' char, it will be treated as directory path. Like most of operation parameters, paths (and patterns not prefixed with '*') should have relative, unixified form. If not, server should reject or discard the absolute values. If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir events of the dir, but should not deliver any events from its sub-dirs and files. Search and replace operation should ignore any files under the directory. If path denotes a file, server may reject or discard the path. Server should support basic glob pattern, '**' and '*' in the glob pattern but not ! '!' prefix is optional. Client should not register any other extended glob features that server does not support. |
-**offlineCachePaths** | **[String]** | any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. |
+**workspacePath** | **String** | absolute path of this workspace in server. server may not expose this property to some untrusted clients. |
+**disposable** | **Boolean** | If set, workspace is ephemeral - server will not keep persistence when it stops working. Ususally, side-loaded workspace via desktop app is disposable. Client with proper access right can flip this flag to declare the workspace should be persist. | [optional]
+**excludedPaths** | **[String]** | Ignore patterns to exclude from watch service and search-and-replace operations. Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\' char for the beginning '!' and ending white-spaces shoule be supported, too. To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats. |
+**offlineCachePaths** | **[String]** | Any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy. |
diff --git a/docs/WorkspaceApi.md b/docs/WorkspaceApi.md
index d1c7dfa..5c462fa 100644
--- a/docs/WorkspaceApi.md
+++ b/docs/WorkspaceApi.md
@@ -5,22 +5,21 @@ All URIs are relative to *https://localhost/api*
Method | HTTP request | Description
------------- | ------------- | -------------
[**cancel**](WorkspaceApi.md#cancel) | **DELETE** /workspaces/{workspaceId}/exec |
-[**createWorkspace**](WorkspaceApi.md#createWorkspace) | **POST** /workspaces |
+[**createWorkspace**](WorkspaceApi.md#createWorkspace) | **POST** /workspaces/{workspaceId} |
[**exec**](WorkspaceApi.md#exec) | **POST** /workspaces/{workspaceId}/exec |
[**findProcs**](WorkspaceApi.md#findProcs) | **GET** /workspaces/{workspaceId}/exec |
-[**findWorkspaces**](WorkspaceApi.md#findWorkspaces) | **GET** /workspaces |
-[**getWorkspace**](WorkspaceApi.md#getWorkspace) | **GET** /workspaces/{workspaceId} |
+[**findWorkspaces**](WorkspaceApi.md#findWorkspaces) | **GET** /workspaces/{workspaceId} |
[**removeWorkspace**](WorkspaceApi.md#removeWorkspace) | **DELETE** /workspaces/{workspaceId} |
[**updateWorkspace**](WorkspaceApi.md#updateWorkspace) | **PUT** /workspaces/{workspaceId} |
# **cancel**
-> RestOK cancel(workspaceId, opts)
+> RestOK cancel(workspaceId, execId)
-cancels an execution, if possible. Killing process may not be graceful. requires proper access rights. if execId is not specified, this api does nothing.
+Cancels executions, killing the spawned processes. To terminate all spawned processes, set execId to '*'. Requires proper access rights. Since killing a process usually takes a little bit long time, this api does not returns actual result but works in async manner. (So, client should listen to web socket channels for the processes). This operation Requires same access rights to exec().
### Example
```javascript
@@ -37,9 +36,8 @@ var apiInstance = new WebidaRestfulApi.WorkspaceApi();
var workspaceId = "workspaceId_example"; // String | webida workspace id (usually same to file system id, wfsId)
-var opts = {
- 'execId': "execId_example" // String | the id of execution request(different from pid!)
-};
+var execId = "execId_example"; // String | the id from execution request (different from pid!)
+
var callback = function(error, data, response) {
if (error) {
@@ -48,7 +46,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.cancel(workspaceId, opts, callback);
+apiInstance.cancel(workspaceId, execId, callback);
```
### Parameters
@@ -56,7 +54,7 @@ apiInstance.cancel(workspaceId, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**workspaceId** | **String**| webida workspace id (usually same to file system id, wfsId) |
- **execId** | **String**| the id of execution request(different from pid!) | [optional]
+ **execId** | **String**| the id from execution request (different from pid!) |
### Return type
@@ -73,11 +71,11 @@ Name | Type | Description | Notes
# **createWorkspace**
-> Workspace createWorkspace(localPath, name, description)
+> Workspace createWorkspace(workspaceId, localPath, name, description)
-Creates a new workspace with given local path. Requires an unrestricted access token.
+Creates a new workspace with given local path. Requires an unrestricted access token. the workspace id parameter is ignored and will be replaced by new, unique value by server. it's recommended to set the value to simple, bogus one, like '*' or '-' (since it's path parameter, empty value is not allowed. 404 error will be returned for the case). excludedPath will be set with default values, including .git/, bower_components/ and node_modules/ Needs an unrestricted access token.
### Example
```javascript
@@ -92,6 +90,8 @@ webida-simple-auth.apiKey = 'YOUR API KEY';
var apiInstance = new WebidaRestfulApi.WorkspaceApi();
+var workspaceId = "workspaceId_example"; // String | webida workspace id (usually same to file system id, wfsId)
+
var localPath = "localPath_example"; // String | a real, local path of the system (not unixified)
var name = "name_example"; // String | workspace name property
@@ -106,13 +106,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.createWorkspace(localPath, name, description, callback);
+apiInstance.createWorkspace(workspaceId, localPath, name, description, callback);
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
+ **workspaceId** | **String**| webida workspace id (usually same to file system id, wfsId) |
**localPath** | **String**| a real, local path of the system (not unixified) |
**name** | **String**| workspace name property |
**description** | **String**| workspace name property |
@@ -132,11 +133,11 @@ Name | Type | Description | Notes
# **exec**
-> ExecutionResult exec(workspaceIdbody, opts)
+> ExecutionResult exec(workspaceId, body, opts)
-execute a shell command on this workspace. requires proper access rights.
+Executes a shell command or spawns a background process on this workspace. Requires proper access rights.
### Example
```javascript
@@ -153,10 +154,10 @@ var apiInstance = new WebidaRestfulApi.WorkspaceApi();
var workspaceId = "workspaceId_example"; // String | webida workspace id (usually same to file system id, wfsId)
-var body = new WebidaRestfulApi.Execution(); // Execution |
+var body = new WebidaRestfulApi.Execution(); // Execution | the process to be executed or spawned.
var opts = {
- 'async': false // Boolean | Spawn a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, with room id /sessions/async-{execId}
+ 'async': false // Boolean | Spawns a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, using execution id.
};
var callback = function(error, data, response) {
@@ -166,7 +167,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.exec(workspaceIdbody, opts, callback);
+apiInstance.exec(workspaceId, body, opts, callback);
```
### Parameters
@@ -174,8 +175,8 @@ apiInstance.exec(workspaceIdbody, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**workspaceId** | **String**| webida workspace id (usually same to file system id, wfsId) |
- **body** | [**Execution**](Execution.md)| |
- **async** | **Boolean**| Spawn a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, with room id /sessions/async-{execId} | [optional] [default to false]
+ **body** | [**Execution**](Execution.md)| the process to be executed or spawned. |
+ **async** | **Boolean**| Spawns a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, using execution id. | [optional] [default to false]
### Return type
@@ -192,11 +193,11 @@ Name | Type | Description | Notes
# **findProcs**
-> [ChildProcess] findProcs(workspaceId, opts)
+> [ChildProcess] findProcs(workspaceId, execId)
-Gets process info, created by async exec request, on this workspace. If execId is set, this op finds a spawned process whose id is matching. If not, all spawned procs will be found. This op does not returns error when no procs found but empty result array. This operation requires proper access rights. (unrestricted or matching workspace id in access token with parameter)
+Gets process info, created by async exec request, on this workspace. To find all spawned processes, set id to '*'. This op does not returns error when no procs found but empty result array.
### Example
```javascript
@@ -206,9 +207,8 @@ var apiInstance = new WebidaRestfulApi.WorkspaceApi();
var workspaceId = "workspaceId_example"; // String | webida workspace id (usually same to file system id, wfsId)
-var opts = {
- 'execId': "execId_example" // String | the id of execution request(different from pid!)
-};
+var execId = "execId_example"; // String | the id from execution request (different from pid!)
+
var callback = function(error, data, response) {
if (error) {
@@ -217,7 +217,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.findProcs(workspaceId, opts, callback);
+apiInstance.findProcs(workspaceId, execId, callback);
```
### Parameters
@@ -225,7 +225,7 @@ apiInstance.findProcs(workspaceId, opts, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**workspaceId** | **String**| webida workspace id (usually same to file system id, wfsId) |
- **execId** | **String**| the id of execution request(different from pid!) | [optional]
+ **execId** | **String**| the id from execution request (different from pid!) |
### Return type
@@ -242,65 +242,11 @@ No authorization required
# **findWorkspaces**
-> [Workspace] findWorkspaces(opts)
+> [Workspace] findWorkspaces(workspaceId, , opts)
-Finds workspaces (no find/search parameters yet). Requires an unrestricted access token.
-
-### Example
-```javascript
-var WebidaRestfulApi = require('webida_restful_api');
-var defaultClient = WebidaRestfulApi.ApiClient.default;
-
-// Configure API key authorization: webida-simple-auth
-var webida-simple-auth = defaultClient.authentications['webida-simple-auth'];
-webida-simple-auth.apiKey = 'YOUR API KEY';
-// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
-//webida-simple-auth.apiKeyPrefix = 'Token';
-
-var apiInstance = new WebidaRestfulApi.WorkspaceApi();
-
-var opts = {
- 'disposable': false // Boolean | include disposable workspaces or not
-};
-
-var callback = function(error, data, response) {
- if (error) {
- console.error(error);
- } else {
- console.log('API called successfully. Returned data: ' + data);
- }
-};
-apiInstance.findWorkspaces(opts, callback);
-```
-
-### Parameters
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **disposable** | **Boolean**| include disposable workspaces or not | [optional] [default to false]
-
-### Return type
-
-[**[Workspace]**](Workspace.md)
-
-### Authorization
-
-[webida-simple-auth](../README.md#webida-simple-auth)
-
-### HTTP request headers
-
- - **Content-Type**: application/json
- - **Accept**: application/json, application/octet-stream
-
-
-# **getWorkspace**
-> Workspace getWorkspace(workspaceId)
-
-
-
-get a workspace object by id
+Finds workspaces with given id or parameters. if workspaceId = '*', all workspaces in server are returned. No empty workspace id is allowed for it's a path parameter. When a workspace id is not '*' and non-existing workspace are requested, server should send 404 error and should ignore disposable parameter.
### Example
```javascript
@@ -317,6 +263,9 @@ var apiInstance = new WebidaRestfulApi.WorkspaceApi();
var workspaceId = "workspaceId_example"; // String | webida workspace id (usually same to file system id, wfsId)
+var opts = {
+ 'disposable': false // Boolean | flag to include disposable workspaces or not, when workspaceId is '*'
+};
var callback = function(error, data, response) {
if (error) {
@@ -325,7 +274,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.getWorkspace(workspaceId, callback);
+apiInstance.findWorkspaces(workspaceId, , opts, callback);
```
### Parameters
@@ -333,10 +282,11 @@ apiInstance.getWorkspace(workspaceId, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**workspaceId** | **String**| webida workspace id (usually same to file system id, wfsId) |
+ **disposable** | **Boolean**| flag to include disposable workspaces or not, when workspaceId is '*' | [optional] [default to false]
### Return type
-[**Workspace**](Workspace.md)
+[**[Workspace]**](Workspace.md)
### Authorization
@@ -349,11 +299,11 @@ Name | Type | Description | Notes
# **removeWorkspace**
-> Workspace removeWorkspace(workspaceId, opts)
+> RestOK removeWorkspace(workspaceId, , opts)
-This operation will remove the requested workspace when 1) all sessions are closed for request (will be notified by server) 2) excedded time limit value in closeAfter parameter 3) server goes down after accepting remove request \"willBeRemovedAt\" property can be set \"only\" by this api. This API requires \"unrestricted\" access token. Even an access token has matching workspace id, removing an workspace is rejected.
+Removes a workspace. If no sessions are connected, this api 'works' before returning result. if some sesions are, workspace will be removed when 1) all sessions are closed for request (will be notified by server) 2) exceeded time limit value in closeAfter parameter 3) server stops after accepting remove request and willBeRemoved value is set. So, client may 'find' the workspace to be removed after calling this operation. Requires \"unrestricted\" access rights.
### Example
```javascript
@@ -371,7 +321,8 @@ var apiInstance = new WebidaRestfulApi.WorkspaceApi();
var workspaceId = "workspaceId_example"; // String | webida workspace id (usually same to file system id, wfsId)
var opts = {
- 'closeAfter': 0 // Integer | Time in seconds to wait for all sessions save & close their data.
+ 'closeAfter': 0, // Integer | Time in seconds to wait for all sessions save & close their data.
+ 'expunge': true // Boolean | Time in seconds to wait for all sessions save & close their data.
};
var callback = function(error, data, response) {
@@ -381,7 +332,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.removeWorkspace(workspaceId, opts, callback);
+apiInstance.removeWorkspace(workspaceId, , opts, callback);
```
### Parameters
@@ -390,10 +341,11 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**workspaceId** | **String**| webida workspace id (usually same to file system id, wfsId) |
**closeAfter** | **Integer**| Time in seconds to wait for all sessions save & close their data. | [optional] [default to 0]
+ **expunge** | **Boolean**| Time in seconds to wait for all sessions save & close their data. | [optional]
### Return type
-[**Workspace**](Workspace.md)
+[**RestOK**](RestOK.md)
### Authorization
@@ -406,11 +358,11 @@ Name | Type | Description | Notes
# **updateWorkspace**
-> Workspace updateWorkspace(workspaceId)
+> Workspace updateWorkspace(workspaceId, body)
-Updates workspace. Some protected properties will not be changed by this api. Requires proper access rights in access token.
+Updates workspace. Some protected properties will not be changed by this op. If server cannot apply changed properties before returning workspace, such properties should not be updated with this operation. Clients should not rely on request body for further works, and should always check response to see what's changed actually. Requires proper access rights.
### Example
```javascript
@@ -427,6 +379,8 @@ var apiInstance = new WebidaRestfulApi.WorkspaceApi();
var workspaceId = "workspaceId_example"; // String | webida workspace id (usually same to file system id, wfsId)
+var body = new WebidaRestfulApi.Workspace(); // Workspace | workspace object that contains updates
+
var callback = function(error, data, response) {
if (error) {
@@ -435,7 +389,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-apiInstance.updateWorkspace(workspaceId, callback);
+apiInstance.updateWorkspace(workspaceId, body, callback);
```
### Parameters
@@ -443,6 +397,7 @@ apiInstance.updateWorkspace(workspaceId, callback);
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**workspaceId** | **String**| webida workspace id (usually same to file system id, wfsId) |
+ **body** | [**Workspace**](Workspace.md)| workspace object that contains updates |
### Return type
diff --git a/package.json b/package.json
index 39fb4e5..568c970 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "webida-restful-api",
- "version": "0.5.0",
+ "version": "0.6.0",
"description": "Webida Restful API Spec & generated clients",
"license": "Apache-2.0",
"main": "src/index.js",
diff --git a/src/ApiClient.js b/src/ApiClient.js
index cf887fd..e2b6ed5 100644
--- a/src/ApiClient.js
+++ b/src/ApiClient.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -41,7 +41,7 @@
/**
* @module ApiClient
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
diff --git a/src/api/AliasApi.js b/src/api/AliasApi.js
new file mode 100644
index 0000000..0c84924
--- /dev/null
+++ b/src/api/AliasApi.js
@@ -0,0 +1,216 @@
+/**
+ * Webida Restful API
+ * Restful API for Webida clients to use server's data & features
+ *
+ * OpenAPI spec version: 0.6.0
+ *
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+(function(root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['ApiClient', 'model/Alias', 'model/RestError', 'model/RestOK'], factory);
+ } else if (typeof module === 'object' && module.exports) {
+ // CommonJS-like environments that support module.exports, like Node.
+ module.exports = factory(require('../ApiClient'), require('../model/Alias'), require('../model/RestError'), require('../model/RestOK'));
+ } else {
+ // Browser globals (root is window)
+ if (!root.WebidaRestfulApi) {
+ root.WebidaRestfulApi = {};
+ }
+ root.WebidaRestfulApi.AliasApi = factory(root.WebidaRestfulApi.ApiClient, root.WebidaRestfulApi.Alias, root.WebidaRestfulApi.RestError, root.WebidaRestfulApi.RestOK);
+ }
+}(this, function(ApiClient, Alias, RestError, RestOK) {
+ 'use strict';
+
+ /**
+ * Alias service.
+ * @module api/AliasApi
+ * @version 0.6.0
+ */
+
+ /**
+ * Constructs a new AliasApi.
+ * @alias module:api/AliasApi
+ * @class
+ * @param {module:ApiClient} apiClient Optional API client implementation to use,
+ * default to {@link module:ApiClient#instance} if unspecified.
+ */
+ var exports = function(apiClient) {
+ this.apiClient = apiClient || ApiClient.instance;
+
+
+ /**
+ * Callback function to receive the result of the findAliases operation.
+ * @callback module:api/AliasApi~findAliasesCallback
+ * @param {String} error Error message, if any.
+ * @param {Array.} data The data returned by the service call.
+ * @param {String} response The complete HTTP response.
+ */
+
+ /**
+ * get alias objects. set aliasId to '*' to find all aliases in some workspace. if alias id is given, only 0 or 1 matched alias object will be returned.
+ * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+ * @param {String} workspaceId webida workspace id in query part
+ * @param {module:api/AliasApi~findAliasesCallback} callback The callback function, accepting three arguments: error, data, response
+ * data is of type: {Array.}
+ */
+ this.findAliases = function(aliasId, workspaceId, callback) {
+ var postBody = null;
+
+ // verify the required parameter 'aliasId' is set
+ if (aliasId == undefined || aliasId == null) {
+ throw "Missing the required parameter 'aliasId' when calling findAliases";
+ }
+
+ // verify the required parameter 'workspaceId' is set
+ if (workspaceId == undefined || workspaceId == null) {
+ throw "Missing the required parameter 'workspaceId' when calling findAliases";
+ }
+
+
+ var pathParams = {
+ 'aliasId': aliasId
+ };
+ var queryParams = {
+ 'workspaceId': workspaceId
+ };
+ var headerParams = {
+ };
+ var formParams = {
+ };
+
+ var authNames = ['webida-simple-auth'];
+ var contentTypes = ['application/json'];
+ var accepts = ['application/json', 'application/octet-stream'];
+ var returnType = [Alias];
+
+ return this.apiClient.callApi(
+ '/aliass/{aliasId}', 'GET',
+ pathParams, queryParams, headerParams, formParams, postBody,
+ authNames, contentTypes, accepts, returnType, callback
+ );
+ }
+
+ /**
+ * Callback function to receive the result of the putAlias operation.
+ * @callback module:api/AliasApi~putAliasCallback
+ * @param {String} error Error message, if any.
+ * @param {module:model/RestOK} data The data returned by the service call.
+ * @param {String} response The complete HTTP response.
+ */
+
+ /**
+ * create, or update an alias.
+ * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+ * @param {module:model/Alias} body alias object to write. should have same id to aliasId parameter.
+ * @param {module:api/AliasApi~putAliasCallback} callback The callback function, accepting three arguments: error, data, response
+ * data is of type: {module:model/RestOK}
+ */
+ this.putAlias = function(aliasId, body, callback) {
+ var postBody = body;
+
+ // verify the required parameter 'aliasId' is set
+ if (aliasId == undefined || aliasId == null) {
+ throw "Missing the required parameter 'aliasId' when calling putAlias";
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == undefined || body == null) {
+ throw "Missing the required parameter 'body' when calling putAlias";
+ }
+
+
+ var pathParams = {
+ 'aliasId': aliasId
+ };
+ var queryParams = {
+ };
+ var headerParams = {
+ };
+ var formParams = {
+ };
+
+ var authNames = ['webida-simple-auth'];
+ var contentTypes = ['application/json'];
+ var accepts = ['application/json', 'application/octet-stream'];
+ var returnType = RestOK;
+
+ return this.apiClient.callApi(
+ '/aliass/{aliasId}', 'PUT',
+ pathParams, queryParams, headerParams, formParams, postBody,
+ authNames, contentTypes, accepts, returnType, callback
+ );
+ }
+
+ /**
+ * Callback function to receive the result of the removeAliases operation.
+ * @callback module:api/AliasApi~removeAliasesCallback
+ * @param {String} error Error message, if any.
+ * @param {module:model/RestOK} data The data returned by the service call.
+ * @param {String} response The complete HTTP response.
+ */
+
+ /**
+ * remove alias. targeting rule is same to findAliases() operation.
+ * @param {String} aliasId url path fragment alias id. should have no '/' as well as any 'unsafe' chars for url path. especially, '*' is reserved for finding operations or some other special case.
+ * @param {String} workspaceId webida workspace id in query part
+ * @param {module:api/AliasApi~removeAliasesCallback} callback The callback function, accepting three arguments: error, data, response
+ * data is of type: {module:model/RestOK}
+ */
+ this.removeAliases = function(aliasId, workspaceId, callback) {
+ var postBody = null;
+
+ // verify the required parameter 'aliasId' is set
+ if (aliasId == undefined || aliasId == null) {
+ throw "Missing the required parameter 'aliasId' when calling removeAliases";
+ }
+
+ // verify the required parameter 'workspaceId' is set
+ if (workspaceId == undefined || workspaceId == null) {
+ throw "Missing the required parameter 'workspaceId' when calling removeAliases";
+ }
+
+
+ var pathParams = {
+ 'aliasId': aliasId
+ };
+ var queryParams = {
+ 'workspaceId': workspaceId
+ };
+ var headerParams = {
+ };
+ var formParams = {
+ };
+
+ var authNames = ['webida-simple-auth'];
+ var contentTypes = ['application/json'];
+ var accepts = ['application/json', 'application/octet-stream'];
+ var returnType = RestOK;
+
+ return this.apiClient.callApi(
+ '/aliass/{aliasId}', 'DELETE',
+ pathParams, queryParams, headerParams, formParams, postBody,
+ authNames, contentTypes, accepts, returnType, callback
+ );
+ }
+ };
+
+ return exports;
+}));
diff --git a/src/api/AuthApi.js b/src/api/AuthApi.js
index 23b6d33..f9f2fb3 100644
--- a/src/api/AuthApi.js
+++ b/src/api/AuthApi.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -42,7 +42,7 @@
/**
* Auth service.
* @module api/AuthApi
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -106,7 +106,7 @@
* Creates new token from current access token, inheriting workspace id & session id. The duration of generated token is (and should not be) parameterizable. Server should set proper duration, respecting \"reconnect\" period of socket.io clients. Remember that most of socket.io client implementations (including official js client) do not provide any ways to change connection parameters (header or query) while reconnecting to server. Like login API, this endpoint does not provide any encryption. Server should not set any data to harm security in the token & should provide some signinig/encryption mechanism to protect token. Simple JSON Web Token with HMAC-SHA will do.
* @param {module:model/String} type
* @param {Object} opts Optional parameters
- * @param {String} opts.workspaceId recommended to issue a MASTER type token to restrict remote access
+ * @param {String} opts.workspaceId Clients to save some remote access info should issue a MASTER type token restricted to specific workspace id.
* @param {module:api/AuthApi~issueTokenCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/Token}
*/
diff --git a/src/api/OpsApi.js b/src/api/OpsApi.js
index 2539c30..d2b9f2e 100644
--- a/src/api/OpsApi.js
+++ b/src/api/OpsApi.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -42,7 +42,7 @@
/**
* Ops service.
* @module api/OpsApi
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -67,11 +67,11 @@
/**
* replace file contents with regex matching
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {Array.} wfsPathList array of wfsPath, with heading / (collection format may be changed by implementation)
- * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
+ * @param {Array.} wfsPathList array of wfsPath, with heading /. (collectionFormat may be changed by implementation)
+ * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
* @param {String} replaceTo string to replace with
* @param {Object} opts Optional parameters
- * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)
+ * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)
* @param {module:api/OpsApi~replaceCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/RestOK}
*/
@@ -106,8 +106,8 @@
var queryParams = {
'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),
'pattern': pattern,
- 'replaceTo': replaceTo,
- 'ignoreCase': opts['ignoreCase']
+ 'ignoreCase': opts['ignoreCase'],
+ 'replaceTo': replaceTo
};
var headerParams = {
};
@@ -137,14 +137,14 @@
/**
* search files in some path, with given pattern
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
- * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
+ * @param {Array.} wfsPathList array of wfsPath, with heading /. (collectionFormat may be changed by implementation)
+ * @param {String} pattern regex pattern to match in search or replace. In replace operation, pattern should be same to the parttern in search operation
* @param {Object} opts Optional parameters
- * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)
+ * @param {Boolean} opts.ignoreCase regex matching option to ignore case. In replace operation, this option should be same to one used in search operation (default to false)
* @param {module:api/OpsApi~searchCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {Object.}
*/
- this.search = function(wfsId, wfsPath, pattern, opts, callback) {
+ this.search = function(wfsId, wfsPathList, pattern, opts, callback) {
opts = opts || {};
var postBody = null;
@@ -153,9 +153,9 @@
throw "Missing the required parameter 'wfsId' when calling search";
}
- // verify the required parameter 'wfsPath' is set
- if (wfsPath == undefined || wfsPath == null) {
- throw "Missing the required parameter 'wfsPath' when calling search";
+ // verify the required parameter 'wfsPathList' is set
+ if (wfsPathList == undefined || wfsPathList == null) {
+ throw "Missing the required parameter 'wfsPathList' when calling search";
}
// verify the required parameter 'pattern' is set
@@ -165,10 +165,10 @@
var pathParams = {
- 'wfsId': wfsId,
- 'wfsPath': wfsPath
+ 'wfsId': wfsId
};
var queryParams = {
+ 'wfsPathList': this.apiClient.buildCollectionParam(wfsPathList, 'multi'),
'pattern': pattern,
'ignoreCase': opts['ignoreCase']
};
@@ -183,7 +183,7 @@
var returnType = {'String': [Match]};
return this.apiClient.callApi(
- '/wfs/{wfsId}/ops/search/{wfsPath}', 'GET',
+ '/wfs/{wfsId}/ops/search', 'GET',
pathParams, queryParams, headerParams, formParams, postBody,
authNames, contentTypes, accepts, returnType, callback
);
diff --git a/src/api/RemotesApi.js b/src/api/RemotesApi.js
index ab15087..0e4074d 100644
--- a/src/api/RemotesApi.js
+++ b/src/api/RemotesApi.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -42,7 +42,7 @@
/**
* Remotes service.
* @module api/RemotesApi
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -65,7 +65,7 @@
*/
/**
- * Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)
+ * Get all access informations See RemoteWorkspaceAccess definition for details (no fancy find / search feature yet)
* @param {module:api/RemotesApi~findRemoteAccessesCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {Array.}
*/
@@ -103,7 +103,7 @@
*/
/**
- * create or update a remote workspace access information
+ * Ceates or updates a remote workspace access information
* @param {module:model/RemoteAccess} body
* @param {module:api/RemotesApi~putRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/RestOK}
@@ -147,7 +147,7 @@
*/
/**
- * delete a remote workspace
+ * Removes remote workspace access information
* @param {String} workspaceId workspace Id of remote workspace
* @param {module:api/RemotesApi~removeRemoteAccessCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/RemoteAccess}
diff --git a/src/api/SessionApi.js b/src/api/SessionApi.js
index ff98160..bf93209 100644
--- a/src/api/SessionApi.js
+++ b/src/api/SessionApi.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -42,7 +42,7 @@
/**
* Session service.
* @module api/SessionApi
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -57,31 +57,37 @@
/**
- * Callback function to receive the result of the closeSession operation.
- * @callback module:api/SessionApi~closeSessionCallback
+ * Callback function to receive the result of the closeSessions operation.
+ * @callback module:api/SessionApi~closeSessionsCallback
* @param {String} error Error message, if any.
* @param {module:model/RestOK} data The data returned by the service call.
* @param {String} response The complete HTTP response.
*/
/**
- * close session with timeout
+ * Closes session with timeout. Targets are selected by same rule to findSessions() op. While targeting multiple sessions, this operation requires same access rights with findSessions(). Closing a single session requires 'same session id' or 'unrestricted workspace acceess'.
* @param {String} sessionId webida session id (usually different from socket id from sock.io)
- * @param {Integer} closeAfter waiting time before actual closing, to let client save files and prevent reconnect
- * @param {module:api/SessionApi~closeSessionCallback} callback The callback function, accepting three arguments: error, data, response
+ * @param {String} workspaceId webida workspace id in query part
+ * @param {Integer} closeAfter Waiting time before actual closing, to let client save files and prevent reconnecting.
+ * @param {module:api/SessionApi~closeSessionsCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/RestOK}
*/
- this.closeSession = function(sessionId, closeAfter, callback) {
+ this.closeSessions = function(sessionId, workspaceId, closeAfter, callback) {
var postBody = null;
// verify the required parameter 'sessionId' is set
if (sessionId == undefined || sessionId == null) {
- throw "Missing the required parameter 'sessionId' when calling closeSession";
+ throw "Missing the required parameter 'sessionId' when calling closeSessions";
+ }
+
+ // verify the required parameter 'workspaceId' is set
+ if (workspaceId == undefined || workspaceId == null) {
+ throw "Missing the required parameter 'workspaceId' when calling closeSessions";
}
// verify the required parameter 'closeAfter' is set
if (closeAfter == undefined || closeAfter == null) {
- throw "Missing the required parameter 'closeAfter' when calling closeSession";
+ throw "Missing the required parameter 'closeAfter' when calling closeSessions";
}
@@ -89,6 +95,7 @@
'sessionId': sessionId
};
var queryParams = {
+ 'workspaceId': workspaceId,
'closeAfter': closeAfter
};
var headerParams = {
@@ -117,59 +124,23 @@
*/
/**
- * get all / some webida sessions established to server
- * @param {Object} opts Optional parameters
- * @param {String} opts.workspaceId find only sessions working on some given workspace
+ * Finds webida sessions established to server. if session id is given, matched session info will be returned and workspace id parameter will be ignored. To find all sessions of some workspace, set session id to '*' and specify workspace id. This operation requires proper accsss rights. 1) To find all sessions, an unrestricted token is required. 2) To find some workspace sesions, token should have proper access right on the workspace.
+ * @param {String} sessionId webida session id (usually different from socket id from sock.io)
+ * @param {String} workspaceId webida workspace id in query part
* @param {module:api/SessionApi~findSessionsCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {Array.}
*/
- this.findSessions = function(opts, callback) {
- opts = opts || {};
- var postBody = null;
-
-
- var pathParams = {
- };
- var queryParams = {
- 'workspaceId': opts['workspaceId']
- };
- var headerParams = {
- };
- var formParams = {
- };
-
- var authNames = ['webida-simple-auth'];
- var contentTypes = ['application/json'];
- var accepts = ['application/json', 'application/octet-stream'];
- var returnType = [Session];
-
- return this.apiClient.callApi(
- '/sessions', 'GET',
- pathParams, queryParams, headerParams, formParams, postBody,
- authNames, contentTypes, accepts, returnType, callback
- );
- }
-
- /**
- * Callback function to receive the result of the getSession operation.
- * @callback module:api/SessionApi~getSessionCallback
- * @param {String} error Error message, if any.
- * @param {module:model/Session} data The data returned by the service call.
- * @param {String} response The complete HTTP response.
- */
-
- /**
- * get a session object by id
- * @param {String} sessionId webida session id (usually different from socket id from sock.io)
- * @param {module:api/SessionApi~getSessionCallback} callback The callback function, accepting three arguments: error, data, response
- * data is of type: {module:model/Session}
- */
- this.getSession = function(sessionId, callback) {
+ this.findSessions = function(sessionId, workspaceId, callback) {
var postBody = null;
// verify the required parameter 'sessionId' is set
if (sessionId == undefined || sessionId == null) {
- throw "Missing the required parameter 'sessionId' when calling getSession";
+ throw "Missing the required parameter 'sessionId' when calling findSessions";
+ }
+
+ // verify the required parameter 'workspaceId' is set
+ if (workspaceId == undefined || workspaceId == null) {
+ throw "Missing the required parameter 'workspaceId' when calling findSessions";
}
@@ -177,6 +148,7 @@
'sessionId': sessionId
};
var queryParams = {
+ 'workspaceId': workspaceId
};
var headerParams = {
};
@@ -186,7 +158,7 @@
var authNames = ['webida-simple-auth'];
var contentTypes = ['application/json'];
var accepts = ['application/json', 'application/octet-stream'];
- var returnType = Session;
+ var returnType = [Session];
return this.apiClient.callApi(
'/sessions/{sessionId}', 'GET',
diff --git a/src/api/WfsApi.js b/src/api/WfsApi.js
index cb559ea..bbcce2c 100644
--- a/src/api/WfsApi.js
+++ b/src/api/WfsApi.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -42,7 +42,7 @@
/**
* Wfs service.
* @module api/WfsApi
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -65,9 +65,9 @@
*/
/**
- * Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, copying a file to directory always returns error and vice versa. this operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed. When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag.
+ * Creates a copy of source to given path. Unlike cp command, wfsPath always denotes an exact path of the resource to be created. So, When destination path exists already, 1) copying file to file : follows noOverwrite flag. (does not return error) 2) copying file to dir : returns 409 error 3) copying dir to file : returns 409 error 4) copying dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag. This operation creates the parents dir of destination path always, and does not roll-back the creation when operation failed. So, clients should roll-back if needed.
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {String} srcPath source data path of some operations, with have heading /
* @param {Object} opts Optional parameters
* @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)
@@ -132,9 +132,9 @@
*/
/**
- * create a directory at the path. returns error when wfsPath exists and not empty this API always creates parent directories if needed.
+ * Creates a directory at the path. When the path is found to be a directory, this api does not return error and does not care it's empty or not. Always creates parent directories if needed.
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {module:api/WfsApi~createDirCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/RestOK}
*/
@@ -184,9 +184,9 @@
*/
/**
- * returns a directory tree of given path, for listing dir and managing file system errors while building sub-tree will be ignored and will not be included in result.
+ * Returns a directory tree of given path, the errors while building sub-tree will be ignored and result will not include the path that has errors. Client may have to stat some suspicious paths manually, if listing is not complete.
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {Integer} maxDepth Maximum depth of tree. -1 to build a full tree, 0 to stat, 1 to plain list.
* @param {module:api/WfsApi~dirTreeCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/DirEntry}
@@ -243,9 +243,9 @@
*/
/**
- * Moves source resource to given path. Unlike mv command, wfsPath always denotes an exact path of the resource to be created. So, moving a file to existing directory always returns error and vice versa. (So, This API works like 'rename' rather than 'mv' command) Like copy(), this operation creates parent path of destination, and does not roll-back when operation failes. When destination path exists already, 1) moving file to file : follows noOverwrite flag. 2) moving file to dir : returns 409 error 3) moving dir to file : returns 409 error 4) moving dir to dir : merge srcPath/_* to wfsPath, following noOverwite flag.
+ * Moves source resource to given path. Follows same rule to deal with existing path. So, this operation works like rename rather than mv. Just like copy(), this operations creates paraent dirs if needed and does not roll-back. Symbolic link and timestamp values will be moved without touching.
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {String} srcPath source data path of some operations, with have heading /
* @param {Object} opts Optional parameters
* @param {Boolean} opts.noOverwrite does not overwrites any existing file while copying or moving (default to false)
@@ -308,7 +308,7 @@
/**
* read file data on path
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {module:api/WfsApi~readFileCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {File}
*/
@@ -360,7 +360,7 @@
/**
* delete file or directory
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {Object} opts Optional parameters
* @param {Boolean} opts.noRecursive if set, deleting non-empty directory will return 409 error. (default to false)
* @param {module:api/WfsApi~removeCallback} callback The callback function, accepting three arguments: error, data, response
@@ -414,11 +414,11 @@
*/
/**
- * Get stats of given path. (stat() returns \"stats\" object in node and POSIX system) Since we've no ctime/atime in Stats class, some file system changing events will send 'exactly same' stats object. This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.
+ * Get stats of given path. (stat() returns stats object in node and POSIX system). This API should be called only when stats of some file system path is stale for unknown reason (e.g. losting change events). Use dirTree operation and session events to detect stats, if possible. This API can be used to check a path is valid, existing one, but it's not recommended to check existence of individual paths by API. Clients should use dirTree and session events to synchorize some in-app file system with webida file system.
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {Object} opts Optional parameters
- * @param {Boolean} opts.ignoreError flag to ignore stat errors to check existence only. If this flag is true, server will returns 'DUMMY' type stats object instead of 404 error when given path does not exists. (invalid wfsId will produce 400 error, not 404) (default to false)
+ * @param {Boolean} opts.ignoreError When true, operation ignore ENOENT error and returns DUMMY stats object instead of 404 error. (default to false)
* @param {module:api/WfsApi~statCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/Stats}
*/
@@ -470,12 +470,12 @@
*/
/**
- * Creates / updates file with body data. Server should write the file in 'atomic' manner, and should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.
+ * Creates / updates file with body data. Server should write the file in atomic manner nd should not write down request body into final destination path directly. In other words, wheather writeFile() succeeds or not, the contents of the file should not be corrupted nor half-written.
* @param {String} wfsId webida file system id (same to workspace id) to access.
- * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
+ * @param {String} wfsPath webida file system path to access. without heading /. should be placed at the end of path arguments
* @param {File} data file contents to write.
* @param {Object} opts Optional parameters
- * @param {Boolean} opts.ensureParents A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but creates to 'parent directory' of the path. (default to false)
+ * @param {Boolean} opts.ensureParents A flag to create all parent directories to create file or dir, like mkdir -p. This parameter does not create entire path, but ensures 'parent directory' of the wfsPath parameter (default to false)
* @param {module:api/WfsApi~writeFileCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/RestOK}
*/
diff --git a/src/api/WorkspaceApi.js b/src/api/WorkspaceApi.js
index d82c7c9..685059a 100644
--- a/src/api/WorkspaceApi.js
+++ b/src/api/WorkspaceApi.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -42,7 +42,7 @@
/**
* Workspace service.
* @module api/WorkspaceApi
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -65,15 +65,13 @@
*/
/**
- * cancels an execution, if possible. Killing process may not be graceful. requires proper access rights. if execId is not specified, this api does nothing.
+ * Cancels executions, killing the spawned processes. To terminate all spawned processes, set execId to '*'. Requires proper access rights. Since killing a process usually takes a little bit long time, this api does not returns actual result but works in async manner. (So, client should listen to web socket channels for the processes). This operation Requires same access rights to exec().
* @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
- * @param {Object} opts Optional parameters
- * @param {String} opts.execId the id of execution request(different from pid!)
+ * @param {String} execId the id from execution request (different from pid!)
* @param {module:api/WorkspaceApi~cancelCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/RestOK}
*/
- this.cancel = function(workspaceId, opts, callback) {
- opts = opts || {};
+ this.cancel = function(workspaceId, execId, callback) {
var postBody = null;
// verify the required parameter 'workspaceId' is set
@@ -81,12 +79,17 @@
throw "Missing the required parameter 'workspaceId' when calling cancel";
}
+ // verify the required parameter 'execId' is set
+ if (execId == undefined || execId == null) {
+ throw "Missing the required parameter 'execId' when calling cancel";
+ }
+
var pathParams = {
'workspaceId': workspaceId
};
var queryParams = {
- 'execId': opts['execId']
+ 'execId': execId
};
var headerParams = {
};
@@ -114,16 +117,22 @@
*/
/**
- * Creates a new workspace with given local path. Requires an unrestricted access token.
+ * Creates a new workspace with given local path. Requires an unrestricted access token. the workspace id parameter is ignored and will be replaced by new, unique value by server. it's recommended to set the value to simple, bogus one, like '*' or '-' (since it's path parameter, empty value is not allowed. 404 error will be returned for the case). excludedPath will be set with default values, including .git/, bower_components/ and node_modules/ Needs an unrestricted access token.
+ * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
* @param {String} localPath a real, local path of the system (not unixified)
* @param {String} name workspace name property
* @param {String} description workspace name property
* @param {module:api/WorkspaceApi~createWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/Workspace}
*/
- this.createWorkspace = function(localPath, name, description, callback) {
+ this.createWorkspace = function(workspaceId, localPath, name, description, callback) {
var postBody = null;
+ // verify the required parameter 'workspaceId' is set
+ if (workspaceId == undefined || workspaceId == null) {
+ throw "Missing the required parameter 'workspaceId' when calling createWorkspace";
+ }
+
// verify the required parameter 'localPath' is set
if (localPath == undefined || localPath == null) {
throw "Missing the required parameter 'localPath' when calling createWorkspace";
@@ -141,6 +150,7 @@
var pathParams = {
+ 'workspaceId': workspaceId
};
var queryParams = {
'localPath': localPath,
@@ -158,7 +168,7 @@
var returnType = Workspace;
return this.apiClient.callApi(
- '/workspaces', 'POST',
+ '/workspaces/{workspaceId}', 'POST',
pathParams, queryParams, headerParams, formParams, postBody,
authNames, contentTypes, accepts, returnType, callback
);
@@ -173,11 +183,11 @@
*/
/**
- * execute a shell command on this workspace. requires proper access rights.
+ * Executes a shell command or spawns a background process on this workspace. Requires proper access rights.
* @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
- * @param {module:model/Execution} body
+ * @param {module:model/Execution} body the process to be executed or spawned.
* @param {Object} opts Optional parameters
- * @param {Boolean} opts.async Spawn a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, with room id /sessions/async-{execId} (default to false)
+ * @param {Boolean} opts.async Spawns a child process for given command and returns the created child proc info. Actual output (stream of message) will be delivered to web socket channel, using execution id. (default to false)
* @param {module:api/WorkspaceApi~execCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/ExecutionResult}
*/
@@ -228,15 +238,13 @@
*/
/**
- * Gets process info, created by async exec request, on this workspace. If execId is set, this op finds a spawned process whose id is matching. If not, all spawned procs will be found. This op does not returns error when no procs found but empty result array. This operation requires proper access rights. (unrestricted or matching workspace id in access token with parameter)
+ * Gets process info, created by async exec request, on this workspace. To find all spawned processes, set id to '*'. This op does not returns error when no procs found but empty result array.
* @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
- * @param {Object} opts Optional parameters
- * @param {String} opts.execId the id of execution request(different from pid!)
+ * @param {String} execId the id from execution request (different from pid!)
* @param {module:api/WorkspaceApi~findProcsCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {Array.}
*/
- this.findProcs = function(workspaceId, opts, callback) {
- opts = opts || {};
+ this.findProcs = function(workspaceId, execId, callback) {
var postBody = null;
// verify the required parameter 'workspaceId' is set
@@ -244,12 +252,17 @@
throw "Missing the required parameter 'workspaceId' when calling findProcs";
}
+ // verify the required parameter 'execId' is set
+ if (execId == undefined || execId == null) {
+ throw "Missing the required parameter 'execId' when calling findProcs";
+ }
+
var pathParams = {
'workspaceId': workspaceId
};
var queryParams = {
- 'execId': opts['execId']
+ 'execId': execId
};
var headerParams = {
};
@@ -277,59 +290,20 @@
*/
/**
- * Finds workspaces (no find/search parameters yet). Requires an unrestricted access token.
+ * Finds workspaces with given id or parameters. if workspaceId = '*', all workspaces in server are returned. No empty workspace id is allowed for it's a path parameter. When a workspace id is not '*' and non-existing workspace are requested, server should send 404 error and should ignore disposable parameter.
+ * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
* @param {Object} opts Optional parameters
- * @param {Boolean} opts.disposable include disposable workspaces or not (default to false)
+ * @param {Boolean} opts.disposable flag to include disposable workspaces or not, when workspaceId is '*' (default to false)
* @param {module:api/WorkspaceApi~findWorkspacesCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {Array.}
*/
- this.findWorkspaces = function(opts, callback) {
+ this.findWorkspaces = function(workspaceId, opts, callback) {
opts = opts || {};
var postBody = null;
-
- var pathParams = {
- };
- var queryParams = {
- 'disposable': opts['disposable']
- };
- var headerParams = {
- };
- var formParams = {
- };
-
- var authNames = ['webida-simple-auth'];
- var contentTypes = ['application/json'];
- var accepts = ['application/json', 'application/octet-stream'];
- var returnType = [Workspace];
-
- return this.apiClient.callApi(
- '/workspaces', 'GET',
- pathParams, queryParams, headerParams, formParams, postBody,
- authNames, contentTypes, accepts, returnType, callback
- );
- }
-
- /**
- * Callback function to receive the result of the getWorkspace operation.
- * @callback module:api/WorkspaceApi~getWorkspaceCallback
- * @param {String} error Error message, if any.
- * @param {module:model/Workspace} data The data returned by the service call.
- * @param {String} response The complete HTTP response.
- */
-
- /**
- * get a workspace object by id
- * @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
- * @param {module:api/WorkspaceApi~getWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response
- * data is of type: {module:model/Workspace}
- */
- this.getWorkspace = function(workspaceId, callback) {
- var postBody = null;
-
// verify the required parameter 'workspaceId' is set
if (workspaceId == undefined || workspaceId == null) {
- throw "Missing the required parameter 'workspaceId' when calling getWorkspace";
+ throw "Missing the required parameter 'workspaceId' when calling findWorkspaces";
}
@@ -337,6 +311,7 @@
'workspaceId': workspaceId
};
var queryParams = {
+ 'disposable': opts['disposable']
};
var headerParams = {
};
@@ -346,7 +321,7 @@
var authNames = ['webida-simple-auth'];
var contentTypes = ['application/json'];
var accepts = ['application/json', 'application/octet-stream'];
- var returnType = Workspace;
+ var returnType = [Workspace];
return this.apiClient.callApi(
'/workspaces/{workspaceId}', 'GET',
@@ -359,17 +334,18 @@
* Callback function to receive the result of the removeWorkspace operation.
* @callback module:api/WorkspaceApi~removeWorkspaceCallback
* @param {String} error Error message, if any.
- * @param {module:model/Workspace} data The data returned by the service call.
+ * @param {module:model/RestOK} data The data returned by the service call.
* @param {String} response The complete HTTP response.
*/
/**
- * This operation will remove the requested workspace when 1) all sessions are closed for request (will be notified by server) 2) excedded time limit value in closeAfter parameter 3) server goes down after accepting remove request \"willBeRemovedAt\" property can be set \"only\" by this api. This API requires \"unrestricted\" access token. Even an access token has matching workspace id, removing an workspace is rejected.
+ * Removes a workspace. If no sessions are connected, this api 'works' before returning result. if some sesions are, workspace will be removed when 1) all sessions are closed for request (will be notified by server) 2) exceeded time limit value in closeAfter parameter 3) server stops after accepting remove request and willBeRemoved value is set. So, client may 'find' the workspace to be removed after calling this operation. Requires \"unrestricted\" access rights.
* @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
* @param {Object} opts Optional parameters
* @param {Integer} opts.closeAfter Time in seconds to wait for all sessions save & close their data. (default to 0)
+ * @param {Boolean} opts.expunge Time in seconds to wait for all sessions save & close their data.
* @param {module:api/WorkspaceApi~removeWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response
- * data is of type: {module:model/Workspace}
+ * data is of type: {module:model/RestOK}
*/
this.removeWorkspace = function(workspaceId, opts, callback) {
opts = opts || {};
@@ -385,7 +361,8 @@
'workspaceId': workspaceId
};
var queryParams = {
- 'closeAfter': opts['closeAfter']
+ 'closeAfter': opts['closeAfter'],
+ 'expunge': opts['expunge']
};
var headerParams = {
};
@@ -395,7 +372,7 @@
var authNames = ['webida-simple-auth'];
var contentTypes = ['application/json'];
var accepts = ['application/json', 'application/octet-stream'];
- var returnType = Workspace;
+ var returnType = RestOK;
return this.apiClient.callApi(
'/workspaces/{workspaceId}', 'DELETE',
@@ -413,19 +390,25 @@
*/
/**
- * Updates workspace. Some protected properties will not be changed by this api. Requires proper access rights in access token.
+ * Updates workspace. Some protected properties will not be changed by this op. If server cannot apply changed properties before returning workspace, such properties should not be updated with this operation. Clients should not rely on request body for further works, and should always check response to see what's changed actually. Requires proper access rights.
* @param {String} workspaceId webida workspace id (usually same to file system id, wfsId)
+ * @param {module:model/Workspace} body workspace object that contains updates
* @param {module:api/WorkspaceApi~updateWorkspaceCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {module:model/Workspace}
*/
- this.updateWorkspace = function(workspaceId, callback) {
- var postBody = null;
+ this.updateWorkspace = function(workspaceId, body, callback) {
+ var postBody = body;
// verify the required parameter 'workspaceId' is set
if (workspaceId == undefined || workspaceId == null) {
throw "Missing the required parameter 'workspaceId' when calling updateWorkspace";
}
+ // verify the required parameter 'body' is set
+ if (body == undefined || body == null) {
+ throw "Missing the required parameter 'body' when calling updateWorkspace";
+ }
+
var pathParams = {
'workspaceId': workspaceId
diff --git a/src/index.js b/src/index.js
index 96313b5..fea66e8 100644
--- a/src/index.js
+++ b/src/index.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -25,12 +25,12 @@
(function(factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
- define(['ApiClient', 'model/ChildProcess', 'model/Credential', 'model/DirEntry', 'model/Execution', 'model/ExecutionResult', 'model/Match', 'model/RemoteAccess', 'model/RestError', 'model/RestOK', 'model/Session', 'model/Stats', 'model/Token', 'model/User', 'model/Workspace', 'api/AuthApi', 'api/OpsApi', 'api/RemotesApi', 'api/SessionApi', 'api/WfsApi', 'api/WorkspaceApi'], factory);
+ define(['ApiClient', 'model/Alias', 'model/ChildProcess', 'model/Credential', 'model/DirEntry', 'model/Execution', 'model/ExecutionResult', 'model/Match', 'model/RemoteAccess', 'model/RestError', 'model/RestOK', 'model/Session', 'model/Stats', 'model/Token', 'model/User', 'model/Workspace', 'api/AliasApi', 'api/AuthApi', 'api/OpsApi', 'api/RemotesApi', 'api/SessionApi', 'api/WfsApi', 'api/WorkspaceApi'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports, like Node.
- module.exports = factory(require('./ApiClient'), require('./model/ChildProcess'), require('./model/Credential'), require('./model/DirEntry'), require('./model/Execution'), require('./model/ExecutionResult'), require('./model/Match'), require('./model/RemoteAccess'), require('./model/RestError'), require('./model/RestOK'), require('./model/Session'), require('./model/Stats'), require('./model/Token'), require('./model/User'), require('./model/Workspace'), require('./api/AuthApi'), require('./api/OpsApi'), require('./api/RemotesApi'), require('./api/SessionApi'), require('./api/WfsApi'), require('./api/WorkspaceApi'));
+ module.exports = factory(require('./ApiClient'), require('./model/Alias'), require('./model/ChildProcess'), require('./model/Credential'), require('./model/DirEntry'), require('./model/Execution'), require('./model/ExecutionResult'), require('./model/Match'), require('./model/RemoteAccess'), require('./model/RestError'), require('./model/RestOK'), require('./model/Session'), require('./model/Stats'), require('./model/Token'), require('./model/User'), require('./model/Workspace'), require('./api/AliasApi'), require('./api/AuthApi'), require('./api/OpsApi'), require('./api/RemotesApi'), require('./api/SessionApi'), require('./api/WfsApi'), require('./api/WorkspaceApi'));
}
-}(function(ApiClient, ChildProcess, Credential, DirEntry, Execution, ExecutionResult, Match, RemoteAccess, RestError, RestOK, Session, Stats, Token, User, Workspace, AuthApi, OpsApi, RemotesApi, SessionApi, WfsApi, WorkspaceApi) {
+}(function(ApiClient, Alias, ChildProcess, Credential, DirEntry, Execution, ExecutionResult, Match, RemoteAccess, RestError, RestOK, Session, Stats, Token, User, Workspace, AliasApi, AuthApi, OpsApi, RemotesApi, SessionApi, WfsApi, WorkspaceApi) {
'use strict';
/**
@@ -62,7 +62,7 @@
*
*
* @module index
- * @version 0.5.0
+ * @version 0.6.0
*/
var exports = {
/**
@@ -70,6 +70,11 @@
* @property {module:ApiClient}
*/
ApiClient: ApiClient,
+ /**
+ * The Alias model constructor.
+ * @property {module:model/Alias}
+ */
+ Alias: Alias,
/**
* The ChildProcess model constructor.
* @property {module:model/ChildProcess}
@@ -140,6 +145,11 @@
* @property {module:model/Workspace}
*/
Workspace: Workspace,
+ /**
+ * The AliasApi service constructor.
+ * @property {module:api/AliasApi}
+ */
+ AliasApi: AliasApi,
/**
* The AuthApi service constructor.
* @property {module:api/AuthApi}
diff --git a/src/model/Alias.js b/src/model/Alias.js
new file mode 100644
index 0000000..6656096
--- /dev/null
+++ b/src/model/Alias.js
@@ -0,0 +1,110 @@
+/**
+ * Webida Restful API
+ * Restful API for Webida clients to use server's data & features
+ *
+ * OpenAPI spec version: 0.6.0
+ *
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+(function(root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['ApiClient'], factory);
+ } else if (typeof module === 'object' && module.exports) {
+ // CommonJS-like environments that support module.exports, like Node.
+ module.exports = factory(require('../ApiClient'));
+ } else {
+ // Browser globals (root is window)
+ if (!root.WebidaRestfulApi) {
+ root.WebidaRestfulApi = {};
+ }
+ root.WebidaRestfulApi.Alias = factory(root.WebidaRestfulApi.ApiClient);
+ }
+}(this, function(ApiClient) {
+ 'use strict';
+
+
+
+
+ /**
+ * The Alias model module.
+ * @module model/Alias
+ * @version 0.6.0
+ */
+
+ /**
+ * Constructs a new Alias
.
+ * alias to access file system using git or direct http requests who can't call swagger api with proper tokens
+ * @alias module:model/Alias
+ * @class
+ */
+ var exports = function() {
+ var _this = this;
+
+
+
+
+ };
+
+ /**
+ * Constructs a Alias
from a plain JavaScript object, optionally creating a new instance.
+ * Copies all relevant properties from data
to obj
if supplied or a new instance if not.
+ * @param {Object} data The plain JavaScript object bearing properties of interest.
+ * @param {module:model/Alias} obj Optional instance to populate.
+ * @return {module:model/Alias} The populated Alias
instance.
+ */
+ exports.constructFromObject = function(data, obj) {
+ if (data) {
+ obj = obj || new exports();
+
+ if (data.hasOwnProperty('id')) {
+ obj['id'] = ApiClient.convertToType(data['id'], 'String');
+ }
+ if (data.hasOwnProperty('workspaceId')) {
+ obj['workspaceId'] = ApiClient.convertToType(data['workspaceId'], 'String');
+ }
+ if (data.hasOwnProperty('sourcePath')) {
+ obj['sourcePath'] = ApiClient.convertToType(data['sourcePath'], 'String');
+ }
+ }
+ return obj;
+ }
+
+ /**
+ * id, and the path-fragment to access. Since this id is a path-fragment, any unsafe chars for path should not be included, especially / char. ?, *, and other special characters for shell are not also allowed.
+ * @member {String} id
+ */
+ exports.prototype['id'] = undefined;
+ /**
+ * id of the workspace that contains source of alias
+ * @member {String} workspaceId
+ */
+ exports.prototype['workspaceId'] = undefined;
+ /**
+ * the source of alias, relative path to workspace root directory.
+ * @member {String} sourcePath
+ */
+ exports.prototype['sourcePath'] = undefined;
+
+
+
+ return exports;
+}));
+
+
diff --git a/src/model/ChildProcess.js b/src/model/ChildProcess.js
index 0c5b7e3..8d630ea 100644
--- a/src/model/ChildProcess.js
+++ b/src/model/ChildProcess.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The ChildProcess model module.
* @module model/ChildProcess
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -57,7 +57,7 @@
* @param command {String} execution command in execution request
* @param args {Array.} arguments of command in execution request
* @param execId {String} execution id from execution request
- * @param state {module:model/ChildProcess.StateEnum} state of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited.
+ * @param state {module:model/ChildProcess.StateEnum} State of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited.
* @param startedAt {Date} the time when this process is spawned
*/
var exports = function(pid, command, args, execId, state, startedAt) {
@@ -133,7 +133,7 @@
*/
exports.prototype['execId'] = undefined;
/**
- * state of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited.
+ * State of process. Where CREATED - process is just created. no event has arrived yet WORKING - some output on stdout/stderr is arrived KILLING - sent kill signal, by cancel operation or error event from the process EXITED - process has exited.
* @member {module:model/ChildProcess.StateEnum} state
*/
exports.prototype['state'] = undefined;
diff --git a/src/model/Credential.js b/src/model/Credential.js
index 260d241..ef29460 100644
--- a/src/model/Credential.js
+++ b/src/model/Credential.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,12 +45,12 @@
/**
* The Credential model module.
* @module model/Credential
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
* Constructs a new Credential
.
- * user credential to login. Use https to protect credential.
+ * User credential to login. Use https to protect credential. master token can replace actual id/password pair.
* @alias module:model/Credential
* @class
* @param loginId {String}
@@ -97,7 +97,7 @@
*/
exports.prototype['loginPassword'] = undefined;
/**
- * a master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password, non-empty. (The values can be used to identify client type)
+ * A master token is issued when user wants to access webida api without id/password from remote or local desktop app. When masterToken is set, client should put some bogus id/password for login, non-empty. the values can be used to identify client type.
* @member {String} masterToken
*/
exports.prototype['masterToken'] = undefined;
diff --git a/src/model/DirEntry.js b/src/model/DirEntry.js
index dc5c864..5b85fcd 100644
--- a/src/model/DirEntry.js
+++ b/src/model/DirEntry.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The DirEntry model module.
* @module model/DirEntry
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
diff --git a/src/model/Execution.js b/src/model/Execution.js
index 6f96a48..4bd05f8 100644
--- a/src/model/Execution.js
+++ b/src/model/Execution.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,16 +45,16 @@
/**
* The Execution model module.
* @module model/Execution
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
* Constructs a new Execution
.
- * execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability - encoding : fixed to utf-8 - shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.) - killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed. - uid & gid : will not be set for security - stdio : all streams are handled by server. no options are avaliable to client. - detached : always false
+ * execution request, simlilar to node.js exec()/spawn(). see node.js documentation for details of each properties. some properties are not configurable for portability * encoding : fixed to utf-8 * shell : fixed to system defaults. (so, cmd.exe will be invoked in Windows OS, not sh or bash in git-for-windows even they are available.) * killSignal : fixed to SIGTERM. If process does not die, server can send SIGKILL or invoke taskkill, to ensure chlid process is killed. * uid & gid : will not be set for security * stdio : all streams are handled by server. no options are avaliable to client. * detached : always false
* @alias module:model/Execution
* @class
- * @param command {String} The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any 'specific shell' in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating additional console device while running service for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some '.sh' file to run, it must provide '.cmd' file doing same thing, always.
- * @param args {Array.} the arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments.
+ * @param command {String} The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always.
+ * @param args {Array.} The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments.
*/
var exports = function(command, args) {
var _this = this;
@@ -101,32 +101,32 @@
}
/**
- * unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id.
+ * unique identifier of execution, to demux response stream or cancel request. Server should reject an async exec request without id.
* @member {String} id
*/
exports.prototype['id'] = undefined;
/**
- * The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any 'specific shell' in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating additional console device while running service for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some '.sh' file to run, it must provide '.cmd' file doing same thing, always.
+ * The command to run. Server may not support pipe, redirection nor shell variables in command. Client should not assume any specific shell provider in server and should not using the shell features for portability. In windows system with unix sh (e.g. cygwin or mingw from git-for-windows), usually a shell script in PATH may work as command but probably allocates console window while running the command. Implementations (both of server & client) should avoid allocating any console instances while running services, for costs and UX, and should provide a portable way to invoke commands. Shortly, when a service/product embeds some .sh file to run, it must provide .cmd file doing same thing, always.
* @member {String} command
*/
exports.prototype['command'] = undefined;
/**
- * the arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments.
+ * The arguments array. Server can join this args to command with proper white-space char, when underlying platform api (e.g. child_process#exec() in node.js) does not support additional arguments vector. It's recommended to use args vector than making a long command, to find & see child processes easily with this Rest API. So, args should be always provided, even empty array. When some arguments has a white space (e.g. C:\\Program Files\\webida), usually invoking command understands escaping or quotation, but not always. Client should add proper escaping or quotation chars to args vector manually. server should not change any command or arguments.
* @member {Array.} args
*/
exports.prototype['args'] = undefined;
/**
- * Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an 'absolute' property.
+ * Current working directory of spawned process, relative to workspace root. If abscent, cwd will be the workspace directory. Does not accept any evaluatable form like $HOME, %USERPROFILE%. path should be unixified. Server may reject an absolute cwd path.
* @member {String} cwd
*/
exports.prototype['cwd'] = undefined;
/**
- * The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked
+ * The value which In 'miliseconds' the maximum amount of time the child is allowed to run. (not idle time of stdout / stderr stream) for sync exec. Server should not apply default value for async exec, when omitted. The child process spawned by async execution should be killed when 1) server goes down 2) process exits by self 3) cancel operation is invoked
* @member {Integer} timeout
*/
exports.prototype['timeout'] = undefined;
/**
- * Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough.
+ * Largest amount of data (in bytes) allowed on stdout or stderr for sync exec. Server should not apply this limit to async execution. In sync exec, server may kill a child process that has exceeded limit. default value is 512KB, large enough.
* @member {Integer} maxBuffer
*/
exports.prototype['maxBuffer'] = undefined;
diff --git a/src/model/ExecutionResult.js b/src/model/ExecutionResult.js
index 15f4376..a15a18a 100644
--- a/src/model/ExecutionResult.js
+++ b/src/model/ExecutionResult.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The ExecutionResult model module.
* @module model/ExecutionResult
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
diff --git a/src/model/Match.js b/src/model/Match.js
index 786b903..48548a0 100644
--- a/src/model/Match.js
+++ b/src/model/Match.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The Match model module.
* @module model/Match
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
diff --git a/src/model/RemoteAccess.js b/src/model/RemoteAccess.js
index 436cc7c..56f3848 100644
--- a/src/model/RemoteAccess.js
+++ b/src/model/RemoteAccess.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The RemoteAccess model module.
* @module model/RemoteAccess
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -53,8 +53,8 @@
* Access information of remote workspace in remote server
* @alias module:model/RemoteAccess
* @class
- * @param name {String} display text of remote workspace. can be different from original name.
- * @param serverUrl {String} the url of remote server. Should have no path/query parameters, even \"/\" in path.
+ * @param name {String} display text of remote workspace. can be different from original name.
+ * @param serverUrl {String} the url of remote server. Should have no path/query parameters, even \"/\" in path.
* @param workspaceId {String} the id of remote workspace, read from remote server
* @param masterToken {String} master token to access service, issued from remote server
*/
@@ -99,12 +99,12 @@
}
/**
- * display text of remote workspace. can be different from original name.
+ * display text of remote workspace. can be different from original name.
* @member {String} name
*/
exports.prototype['name'] = undefined;
/**
- * the url of remote server. Should have no path/query parameters, even \"/\" in path.
+ * the url of remote server. Should have no path/query parameters, even \"/\" in path.
* @member {String} serverUrl
*/
exports.prototype['serverUrl'] = undefined;
@@ -114,7 +114,7 @@
*/
exports.prototype['workspaceId'] = undefined;
/**
- * Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \"named root directory\" in workspace fs tree.
+ * Full path of remote workspace, read from remote server. this property will be removed when clients are able to work without \"named root directory\" in workspace fs tree.
* @member {String} workspacePath
*/
exports.prototype['workspacePath'] = undefined;
diff --git a/src/model/RestError.js b/src/model/RestError.js
index 3fbf719..a350e76 100644
--- a/src/model/RestError.js
+++ b/src/model/RestError.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,12 +45,12 @@
/**
* The RestError model module.
* @module model/RestError
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
* Constructs a new RestError
.
- * Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code \"Invalid Argument\" instead of \"Conflic\". So, Client should read message property to know what happend exactly when an error is returned from server. And, some 500 errors can have system errno instead of useless \"internal\". Like other errors, details are hidden in message.
+ * Error object with code and message. code is bound to status code, but not always same to standard HTTP status text. For example, some 409 error may have code \"Invalid Argument\" instead of \"Conflic\". So, Client should read message property to know what happend exactly, when an error is returned from server. And, some 500 errors can have system errno instead of useless \"internal\". Like other errors, details are hidden in message.
* @alias module:model/RestError
* @class
* @param message {String}
@@ -60,6 +60,7 @@
_this['message'] = message;
+
};
/**
@@ -79,6 +80,9 @@
if (data.hasOwnProperty('message')) {
obj['message'] = ApiClient.convertToType(data['message'], 'String');
}
+ if (data.hasOwnProperty('errno')) {
+ obj['errno'] = ApiClient.convertToType(data['errno'], 'String');
+ }
}
return obj;
}
@@ -91,6 +95,11 @@
* @member {String} message
*/
exports.prototype['message'] = undefined;
+ /**
+ * errno code for some internal errors in server. Since service implementation can use many different platform api & runtime, client should avoid relying on errno code.
+ * @member {String} errno
+ */
+ exports.prototype['errno'] = undefined;
diff --git a/src/model/RestOK.js b/src/model/RestOK.js
index 6373b38..2fad975 100644
--- a/src/model/RestOK.js
+++ b/src/model/RestOK.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The RestOK model module.
* @module model/RestOK
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
diff --git a/src/model/Session.js b/src/model/Session.js
index 196e8aa..bafb86e 100644
--- a/src/model/Session.js
+++ b/src/model/Session.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The Session model module.
* @module model/Session
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -55,7 +55,7 @@
* @class
* @param id {String} the id of a session. usually same to socket id.
* @param name {String} human readable name, usually derived from workspace name.
- * @param state {module:model/Session.StateEnum} state of this session NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) there\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout.
+ * @param state {module:model/Session.StateEnum} NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) There\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout.
* @param clientAddress {String} the peer address of session connection. not always
* @param connectedAt {Date} the time when socket connection is established
* @param disconnectedAt {Date} the time when socket is closed.
@@ -127,12 +127,12 @@
*/
exports.prototype['name'] = undefined;
/**
- * state of this session NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) there\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout.
+ * NORMAL = connected, normally working LOSING = disconnected, waiting reconnection. still accessible with api CLOSING = socket connection will close connection by server (clinet will be notified) There\"s no \"CLOSED\" / \"LOST\" state, for server will remove session object in registry when the server closes connection or stops waiting for reconnection for timeout.
* @member {module:model/Session.StateEnum} state
*/
exports.prototype['state'] = undefined;
/**
- * the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id.
+ * the id of workspace that this sessions is working on. If falsy, then this session is not belonged to any workpsace. Usually, dashboard / monitoring app will create a session without workspace id.
* @member {String} workspaceId
*/
exports.prototype['workspaceId'] = undefined;
diff --git a/src/model/Stats.js b/src/model/Stats.js
index 1bf5709..023553e 100644
--- a/src/model/Stats.js
+++ b/src/model/Stats.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The Stats model module.
* @module model/Stats
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -53,7 +53,7 @@
* simplified/augmented fs.Stats class - see node.js doc for all properties
* @alias module:model/Stats
* @class
- * @param type {module:model/Stats.TypeEnum} All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.
+ * @param type {module:model/Stats.TypeEnum} All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.
* @param birthtime {Date}
* @param mtime {Date}
* @param mode {String}
@@ -105,7 +105,7 @@
}
/**
- * All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.
+ * All types except 'DUMMY' come from fs.Stats is*** methods results. (e.g. if isFile() is true, then type will be 'FILE') If type is not decidable by the methods, default type is 'FILE', for everything on the file system is basically a file. 'DUMMY' type means that some object 'does not exist for now'. Client may use 'DUMMY' type to mark something dangling, not written or created on real file system yet but visible to user.
* @member {module:model/Stats.TypeEnum} type
*/
exports.prototype['type'] = undefined;
diff --git a/src/model/Token.js b/src/model/Token.js
index 47d23c8..9d1c895 100644
--- a/src/model/Token.js
+++ b/src/model/Token.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The Token model module.
* @module model/Token
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
diff --git a/src/model/User.js b/src/model/User.js
index ffc85c4..f5b4392 100644
--- a/src/model/User.js
+++ b/src/model/User.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,12 +45,12 @@
/**
* The User model module.
* @module model/User
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
* Constructs a new User
.
- * Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients.
+ * Any services/products should define some admin apis to manage users in the system and expose what should be exposed to client app. So, no properties are mandatory. Currently, the properties are defined for compatiblity with legacy clients.
* @alias module:model/User
* @class
*/
diff --git a/src/model/Workspace.js b/src/model/Workspace.js
index 8a83583..1ac0084 100644
--- a/src/model/Workspace.js
+++ b/src/model/Workspace.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -45,7 +45,7 @@
/**
* The Workspace model module.
* @module model/Workspace
- * @version 0.5.0
+ * @version 0.6.0
*/
/**
@@ -57,9 +57,9 @@
* @param name {String} display text of this workspace for UI
* @param description {String} human readable description on this workspace
* @param createdAt {Date} the time when this workspace is created (registered from local file system)
- * @param workspacePath {String} absolute path of this workspace in server.
- * @param excludedPaths {Array.} glob patterns (Not regular expression!) or directory paths (Not a file path!) to be excluded for watch service and search & replace operation. If a value has no '*' char, it will be treated as directory path. Like most of operation parameters, paths (and patterns not prefixed with '*') should have relative, unixified form. If not, server should reject or discard the absolute values. If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir events of the dir, but should not deliver any events from its sub-dirs and files. Search and replace operation should ignore any files under the directory. If path denotes a file, server may reject or discard the path. Server should support basic glob pattern, '**' and '*' in the glob pattern but not ! '!' prefix is optional. Client should not register any other extended glob features that server does not support.
- * @param offlineCachePaths {Array.} any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy.
+ * @param workspacePath {String} absolute path of this workspace in server. server may not expose this property to some untrusted clients.
+ * @param excludedPaths {Array.} Ignore patterns to exclude from watch service and search-and-replace operations. Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\' char for the beginning '!' and ending white-spaces shoule be supported, too. To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats.
+ * @param offlineCachePaths {Array.} Any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy.
*/
var exports = function(id, name, description, createdAt, workspacePath, excludedPaths, offlineCachePaths) {
var _this = this;
@@ -70,6 +70,7 @@
_this['createdAt'] = createdAt;
_this['workspacePath'] = workspacePath;
+
_this['excludedPaths'] = excludedPaths;
_this['offlineCachePaths'] = offlineCachePaths;
};
@@ -103,6 +104,9 @@
if (data.hasOwnProperty('workspacePath')) {
obj['workspacePath'] = ApiClient.convertToType(data['workspacePath'], 'String');
}
+ if (data.hasOwnProperty('disposable')) {
+ obj['disposable'] = ApiClient.convertToType(data['disposable'], 'Boolean');
+ }
if (data.hasOwnProperty('excludedPaths')) {
obj['excludedPaths'] = ApiClient.convertToType(data['excludedPaths'], ['String']);
}
@@ -139,17 +143,22 @@
*/
exports.prototype['accessedAt'] = undefined;
/**
- * absolute path of this workspace in server.
+ * absolute path of this workspace in server. server may not expose this property to some untrusted clients.
* @member {String} workspacePath
*/
exports.prototype['workspacePath'] = undefined;
/**
- * glob patterns (Not regular expression!) or directory paths (Not a file path!) to be excluded for watch service and search & replace operation. If a value has no '*' char, it will be treated as directory path. Like most of operation parameters, paths (and patterns not prefixed with '*') should have relative, unixified form. If not, server should reject or discard the absolute values. If a directory is specified to be excluded, watch service may deliver unlinkDir/addDir events of the dir, but should not deliver any events from its sub-dirs and files. Search and replace operation should ignore any files under the directory. If path denotes a file, server may reject or discard the path. Server should support basic glob pattern, '**' and '*' in the glob pattern but not ! '!' prefix is optional. Client should not register any other extended glob features that server does not support.
+ * If set, workspace is ephemeral - server will not keep persistence when it stops working. Ususally, side-loaded workspace via desktop app is disposable. Client with proper access right can flip this flag to declare the workspace should be persist.
+ * @member {Boolean} disposable
+ */
+ exports.prototype['disposable'] = undefined;
+ /**
+ * Ignore patterns to exclude from watch service and search-and-replace operations. Pattern follows '.gitignore' syntax, 1 item per line. It should work as a .gitignore file in the workspace directory. Server should remove all comment items (any item that begins with '#') and blank items. Escaping with '\\' char for the beginning '!' and ending white-spaces shoule be supported, too. To exclude a directory, client may have to put '/' at the end of the item to exclude everything underneath it. When a dir path is excluded with 'ending /', watch service may not deliver unlinkDir/addDir events for the path and client should manually check the existence or stats.
* @member {Array.} excludedPaths
*/
exports.prototype['excludedPaths'] = undefined;
/**
- * any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy.
+ * Any paths (including excluded paths) to be cached in remote clients. Browser client should respect offline cache paths always. Desktop-app client may not use off-line cache for local (embedded) server but shall use cache for any remote servers, even for same host. All caches should be partitioned with workspace id, globally unique value through time and space. Client should pre-fetch the contents of offline cache paths when it start IDE sessions on a workspace to use for off-line state. When client goes to off-line, after losing connection to server, it can use cached data as reply of some WFS operations and can write some data to cache to save workspace data & metadata. The changes should be persistent on client side safely. C When a client recovers connectivity to server, it should check the stats of files and dirs to upload if it has got some changes in offline state. If server has more recents contents, client should drop chagnes and refill the cache with fresher data. Client may have some 'time-tolerance' to accept server's data is fresher than client's, smaller than serveral seconds. If server has more recent contents, client should drop the changes and refill the cache with fresher data. If not, client should replay the changes 1 by 1. Same protocol should be applied when client application starts with some 'unuploaded change' evertime. That means, client should save 'change history' with 'changed data' too, to process it later, when starting app again in normal condition. All Clients should not replay any 'delete' operations while replaying changes on client's cache, to protect from more serious problems with skewed timer or unexpected behaviors. And, of course, client should not rely on cached data while connection state is healthy.
* @member {Array.} offlineCachePaths
*/
exports.prototype['offlineCachePaths'] = undefined;
diff --git a/test/api/AliasApi.spec.js b/test/api/AliasApi.spec.js
new file mode 100644
index 0000000..3e152e6
--- /dev/null
+++ b/test/api/AliasApi.spec.js
@@ -0,0 +1,94 @@
+/**
+ * Webida Restful API
+ * Restful API for Webida clients to use server's data & features
+ *
+ * OpenAPI spec version: 0.6.0
+ *
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+(function(root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD.
+ define(['expect.js', '../../src/index'], factory);
+ } else if (typeof module === 'object' && module.exports) {
+ // CommonJS-like environments that support module.exports, like Node.
+ factory(require('expect.js'), require('../../src/index'));
+ } else {
+ // Browser globals (root is window)
+ factory(root.expect, root.WebidaRestfulApi);
+ }
+}(this, function(expect, WebidaRestfulApi) {
+ 'use strict';
+
+ var instance;
+
+ beforeEach(function() {
+ instance = new WebidaRestfulApi.AliasApi();
+ });
+
+ var getProperty = function(object, getter, property) {
+ // Use getter method if present; otherwise, get the property directly.
+ if (typeof object[getter] === 'function')
+ return object[getter]();
+ else
+ return object[property];
+ }
+
+ var setProperty = function(object, setter, property, value) {
+ // Use setter method if present; otherwise, set the property directly.
+ if (typeof object[setter] === 'function')
+ object[setter](value);
+ else
+ object[property] = value;
+ }
+
+ describe('AliasApi', function() {
+ describe('findAliases', function() {
+ it('should call findAliases successfully', function(done) {
+ //uncomment below and update the code to test findAliases
+ //instance.findAliases(pet, function(error) {
+ // if (error) throw error;
+ //expect().to.be();
+ //});
+ done();
+ });
+ });
+ describe('putAlias', function() {
+ it('should call putAlias successfully', function(done) {
+ //uncomment below and update the code to test putAlias
+ //instance.putAlias(pet, function(error) {
+ // if (error) throw error;
+ //expect().to.be();
+ //});
+ done();
+ });
+ });
+ describe('removeAliases', function() {
+ it('should call removeAliases successfully', function(done) {
+ //uncomment below and update the code to test removeAliases
+ //instance.removeAliases(pet, function(error) {
+ // if (error) throw error;
+ //expect().to.be();
+ //});
+ done();
+ });
+ });
+ });
+
+}));
diff --git a/test/api/AuthApi.spec.js b/test/api/AuthApi.spec.js
index c39706d..2d3ae50 100644
--- a/test/api/AuthApi.spec.js
+++ b/test/api/AuthApi.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/api/OpsApi.spec.js b/test/api/OpsApi.spec.js
index bd0a565..282b448 100644
--- a/test/api/OpsApi.spec.js
+++ b/test/api/OpsApi.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/api/RemotesApi.spec.js b/test/api/RemotesApi.spec.js
index 9e2a4b0..5f4d385 100644
--- a/test/api/RemotesApi.spec.js
+++ b/test/api/RemotesApi.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/api/SessionApi.spec.js b/test/api/SessionApi.spec.js
index f0704b0..7e32f81 100644
--- a/test/api/SessionApi.spec.js
+++ b/test/api/SessionApi.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -59,10 +59,10 @@
}
describe('SessionApi', function() {
- describe('closeSession', function() {
- it('should call closeSession successfully', function(done) {
- //uncomment below and update the code to test closeSession
- //instance.closeSession(pet, function(error) {
+ describe('closeSessions', function() {
+ it('should call closeSessions successfully', function(done) {
+ //uncomment below and update the code to test closeSessions
+ //instance.closeSessions(pet, function(error) {
// if (error) throw error;
//expect().to.be();
//});
@@ -79,16 +79,6 @@
done();
});
});
- describe('getSession', function() {
- it('should call getSession successfully', function(done) {
- //uncomment below and update the code to test getSession
- //instance.getSession(pet, function(error) {
- // if (error) throw error;
- //expect().to.be();
- //});
- done();
- });
- });
});
}));
diff --git a/test/api/WfsApi.spec.js b/test/api/WfsApi.spec.js
index 14381a4..3395eaa 100644
--- a/test/api/WfsApi.spec.js
+++ b/test/api/WfsApi.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/api/WorkspaceApi.spec.js b/test/api/WorkspaceApi.spec.js
index babff94..a2a7065 100644
--- a/test/api/WorkspaceApi.spec.js
+++ b/test/api/WorkspaceApi.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -109,16 +109,6 @@
done();
});
});
- describe('getWorkspace', function() {
- it('should call getWorkspace successfully', function(done) {
- //uncomment below and update the code to test getWorkspace
- //instance.getWorkspace(pet, function(error) {
- // if (error) throw error;
- //expect().to.be();
- //});
- done();
- });
- });
describe('removeWorkspace', function() {
it('should call removeWorkspace successfully', function(done) {
//uncomment below and update the code to test removeWorkspace
diff --git a/test/model/Alias.spec.js b/test/model/Alias.spec.js
new file mode 100644
index 0000000..4eee03d
--- /dev/null
+++ b/test/model/Alias.spec.js
@@ -0,0 +1,88 @@
+/**
+ * Webida Restful API
+ * Restful API for Webida clients to use server's data & features
+ *
+ * OpenAPI spec version: 0.6.0
+ *
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+(function(root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD.
+ define(['expect.js', '../../src/index'], factory);
+ } else if (typeof module === 'object' && module.exports) {
+ // CommonJS-like environments that support module.exports, like Node.
+ factory(require('expect.js'), require('../../src/index'));
+ } else {
+ // Browser globals (root is window)
+ factory(root.expect, root.WebidaRestfulApi);
+ }
+}(this, function(expect, WebidaRestfulApi) {
+ 'use strict';
+
+ var instance;
+
+ beforeEach(function() {
+ instance = new WebidaRestfulApi.Alias();
+ });
+
+ var getProperty = function(object, getter, property) {
+ // Use getter method if present; otherwise, get the property directly.
+ if (typeof object[getter] === 'function')
+ return object[getter]();
+ else
+ return object[property];
+ }
+
+ var setProperty = function(object, setter, property, value) {
+ // Use setter method if present; otherwise, set the property directly.
+ if (typeof object[setter] === 'function')
+ object[setter](value);
+ else
+ object[property] = value;
+ }
+
+ describe('Alias', function() {
+ it('should create an instance of Alias', function() {
+ // uncomment below and update the code to test Alias
+ //var instane = new WebidaRestfulApi.Alias();
+ //expect(instance).to.be.a(WebidaRestfulApi.Alias);
+ });
+
+ it('should have the property id (base name: "id")', function() {
+ // uncomment below and update the code to test the property id
+ //var instane = new WebidaRestfulApi.Alias();
+ //expect(instance).to.be();
+ });
+
+ it('should have the property workspaceId (base name: "workspaceId")', function() {
+ // uncomment below and update the code to test the property workspaceId
+ //var instane = new WebidaRestfulApi.Alias();
+ //expect(instance).to.be();
+ });
+
+ it('should have the property sourcePath (base name: "sourcePath")', function() {
+ // uncomment below and update the code to test the property sourcePath
+ //var instane = new WebidaRestfulApi.Alias();
+ //expect(instance).to.be();
+ });
+
+ });
+
+}));
diff --git a/test/model/ChildProcess.spec.js b/test/model/ChildProcess.spec.js
index 8b1f064..9cf19b1 100644
--- a/test/model/ChildProcess.spec.js
+++ b/test/model/ChildProcess.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/Credential.spec.js b/test/model/Credential.spec.js
index 8387f6c..dcaadb9 100644
--- a/test/model/Credential.spec.js
+++ b/test/model/Credential.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/DirEntry.spec.js b/test/model/DirEntry.spec.js
index 081e68c..3a7b7be 100644
--- a/test/model/DirEntry.spec.js
+++ b/test/model/DirEntry.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/Execution.spec.js b/test/model/Execution.spec.js
index 16184d3..2490581 100644
--- a/test/model/Execution.spec.js
+++ b/test/model/Execution.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/ExecutionResult.spec.js b/test/model/ExecutionResult.spec.js
index 9ab0db1..e88a203 100644
--- a/test/model/ExecutionResult.spec.js
+++ b/test/model/ExecutionResult.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/Match.spec.js b/test/model/Match.spec.js
index 567b223..c3812c5 100644
--- a/test/model/Match.spec.js
+++ b/test/model/Match.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/RemoteAccess.spec.js b/test/model/RemoteAccess.spec.js
index 7bdfc0a..32f1b48 100644
--- a/test/model/RemoteAccess.spec.js
+++ b/test/model/RemoteAccess.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/RestError.spec.js b/test/model/RestError.spec.js
index 8995afc..5a19a2f 100644
--- a/test/model/RestError.spec.js
+++ b/test/model/RestError.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -77,6 +77,12 @@
//expect(instance).to.be();
});
+ it('should have the property errno (base name: "errno")', function() {
+ // uncomment below and update the code to test the property errno
+ //var instane = new WebidaRestfulApi.RestError();
+ //expect(instance).to.be();
+ });
+
});
}));
diff --git a/test/model/RestOK.spec.js b/test/model/RestOK.spec.js
index a6b2e46..2195529 100644
--- a/test/model/RestOK.spec.js
+++ b/test/model/RestOK.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/Session.spec.js b/test/model/Session.spec.js
index e7ebfc3..63148cf 100644
--- a/test/model/Session.spec.js
+++ b/test/model/Session.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/Stats.spec.js b/test/model/Stats.spec.js
index 98021c8..04cda4f 100644
--- a/test/model/Stats.spec.js
+++ b/test/model/Stats.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/Token.spec.js b/test/model/Token.spec.js
index 95f4f9a..a358d6b 100644
--- a/test/model/Token.spec.js
+++ b/test/model/Token.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/User.spec.js b/test/model/User.spec.js
index 29cece3..adf33af 100644
--- a/test/model/User.spec.js
+++ b/test/model/User.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
diff --git a/test/model/Workspace.spec.js b/test/model/Workspace.spec.js
index 435dfac..1bbcd9e 100644
--- a/test/model/Workspace.spec.js
+++ b/test/model/Workspace.spec.js
@@ -2,7 +2,7 @@
* Webida Restful API
* Restful API for Webida clients to use server's data & features
*
- * OpenAPI spec version: 0.5.0
+ * OpenAPI spec version: 0.6.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
@@ -101,6 +101,12 @@
//expect(instance).to.be();
});
+ it('should have the property disposable (base name: "disposable")', function() {
+ // uncomment below and update the code to test the property disposable
+ //var instane = new WebidaRestfulApi.Workspace();
+ //expect(instance).to.be();
+ });
+
it('should have the property excludedPaths (base name: "excludedPaths")', function() {
// uncomment below and update the code to test the property excludedPaths
//var instane = new WebidaRestfulApi.Workspace();