@livepreso/api 6.57.0 → 6.57.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/.rush/temp/chunked-rush-logs/api.build.chunks.jsonl +5 -15
  2. package/.rush/temp/operation/build/all.log +5 -15
  3. package/.rush/temp/operation/build/error.log +3 -13
  4. package/.rush/temp/operation/build/log-chunks.jsonl +5 -15
  5. package/.rush/temp/operation/build/state.json +1 -1
  6. package/.rush/temp/shrinkwrap-deps.json +11 -11
  7. package/CHANGELOG.json +23 -0
  8. package/CHANGELOG.md +10 -1
  9. package/cjs/collections/adjunct-sub-slides.js +13 -1
  10. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  11. package/cjs/fixtures.js +13 -2
  12. package/cjs/fixtures.js.map +1 -1
  13. package/cjs/models/base.js +12 -3
  14. package/cjs/models/base.js.map +1 -1
  15. package/cjs/models/deck-version.js +2 -0
  16. package/cjs/models/deck-version.js.map +1 -1
  17. package/cjs/models/dispatch.js +1 -1
  18. package/cjs/models/dispatch.js.map +1 -1
  19. package/cjs/models/room.js +4 -0
  20. package/cjs/models/room.js.map +1 -1
  21. package/cjs/models/user.js +1 -1
  22. package/cjs/models/user.js.map +1 -1
  23. package/cjs/presentation/base-presentation-model.js +6 -6
  24. package/cjs/presentation/base-presentation-model.js.map +1 -1
  25. package/cjs/presentation/presentation-deck.js +82 -27
  26. package/cjs/presentation/presentation-deck.js.map +1 -1
  27. package/cjs/presentation/presentation-section.js +42 -47
  28. package/cjs/presentation/presentation-section.js.map +1 -1
  29. package/cjs/presentation/presentation-slide.js +35 -39
  30. package/cjs/presentation/presentation-slide.js.map +1 -1
  31. package/cjs/utils.js +9 -6
  32. package/cjs/utils.js.map +1 -1
  33. package/package.json +3 -3
  34. package/rush-logs/api.build.error.log +3 -13
  35. package/rush-logs/api.build.log +5 -15
  36. package/src/collections/adjunct-sub-slides.js +13 -0
  37. package/src/fixtures.js +16 -2
  38. package/src/models/base.js +16 -3
  39. package/src/models/deck-version.js +2 -0
  40. package/src/models/dispatch.js +1 -1
  41. package/src/models/room.js +5 -0
  42. package/src/models/user.js +4 -4
  43. package/src/presentation/base-presentation-model.js +14 -6
  44. package/src/presentation/presentation-deck.js +63 -24
  45. package/src/presentation/presentation-section.js +31 -50
  46. package/src/presentation/presentation-slide.js +36 -43
  47. package/src/utils.js +9 -6
  48. package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +0 -10
  49. package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +0 -10
  50. package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +0 -10
  51. package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +0 -10
  52. package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +0 -10
  53. package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +0 -10
  54. package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +0 -10
  55. package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +0 -10
  56. package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +0 -10
  57. package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +0 -10
  58. package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +0 -10
  59. package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +0 -10
  60. package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +0 -10
  61. package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +0 -10
  62. package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +0 -10
  63. package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +0 -10
  64. package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +0 -10
  65. package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +0 -10
  66. package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +0 -10
  67. package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +0 -10
  68. package/.rush/temp/build-cache-tar.log +0 -7
  69. package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +0 -10
  70. package/.rush/temp/chunked-rush-logs/api.test.chunks.jsonl +0 -1
  71. package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +0 -10
  72. package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +0 -10
  73. package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +0 -10
  74. package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +0 -10
  75. package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +0 -10
  76. package/.rush/temp/operation/test/all.log +0 -21
  77. package/.rush/temp/operation/test/log-chunks.jsonl +0 -21
  78. package/.rush/temp/operation/test/state.json +0 -3
  79. package/.rush/temp/package-deps_build.json +0 -185
  80. package/api.build.log +0 -9
  81. package/api.test.cache.log +0 -1
  82. package/api.test.log +0 -19
  83. package/rush-logs/api.test.cache.log +0 -1
  84. package/rush-logs/api.test.log +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":["_utils","require","_api","_ampersandRestCollection","_interopRequireDefault","_ampersandModel","_bluebird","_superagentBluebirdPromise","_lodash","_dedentJs","_log","_qs","_stateRegister","_sync2","_templateObject","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","BaseModel","exports","Model","extend","modelName","queryData","detailType","isFetching","_isFetched","urlMatchKeys","_data","arguments","undefined","opts","options","_","defaults","data","_unsetChildren","_unsetCollections","_expandedValues","toJSON","isString","url","isNumber","id","dataCopy","_options","_children","clone","_collections","_definition","_url","key","def","isState","Collection","map","obj","registerStates","_convertToValues","getIDFromURL","prototype","_setDerived","_initUnsetValues","_i","_Object$keys","Object","keys","_derived","derivedKey","_i2","_Object$keys2","derivedProp","set","_matchesURL","matchesDetail","urlRoot","Api","getURL","replacements","detailKey","regexes","reduce","result","type","replace","Error","concat","urlWithoutRoot","urlStructure","split","argIndex","findIndex","val","indexOf","attemptedURLWithoutRoot","partial","join","interpolatedString","template","interpolate","log","error","dedent","_taggedTemplateLiteral2","default","baseString","re","RegExp","resource","resourceURL","getResourceURL","urlPath","getShortURL","resourceURLPath","resourceEnd","urlEnd","idStr","match","parseInt","matchesURL","dataTypes","date","newVal","Date","isNaN","getTime","toISOString","_e","compare","currentVal","d1","d2","stringSanitized","removeMultiByteChars","get","any","props","required","toServer","serialize","_registerChildModel","states","prop","model","registeredStates","_registerCollection","state","collection","_this","each","parent","_registerName","_updateResponse","response","_this2","forEach","save","_this3","apply","tap","fetch","_this4","SuperAgentRequest","Auth","headers","then","res","body","isFetched","getSafeAttrs","_this5","isUndefined","_values","attrs","uniq","_this6","_initChildren","child","_safeSet","listenTo","_getCachedEventBubblingHandler","_initCollections","coll","_this7","tmpValue","replacePropertyDefinition","safeSet","property","getFullURLPath","path","qs","stringify","arrayFormat","isNew","getPlainURL","resp","includes","matches","_iterator","_step","replacement","err","resources","waitForReady","_arguments","_this8","_asyncToGenerator2","_regenerator","mark","_callee","attempts","wrap","_context","prev","abrupt","Promise","reject","creation_status","resolve","delay","stop","sync","derived","_ref","_ref$urlsOnly","urlsOnly","getAttributes","object","allCollectionKeys","_toConsumableArray2","_iterator2","_step2","m","canBeEmpty","allChildrenKeys","_iterator3","_step3","_retrieveURL","item","_this9","_typeof2","addCollection","addChild","expandCollection","expandChild","defineProperty","configurable","_this$prototype"],"sources":["../../src/models/base.js"],"sourcesContent":["import { getShortURL, removeMultiByteChars } from \"../utils.js\";\n\nimport { Api } from \"../api.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Model from \"ampersand-model\";\nimport Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport dedent from \"dedent-js\";\nimport log from \"../log.js\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\n\n/**\n * @constructor\n * @alias models.BaseModel\n */\nexport const BaseModel = Model.extend(\n\t/** @lends models.BaseModel# */ {\n\t\tmodelName: null,\n\t\tqueryData: {},\n\t\tdetailType: \"number\",\n\n\t\t// This is unfortunately necessary to avoid the default ampersand model/state\n\t\t// behaviour from automatically hydrating all children and collections on a fetch.\n\t\tisFetching: false,\n\n\t\t// Useful to figure out whether the model is just a URL (unfetched), or has been\n\t\t// fetched from the server (an object).\n\t\t_isFetched: true,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tconstructor(_data = {}, opts = {}) {\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\tlet data = _data;\n\n\t\t\tthis._unsetChildren = {};\n\t\t\tthis._unsetCollections = {};\n\t\t\tthis._expandedValues = {};\n\n\t\t\tif (data === null) {\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\t// Allow passing in models\n\t\t\tif (data instanceof Model) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis.queryData = options.data;\n\n\t\t\t// Convert any strings into a url format we can understand\n\t\t\tif (_.isString(data)) {\n\t\t\t\tdata = { url: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\t// Convert model ids into a format we can understand\n\t\t\tif (_.isNumber(data)) {\n\t\t\t\tdata = { id: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\tconst dataCopy = _.extend({}, data);\n\n\t\t\tthis._data = dataCopy;\n\t\t\tthis._options = options;\n\n\t\t\t// Stop making edits to these affect other models\n\t\t\tthis._children = _.clone(this._children);\n\t\t\tthis._collections = _.clone(this._collections);\n\t\t\tthis._definition = _.clone(this._definition);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (dataCopy && typeof dataCopy.url === \"string\") {\n\t\t\t\tthis._url = dataCopy.url;\n\t\t\t}\n\n\t\t\tfor (const key in dataCopy) {\n\t\t\t\tconst def = dataCopy[key];\n\t\t\t\t// Any models/collections passed into the constructor should be\n\t\t\t\t// converted to JSON so that it can be parsed\n\t\t\t\tif (def && (def.isState || def instanceof Collection)) {\n\t\t\t\t\tdataCopy[key] = def.toJSON();\n\t\t\t\t}\n\n\t\t\t\tif (def && Array.isArray(def)) {\n\t\t\t\t\tdataCopy[key] = def.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof Model) {\n\t\t\t\t\t\t\treturn obj.toJSON();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn obj;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tthis._convertToValues();\n\n\t\t\tconst id = this.getIDFromURL(this._url);\n\n\t\t\tif (!dataCopy.id && id) {\n\t\t\t\tdataCopy.id = id;\n\t\t\t}\n\n\t\t\tModel.prototype.constructor.call(this, dataCopy, options);\n\n\t\t\tthis._setDerived();\n\n\t\t\t// Re-set the values that were previously children or collections\n\t\t\tthis._initUnsetValues();\n\t\t},\n\n\t\t// If there is a model returned from a derived property, and the model\n\t\t// has been initialzied with model data, we manually set the values on it.\n\t\t_setDerived() {\n\t\t\tfor (const derivedKey of Object.keys(this._derived)) {\n\t\t\t\tif (!this._data[derivedKey]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this[derivedKey] instanceof Model) {\n\t\t\t\t\tfor (const derivedProp of Object.keys(this._data[derivedKey])) {\n\t\t\t\t\t\tthis[derivedKey].set(\n\t\t\t\t\t\t\tderivedProp,\n\t\t\t\t\t\t\tthis._data[derivedKey][derivedProp],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If it's a collection, we can just pass the data straight in\n\t\t\t\tif (this[derivedKey] instanceof Collection) {\n\t\t\t\t\tthis[derivedKey].set(this._data[derivedKey]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Internal function. Used by collection as well.\n\t\t_matchesURL(url, matchesDetail = true) {\n\t\t\tif (!this.modelName || this.urlRoot() === Api.getURL()) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst replacements = _.extend(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tdetailKey: this.detailType,\n\t\t\t\t},\n\t\t\t\tthis.urlMatchKeys,\n\t\t\t);\n\n\t\t\tconst regexes = Object.keys(replacements).reduce((result, key) => {\n\t\t\t\tconst type = replacements[key];\n\t\t\t\tconst name = key.replace(/\\./g, \"_\");\n\t\t\t\tif (type === \"number\") {\n\t\t\t\t\tresult[name] = \"\\\\d+\";\n\t\t\t\t} else if (type === \"uuid\") {\n\t\t\t\t\tresult[name] = \"([a-z]|[0-9]|-)+\";\n\t\t\t\t} else if (type === \"string\") {\n\t\t\t\t\tresult[name] = \"\\\\w+\";\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Unknown regex type '${type}'.`);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}, {});\n\n\t\t\t// Create a starting regex string with variables. Strips the root url so that it could\n\t\t\t// be read from any server.\n\t\t\tconst urlWithoutRoot = this.urlRoot().replace(Api.getURL(), \"\");\n\t\t\tlet urlStructure = urlWithoutRoot.slice();\n\t\t\tif (matchesDetail) {\n\t\t\t\turlStructure += \"{detailKey}/\";\n\t\t\t}\n\n\t\t\t// Let's test if the url has even a remote chance of matching\n\t\t\t// the url (like a partial match, any part without variables).\n\t\t\t// If that doesn't match, we can sometimes prevent a nasty log\n\t\t\t// error from being thrown.\n\t\t\tconst split = urlStructure.split(\"/\");\n\t\t\tconst argIndex = split.findIndex((val) => {\n\t\t\t\treturn val.indexOf(\"{\") === 0;\n\t\t\t});\n\n\t\t\tif (argIndex >= 0) {\n\t\t\t\tconst attemptedURLWithoutRoot = url.replace(Api.getURL(), \"\");\n\n\t\t\t\tconst partial = split.slice(0, argIndex).join(\"/\");\n\t\t\t\tif (attemptedURLWithoutRoot.indexOf(partial) !== 0) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Replace keys with regexes\n\t\t\tlet interpolatedString;\n\t\t\ttry {\n\t\t\t\tinterpolatedString = _.template(urlStructure.replace(/\\./g, \"_\"), {\n\t\t\t\t\tinterpolate: /{([\\s\\S\\.]+?)}/g,\n\t\t\t\t})(regexes);\n\t\t\t} catch (e) {\n\t\t\t\tlog.error(\n\t\t\t\t\tdedent`\n\t\t\t\tFailed to match URL '${url}' for model '${this.modelName}'.\n\t\t\t\tThis is usually because the regex type for a key hasn't been set.\n\t\t\t\tError: `,\n\t\t\t\t\te,\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Convert into a regex and test if url matches\n\t\t\tconst baseString = `.*${interpolatedString.replace(/\\//m, \"/\")}$`;\n\t\t\tconst re = new RegExp(baseString);\n\t\t\treturn re.test(url);\n\t\t},\n\n\t\t// Retrieve the id from the url (if present) without caring about\n\t\t// the hostname.\n\t\t// The url will have a structure like\n\t\t// https://staging-demo.salespreso.com/api/users/1/\n\t\t// and we want to ignore the hostname (https://staging-demo.salespreso.com)\n\t\t// and strip out the '/api' from both the resource url and the variable url\n\t\t// so that we can use the remaining part to isolate the id\n\t\tgetIDFromURL(url, resource = \"\") {\n\t\t\tconst resourceURL = resource || this.getResourceURL();\n\n\t\t\tif (typeof url !== \"string\" || !resourceURL) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst urlPath = getShortURL(url);\n\t\t\tconst resourceURLPath = getShortURL(resourceURL);\n\n\t\t\t// Remove the '/api' if present\n\t\t\tconst resourceEnd = resourceURLPath.split(\"/api\").join(\"\");\n\t\t\tconst urlEnd = urlPath.split(\"/api\").join(\"\");\n\n\t\t\t// If they are the same, there is no id at the end\n\t\t\tif (!urlEnd || urlEnd === resourceEnd) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst idStr = urlEnd.split(resourceEnd).join(\"\");\n\t\t\tif (this.detailType === \"uuid\") {\n\t\t\t\treturn idStr.slice(0, -1);\n\t\t\t} else if ((idStr.match(/\\//g) || []).length === 1) {\n\t\t\t\treturn parseInt(idStr.slice(0, -1), 10);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\t// Public version for details only\n\t\tmatchesURL(url) {\n\t\t\treturn this._matchesURL(url, true);\n\t\t},\n\n\t\tdataTypes: {\n\t\t\tdate: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\tlet val = null;\n\t\t\t\t\tif (newVal) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst date = new Date(newVal);\n\t\t\t\t\t\t\tif (!isNaN(date.getTime())) {\n\t\t\t\t\t\t\t\tval = date.toISOString().replace(\"Z\", \"000Z\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (_e) {\n\t\t\t\t\t\t\t// fallback to null if invalid\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval,\n\t\t\t\t\t\ttype: \"date\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\tif (currentVal === undefined) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (currentVal || newVal) {\n\t\t\t\t\t\tif (currentVal === newVal) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst d1 = new Date(currentVal);\n\t\t\t\t\t\t\tconst d2 = new Date(newVal);\n\t\t\t\t\t\t\treturn d1.getTime() === d2.getTime();\n\t\t\t\t\t\t} catch (_e) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn currentVal === newVal;\n\t\t\t\t},\n\t\t\t},\n\t\t\tstringSanitized: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval: newVal ? removeMultiByteChars(newVal) : newVal,\n\t\t\t\t\t\ttype: \"stringSanitized\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\treturn currentVal === newVal;\n\t\t\t\t},\n\t\t\t\tget: (val) => {\n\t\t\t\t\treturn val;\n\t\t\t\t},\n\t\t\t},\n\t\t\tany: {\n\t\t\t\tdefault: () => {\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {number} [id]\n\t\t */\n\t\tprops: {\n\t\t\tid: { type: \"any\", required: false },\n\t\t},\n\n\t\t/*\n\t\t * Overridable serialization for sending data to\n\t\t * the server\n\t\t */\n\t\ttoServer() {\n\t\t\treturn this.serialize();\n\t\t},\n\n\t\t_registerChildModel(states, prop, model) {\n\t\t\tconst Model = registeredStates[model];\n\t\t\tif (!Model) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${model}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._children[prop] = Model;\n\t\t},\n\n\t\t_registerCollection(state, prop, collection) {\n\t\t\tconst Collection = state[collection];\n\t\t\tif (!Collection) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${collection}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._collections[prop] = Collection;\n\t\t},\n\n\t\t/*\n\t\t * Replace strings respresenting a registered model/collection the function\n\t\t */\n\t\tregisterStates() {\n\t\t\t// Loop through children and replace any parent objects directly to stop\n\t\t\t// maximum stack overflows\n\t\t\t_.each(\n\t\t\t\tthis._children,\n\t\t\t\t(model, prop) => {\n\t\t\t\t\tif (typeof model === \"string\") {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthis._options.parent &&\n\t\t\t\t\t\t\tmodel === this._options.parent._registerName\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// This part is important, if the link stays when there's a circular dependency,\n\t\t\t\t\t\t\t// this will continue forever.\n\t\t\t\t\t\t\tdelete this._children[prop];\n\n\t\t\t\t\t\t\t// Can be a string or an object so we use \"any\". We add the definition\n\t\t\t\t\t\t\t// so that we can retrieve this value later.\n\t\t\t\t\t\t\tthis._definition[prop] = { type: \"any\" };\n\n\t\t\t\t\t\t\tthis[prop] = this._options.parent;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._registerChildModel(registeredStates, prop, model);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\n\t\t\t// Loop throught the collections and replace with the registered collection\n\t\t\t_.each(\n\t\t\t\tthis._collections,\n\t\t\t\t(collection, prop) => {\n\t\t\t\t\tif (typeof collection === \"string\") {\n\t\t\t\t\t\tthis._registerCollection(registeredStates, prop, collection);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\t\t},\n\n\t\t_updateResponse(response) {\n\t\t\tthis._data = response || {};\n\n\t\t\tif (!response) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set previously-initialised children & collections with new\n\t\t\t// data retrieved during the fetch\n\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tsave() {\n\t\t\treturn Model.prototype.save.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._updateResponse(response);\n\t\t\t});\n\t\t},\n\n\t\tfetch(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.isFetching = true;\n\t\t\treturn Model.prototype.fetch.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._isFetched = true;\n\t\t\t\tthis.isFetching = false;\n\t\t\t\tthis._updateResponse(response);\n\t\t\t});\n\t\t},\n\n\t\toptions(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\t\t\treturn SuperAgentRequest(\"OPTIONS\", this.url())\n\t\t\t\t.set(BaseModel.Auth.headers)\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res.body;\n\t\t\t\t});\n\t\t},\n\n\t\tisFetched() {\n\t\t\treturn this._isFetched;\n\t\t},\n\n\t\tgetSafeAttrs(key) {\n\t\t\tif (!_.isUndefined(key)) {\n\t\t\t\treturn !_.isUndefined(this._expandedValues[key])\n\t\t\t\t\t? this._expandedValues[key]\n\t\t\t\t\t: this._values[key];\n\t\t\t}\n\n\t\t\tconst attrs = {};\n\n\t\t\tconst keys = _.uniq(\n\t\t\t\t_.concat(\n\t\t\t\t\t_.concat(\n\t\t\t\t\t\tObject.keys(this._unsetChildren),\n\t\t\t\t\t\tObject.keys(this._unsetCollections),\n\t\t\t\t\t),\n\t\t\t\t\tObject.keys(this._values),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tkeys.forEach((key) => {\n\t\t\t\tif (!_.isUndefined(this._values[key])) {\n\t\t\t\t\tattrs[key] = this._values[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._expandedValues).forEach((key) => {\n\t\t\t\tattrs[key] = this[key];\n\t\t\t});\n\n\t\t\treturn attrs;\n\t\t},\n\n\t\t// Unset all specified children and collection constructors and insert value\n\t\t// definitions for them (necessary for Ampersand State to treat them as values)\n\t\t_convertToValues() {\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetChildren[key] = this._children[key];\n\t\t\t\tdelete this._children[key];\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetCollections[key] = this._collections[key];\n\t\t\t\tdelete this._collections[key];\n\t\t\t});\n\t\t},\n\n\t\t// Override the initialization of children to pass in data to the constructor.\n\t\t// The default version always creates an empty model\n\t\t_initChildren() {\n\t\t\tlet child;\n\t\t\tif (!this._children) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (child in this._children) {\n\t\t\t\tlet val = this._data[child];\n\t\t\t\tif (val) {\n\t\t\t\t\t// Assume here that if it's a string, it's a url.\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the child and\n\t\t\t\t// not the constructor. We want to add the non-hydrated url if so.\n\t\t\t\tif (typeof this._children[child] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tchild,\n\t\t\t\t\t\tnew this._children[child](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t\tthis.listenTo(\n\t\t\t\t\t\tthis[child],\n\t\t\t\t\t\t\"all\",\n\t\t\t\t\t\tthis._getCachedEventBubblingHandler(child),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(child, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Override the initialization of collections to pass in data to the constructor.\n\t\t_initCollections() {\n\t\t\tlet coll;\n\t\t\tif (!this._collections) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (coll in this._collections) {\n\t\t\t\tlet val = this._data[coll];\n\t\t\t\tif (val) {\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the collection and\n\t\t\t\t// not the constructor. We want to add the non-hydrated array if so.\n\t\t\t\tif (typeof this._collections[coll] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tcoll,\n\t\t\t\t\t\tnew this._collections[coll](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(coll, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_initUnsetValues() {\n\t\t\t_.each(this._unsetChildren, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\n\t\t\t_.each(this._unsetCollections, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\t\t},\n\n\t\t// Make safeSet less safe... as we do need to run this twice\n\t\t_safeSet: function safeSet(property, value) {\n\t\t\tthis[property] = value;\n\t\t\treturn this;\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tif (path === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet url = path;\n\t\t\tif (url.slice(-1) !== \"/\" && url.indexOf(\"?\") === -1) {\n\t\t\t\turl += \"/\";\n\t\t\t}\n\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\turl += `?${qs.stringify(this.queryData, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\t/*\n\t\t * Get url\n\t\t * @return {String}\n\t\t */\n\t\turl() {\n\t\t\tif (this._url && this.isNew()) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\treturn this.getFullURLPath(this.getPlainURL());\n\t\t},\n\n\t\t// Returns url without query data\n\t\tgetPlainURL() {\n\t\t\tif (!this.modelName) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet resp = Model.prototype.url.call(this);\n\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\tif (!resp.includes(\"{\") || !resp.includes(\"}\")) {\n\t\t\t\treturn resp;\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the model.\n\t\t\t// So if you have /path/to/{model.id}/\n\t\t\t// It will check the model from \"this.model.id\" and replace\n\t\t\t// it in the url\n\t\t\tconst re = /(\\{(?:\\w+\\.?)+\\})/g;\n\t\t\tconst matches = resp.match(re) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(`Model ${this.modelName} is missing value ${path}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn resp;\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\tif (this.modelName === null && !Object.keys(Api.resources).length) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (!Object.keys(Api.resources).length) {\n\t\t\t\treturn `/${this.modelName}/`;\n\t\t\t}\n\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tasync waitForReady(opts = {}, attempts = 20) {\n\t\t\tif (attempts === 0) {\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\t\t\treturn this.fetch(opts).then(() => {\n\t\t\t\tif (!this.creation_status) {\n\t\t\t\t\treturn Promise.reject(new Error(\"No creation_status key found\"));\n\t\t\t\t}\n\n\t\t\t\tif ([\"ready\", \"failed\"].indexOf(this.creation_status) > -1) {\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\treturn Promise.delay(1000).then(() =>\n\t\t\t\t\tthis.waitForReady(opts, attempts - 1),\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\tsync() {\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tserialize(opts = { derived: true }) {\n\t\t\t// Return nothing if data passed is falsy. More than likely this is\n\t\t\t// a null value\n\t\t\tif (!this._data) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// Urls only will build a model without its children/collections expanded -\n\t\t\t// it will return urls instead of the full model.\n\t\t\tconst { urlsOnly = false } = opts ?? {};\n\n\t\t\tconst data = Model.prototype.serialize.apply(this, arguments);\n\t\t\tdata.url = this.url();\n\n\t\t\tlet derived = this.getAttributes(opts);\n\t\t\tderived = Object.keys(derived).reduce((object, key) => {\n\t\t\t\tlet value = derived[key];\n\t\t\t\tif (value instanceof Collection || value instanceof Model) {\n\t\t\t\t\tvalue = value.toJSON();\n\t\t\t\t}\n\t\t\t\tobject[key] = value;\n\t\t\t\treturn object;\n\t\t\t}, {});\n\n\t\t\tconst allCollectionKeys = [\n\t\t\t\t...Object.keys(this._unsetCollections),\n\t\t\t\t...Object.keys(this._collections),\n\t\t\t];\n\n\t\t\tfor (const key of allCollectionKeys) {\n\t\t\t\tconst constructor = this._unsetCollections[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tif (typeof this._values[key] === \"string\") {\n\t\t\t\t\t\tderived[key] = this._values[key];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tderived[key] = this[key].map((m) => m.url());\n\t\t\t\t\t}\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key]) {\n\t\t\t\t\tderived[key] = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst allChildrenKeys = [\n\t\t\t\t...Object.keys(this._unsetChildren),\n\t\t\t\t...(urlsOnly ? Object.keys(this._children) : []),\n\t\t\t];\n\n\t\t\tfor (const key of allChildrenKeys) {\n\t\t\t\tconst constructor = this._unsetChildren[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key] && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _.extend(data, derived);\n\t\t},\n\n\t\t// Safely retrieve the url from a child or collection that may or may not\n\t\t// be hydrated\n\t\t_retrieveURL(item) {\n\t\t\tif (_.isUndefined(item) || item === null) {\n\t\t\t\treturn item;\n\t\t\t} else if (typeof item === \"string\") {\n\t\t\t\t// It's just a url string\n\t\t\t\treturn item;\n\t\t\t} else if (item instanceof Model) {\n\t\t\t\treturn item.isNew() && !item._url ? null : item.url();\n\t\t\t} else if (item instanceof Collection) {\n\t\t\t\treturn _.map(item.toJSON(), \"url\");\n\t\t\t} else if (_.isArray(item)) {\n\t\t\t\t// It's an array of urls or objects\n\t\t\t\treturn item.map((child) => {\n\t\t\t\t\treturn this._retrieveURL(child);\n\t\t\t\t});\n\t\t\t} else if (typeof item === \"object\" && item !== null) {\n\t\t\t\treturn typeof item.url === \"function\" ? item.url() : item.url;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t},\n);\n\nfunction replacePropertyDefinition(object, name) {\n\tfunction addCollection(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst collection = new object._collections[name](data, { parent: object });\n\t\tobject._expandedValues[name] = collection;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction addChild(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst child = new object._children[name](data, { parent: object });\n\t\tobject._expandedValues[name] = child;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction expandCollection(value) {\n\t\tobject._collections[name] = object._unsetCollections[name];\n\t\tdelete object._unsetCollections[name];\n\n\t\treturn addCollection(value);\n\t}\n\n\tfunction expandChild(value) {\n\t\tobject._children[name] = object._unsetChildren[name];\n\t\tdelete object._unsetChildren[name];\n\n\t\treturn addChild(value);\n\t}\n\n\tObject.defineProperty(object, name, {\n\t\tset(val) {\n\t\t\tif (_.includes(Object.keys(object._children), name)) {\n\t\t\t\tif (val instanceof Model) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (val !== this[name].url()) {\n\t\t\t\t\taddChild(val);\n\t\t\t\t}\n\t\t\t} else if (_.includes(Object.keys(object._collections), name)) {\n\t\t\t\tif (val instanceof Collection) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (this[name].length || val !== this[name].url()) {\n\t\t\t\t\taddCollection(val);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Model &&\n\t\t\t\t_.includes(Object.keys(object._unsetChildren), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandChild(val.toJSON());\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Collection &&\n\t\t\t\t_.includes(Object.keys(object._unsetCollections), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandCollection(val.toJSON());\n\t\t\t} else {\n\t\t\t\tobject._values[name] = val;\n\t\t\t}\n\t\t},\n\t\tget() {\n\t\t\tif (!this._values) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Trying to retrieve value ${name} of model ${object.modelName} during constructor`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.includes(Object.keys(object._collections), name) ||\n\t\t\t\t\t_.includes(Object.keys(object._children), name)) &&\n\t\t\t\t_.includes(Object.keys(object._expandedValues), name)\n\t\t\t) {\n\t\t\t\treturn object._expandedValues[name];\n\t\t\t}\n\n\t\t\tconst value = object._values[name];\n\n\t\t\tif (this.isFetching) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.isUndefined(value) || value === null) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetChildren[name] && object._unsetChildren[name].canBeEmpty\n\t\t\t\t) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetCollections[name] &&\n\t\t\t\t\tobject._unsetCollections[name].canBeEmpty\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (_.includes(Object.keys(object._unsetCollections), name)) {\n\t\t\t\treturn expandCollection(value);\n\t\t\t} else if (_.includes(Object.keys(object._unsetChildren), name)) {\n\t\t\t\treturn expandChild(value);\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tconfigurable: true,\n\t});\n}\n\n// Make matchesURL available as a static method\nBaseModel.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n\nBaseModel.getIDFromURL = function (...args) {\n\treturn this.prototype.getIDFromURL(...args);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"base.js","names":["_utils","require","_api","_ampersandRestCollection","_interopRequireDefault","_ampersandModel","_bluebird","_superagentBluebirdPromise","_lodash","_dedentJs","_log","_qs","_stateRegister","_sync2","_templateObject","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","URL_TEMPLATE_RE","BaseModel","exports","Model","extend","modelName","queryData","detailType","isFetching","_isFetched","urlMatchKeys","_data","arguments","undefined","opts","options","_","defaults","data","_unsetChildren","_unsetCollections","_expandedValues","toJSON","isString","url","isNumber","id","dataCopy","_options","_children","clone","_collections","_definition","_url","key","def","isState","Collection","map","obj","registerStates","_convertToValues","getIDFromURL","prototype","_setDerived","_initUnsetValues","_i","_Object$keys","Object","keys","_derived","derivedKey","_i2","_Object$keys2","derivedProp","set","_matchesURL","matchesDetail","urlRoot","Api","getURL","replacements","detailKey","regexes","reduce","result","type","replace","Error","concat","urlWithoutRoot","urlStructure","split","argIndex","findIndex","val","indexOf","attemptedURLWithoutRoot","partial","join","interpolatedString","template","interpolate","log","error","dedent","_taggedTemplateLiteral2","default","baseString","re","RegExp","resource","resourceURL","getResourceURL","urlPath","getShortURL","resourceURLPath","resourceEnd","urlEnd","idStr","match","parseInt","matchesURL","dataTypes","date","newVal","Date","isNaN","getTime","toISOString","_e","compare","currentVal","d1","d2","stringSanitized","removeMultiByteChars","get","any","props","required","toServer","serialize","_registerChildModel","states","prop","model","registeredStates","_registerCollection","state","collection","_this","each","parent","_registerName","_updateResponse","response","_this2","forEach","save","_this3","apply","tap","events","sort","b","timestamp","fetch","_this4","SuperAgentRequest","Auth","headers","then","res","body","isFetched","getSafeAttrs","_this5","isUndefined","_values","attrs","uniq","_this6","_initChildren","child","_safeSet","listenTo","_getCachedEventBubblingHandler","_initCollections","coll","_this7","tmpValue","replacePropertyDefinition","safeSet","property","getFullURLPath","path","qs","stringify","arrayFormat","isNew","getPlainURL","resp","includes","lastIndex","matches","_iterator","_step","replacement","err","resources","waitForReady","_arguments","_this8","_asyncToGenerator2","_regenerator","mark","_callee","attempts","wrap","_context","prev","abrupt","Promise","reject","creation_status","resolve","delay","stop","sync","derived","_ref","_ref$urlsOnly","urlsOnly","getAttributes","object","allCollectionKeys","_toConsumableArray2","_iterator2","_step2","m","canBeEmpty","allChildrenKeys","_iterator3","_step3","_retrieveURL","item","_this9","_typeof2","addCollection","addChild","expandCollection","expandChild","defineProperty","configurable","_this$prototype"],"sources":["../../src/models/base.js"],"sourcesContent":["import { getShortURL, removeMultiByteChars } from \"../utils.js\";\n\nimport { Api } from \"../api.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Model from \"ampersand-model\";\nimport Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport dedent from \"dedent-js\";\nimport log from \"../log.js\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\n\nconst URL_TEMPLATE_RE = /(\\{(?:\\w+\\.?)+\\})/g;\n\n/**\n * @constructor\n * @alias models.BaseModel\n */\nexport const BaseModel = Model.extend(\n\t/** @lends models.BaseModel# */ {\n\t\tmodelName: null,\n\t\tqueryData: {},\n\t\tdetailType: \"number\",\n\n\t\t// This is unfortunately necessary to avoid the default ampersand model/state\n\t\t// behaviour from automatically hydrating all children and collections on a fetch.\n\t\tisFetching: false,\n\n\t\t// Useful to figure out whether the model is just a URL (unfetched), or has been\n\t\t// fetched from the server (an object).\n\t\t_isFetched: true,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tconstructor(_data = {}, opts = {}) {\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\tlet data = _data;\n\n\t\t\tthis._unsetChildren = {};\n\t\t\tthis._unsetCollections = {};\n\t\t\tthis._expandedValues = {};\n\n\t\t\tif (data === null) {\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\t// Allow passing in models\n\t\t\tif (data instanceof Model) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis.queryData = options.data;\n\n\t\t\t// Convert any strings into a url format we can understand\n\t\t\tif (_.isString(data)) {\n\t\t\t\tdata = { url: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\t// Convert model ids into a format we can understand\n\t\t\tif (_.isNumber(data)) {\n\t\t\t\tdata = { id: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\tconst dataCopy = _.extend({}, data);\n\n\t\t\tthis._data = dataCopy;\n\t\t\tthis._options = options;\n\n\t\t\t// Stop making edits to these affect other models\n\t\t\tthis._children = _.clone(this._children);\n\t\t\tthis._collections = _.clone(this._collections);\n\t\t\tthis._definition = _.clone(this._definition);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (dataCopy && typeof dataCopy.url === \"string\") {\n\t\t\t\tthis._url = dataCopy.url;\n\t\t\t}\n\n\t\t\tfor (const key in dataCopy) {\n\t\t\t\tconst def = dataCopy[key];\n\t\t\t\t// Any models/collections passed into the constructor should be\n\t\t\t\t// converted to JSON so that it can be parsed\n\t\t\t\tif (def && (def.isState || def instanceof Collection)) {\n\t\t\t\t\tdataCopy[key] = def.toJSON();\n\t\t\t\t}\n\n\t\t\t\tif (def && Array.isArray(def)) {\n\t\t\t\t\tdataCopy[key] = def.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof Model) {\n\t\t\t\t\t\t\treturn obj.toJSON();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn obj;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tthis._convertToValues();\n\n\t\t\tconst id = this.getIDFromURL(this._url);\n\n\t\t\tif (!dataCopy.id && id) {\n\t\t\t\tdataCopy.id = id;\n\t\t\t}\n\n\t\t\tModel.prototype.constructor.call(this, dataCopy, options);\n\n\t\t\tthis._setDerived();\n\n\t\t\t// Re-set the values that were previously children or collections\n\t\t\tthis._initUnsetValues();\n\t\t},\n\n\t\t// If there is a model returned from a derived property, and the model\n\t\t// has been initialzied with model data, we manually set the values on it.\n\t\t_setDerived() {\n\t\t\tfor (const derivedKey of Object.keys(this._derived)) {\n\t\t\t\tif (!this._data[derivedKey]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this[derivedKey] instanceof Model) {\n\t\t\t\t\tfor (const derivedProp of Object.keys(this._data[derivedKey])) {\n\t\t\t\t\t\tthis[derivedKey].set(\n\t\t\t\t\t\t\tderivedProp,\n\t\t\t\t\t\t\tthis._data[derivedKey][derivedProp],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If it's a collection, we can just pass the data straight in\n\t\t\t\tif (this[derivedKey] instanceof Collection) {\n\t\t\t\t\tthis[derivedKey].set(this._data[derivedKey]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Internal function. Used by collection as well.\n\t\t_matchesURL(url, matchesDetail = true) {\n\t\t\tif (\n\t\t\t\ttypeof url !== \"string\" ||\n\t\t\t\t!this.modelName ||\n\t\t\t\tthis.urlRoot() === Api.getURL()\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst replacements = _.extend(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tdetailKey: this.detailType,\n\t\t\t\t},\n\t\t\t\tthis.urlMatchKeys,\n\t\t\t);\n\n\t\t\tconst regexes = Object.keys(replacements).reduce((result, key) => {\n\t\t\t\tconst type = replacements[key];\n\t\t\t\tconst name = key.replace(/\\./g, \"_\");\n\t\t\t\tif (type === \"number\") {\n\t\t\t\t\tresult[name] = \"\\\\d+\";\n\t\t\t\t} else if (type === \"uuid\") {\n\t\t\t\t\tresult[name] = \"([a-z]|[0-9]|-)+\";\n\t\t\t\t} else if (type === \"string\") {\n\t\t\t\t\tresult[name] = \"\\\\w+\";\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Unknown regex type '${type}'.`);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}, {});\n\n\t\t\t// Create a starting regex string with variables. Strips the root url so that it could\n\t\t\t// be read from any server.\n\t\t\tconst urlWithoutRoot = this.urlRoot().replace(Api.getURL(), \"\");\n\t\t\tlet urlStructure = urlWithoutRoot.slice();\n\t\t\tif (matchesDetail) {\n\t\t\t\turlStructure += \"{detailKey}/\";\n\t\t\t}\n\n\t\t\t// Let's test if the url has even a remote chance of matching\n\t\t\t// the url (like a partial match, any part without variables).\n\t\t\t// If that doesn't match, we can sometimes prevent a nasty log\n\t\t\t// error from being thrown.\n\t\t\tconst split = urlStructure.split(\"/\");\n\t\t\tconst argIndex = split.findIndex((val) => {\n\t\t\t\treturn val.indexOf(\"{\") === 0;\n\t\t\t});\n\n\t\t\tif (argIndex >= 0) {\n\t\t\t\tconst attemptedURLWithoutRoot = url.replace(Api.getURL(), \"\");\n\n\t\t\t\tconst partial = split.slice(0, argIndex).join(\"/\");\n\t\t\t\tif (attemptedURLWithoutRoot.indexOf(partial) !== 0) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Replace keys with regexes\n\t\t\tlet interpolatedString;\n\t\t\ttry {\n\t\t\t\tinterpolatedString = _.template(urlStructure.replace(/\\./g, \"_\"), {\n\t\t\t\t\tinterpolate: /{([\\s\\S\\.]+?)}/g,\n\t\t\t\t})(regexes);\n\t\t\t} catch (e) {\n\t\t\t\tlog.error(\n\t\t\t\t\tdedent`\n\t\t\t\tFailed to match URL '${url}' for model '${this.modelName}'.\n\t\t\t\tThis is usually because the regex type for a key hasn't been set.\n\t\t\t\tError: `,\n\t\t\t\t\te,\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Convert into a regex and test if url matches\n\t\t\tconst baseString = `.*${interpolatedString.replace(/\\//m, \"/\")}$`;\n\t\t\tconst re = new RegExp(baseString);\n\t\t\treturn re.test(url);\n\t\t},\n\n\t\t// Retrieve the id from the url (if present) without caring about\n\t\t// the hostname.\n\t\t// The url will have a structure like\n\t\t// https://staging-demo.salespreso.com/api/users/1/\n\t\t// and we want to ignore the hostname (https://staging-demo.salespreso.com)\n\t\t// and strip out the '/api' from both the resource url and the variable url\n\t\t// so that we can use the remaining part to isolate the id\n\t\tgetIDFromURL(url, resource = \"\") {\n\t\t\tconst resourceURL = resource || this.getResourceURL();\n\n\t\t\tif (typeof url !== \"string\" || !resourceURL) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst urlPath = getShortURL(url);\n\t\t\tconst resourceURLPath = getShortURL(resourceURL);\n\n\t\t\t// Remove the '/api' if present\n\t\t\tconst resourceEnd = resourceURLPath.split(\"/api\").join(\"\");\n\t\t\tconst urlEnd = urlPath.split(\"/api\").join(\"\");\n\n\t\t\t// If they are the same, there is no id at the end\n\t\t\tif (!urlEnd || urlEnd === resourceEnd) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst idStr = urlEnd.split(resourceEnd).join(\"\");\n\t\t\tif (this.detailType === \"uuid\") {\n\t\t\t\treturn idStr.slice(0, -1);\n\t\t\t} else if ((idStr.match(/\\//g) || []).length === 1) {\n\t\t\t\treturn parseInt(idStr.slice(0, -1), 10);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\t// Public version for details only\n\t\tmatchesURL(url) {\n\t\t\treturn this._matchesURL(url, true);\n\t\t},\n\n\t\tdataTypes: {\n\t\t\tdate: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\tlet val = null;\n\t\t\t\t\tif (newVal) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst date = new Date(newVal);\n\t\t\t\t\t\t\tif (!isNaN(date.getTime())) {\n\t\t\t\t\t\t\t\tval = date.toISOString().replace(\"Z\", \"000Z\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (_e) {\n\t\t\t\t\t\t\t// fallback to null if invalid\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval,\n\t\t\t\t\t\ttype: \"date\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\tif (currentVal === undefined) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (currentVal || newVal) {\n\t\t\t\t\t\tif (currentVal === newVal) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst d1 = new Date(currentVal);\n\t\t\t\t\t\t\tconst d2 = new Date(newVal);\n\t\t\t\t\t\t\treturn d1.getTime() === d2.getTime();\n\t\t\t\t\t\t} catch (_e) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn currentVal === newVal;\n\t\t\t\t},\n\t\t\t},\n\t\t\tstringSanitized: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval: newVal ? removeMultiByteChars(newVal) : newVal,\n\t\t\t\t\t\ttype: \"stringSanitized\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\treturn currentVal === newVal;\n\t\t\t\t},\n\t\t\t\tget: (val) => {\n\t\t\t\t\treturn val;\n\t\t\t\t},\n\t\t\t},\n\t\t\tany: {\n\t\t\t\tdefault: () => {\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {number} [id]\n\t\t */\n\t\tprops: {\n\t\t\tid: { type: \"any\", required: false },\n\t\t},\n\n\t\t/*\n\t\t * Overridable serialization for sending data to\n\t\t * the server\n\t\t */\n\t\ttoServer() {\n\t\t\treturn this.serialize();\n\t\t},\n\n\t\t_registerChildModel(states, prop, model) {\n\t\t\tconst Model = registeredStates[model];\n\t\t\tif (!Model) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${model}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._children[prop] = Model;\n\t\t},\n\n\t\t_registerCollection(state, prop, collection) {\n\t\t\tconst Collection = state[collection];\n\t\t\tif (!Collection) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${collection}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._collections[prop] = Collection;\n\t\t},\n\n\t\t/*\n\t\t * Replace strings respresenting a registered model/collection the function\n\t\t */\n\t\tregisterStates() {\n\t\t\t// Loop through children and replace any parent objects directly to stop\n\t\t\t// maximum stack overflows\n\t\t\t_.each(\n\t\t\t\tthis._children,\n\t\t\t\t(model, prop) => {\n\t\t\t\t\tif (typeof model === \"string\") {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthis._options.parent &&\n\t\t\t\t\t\t\tmodel === this._options.parent._registerName\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// This part is important, if the link stays when there's a circular dependency,\n\t\t\t\t\t\t\t// this will continue forever.\n\t\t\t\t\t\t\tdelete this._children[prop];\n\n\t\t\t\t\t\t\t// Can be a string or an object so we use \"any\". We add the definition\n\t\t\t\t\t\t\t// so that we can retrieve this value later.\n\t\t\t\t\t\t\tthis._definition[prop] = { type: \"any\" };\n\n\t\t\t\t\t\t\tthis[prop] = this._options.parent;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._registerChildModel(registeredStates, prop, model);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\n\t\t\t// Loop throught the collections and replace with the registered collection\n\t\t\t_.each(\n\t\t\t\tthis._collections,\n\t\t\t\t(collection, prop) => {\n\t\t\t\t\tif (typeof collection === \"string\") {\n\t\t\t\t\t\tthis._registerCollection(registeredStates, prop, collection);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\t\t},\n\n\t\t_updateResponse(response) {\n\t\t\tthis._data = response || {};\n\n\t\t\tif (!response) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set previously-initialised children & collections with new\n\t\t\t// data retrieved during the fetch\n\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tsave() {\n\t\t\treturn Model.prototype.save.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._updateResponse(response);\n\t\t\t\t// Sort events after server response to ensure ascending order\n\t\t\t\t// since the server may return them in a different order\n\t\t\t\tif (this.events && this.events.length > 1) {\n\t\t\t\t\tthis.events.sort((a, b) => {\n\t\t\t\t\t\treturn new Date(a.timestamp) - new Date(b.timestamp);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tfetch(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.isFetching = true;\n\t\t\treturn Model.prototype.fetch.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._isFetched = true;\n\t\t\t\tthis.isFetching = false;\n\t\t\t\tthis._updateResponse(response);\n\t\t\t});\n\t\t},\n\n\t\toptions(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\t\t\treturn SuperAgentRequest(\"OPTIONS\", this.url())\n\t\t\t\t.set(BaseModel.Auth.headers)\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res.body;\n\t\t\t\t});\n\t\t},\n\n\t\tisFetched() {\n\t\t\treturn this._isFetched;\n\t\t},\n\n\t\tgetSafeAttrs(key) {\n\t\t\tif (!_.isUndefined(key)) {\n\t\t\t\treturn !_.isUndefined(this._expandedValues[key])\n\t\t\t\t\t? this._expandedValues[key]\n\t\t\t\t\t: this._values[key];\n\t\t\t}\n\n\t\t\tconst attrs = {};\n\n\t\t\tconst keys = _.uniq(\n\t\t\t\t_.concat(\n\t\t\t\t\t_.concat(\n\t\t\t\t\t\tObject.keys(this._unsetChildren),\n\t\t\t\t\t\tObject.keys(this._unsetCollections),\n\t\t\t\t\t),\n\t\t\t\t\tObject.keys(this._values),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tkeys.forEach((key) => {\n\t\t\t\tif (!_.isUndefined(this._values[key])) {\n\t\t\t\t\tattrs[key] = this._values[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._expandedValues).forEach((key) => {\n\t\t\t\tattrs[key] = this[key];\n\t\t\t});\n\n\t\t\treturn attrs;\n\t\t},\n\n\t\t// Unset all specified children and collection constructors and insert value\n\t\t// definitions for them (necessary for Ampersand State to treat them as values)\n\t\t_convertToValues() {\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetChildren[key] = this._children[key];\n\t\t\t\tdelete this._children[key];\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetCollections[key] = this._collections[key];\n\t\t\t\tdelete this._collections[key];\n\t\t\t});\n\t\t},\n\n\t\t// Override the initialization of children to pass in data to the constructor.\n\t\t// The default version always creates an empty model\n\t\t_initChildren() {\n\t\t\tlet child;\n\t\t\tif (!this._children) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (child in this._children) {\n\t\t\t\tlet val = this._data[child];\n\t\t\t\tif (val) {\n\t\t\t\t\t// Assume here that if it's a string, it's a url.\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the child and\n\t\t\t\t// not the constructor. We want to add the non-hydrated url if so.\n\t\t\t\tif (typeof this._children[child] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tchild,\n\t\t\t\t\t\tnew this._children[child](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t\tthis.listenTo(\n\t\t\t\t\t\tthis[child],\n\t\t\t\t\t\t\"all\",\n\t\t\t\t\t\tthis._getCachedEventBubblingHandler(child),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(child, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Override the initialization of collections to pass in data to the constructor.\n\t\t_initCollections() {\n\t\t\tlet coll;\n\t\t\tif (!this._collections) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (coll in this._collections) {\n\t\t\t\tlet val = this._data[coll];\n\t\t\t\tif (val) {\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the collection and\n\t\t\t\t// not the constructor. We want to add the non-hydrated array if so.\n\t\t\t\tif (typeof this._collections[coll] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tcoll,\n\t\t\t\t\t\tnew this._collections[coll](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(coll, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_initUnsetValues() {\n\t\t\t_.each(this._unsetChildren, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\n\t\t\t_.each(this._unsetCollections, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\t\t},\n\n\t\t// Make safeSet less safe... as we do need to run this twice\n\t\t_safeSet: function safeSet(property, value) {\n\t\t\tthis[property] = value;\n\t\t\treturn this;\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tif (path === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet url = path;\n\t\t\tif (url.slice(-1) !== \"/\" && url.indexOf(\"?\") === -1) {\n\t\t\t\turl += \"/\";\n\t\t\t}\n\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\turl += `?${qs.stringify(this.queryData, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\t/*\n\t\t * Get url\n\t\t * @return {String}\n\t\t */\n\t\turl() {\n\t\t\tif (this._url && this.isNew()) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\treturn this.getFullURLPath(this.getPlainURL());\n\t\t},\n\n\t\t// Returns url without query data\n\t\tgetPlainURL() {\n\t\t\tif (!this.modelName) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet resp = Model.prototype.url.call(this);\n\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\tif (!resp.includes(\"{\") || !resp.includes(\"}\")) {\n\t\t\t\treturn resp;\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the model.\n\t\t\t// So if you have /path/to/{model.id}/\n\t\t\t// It will check the model from \"this.model.id\" and replace\n\t\t\t// it in the url\n\t\t\tURL_TEMPLATE_RE.lastIndex = 0;\n\t\t\tconst matches = resp.match(URL_TEMPLATE_RE) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(`Model ${this.modelName} is missing value ${path}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn resp;\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\tif (this.modelName === null && !Object.keys(Api.resources).length) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (!Object.keys(Api.resources).length) {\n\t\t\t\treturn `/${this.modelName}/`;\n\t\t\t}\n\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tasync waitForReady(opts = {}, attempts = 20) {\n\t\t\tif (attempts === 0) {\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\t\t\treturn this.fetch(opts).then(() => {\n\t\t\t\tif (!this.creation_status) {\n\t\t\t\t\treturn Promise.reject(new Error(\"No creation_status key found\"));\n\t\t\t\t}\n\n\t\t\t\tif ([\"ready\", \"failed\"].indexOf(this.creation_status) > -1) {\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\treturn Promise.delay(1000).then(() =>\n\t\t\t\t\tthis.waitForReady(opts, attempts - 1),\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\tsync() {\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tserialize(opts = { derived: true }) {\n\t\t\t// Return nothing if data passed is falsy. More than likely this is\n\t\t\t// a null value\n\t\t\tif (!this._data) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// Urls only will build a model without its children/collections expanded -\n\t\t\t// it will return urls instead of the full model.\n\t\t\tconst { urlsOnly = false } = opts ?? {};\n\n\t\t\tconst data = Model.prototype.serialize.apply(this, arguments);\n\t\t\tdata.url = this.url();\n\n\t\t\tlet derived = this.getAttributes(opts);\n\t\t\tderived = Object.keys(derived).reduce((object, key) => {\n\t\t\t\tlet value = derived[key];\n\t\t\t\tif (value instanceof Collection || value instanceof Model) {\n\t\t\t\t\tvalue = value.toJSON();\n\t\t\t\t}\n\t\t\t\tobject[key] = value;\n\t\t\t\treturn object;\n\t\t\t}, {});\n\n\t\t\tconst allCollectionKeys = [\n\t\t\t\t...Object.keys(this._unsetCollections),\n\t\t\t\t...Object.keys(this._collections),\n\t\t\t];\n\n\t\t\tfor (const key of allCollectionKeys) {\n\t\t\t\tconst constructor = this._unsetCollections[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tif (typeof this._values[key] === \"string\") {\n\t\t\t\t\t\tderived[key] = this._values[key];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tderived[key] = this[key].map((m) => m.url());\n\t\t\t\t\t}\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key]) {\n\t\t\t\t\tderived[key] = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst allChildrenKeys = [\n\t\t\t\t...Object.keys(this._unsetChildren),\n\t\t\t\t...(urlsOnly ? Object.keys(this._children) : []),\n\t\t\t];\n\n\t\t\tfor (const key of allChildrenKeys) {\n\t\t\t\tconst constructor = this._unsetChildren[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key] && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _.extend(data, derived);\n\t\t},\n\n\t\t// Safely retrieve the url from a child or collection that may or may not\n\t\t// be hydrated\n\t\t_retrieveURL(item) {\n\t\t\tif (_.isUndefined(item) || item === null) {\n\t\t\t\treturn item;\n\t\t\t} else if (typeof item === \"string\") {\n\t\t\t\t// It's just a url string\n\t\t\t\treturn item;\n\t\t\t} else if (item instanceof Model) {\n\t\t\t\treturn item.isNew() && !item._url ? null : item.url();\n\t\t\t} else if (item instanceof Collection) {\n\t\t\t\treturn _.map(item.toJSON(), \"url\");\n\t\t\t} else if (_.isArray(item)) {\n\t\t\t\t// It's an array of urls or objects\n\t\t\t\treturn item.map((child) => {\n\t\t\t\t\treturn this._retrieveURL(child);\n\t\t\t\t});\n\t\t\t} else if (typeof item === \"object\" && item !== null) {\n\t\t\t\treturn typeof item.url === \"function\" ? item.url() : item.url;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t},\n);\n\nfunction replacePropertyDefinition(object, name) {\n\tfunction addCollection(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst collection = new object._collections[name](data, { parent: object });\n\t\tobject._expandedValues[name] = collection;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction addChild(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst child = new object._children[name](data, { parent: object });\n\t\tobject._expandedValues[name] = child;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction expandCollection(value) {\n\t\tobject._collections[name] = object._unsetCollections[name];\n\t\tdelete object._unsetCollections[name];\n\n\t\treturn addCollection(value);\n\t}\n\n\tfunction expandChild(value) {\n\t\tobject._children[name] = object._unsetChildren[name];\n\t\tdelete object._unsetChildren[name];\n\n\t\treturn addChild(value);\n\t}\n\n\tObject.defineProperty(object, name, {\n\t\tset(val) {\n\t\t\tif (_.includes(Object.keys(object._children), name)) {\n\t\t\t\tif (val instanceof Model) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (val !== this[name].url()) {\n\t\t\t\t\taddChild(val);\n\t\t\t\t}\n\t\t\t} else if (_.includes(Object.keys(object._collections), name)) {\n\t\t\t\tif (val instanceof Collection) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (this[name].length || val !== this[name].url()) {\n\t\t\t\t\taddCollection(val);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Model &&\n\t\t\t\t_.includes(Object.keys(object._unsetChildren), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandChild(val.toJSON());\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Collection &&\n\t\t\t\t_.includes(Object.keys(object._unsetCollections), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandCollection(val.toJSON());\n\t\t\t} else {\n\t\t\t\tobject._values[name] = val;\n\t\t\t}\n\t\t},\n\t\tget() {\n\t\t\tif (!this._values) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Trying to retrieve value ${name} of model ${object.modelName} during constructor`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.includes(Object.keys(object._collections), name) ||\n\t\t\t\t\t_.includes(Object.keys(object._children), name)) &&\n\t\t\t\t_.includes(Object.keys(object._expandedValues), name)\n\t\t\t) {\n\t\t\t\treturn object._expandedValues[name];\n\t\t\t}\n\n\t\t\tconst value = object._values[name];\n\n\t\t\tif (this.isFetching) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.isUndefined(value) || value === null) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetChildren[name] && object._unsetChildren[name].canBeEmpty\n\t\t\t\t) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetCollections[name] &&\n\t\t\t\t\tobject._unsetCollections[name].canBeEmpty\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (_.includes(Object.keys(object._unsetCollections), name)) {\n\t\t\t\treturn expandCollection(value);\n\t\t\t} else if (_.includes(Object.keys(object._unsetChildren), name)) {\n\t\t\t\treturn expandChild(value);\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tconfigurable: true,\n\t});\n}\n\n// Make matchesURL available as a static method\nBaseModel.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n\nBaseModel.getIDFromURL = function (...args) {\n\treturn this.prototype.getIDFromURL(...args);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -55,6 +55,8 @@ var DeckVersionModel = exports.DeckVersionModel = _base.BaseModel.extend(/** @le
55
55
  image_256_archive: "string",
56
56
  image_512_archive: "string",
57
57
  namespaced_key: "string",
58
+ created_date: "date",
59
+ modified_date: "date",
58
60
  creation_status: "string",
59
61
  creation_percent: "number",
60
62
  update_description: "string",
@@ -1 +1 @@
1
- {"version":3,"file":"deck-version.js","names":["require","_base","_deckLayout","_deckVersionScreenshots","_bluebird","_interopRequireDefault","_collections","_stateRegister","DeckVersionModel","exports","BaseModel","extend","modelName","props","image_128","image_256","image_512","image_128_archive","image_256_archive","image_512_archive","namespaced_key","creation_status","creation_percent","update_description","version","approved","approval","pack_root_url","upgrade_description","friendly_release_notes","has_editable_share_support","has_signing_support","point_in_time_share_policy","tags","cmsvalkey_set","children","deck","index_asset","pack","manifest_json","collections","section_set","note_set","derived","screenshots","deps","fn","DeckVersionScreenshotCollection","deckversion","template_set","templates","TemplateCollection","data","id","scope","getHooksPath","_this","_ref","arguments","length","undefined","_ref$rootAssetPath","rootAssetPath","isNew","Error","Promise","resolve","concat","hooks","then","Object","keys","getSafeAttrs","fetch","fetchTemplates","rootAssetUrl","getRootAssetUrl","getHooks","_ref2","_ref2$rootAssetPath","hooksPath","SystemJS","import","default","opts","_opts$fetchTemplates","_this2","_len","other","Array","_key","prototype","apply","shouldFetchTemplates","tap","indexAsset","_retrieveURL","split","slice","join","replace","fetchLayout","_fetchLayout","_asyncToGenerator2","_regenerator","mark","_callee","_ref3","presetID","scenarioID","queryParams","layout","wrap","_context","prev","next","preset_id","scenario_id","abrupt","reject","DeckLayoutModel","toJSON","stop","_x","toServer","register"],"sources":["../../src/models/deck-version.js"],"sourcesContent":["import \"../collections/sections.js\";\nimport \"../collections/deck-notes.js\";\nimport \"./pack.js\";\nimport \"./deck.js\";\nimport \"./asset.js\";\nimport \"./manifest-json.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { DeckLayoutModel } from \"./deck-layout.js\";\nimport { DeckVersionScreenshotCollection } from \"../collections/deck-version-screenshots.js\";\nimport Promise from \"bluebird\";\nimport { TemplateCollection } from \"../collections.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckVersionModel\n * @extends models.BaseModel\n */\nexport const DeckVersionModel = BaseModel.extend(\n\t/** @lends models.DeckVersionModel# */ {\n\t\tmodelName: \"deckversions\",\n\n\t\t/**\n\t\t * @property {string} image_128\n\t\t * @property {string} image_256\n\t\t * @property {string} image_512\n\t\t * @property {string} image_128_archive\n\t\t * @property {string} image_256_archive\n\t\t * @property {string} image_512_archive\n\t\t * @property {string} namespaced_key\n\t\t * @property {string} creation_status\n\t\t * @property {string} update_description\n\t\t * @property {version} version\n\t\t * @property {boolean} approved\n\t\t * @property {string} approval\n\t\t * @property {string} pack_root_url\n\t\t * @property {string} upgrade_description\n\t\t * @property {string} friendly_release_notes\n\t\t * @property {boolean} has_editable_share_support\n\t\t * @property {string} point_in_time_share_policy\n\t\t * @property {string[]} tags\n\t\t * @property {string[]} cmsvalkey_set\n\t\t */\n\t\tprops: {\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\timage_128_archive: \"string\",\n\t\t\timage_256_archive: \"string\",\n\t\t\timage_512_archive: \"string\",\n\t\t\tnamespaced_key: \"string\",\n\t\t\tcreation_status: \"string\",\n\t\t\tcreation_percent: \"number\",\n\t\t\tupdate_description: \"string\",\n\t\t\tversion: \"number\",\n\t\t\tapproved: \"boolean\",\n\t\t\tapproval: \"string\",\n\t\t\tpack_root_url: \"string\",\n\t\t\tupgrade_description: \"string\",\n\t\t\tfriendly_release_notes: \"string\",\n\t\t\thas_editable_share_support: \"boolean\",\n\t\t\thas_signing_support: \"boolean\",\n\t\t\tpoint_in_time_share_policy: \"string\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.AssetModel} index_asset\n\t\t * @property {models.PackModel} pack\n\t\t * @property {models.ManifestJSONModel} manifest_json\n\t\t */\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\tindex_asset: \"AssetModel\",\n\t\t\tpack: \"PackModel\",\n\t\t\tmanifest_json: \"ManifestJSONModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.SectionCollection} section_set\n\t\t * @property {models.DeckNoteCollection} note_set\n\t\t */\n\t\tcollections: {\n\t\t\tsection_set: \"SectionCollection\",\n\t\t\tnote_set: \"DeckNoteCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.DeckVersionScreenshotCollection} screenshots\n\t\t */\n\t\tderived: {\n\t\t\tscreenshots: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst screenshots = new DeckVersionScreenshotCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdeckversion: this,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t\treturn screenshots;\n\t\t\t\t},\n\t\t\t},\n\n\t\t\ttemplate_set: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst templates = new TemplateCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tdeckversion: this.id,\n\t\t\t\t\t\t\t\tscope: \"global\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t\treturn templates;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tgetHooksPath({ rootAssetPath = null } = {}) {\n\t\t\tif (this.isNew()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Can only get hooks from a fetched deckversion or at least have an ID\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (rootAssetPath) {\n\t\t\t\treturn Promise.resolve(`${rootAssetPath}${this.manifest_json.hooks}`);\n\t\t\t}\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tObject.keys(this.getSafeAttrs()).length === 1 ||\n\t\t\t\t\t\t!this.index_asset\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn this.fetch({ fetchTemplates: false });\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (this.manifest_json.isNew()) {\n\t\t\t\t\t\treturn this.manifest_json.fetch();\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst rootAssetUrl = this.getRootAssetUrl();\n\t\t\t\t\tif (!this.manifest_json.hooks) {\n\t\t\t\t\t\tthrow new Error(\"Manifest does not contain a hooks entry\");\n\t\t\t\t\t}\n\t\t\t\t\treturn `${rootAssetUrl}${this.manifest_json.hooks}`;\n\t\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @todo This should eventually return a hooks interface\n\t\t * @returns {object}\n\t\t */\n\t\tgetHooks({ rootAssetPath = null } = {}) {\n\t\t\treturn this.getHooksPath({ rootAssetPath })\n\t\t\t\t.then((hooksPath) => {\n\t\t\t\t\treturn SystemJS.import(hooksPath);\n\t\t\t\t})\n\t\t\t\t.then((hooks) => {\n\t\t\t\t\tif (hooks.default) {\n\t\t\t\t\t\treturn hooks.default;\n\t\t\t\t\t}\n\t\t\t\t\treturn hooks;\n\t\t\t\t});\n\t\t},\n\n\t\tfetch(opts, ...other) {\n\t\t\tconst fetch = BaseModel.prototype.fetch.apply(this, [opts, ...other]);\n\t\t\tconst shouldFetchTemplates = opts?.fetchTemplates ?? true;\n\n\t\t\treturn Promise.resolve(fetch).tap(() => {\n\t\t\t\t// `template_set` used to come on the deckversion response, but we have since\n\t\t\t\t// decided to request it separately (this helps with caching). To keep the app\n\t\t\t\t// working with minimal changes, we're making the extra request here.\n\t\t\t\tif (shouldFetchTemplates) {\n\t\t\t\t\treturn this.template_set.fetch();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetRootAssetUrl() {\n\t\t\tconst indexAsset = this._retrieveURL(this.index_asset);\n\t\t\treturn (\n\t\t\t\t`${indexAsset.split(\"/\").slice(0, -1).join(\"/\")}/`\n\t\t\t\t\t// HACK: We've got instances (see: myob) that are returning ports in their urls.\n\t\t\t\t\t// SystemJS gets confused and starts caching multiple versions (one with and without\n\t\t\t\t\t// this port), causing havoc. If we see it, strip it.\n\t\t\t\t\t.replace(\":443\", \"\")\n\t\t\t);\n\t\t},\n\n\t\tfetchLayout: async function ({ presetID, scenarioID }) {\n\t\t\tlet queryParams = { version: this.version };\n\t\t\tif (presetID) {\n\t\t\t\tqueryParams.preset_id = presetID;\n\t\t\t}\n\t\t\tif (scenarioID) {\n\t\t\t\tqueryParams.scenario_id = scenarioID;\n\t\t\t}\n\n\t\t\tif (!this.deck.id) {\n\t\t\t\treturn Promise.reject(new Error(\"DeckVersion has no deck.\"));\n\t\t\t}\n\n\t\t\tconst layout = new DeckLayoutModel(\n\t\t\t\t{ id: this.deck.id },\n\t\t\t\t{\n\t\t\t\t\tdata: queryParams,\n\t\t\t\t},\n\t\t\t);\n\t\t\tawait layout.fetch();\n\n\t\t\treturn layout.toJSON();\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn {\n\t\t\t\tapproval: this.approval,\n\t\t\t\tupgrade_description: this.upgrade_description,\n\t\t\t};\n\t\t},\n\t},\n);\n\nregister(\"DeckVersionModel\", DeckVersionModel);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"deck-version.js","names":["require","_base","_deckLayout","_deckVersionScreenshots","_bluebird","_interopRequireDefault","_collections","_stateRegister","DeckVersionModel","exports","BaseModel","extend","modelName","props","image_128","image_256","image_512","image_128_archive","image_256_archive","image_512_archive","namespaced_key","created_date","modified_date","creation_status","creation_percent","update_description","version","approved","approval","pack_root_url","upgrade_description","friendly_release_notes","has_editable_share_support","has_signing_support","point_in_time_share_policy","tags","cmsvalkey_set","children","deck","index_asset","pack","manifest_json","collections","section_set","note_set","derived","screenshots","deps","fn","DeckVersionScreenshotCollection","deckversion","template_set","templates","TemplateCollection","data","id","scope","getHooksPath","_this","_ref","arguments","length","undefined","_ref$rootAssetPath","rootAssetPath","isNew","Error","Promise","resolve","concat","hooks","then","Object","keys","getSafeAttrs","fetch","fetchTemplates","rootAssetUrl","getRootAssetUrl","getHooks","_ref2","_ref2$rootAssetPath","hooksPath","SystemJS","import","default","opts","_opts$fetchTemplates","_this2","_len","other","Array","_key","prototype","apply","shouldFetchTemplates","tap","indexAsset","_retrieveURL","split","slice","join","replace","fetchLayout","_fetchLayout","_asyncToGenerator2","_regenerator","mark","_callee","_ref3","presetID","scenarioID","queryParams","layout","wrap","_context","prev","next","preset_id","scenario_id","abrupt","reject","DeckLayoutModel","toJSON","stop","_x","toServer","register"],"sources":["../../src/models/deck-version.js"],"sourcesContent":["import \"../collections/sections.js\";\nimport \"../collections/deck-notes.js\";\nimport \"./pack.js\";\nimport \"./deck.js\";\nimport \"./asset.js\";\nimport \"./manifest-json.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { DeckLayoutModel } from \"./deck-layout.js\";\nimport { DeckVersionScreenshotCollection } from \"../collections/deck-version-screenshots.js\";\nimport Promise from \"bluebird\";\nimport { TemplateCollection } from \"../collections.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckVersionModel\n * @extends models.BaseModel\n */\nexport const DeckVersionModel = BaseModel.extend(\n\t/** @lends models.DeckVersionModel# */ {\n\t\tmodelName: \"deckversions\",\n\n\t\t/**\n\t\t * @property {string} image_128\n\t\t * @property {string} image_256\n\t\t * @property {string} image_512\n\t\t * @property {string} image_128_archive\n\t\t * @property {string} image_256_archive\n\t\t * @property {string} image_512_archive\n\t\t * @property {string} namespaced_key\n\t\t * @property {string} creation_status\n\t\t * @property {string} update_description\n\t\t * @property {version} version\n\t\t * @property {boolean} approved\n\t\t * @property {string} approval\n\t\t * @property {string} pack_root_url\n\t\t * @property {string} upgrade_description\n\t\t * @property {string} friendly_release_notes\n\t\t * @property {boolean} has_editable_share_support\n\t\t * @property {string} point_in_time_share_policy\n\t\t * @property {string[]} tags\n\t\t * @property {string[]} cmsvalkey_set\n\t\t */\n\t\tprops: {\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\timage_128_archive: \"string\",\n\t\t\timage_256_archive: \"string\",\n\t\t\timage_512_archive: \"string\",\n\t\t\tnamespaced_key: \"string\",\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tcreation_status: \"string\",\n\t\t\tcreation_percent: \"number\",\n\t\t\tupdate_description: \"string\",\n\t\t\tversion: \"number\",\n\t\t\tapproved: \"boolean\",\n\t\t\tapproval: \"string\",\n\t\t\tpack_root_url: \"string\",\n\t\t\tupgrade_description: \"string\",\n\t\t\tfriendly_release_notes: \"string\",\n\t\t\thas_editable_share_support: \"boolean\",\n\t\t\thas_signing_support: \"boolean\",\n\t\t\tpoint_in_time_share_policy: \"string\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.AssetModel} index_asset\n\t\t * @property {models.PackModel} pack\n\t\t * @property {models.ManifestJSONModel} manifest_json\n\t\t */\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\tindex_asset: \"AssetModel\",\n\t\t\tpack: \"PackModel\",\n\t\t\tmanifest_json: \"ManifestJSONModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.SectionCollection} section_set\n\t\t * @property {models.DeckNoteCollection} note_set\n\t\t */\n\t\tcollections: {\n\t\t\tsection_set: \"SectionCollection\",\n\t\t\tnote_set: \"DeckNoteCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.DeckVersionScreenshotCollection} screenshots\n\t\t */\n\t\tderived: {\n\t\t\tscreenshots: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst screenshots = new DeckVersionScreenshotCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdeckversion: this,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t\treturn screenshots;\n\t\t\t\t},\n\t\t\t},\n\n\t\t\ttemplate_set: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst templates = new TemplateCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tdeckversion: this.id,\n\t\t\t\t\t\t\t\tscope: \"global\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t\treturn templates;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tgetHooksPath({ rootAssetPath = null } = {}) {\n\t\t\tif (this.isNew()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Can only get hooks from a fetched deckversion or at least have an ID\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (rootAssetPath) {\n\t\t\t\treturn Promise.resolve(`${rootAssetPath}${this.manifest_json.hooks}`);\n\t\t\t}\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tObject.keys(this.getSafeAttrs()).length === 1 ||\n\t\t\t\t\t\t!this.index_asset\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn this.fetch({ fetchTemplates: false });\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (this.manifest_json.isNew()) {\n\t\t\t\t\t\treturn this.manifest_json.fetch();\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst rootAssetUrl = this.getRootAssetUrl();\n\t\t\t\t\tif (!this.manifest_json.hooks) {\n\t\t\t\t\t\tthrow new Error(\"Manifest does not contain a hooks entry\");\n\t\t\t\t\t}\n\t\t\t\t\treturn `${rootAssetUrl}${this.manifest_json.hooks}`;\n\t\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @todo This should eventually return a hooks interface\n\t\t * @returns {object}\n\t\t */\n\t\tgetHooks({ rootAssetPath = null } = {}) {\n\t\t\treturn this.getHooksPath({ rootAssetPath })\n\t\t\t\t.then((hooksPath) => {\n\t\t\t\t\treturn SystemJS.import(hooksPath);\n\t\t\t\t})\n\t\t\t\t.then((hooks) => {\n\t\t\t\t\tif (hooks.default) {\n\t\t\t\t\t\treturn hooks.default;\n\t\t\t\t\t}\n\t\t\t\t\treturn hooks;\n\t\t\t\t});\n\t\t},\n\n\t\tfetch(opts, ...other) {\n\t\t\tconst fetch = BaseModel.prototype.fetch.apply(this, [opts, ...other]);\n\t\t\tconst shouldFetchTemplates = opts?.fetchTemplates ?? true;\n\n\t\t\treturn Promise.resolve(fetch).tap(() => {\n\t\t\t\t// `template_set` used to come on the deckversion response, but we have since\n\t\t\t\t// decided to request it separately (this helps with caching). To keep the app\n\t\t\t\t// working with minimal changes, we're making the extra request here.\n\t\t\t\tif (shouldFetchTemplates) {\n\t\t\t\t\treturn this.template_set.fetch();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetRootAssetUrl() {\n\t\t\tconst indexAsset = this._retrieveURL(this.index_asset);\n\t\t\treturn (\n\t\t\t\t`${indexAsset.split(\"/\").slice(0, -1).join(\"/\")}/`\n\t\t\t\t\t// HACK: We've got instances (see: myob) that are returning ports in their urls.\n\t\t\t\t\t// SystemJS gets confused and starts caching multiple versions (one with and without\n\t\t\t\t\t// this port), causing havoc. If we see it, strip it.\n\t\t\t\t\t.replace(\":443\", \"\")\n\t\t\t);\n\t\t},\n\n\t\tfetchLayout: async function ({ presetID, scenarioID }) {\n\t\t\tlet queryParams = { version: this.version };\n\t\t\tif (presetID) {\n\t\t\t\tqueryParams.preset_id = presetID;\n\t\t\t}\n\t\t\tif (scenarioID) {\n\t\t\t\tqueryParams.scenario_id = scenarioID;\n\t\t\t}\n\n\t\t\tif (!this.deck.id) {\n\t\t\t\treturn Promise.reject(new Error(\"DeckVersion has no deck.\"));\n\t\t\t}\n\n\t\t\tconst layout = new DeckLayoutModel(\n\t\t\t\t{ id: this.deck.id },\n\t\t\t\t{\n\t\t\t\t\tdata: queryParams,\n\t\t\t\t},\n\t\t\t);\n\t\t\tawait layout.fetch();\n\n\t\t\treturn layout.toJSON();\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn {\n\t\t\t\tapproval: this.approval,\n\t\t\t\tupgrade_description: this.upgrade_description,\n\t\t\t};\n\t\t},\n\t},\n);\n\nregister(\"DeckVersionModel\", DeckVersionModel);\n"],"mappings":"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","ignoreList":[]}
@@ -104,7 +104,7 @@ var DispatchModel = exports.DispatchModel = _base.BaseModel.extend(/** @lends mo
104
104
  if (this.snapshot) {
105
105
  data.snapshot = this._retrieveURL(this.snapshot);
106
106
  }
107
- return data;
107
+ return _lodash.default.omit(data, ["contentModel"]);
108
108
  },
109
109
  serialize: function serialize() {
110
110
  var data = _base.BaseModel.prototype.serialize.call(this);
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","names":["require","_base","_hostedPreso","_lodash","_interopRequireDefault","_stateRegister","DispatchModel","exports","BaseModel","extend","modelName","urlMatchKeys","props","additional_recipients","content","content_expires_at","created_date","creation_status","delivered_date","delivery_report","display_action","generate_content","generate_content_args","message_body","message_body_mime","message_subject","method","send_to_self","modified_date","choicelist","content_type","noun","children","appointment","snapshot","preview","collections","contact_set","attachment_set","derived","contentModel","deps","fn","HostedPresoModel","toServer","data","serialize","_","map","toJSON","_retrieveURL","prototype","call","register"],"sources":["../../src/models/dispatch.js"],"sourcesContent":["import \"./appointment.js\";\nimport \"./snapshot.js\";\nimport \"./dispatch-preview.js\";\nimport \"../collections/contacts.js\";\nimport \"../collections/uploads.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { HostedPresoModel } from \"./hosted-preso.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DispatchModel\n * @extends models.BaseModel\n */\nexport const DispatchModel = BaseModel.extend(\n\t/** @lends models.DispatchModel# */ {\n\t\tmodelName: \"dispatches\",\n\n\t\turlMatchKeys: {\n\t\t\t\"appointment.id\": \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} additional_recipients\n\t\t * @property {number} content_id\n\t\t * @property {date} created_date\n\t\t * @property {date} content_expires_at\n\t\t * @property {string} creation_state\n\t\t * @property {date} delivered_date\n\t\t * @property {string[]} delivery_report\n\t\t * @property {string} display_action\n\t\t * @property {string} generate_content\n\t\t * @property {object} generate_content_args\n\t\t * @property {string} message_body\n\t\t * @property {string} message_mimetype\n\t\t * @property {string} message_subject\n\t\t * @property {string} method\n\t\t * @property {bool} send_to_self\n\t\t * @property {date} modified_date\n\t\t * @property {array} choicelist\n\t\t */\n\t\tprops: {\n\t\t\tadditional_recipients: \"string\",\n\t\t\tcontent: \"string\",\n\t\t\tcontent_expires_at: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tcreation_status: \"string\",\n\t\t\tdelivered_date: \"date\",\n\t\t\tdelivery_report: \"array\",\n\t\t\tdisplay_action: \"string\",\n\t\t\tgenerate_content: \"string\",\n\t\t\tgenerate_content_args: \"object\",\n\t\t\tmessage_body: \"string\",\n\t\t\tmessage_body_mime: \"string\",\n\t\t\tmessage_subject: \"string\",\n\t\t\tmethod: \"string\",\n\t\t\tsend_to_self: \"boolean\",\n\t\t\tmodified_date: \"date\",\n\t\t\tchoicelist: \"array\",\n\t\t\tcontent_type: \"string\",\n\t\t\t// this is needed for the shortened dispatch which activities return\n\t\t\tnoun: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AppointmentModel} appointment\n\t\t * @property {models.SnapshotModel} snapshot\n\t\t */\n\t\tchildren: {\n\t\t\tappointment: \"AppointmentModel\",\n\t\t\tsnapshot: \"SnapshotModel\",\n\t\t\tpreview: \"DispatchPreviewModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.ContactCollection} contact_set\n\t\t * @property {models.UploadCollection} attachment_set\n\t\t */\n\t\tcollections: {\n\t\t\tcontact_set: \"ContactCollection\",\n\t\t\tattachment_set: \"UploadCollection\",\n\t\t},\n\n\t\tderived: {\n\t\t\tcontentModel: {\n\t\t\t\tdeps: [\"generate_content\", \"content\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tif (this.generate_content === \"preso_view\") {\n\t\t\t\t\t\treturn new HostedPresoModel(this.content);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = this.serialize();\n\t\t\tif (this.contact_set) {\n\t\t\t\tdata.contact_set = _.map(this.contact_set.toJSON(), \"url\");\n\t\t\t}\n\t\t\tif (this.attachment_set) {\n\t\t\t\tdata.attachment_set = _.map(this.attachment_set.toJSON(), \"url\");\n\t\t\t}\n\n\t\t\tif (this.snapshot) {\n\t\t\t\tdata.snapshot = this._retrieveURL(this.snapshot);\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst data = BaseModel.prototype.serialize.call(this);\n\t\t\tdata.appointment = this._retrieveURL(this.appointment);\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"DispatchModel\", DispatchModel);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dispatch.js","names":["require","_base","_hostedPreso","_lodash","_interopRequireDefault","_stateRegister","DispatchModel","exports","BaseModel","extend","modelName","urlMatchKeys","props","additional_recipients","content","content_expires_at","created_date","creation_status","delivered_date","delivery_report","display_action","generate_content","generate_content_args","message_body","message_body_mime","message_subject","method","send_to_self","modified_date","choicelist","content_type","noun","children","appointment","snapshot","preview","collections","contact_set","attachment_set","derived","contentModel","deps","fn","HostedPresoModel","toServer","data","serialize","_","map","toJSON","_retrieveURL","omit","prototype","call","register"],"sources":["../../src/models/dispatch.js"],"sourcesContent":["import \"./appointment.js\";\nimport \"./snapshot.js\";\nimport \"./dispatch-preview.js\";\nimport \"../collections/contacts.js\";\nimport \"../collections/uploads.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { HostedPresoModel } from \"./hosted-preso.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DispatchModel\n * @extends models.BaseModel\n */\nexport const DispatchModel = BaseModel.extend(\n\t/** @lends models.DispatchModel# */ {\n\t\tmodelName: \"dispatches\",\n\n\t\turlMatchKeys: {\n\t\t\t\"appointment.id\": \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} additional_recipients\n\t\t * @property {number} content_id\n\t\t * @property {date} created_date\n\t\t * @property {date} content_expires_at\n\t\t * @property {string} creation_state\n\t\t * @property {date} delivered_date\n\t\t * @property {string[]} delivery_report\n\t\t * @property {string} display_action\n\t\t * @property {string} generate_content\n\t\t * @property {object} generate_content_args\n\t\t * @property {string} message_body\n\t\t * @property {string} message_mimetype\n\t\t * @property {string} message_subject\n\t\t * @property {string} method\n\t\t * @property {bool} send_to_self\n\t\t * @property {date} modified_date\n\t\t * @property {array} choicelist\n\t\t */\n\t\tprops: {\n\t\t\tadditional_recipients: \"string\",\n\t\t\tcontent: \"string\",\n\t\t\tcontent_expires_at: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tcreation_status: \"string\",\n\t\t\tdelivered_date: \"date\",\n\t\t\tdelivery_report: \"array\",\n\t\t\tdisplay_action: \"string\",\n\t\t\tgenerate_content: \"string\",\n\t\t\tgenerate_content_args: \"object\",\n\t\t\tmessage_body: \"string\",\n\t\t\tmessage_body_mime: \"string\",\n\t\t\tmessage_subject: \"string\",\n\t\t\tmethod: \"string\",\n\t\t\tsend_to_self: \"boolean\",\n\t\t\tmodified_date: \"date\",\n\t\t\tchoicelist: \"array\",\n\t\t\tcontent_type: \"string\",\n\t\t\t// this is needed for the shortened dispatch which activities return\n\t\t\tnoun: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AppointmentModel} appointment\n\t\t * @property {models.SnapshotModel} snapshot\n\t\t */\n\t\tchildren: {\n\t\t\tappointment: \"AppointmentModel\",\n\t\t\tsnapshot: \"SnapshotModel\",\n\t\t\tpreview: \"DispatchPreviewModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.ContactCollection} contact_set\n\t\t * @property {models.UploadCollection} attachment_set\n\t\t */\n\t\tcollections: {\n\t\t\tcontact_set: \"ContactCollection\",\n\t\t\tattachment_set: \"UploadCollection\",\n\t\t},\n\n\t\tderived: {\n\t\t\tcontentModel: {\n\t\t\t\tdeps: [\"generate_content\", \"content\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tif (this.generate_content === \"preso_view\") {\n\t\t\t\t\t\treturn new HostedPresoModel(this.content);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = this.serialize();\n\t\t\tif (this.contact_set) {\n\t\t\t\tdata.contact_set = _.map(this.contact_set.toJSON(), \"url\");\n\t\t\t}\n\t\t\tif (this.attachment_set) {\n\t\t\t\tdata.attachment_set = _.map(this.attachment_set.toJSON(), \"url\");\n\t\t\t}\n\n\t\t\tif (this.snapshot) {\n\t\t\t\tdata.snapshot = this._retrieveURL(this.snapshot);\n\t\t\t}\n\n\t\t\treturn _.omit(data, [\"contentModel\"]);\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst data = BaseModel.prototype.serialize.call(this);\n\t\t\tdata.appointment = this._retrieveURL(this.appointment);\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"DispatchModel\", DispatchModel);\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.RoomModel = void 0;
7
7
  var _base = require("./base.js");
8
8
  var _stateRegister = require("../state-register.js");
9
+ require("./hosted-preso.js");
9
10
  /**
10
11
  * @constructor
11
12
  * @alias models.RoomModel
@@ -40,6 +41,9 @@ var RoomModel = exports.RoomModel = _base.BaseModel.extend(/** @lends models.Roo
40
41
  rtms_token: "string",
41
42
  wamp_version: "string",
42
43
  websocket_server_uri: "string"
44
+ },
45
+ children: {
46
+ hostedpreso: "HostedPresoModel"
43
47
  }
44
48
  });
45
49
  (0, _stateRegister.register)("RoomModel", RoomModel);
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","names":["_base","require","_stateRegister","RoomModel","exports","BaseModel","extend","modelName","props","channel_id","created_date","creation_status","longpoll_server_uri","modified_date","room_token","rtms_namespace","rtms_uri","rtms_version","rtms_token","wamp_version","websocket_server_uri","register"],"sources":["../../src/models/room.js"],"sourcesContent":["import { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.RoomModel\n * @extends models.BaseModel\n */\nexport const RoomModel = BaseModel.extend(\n\t/** @lends models.RoomModel# */ {\n\t\tmodelName: \"rooms\",\n\n\t\t/**\n\t\t * @property {string} channel_id\n\t\t * @property {date} created_date\n\t\t * @property {string} creation_status\n\t\t * @property {string} longpoll_server_uri\n\t\t * @property {date} modified_date\n\t\t * @property {string} room_token\n\t\t * @property {string} rtms_namespace\n\t\t * @property {string} rtms_uri\n\t\t * @property {string} rtms_version\n\t\t * @property {string} rtms_token\n\t\t * @property {string} wamp_version\n\t\t * @property {string} websocket_server_uri\n\t\t */\n\t\tprops: {\n\t\t\tchannel_id: \"string\",\n\t\t\tcreated_date: \"date\",\n\t\t\tcreation_status: \"string\",\n\t\t\tlongpoll_server_uri: \"string\",\n\t\t\tmodified_date: \"date\",\n\t\t\troom_token: \"string\",\n\t\t\trtms_namespace: \"string\",\n\t\t\trtms_uri: \"string\",\n\t\t\trtms_version: \"string\",\n\t\t\trtms_token: \"string\",\n\t\t\twamp_version: \"string\",\n\t\t\twebsocket_server_uri: \"string\",\n\t\t},\n\t},\n);\n\nregister(\"RoomModel\", RoomModel);\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,eAAS,CAACC,MAAM,CACxC,+BAAgC;EAC/BC,SAAS,EAAE,OAAO;EAElB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,MAAM;IACpBC,eAAe,EAAE,QAAQ;IACzBC,mBAAmB,EAAE,QAAQ;IAC7BC,aAAa,EAAE,MAAM;IACrBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE,QAAQ;IAClBC,YAAY,EAAE,QAAQ;IACtBC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,QAAQ;IACtBC,oBAAoB,EAAE;EACvB;AACD,CACD,CAAC;AAED,IAAAC,uBAAQ,EAAC,WAAW,EAAElB,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"room.js","names":["_base","require","_stateRegister","RoomModel","exports","BaseModel","extend","modelName","props","channel_id","created_date","creation_status","longpoll_server_uri","modified_date","room_token","rtms_namespace","rtms_uri","rtms_version","rtms_token","wamp_version","websocket_server_uri","children","hostedpreso","register"],"sources":["../../src/models/room.js"],"sourcesContent":["import { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\nimport \"./hosted-preso.js\";\n\n/**\n * @constructor\n * @alias models.RoomModel\n * @extends models.BaseModel\n */\nexport const RoomModel = BaseModel.extend(\n\t/** @lends models.RoomModel# */ {\n\t\tmodelName: \"rooms\",\n\n\t\t/**\n\t\t * @property {string} channel_id\n\t\t * @property {date} created_date\n\t\t * @property {string} creation_status\n\t\t * @property {string} longpoll_server_uri\n\t\t * @property {date} modified_date\n\t\t * @property {string} room_token\n\t\t * @property {string} rtms_namespace\n\t\t * @property {string} rtms_uri\n\t\t * @property {string} rtms_version\n\t\t * @property {string} rtms_token\n\t\t * @property {string} wamp_version\n\t\t * @property {string} websocket_server_uri\n\t\t */\n\t\tprops: {\n\t\t\tchannel_id: \"string\",\n\t\t\tcreated_date: \"date\",\n\t\t\tcreation_status: \"string\",\n\t\t\tlongpoll_server_uri: \"string\",\n\t\t\tmodified_date: \"date\",\n\t\t\troom_token: \"string\",\n\t\t\trtms_namespace: \"string\",\n\t\t\trtms_uri: \"string\",\n\t\t\trtms_version: \"string\",\n\t\t\trtms_token: \"string\",\n\t\t\twamp_version: \"string\",\n\t\t\twebsocket_server_uri: \"string\",\n\t\t},\n\n\t\tchildren: {\n\t\t\thostedpreso: \"HostedPresoModel\",\n\t\t},\n\t},\n);\n\nregister(\"RoomModel\", RoomModel);\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACAA,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,eAAS,CAACC,MAAM,CACxC,+BAAgC;EAC/BC,SAAS,EAAE,OAAO;EAElB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,MAAM;IACpBC,eAAe,EAAE,QAAQ;IACzBC,mBAAmB,EAAE,QAAQ;IAC7BC,aAAa,EAAE,MAAM;IACrBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE,QAAQ;IAClBC,YAAY,EAAE,QAAQ;IACtBC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,QAAQ;IACtBC,oBAAoB,EAAE;EACvB,CAAC;EAEDC,QAAQ,EAAE;IACTC,WAAW,EAAE;EACd;AACD,CACD,CAAC;AAED,IAAAC,uBAAQ,EAAC,WAAW,EAAEpB,SAAS,CAAC","ignoreList":[]}
@@ -132,8 +132,8 @@ var UserModel = exports.UserModel = _base.BaseModel.extend(/** @lends models.Use
132
132
  };
133
133
  presomanager.canModifyNotes = presomanager.canAddGlobalNotes || presomanager.canAddTeamNotes;
134
134
  presomanager.canModifyTemporarySlides = presomanager.isGlobalTemporarySlideManager || presomanager.isTeamTemporarySlideManager;
135
- presomanager.isPresoManagerUser = presomanager.canModifyTemporarySlides || presomanager.canModifyNotes || presomanager.canModifyContent;
136
135
  presomanager.canModifyContent = this.actions.indexOf("Create Content") > -1 || this.actions.indexOf("Manage Team Editable Text") > -1;
136
+ presomanager.isPresoManagerUser = presomanager.canModifyTemporarySlides || presomanager.canModifyNotes || presomanager.canModifyContent;
137
137
  var appointments = {
138
138
  canUploadCustomSlides: this.actions.indexOf("Upload Custom Slides") > -1 && this.actions.indexOf("Upload Custom Sections") > -1,
139
139
  isContentAdmin: this.actions.indexOf("Administer Content") > -1,
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","names":["require","_api","_auth","_base","_superagentBluebirdPromise","_interopRequireDefault","_stateRegister","UserModel","exports","BaseModel","extend","modelName","initialize","options","arguments","length","undefined","self","anon","props","actions","type","default","preferences","notification_sender","email_signature","app_prefs","timezone","eula_key","calendar_feed","date_joined","email","first_name","last_name","is_active","is_staff","is_superuser","is_support","is_manager","last_login","username","profile","rtms_topic","rtms_token","last_reset_request","children","tenancy","collections","groups","team_set","derived","fullName","deps","fn","concat","permissions","presets","canCreateCompanyPresets","indexOf","canCreateTeamPresets","presomanager","isGlobalTemporarySlideManager","isTeamTemporarySlideManager","isContentAdmin","isTeamContentManager","canAddGlobalNotes","canAddTeamNotes","isContentCreator","canModifyNotes","canModifyTemporarySlides","isPresoManagerUser","canModifyContent","appointments","canUploadCustomSlides","telePresenter","livePresenter","canViewPresosOfOthers","canShare","canPresent","canCreateWithoutTeam","canUseClosedCaptions","canCreateMutedAppointments","canHandoverPresosOfOthers","canChooseShareVisAnyone","canChooseShareVis2fa","customers","signing","canUseSigning","includes","fetchJwtLogin","redirectURL","authURL","Api","getResourceURL","SuperAgentRequest","set","Auth","headers","then","resp","body","url","fetch","_this","prototype","apply","tap","originalUrl","call","toServer","data","id","map","group","register"],"sources":["../../src/models/user.js"],"sourcesContent":["import \"./tenancy.js\";\nimport \"../collections/groups.js\";\nimport \"../collections/teams.js\";\n\nimport { Api } from \"../api.js\";\nimport { Auth } from \"../auth.js\";\nimport { BaseModel } from \"./base.js\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport { register } from \"../state-register.js\";\n\n/**\n\n * @constructor\n * @alias models.UserModel\n * @extends models.BaseModel\n */\nexport const UserModel = BaseModel.extend(\n\t/** @lends models.UserModel# */ {\n\t\tmodelName: \"users\",\n\n\t\tinitialize(options = { self: false, anon: false }) {\n\t\t\tthis.self = options && options.self ? options.self : false;\n\t\t\tthis.anon = options && options.anon ? options.anon : false;\n\t\t},\n\n\t\t/**\n\t\t * @property {string[]} actions\n\t\t * @property {date} date_joined\n\t\t * @property {string} email\n\t\t * @property {string} first_name\n\t\t * @property {string} last_name\n\t\t * @property {boolean} is_active\n\t\t * @property {boolean} is_staff\n\t\t * @property {boolean} is_superuser\n\t\t * @property {boolean} is_support\n\t\t * @property {boolean} is_manager\n\t\t * @property {date} last_login\n\t\t * @property {string} username\n\t\t * @property {object} preferences\n\t\t * @property {object} profile\n\t\t * @property {string} rtms_topic\n\t\t * @property {string} rtms_token\n\t\t * @property {date} last_reset_request\n\t\t */\n\t\tprops: {\n\t\t\tactions: {\n\t\t\t\ttype: \"array\",\n\t\t\t\tdefault: () => [],\n\t\t\t},\n\t\t\tpreferences: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: () => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tnotification_sender: \"default\",\n\t\t\t\t\t\temail_signature: \"\",\n\t\t\t\t\t\tapp_prefs: {},\n\t\t\t\t\t\ttimezone: \"\",\n\t\t\t\t\t\teula_key: \"\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\tcalendar_feed: \"string\",\n\t\t\tdate_joined: \"date\",\n\t\t\temail: \"string\",\n\t\t\tfirst_name: \"string\",\n\t\t\tlast_name: \"string\",\n\t\t\tis_active: \"boolean\",\n\t\t\tis_staff: \"boolean\",\n\t\t\tis_superuser: \"boolean\",\n\t\t\tis_support: \"boolean\",\n\t\t\tis_manager: \"boolean\",\n\t\t\tlast_login: \"date\",\n\t\t\tusername: \"string\",\n\t\t\tprofile: \"object\",\n\t\t\trtms_topic: \"string\",\n\t\t\trtms_token: \"string\",\n\t\t\tlast_reset_request: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.TenancyModel} tenancy\n\t\t */\n\t\tchildren: {\n\t\t\ttenancy: \"TenancyModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.GroupCollection} groups\n\t\t * @property {collections.TeamCollection} team_set\n\t\t */\n\t\tcollections: {\n\t\t\tgroups: \"GroupCollection\",\n\t\t\tteam_set: \"TeamCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} fullName - The full name of the user\n\t\t * @property {object} permissions - The one place for testing user permissions\n\t\t * @property {boolean} permissions.canCreateCompanyPresets - Has ability to create a company preset\n\t\t */\n\t\tderived: {\n\t\t\tfullName: {\n\t\t\t\tdeps: [\"first_name\", \"last_name\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\treturn `${this.first_name} ${this.last_name}`;\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tpermissions: {\n\t\t\t\tdeps: [\"actions\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst presets = {\n\t\t\t\t\t\tcanCreateCompanyPresets:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Deck Presets\") > -1,\n\t\t\t\t\t\tcanCreateTeamPresets:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Presets\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst presomanager = {\n\t\t\t\t\t\t// Can create or delete slides\n\t\t\t\t\t\tisGlobalTemporarySlideManager:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Temporary Slides\") > -1,\n\t\t\t\t\t\tisTeamTemporarySlideManager:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Temporary Slides\") > -1,\n\n\t\t\t\t\t\t// Can update content within a slide (text, images, etc.)\n\t\t\t\t\t\tisContentAdmin: this.actions.indexOf(\"Administer Content\") > -1,\n\t\t\t\t\t\tisTeamContentManager:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Editable Text\") > -1,\n\n\t\t\t\t\t\tcanAddGlobalNotes: this.actions.indexOf(\"Manage Notes\") > -1,\n\t\t\t\t\t\tcanAddTeamNotes: this.actions.indexOf(\"Manage Team Notes\") > -1,\n\n\t\t\t\t\t\t// This is someone that uses the CDK/publishes content, not someone\n\t\t\t\t\t\t// that edits content.\n\t\t\t\t\t\tisContentCreator: this.actions.indexOf(\"Create Content\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tpresomanager.canModifyNotes =\n\t\t\t\t\t\tpresomanager.canAddGlobalNotes || presomanager.canAddTeamNotes;\n\n\t\t\t\t\tpresomanager.canModifyTemporarySlides =\n\t\t\t\t\t\tpresomanager.isGlobalTemporarySlideManager ||\n\t\t\t\t\t\tpresomanager.isTeamTemporarySlideManager;\n\n\t\t\t\t\tpresomanager.isPresoManagerUser =\n\t\t\t\t\t\tpresomanager.canModifyTemporarySlides ||\n\t\t\t\t\t\tpresomanager.canModifyNotes ||\n\t\t\t\t\t\tpresomanager.canModifyContent;\n\n\t\t\t\t\tpresomanager.canModifyContent =\n\t\t\t\t\t\tthis.actions.indexOf(\"Create Content\") > -1 ||\n\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Editable Text\") > -1;\n\n\t\t\t\t\tconst appointments = {\n\t\t\t\t\t\tcanUploadCustomSlides:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Upload Custom Slides\") > -1 &&\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Upload Custom Sections\") > -1,\n\n\t\t\t\t\t\tisContentAdmin: this.actions.indexOf(\"Administer Content\") > -1,\n\t\t\t\t\t\tisContentCreator: this.actions.indexOf(\"Create Content\") > -1,\n\n\t\t\t\t\t\ttelePresenter: this.actions.indexOf(\"TelePresent\") > -1,\n\t\t\t\t\t\tlivePresenter: this.actions.indexOf(\"LivePresent\") > -1,\n\n\t\t\t\t\t\tcanViewPresosOfOthers:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"View Presos of Others\") > -1,\n\t\t\t\t\t\tcanShare: this.actions.indexOf(\"Share preso\") > -1,\n\t\t\t\t\t\tcanPresent: this.actions.indexOf(\"Present preso\") > -1,\n\t\t\t\t\t\tcanCreateWithoutTeam:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Allow Teamless Appointments\") > -1,\n\t\t\t\t\t\tcanUseClosedCaptions:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Use Closed Captions\") > -1,\n\t\t\t\t\t\tcanCreateMutedAppointments:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Create Muted Appointments\") > -1,\n\t\t\t\t\t\tcanHandoverPresosOfOthers:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Handover Presos of Others\") > -1,\n\t\t\t\t\t\tcanChooseShareVisAnyone:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Choose Share Visibility Anyone\") > -1,\n\t\t\t\t\t\tcanChooseShareVis2fa:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Choose Share Visibility 2FA\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst customers = {\n\t\t\t\t\t\tcanCreateWithoutTeam:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Allow Teamless Customers\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst signing = {\n\t\t\t\t\t\tcanUseSigning: this.actions.includes(\"Use Signing\"),\n\t\t\t\t\t};\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpresets,\n\t\t\t\t\t\tappointments,\n\t\t\t\t\t\tpresomanager,\n\t\t\t\t\t\tcustomers,\n\t\t\t\t\t\tsigning,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tfetchJwtLogin(redirectURL = null) {\n\t\t\tconst authURL = Api.getResourceURL(\"hq-authorized-link\");\n\n\t\t\treturn SuperAgentRequest(\"GET\", authURL)\n\t\t\t\t.set(Auth.headers)\n\t\t\t\t.then((resp) => {\n\t\t\t\t\treturn resp.body.url + (redirectURL ? `&next=${redirectURL}` : \"\");\n\t\t\t\t});\n\t\t},\n\n\t\tfetch() {\n\t\t\tconst fetch = BaseModel.prototype.fetch.apply(this, arguments);\n\n\t\t\treturn fetch.tap(() => {\n\t\t\t\tif (this.self) {\n\t\t\t\t\tthis.self = false;\n\t\t\t\t}\n\n\t\t\t\tif (this.anon) {\n\t\t\t\t\tthis.anon = false;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\turl() {\n\t\t\tconst originalUrl = BaseModel.prototype.url.call(this);\n\t\t\tif (this.self) {\n\t\t\t\treturn `${originalUrl}self/`;\n\t\t\t} else if (this.anon) {\n\t\t\t\treturn `${originalUrl}anon/`;\n\t\t\t}\n\t\t\treturn originalUrl;\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\tid: this.id,\n\t\t\t\tpreferences: this.preferences,\n\t\t\t};\n\n\t\t\tif (this.groups) {\n\t\t\t\tdata.groups = this.groups.map((group) => group.url());\n\t\t\t}\n\n\t\t\tif (!data.preferences.timezone) {\n\t\t\t\tdelete data.preferences.timezone;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"UserModel\", UserModel);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"user.js","names":["require","_api","_auth","_base","_superagentBluebirdPromise","_interopRequireDefault","_stateRegister","UserModel","exports","BaseModel","extend","modelName","initialize","options","arguments","length","undefined","self","anon","props","actions","type","default","preferences","notification_sender","email_signature","app_prefs","timezone","eula_key","calendar_feed","date_joined","email","first_name","last_name","is_active","is_staff","is_superuser","is_support","is_manager","last_login","username","profile","rtms_topic","rtms_token","last_reset_request","children","tenancy","collections","groups","team_set","derived","fullName","deps","fn","concat","permissions","presets","canCreateCompanyPresets","indexOf","canCreateTeamPresets","presomanager","isGlobalTemporarySlideManager","isTeamTemporarySlideManager","isContentAdmin","isTeamContentManager","canAddGlobalNotes","canAddTeamNotes","isContentCreator","canModifyNotes","canModifyTemporarySlides","canModifyContent","isPresoManagerUser","appointments","canUploadCustomSlides","telePresenter","livePresenter","canViewPresosOfOthers","canShare","canPresent","canCreateWithoutTeam","canUseClosedCaptions","canCreateMutedAppointments","canHandoverPresosOfOthers","canChooseShareVisAnyone","canChooseShareVis2fa","customers","signing","canUseSigning","includes","fetchJwtLogin","redirectURL","authURL","Api","getResourceURL","SuperAgentRequest","set","Auth","headers","then","resp","body","url","fetch","_this","prototype","apply","tap","originalUrl","call","toServer","data","id","map","group","register"],"sources":["../../src/models/user.js"],"sourcesContent":["import \"./tenancy.js\";\nimport \"../collections/groups.js\";\nimport \"../collections/teams.js\";\n\nimport { Api } from \"../api.js\";\nimport { Auth } from \"../auth.js\";\nimport { BaseModel } from \"./base.js\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport { register } from \"../state-register.js\";\n\n/**\n\n * @constructor\n * @alias models.UserModel\n * @extends models.BaseModel\n */\nexport const UserModel = BaseModel.extend(\n\t/** @lends models.UserModel# */ {\n\t\tmodelName: \"users\",\n\n\t\tinitialize(options = { self: false, anon: false }) {\n\t\t\tthis.self = options && options.self ? options.self : false;\n\t\t\tthis.anon = options && options.anon ? options.anon : false;\n\t\t},\n\n\t\t/**\n\t\t * @property {string[]} actions\n\t\t * @property {date} date_joined\n\t\t * @property {string} email\n\t\t * @property {string} first_name\n\t\t * @property {string} last_name\n\t\t * @property {boolean} is_active\n\t\t * @property {boolean} is_staff\n\t\t * @property {boolean} is_superuser\n\t\t * @property {boolean} is_support\n\t\t * @property {boolean} is_manager\n\t\t * @property {date} last_login\n\t\t * @property {string} username\n\t\t * @property {object} preferences\n\t\t * @property {object} profile\n\t\t * @property {string} rtms_topic\n\t\t * @property {string} rtms_token\n\t\t * @property {date} last_reset_request\n\t\t */\n\t\tprops: {\n\t\t\tactions: {\n\t\t\t\ttype: \"array\",\n\t\t\t\tdefault: () => [],\n\t\t\t},\n\t\t\tpreferences: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: () => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tnotification_sender: \"default\",\n\t\t\t\t\t\temail_signature: \"\",\n\t\t\t\t\t\tapp_prefs: {},\n\t\t\t\t\t\ttimezone: \"\",\n\t\t\t\t\t\teula_key: \"\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\tcalendar_feed: \"string\",\n\t\t\tdate_joined: \"date\",\n\t\t\temail: \"string\",\n\t\t\tfirst_name: \"string\",\n\t\t\tlast_name: \"string\",\n\t\t\tis_active: \"boolean\",\n\t\t\tis_staff: \"boolean\",\n\t\t\tis_superuser: \"boolean\",\n\t\t\tis_support: \"boolean\",\n\t\t\tis_manager: \"boolean\",\n\t\t\tlast_login: \"date\",\n\t\t\tusername: \"string\",\n\t\t\tprofile: \"object\",\n\t\t\trtms_topic: \"string\",\n\t\t\trtms_token: \"string\",\n\t\t\tlast_reset_request: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.TenancyModel} tenancy\n\t\t */\n\t\tchildren: {\n\t\t\ttenancy: \"TenancyModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.GroupCollection} groups\n\t\t * @property {collections.TeamCollection} team_set\n\t\t */\n\t\tcollections: {\n\t\t\tgroups: \"GroupCollection\",\n\t\t\tteam_set: \"TeamCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} fullName - The full name of the user\n\t\t * @property {object} permissions - The one place for testing user permissions\n\t\t * @property {boolean} permissions.canCreateCompanyPresets - Has ability to create a company preset\n\t\t */\n\t\tderived: {\n\t\t\tfullName: {\n\t\t\t\tdeps: [\"first_name\", \"last_name\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\treturn `${this.first_name} ${this.last_name}`;\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tpermissions: {\n\t\t\t\tdeps: [\"actions\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst presets = {\n\t\t\t\t\t\tcanCreateCompanyPresets:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Deck Presets\") > -1,\n\t\t\t\t\t\tcanCreateTeamPresets:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Presets\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst presomanager = {\n\t\t\t\t\t\t// Can create or delete slides\n\t\t\t\t\t\tisGlobalTemporarySlideManager:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Temporary Slides\") > -1,\n\t\t\t\t\t\tisTeamTemporarySlideManager:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Temporary Slides\") > -1,\n\n\t\t\t\t\t\t// Can update content within a slide (text, images, etc.)\n\t\t\t\t\t\tisContentAdmin: this.actions.indexOf(\"Administer Content\") > -1,\n\t\t\t\t\t\tisTeamContentManager:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Editable Text\") > -1,\n\n\t\t\t\t\t\tcanAddGlobalNotes: this.actions.indexOf(\"Manage Notes\") > -1,\n\t\t\t\t\t\tcanAddTeamNotes: this.actions.indexOf(\"Manage Team Notes\") > -1,\n\n\t\t\t\t\t\t// This is someone that uses the CDK/publishes content, not someone\n\t\t\t\t\t\t// that edits content.\n\t\t\t\t\t\tisContentCreator: this.actions.indexOf(\"Create Content\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tpresomanager.canModifyNotes =\n\t\t\t\t\t\tpresomanager.canAddGlobalNotes || presomanager.canAddTeamNotes;\n\n\t\t\t\t\tpresomanager.canModifyTemporarySlides =\n\t\t\t\t\t\tpresomanager.isGlobalTemporarySlideManager ||\n\t\t\t\t\t\tpresomanager.isTeamTemporarySlideManager;\n\n\t\t\t\t\tpresomanager.canModifyContent =\n\t\t\t\t\t\tthis.actions.indexOf(\"Create Content\") > -1 ||\n\t\t\t\t\t\tthis.actions.indexOf(\"Manage Team Editable Text\") > -1;\n\n\t\t\t\t\tpresomanager.isPresoManagerUser =\n\t\t\t\t\t\tpresomanager.canModifyTemporarySlides ||\n\t\t\t\t\t\tpresomanager.canModifyNotes ||\n\t\t\t\t\t\tpresomanager.canModifyContent;\n\n\t\t\t\t\tconst appointments = {\n\t\t\t\t\t\tcanUploadCustomSlides:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Upload Custom Slides\") > -1 &&\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Upload Custom Sections\") > -1,\n\n\t\t\t\t\t\tisContentAdmin: this.actions.indexOf(\"Administer Content\") > -1,\n\t\t\t\t\t\tisContentCreator: this.actions.indexOf(\"Create Content\") > -1,\n\n\t\t\t\t\t\ttelePresenter: this.actions.indexOf(\"TelePresent\") > -1,\n\t\t\t\t\t\tlivePresenter: this.actions.indexOf(\"LivePresent\") > -1,\n\n\t\t\t\t\t\tcanViewPresosOfOthers:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"View Presos of Others\") > -1,\n\t\t\t\t\t\tcanShare: this.actions.indexOf(\"Share preso\") > -1,\n\t\t\t\t\t\tcanPresent: this.actions.indexOf(\"Present preso\") > -1,\n\t\t\t\t\t\tcanCreateWithoutTeam:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Allow Teamless Appointments\") > -1,\n\t\t\t\t\t\tcanUseClosedCaptions:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Use Closed Captions\") > -1,\n\t\t\t\t\t\tcanCreateMutedAppointments:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Create Muted Appointments\") > -1,\n\t\t\t\t\t\tcanHandoverPresosOfOthers:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Handover Presos of Others\") > -1,\n\t\t\t\t\t\tcanChooseShareVisAnyone:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Choose Share Visibility Anyone\") > -1,\n\t\t\t\t\t\tcanChooseShareVis2fa:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Choose Share Visibility 2FA\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst customers = {\n\t\t\t\t\t\tcanCreateWithoutTeam:\n\t\t\t\t\t\t\tthis.actions.indexOf(\"Allow Teamless Customers\") > -1,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst signing = {\n\t\t\t\t\t\tcanUseSigning: this.actions.includes(\"Use Signing\"),\n\t\t\t\t\t};\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpresets,\n\t\t\t\t\t\tappointments,\n\t\t\t\t\t\tpresomanager,\n\t\t\t\t\t\tcustomers,\n\t\t\t\t\t\tsigning,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tfetchJwtLogin(redirectURL = null) {\n\t\t\tconst authURL = Api.getResourceURL(\"hq-authorized-link\");\n\n\t\t\treturn SuperAgentRequest(\"GET\", authURL)\n\t\t\t\t.set(Auth.headers)\n\t\t\t\t.then((resp) => {\n\t\t\t\t\treturn resp.body.url + (redirectURL ? `&next=${redirectURL}` : \"\");\n\t\t\t\t});\n\t\t},\n\n\t\tfetch() {\n\t\t\tconst fetch = BaseModel.prototype.fetch.apply(this, arguments);\n\n\t\t\treturn fetch.tap(() => {\n\t\t\t\tif (this.self) {\n\t\t\t\t\tthis.self = false;\n\t\t\t\t}\n\n\t\t\t\tif (this.anon) {\n\t\t\t\t\tthis.anon = false;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\turl() {\n\t\t\tconst originalUrl = BaseModel.prototype.url.call(this);\n\t\t\tif (this.self) {\n\t\t\t\treturn `${originalUrl}self/`;\n\t\t\t} else if (this.anon) {\n\t\t\t\treturn `${originalUrl}anon/`;\n\t\t\t}\n\t\t\treturn originalUrl;\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\tid: this.id,\n\t\t\t\tpreferences: this.preferences,\n\t\t\t};\n\n\t\t\tif (this.groups) {\n\t\t\t\tdata.groups = this.groups.map((group) => group.url());\n\t\t\t}\n\n\t\t\tif (!data.preferences.timezone) {\n\t\t\t\tdelete data.preferences.timezone;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"UserModel\", UserModel);\n"],"mappings":"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","ignoreList":[]}