@livepreso/api 6.56.1 → 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 (92) 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/CHANGELOG.json +35 -0
  7. package/CHANGELOG.md +17 -1
  8. package/cjs/collections/adjunct-sub-slides.js +13 -1
  9. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  10. package/cjs/fixtures.js +13 -2
  11. package/cjs/fixtures.js.map +1 -1
  12. package/cjs/models/base.js +12 -3
  13. package/cjs/models/base.js.map +1 -1
  14. package/cjs/models/deck-version.js +2 -0
  15. package/cjs/models/deck-version.js.map +1 -1
  16. package/cjs/models/dispatch-preview.js +0 -2
  17. package/cjs/models/dispatch-preview.js.map +1 -1
  18. package/cjs/models/dispatch.js +1 -1
  19. package/cjs/models/dispatch.js.map +1 -1
  20. package/cjs/models/manifest-json.js +0 -2
  21. package/cjs/models/manifest-json.js.map +1 -1
  22. package/cjs/models/room.js +4 -0
  23. package/cjs/models/room.js.map +1 -1
  24. package/cjs/models/user.js +1 -1
  25. package/cjs/models/user.js.map +1 -1
  26. package/cjs/presentation/base-presentation-model.js +6 -6
  27. package/cjs/presentation/base-presentation-model.js.map +1 -1
  28. package/cjs/presentation/presentation-deck.js +82 -27
  29. package/cjs/presentation/presentation-deck.js.map +1 -1
  30. package/cjs/presentation/presentation-section.js +42 -47
  31. package/cjs/presentation/presentation-section.js.map +1 -1
  32. package/cjs/presentation/presentation-slide.js +35 -39
  33. package/cjs/presentation/presentation-slide.js.map +1 -1
  34. package/cjs/sync.js +3 -3
  35. package/cjs/sync.js.map +1 -1
  36. package/cjs/utils.js +9 -6
  37. package/cjs/utils.js.map +1 -1
  38. package/package.json +2 -2
  39. package/rush-logs/api.build.error.log +3 -13
  40. package/rush-logs/api.build.log +5 -15
  41. package/src/collections/adjunct-sub-slides.js +13 -0
  42. package/src/fixtures.js +16 -2
  43. package/src/models/base.js +16 -3
  44. package/src/models/deck-version.js +2 -0
  45. package/src/models/dispatch-preview.js +0 -3
  46. package/src/models/dispatch.js +1 -1
  47. package/src/models/manifest-json.js +7 -12
  48. package/src/models/room.js +5 -0
  49. package/src/models/user.js +4 -4
  50. package/src/presentation/base-presentation-model.js +14 -6
  51. package/src/presentation/presentation-deck.js +63 -24
  52. package/src/presentation/presentation-section.js +31 -50
  53. package/src/presentation/presentation-slide.js +36 -43
  54. package/src/sync.js +3 -4
  55. package/src/utils.js +9 -6
  56. package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +0 -10
  57. package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +0 -10
  58. package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +0 -10
  59. package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +0 -10
  60. package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +0 -10
  61. package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +0 -10
  62. package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +0 -10
  63. package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +0 -10
  64. package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +0 -10
  65. package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +0 -10
  66. package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +0 -10
  67. package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +0 -10
  68. package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +0 -10
  69. package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +0 -10
  70. package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +0 -10
  71. package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +0 -10
  72. package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +0 -10
  73. package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +0 -10
  74. package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +0 -10
  75. package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +0 -10
  76. package/.rush/temp/build-cache-tar.log +0 -7
  77. package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +0 -10
  78. package/.rush/temp/chunked-rush-logs/api.test.chunks.jsonl +0 -1
  79. package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +0 -10
  80. package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +0 -10
  81. package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +0 -10
  82. package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +0 -10
  83. package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +0 -10
  84. package/.rush/temp/operation/test/all.log +0 -21
  85. package/.rush/temp/operation/test/log-chunks.jsonl +0 -21
  86. package/.rush/temp/operation/test/state.json +0 -3
  87. package/.rush/temp/package-deps_build.json +0 -185
  88. package/api.build.log +0 -9
  89. package/api.test.cache.log +0 -1
  90. package/api.test.log +0 -19
  91. package/rush-logs/api.test.cache.log +0 -1
  92. 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":[]}
@@ -24,8 +24,6 @@ var DispatchPreviewModel = exports.DispatchPreviewModel = _base.BaseModel.extend
24
24
  return _superagent.default.get(this.url()).set(_auth.Auth.headers).set("Accept", "text/plain").then(function (resp) {
25
25
  _this.content = resp.text;
26
26
  return resp.text;
27
- }).catch(_superagent.default.SuperagentPromiseError, function (e) {
28
- throw e;
29
27
  });
30
28
  }
31
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-preview.js","names":["require","_auth","_base","_stateRegister","_superagent","_interopRequireDefault","DispatchPreviewModel","exports","BaseModel","extend","props","content","fetch","_this","superagent","get","url","set","Auth","headers","then","resp","text","catch","SuperagentPromiseError","e","register"],"sources":["../../src/models/dispatch-preview.js"],"sourcesContent":["import \"./dispatch.js\";\n\nimport { Auth } from \"../auth.js\";\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\nimport superagent from \"superagent\";\n\n/**\n * @constructor\n * @alias models.DispatchPreviewModel\n * @extends models.BaseModel\n */\nexport const DispatchPreviewModel = BaseModel.extend(\n\t/** @lends models.DispatchPreviewModel# */ {\n\t\tprops: {\n\t\t\tcontent: \"string\",\n\t\t},\n\t\tfetch() {\n\t\t\treturn superagent\n\t\t\t\t.get(this.url())\n\t\t\t\t.set(Auth.headers)\n\t\t\t\t.set(\"Accept\", \"text/plain\")\n\t\t\t\t.then((resp) => {\n\t\t\t\t\tthis.content = resp.text;\n\t\t\t\t\treturn resp.text;\n\t\t\t\t})\n\t\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\t\tthrow e;\n\t\t\t\t});\n\t\t},\n\t},\n);\n\nregister(\"DispatchPreviewModel\", DispatchPreviewModel);\n"],"mappings":";;;;;;;AAAAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMM,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAGE,eAAS,CAACC,MAAM,CACnD,0CAA2C;EAC1CC,KAAK,EAAE;IACNC,OAAO,EAAE;EACV,CAAC;EACDC,KAAK,WAALA,KAAKA,CAAA,EAAG;IAAA,IAAAC,KAAA;IACP,OAAOC,mBAAU,CACfC,GAAG,CAAC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC,CACfC,GAAG,CAACC,UAAI,CAACC,OAAO,CAAC,CACjBF,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC3BG,IAAI,CAAC,UAACC,IAAI,EAAK;MACfR,KAAI,CAACF,OAAO,GAAGU,IAAI,CAACC,IAAI;MACxB,OAAOD,IAAI,CAACC,IAAI;IACjB,CAAC,CAAC,CACDC,KAAK,CAACT,mBAAU,CAACU,sBAAsB,EAAE,UAACC,CAAC,EAAK;MAChD,MAAMA,CAAC;IACR,CAAC,CAAC;EACJ;AACD,CACD,CAAC;AAED,IAAAC,uBAAQ,EAAC,sBAAsB,EAAEpB,oBAAoB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"dispatch-preview.js","names":["require","_auth","_base","_stateRegister","_superagent","_interopRequireDefault","DispatchPreviewModel","exports","BaseModel","extend","props","content","fetch","_this","superagent","get","url","set","Auth","headers","then","resp","text","register"],"sources":["../../src/models/dispatch-preview.js"],"sourcesContent":["import \"./dispatch.js\";\n\nimport { Auth } from \"../auth.js\";\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\nimport superagent from \"superagent\";\n\n/**\n * @constructor\n * @alias models.DispatchPreviewModel\n * @extends models.BaseModel\n */\nexport const DispatchPreviewModel = BaseModel.extend(\n\t/** @lends models.DispatchPreviewModel# */ {\n\t\tprops: {\n\t\t\tcontent: \"string\",\n\t\t},\n\t\tfetch() {\n\t\t\treturn superagent\n\t\t\t\t.get(this.url())\n\t\t\t\t.set(Auth.headers)\n\t\t\t\t.set(\"Accept\", \"text/plain\")\n\t\t\t\t.then((resp) => {\n\t\t\t\t\tthis.content = resp.text;\n\t\t\t\t\treturn resp.text;\n\t\t\t\t});\n\t\t},\n\t},\n);\n\nregister(\"DispatchPreviewModel\", DispatchPreviewModel);\n"],"mappings":";;;;;;;AAAAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMM,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAGE,eAAS,CAACC,MAAM,CACnD,0CAA2C;EAC1CC,KAAK,EAAE;IACNC,OAAO,EAAE;EACV,CAAC;EACDC,KAAK,WAALA,KAAKA,CAAA,EAAG;IAAA,IAAAC,KAAA;IACP,OAAOC,mBAAU,CACfC,GAAG,CAAC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC,CACfC,GAAG,CAACC,UAAI,CAACC,OAAO,CAAC,CACjBF,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAC3BG,IAAI,CAAC,UAACC,IAAI,EAAK;MACfR,KAAI,CAACF,OAAO,GAAGU,IAAI,CAACC,IAAI;MACxB,OAAOD,IAAI,CAACC,IAAI;IACjB,CAAC,CAAC;EACJ;AACD,CACD,CAAC;AAED,IAAAC,uBAAQ,EAAC,sBAAsB,EAAEjB,oBAAoB,CAAC","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":";;;;;;;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMM,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAGE,eAAS,CAACC,MAAM,CAC5C,mCAAoC;EACnCC,SAAS,EAAE,YAAY;EAEvBC,YAAY,EAAE;IACb,gBAAgB,EAAE;EACnB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,qBAAqB,EAAE,QAAQ;IAC/BC,OAAO,EAAE,QAAQ;IACjBC,kBAAkB,EAAE,MAAM;IAC1BC,YAAY,EAAE,MAAM;IACpBC,eAAe,EAAE,QAAQ;IACzBC,cAAc,EAAE,MAAM;IACtBC,eAAe,EAAE,OAAO;IACxBC,cAAc,EAAE,QAAQ;IACxBC,gBAAgB,EAAE,QAAQ;IAC1BC,qBAAqB,EAAE,QAAQ;IAC/BC,YAAY,EAAE,QAAQ;IACtBC,iBAAiB,EAAE,QAAQ;IAC3BC,eAAe,EAAE,QAAQ;IACzBC,MAAM,EAAE,QAAQ;IAChBC,YAAY,EAAE,SAAS;IACvBC,aAAa,EAAE,MAAM;IACrBC,UAAU,EAAE,OAAO;IACnBC,YAAY,EAAE,QAAQ;IACtB;IACAC,IAAI,EAAE;EACP,CAAC;EAED;AACF;AACA;AACA;EACEC,QAAQ,EAAE;IACTC,WAAW,EAAE,kBAAkB;IAC/BC,QAAQ,EAAE,eAAe;IACzBC,OAAO,EAAE;EACV,CAAC;EAED;AACF;AACA;AACA;EACEC,WAAW,EAAE;IACZC,WAAW,EAAE,mBAAmB;IAChCC,cAAc,EAAE;EACjB,CAAC;EAEDC,OAAO,EAAE;IACRC,YAAY,EAAE;MACbC,IAAI,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC;MACrCC,EAAE,EAAE,SAAJA,EAAEA,CAAA,EAAc;QACf,IAAI,IAAI,CAACrB,gBAAgB,KAAK,YAAY,EAAE;UAC3C,OAAO,IAAIsB,6BAAgB,CAAC,IAAI,CAAC7B,OAAO,CAAC;QAC1C;QAEA,OAAO,IAAI;MACZ;IACD;EACD,CAAC;EAED8B,QAAQ,WAARA,QAAQA,CAAA,EAAG;IACV,IAAMC,IAAI,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC;IAC7B,IAAI,IAAI,CAACT,WAAW,EAAE;MACrBQ,IAAI,CAACR,WAAW,GAAGU,eAAC,CAACC,GAAG,CAAC,IAAI,CAACX,WAAW,CAACY,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAC3D;IACA,IAAI,IAAI,CAACX,cAAc,EAAE;MACxBO,IAAI,CAACP,cAAc,GAAGS,eAAC,CAACC,GAAG,CAAC,IAAI,CAACV,cAAc,CAACW,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IACjE;IAEA,IAAI,IAAI,CAACf,QAAQ,EAAE;MAClBW,IAAI,CAACX,QAAQ,GAAG,IAAI,CAACgB,YAAY,CAAC,IAAI,CAAChB,QAAQ,CAAC;IACjD;IAEA,OAAOa,eAAC,CAACI,IAAI,CAACN,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC;EACtC,CAAC;EAEDC,SAAS,WAATA,SAASA,CAAA,EAAG;IACX,IAAMD,IAAI,GAAGrC,eAAS,CAAC4C,SAAS,CAACN,SAAS,CAACO,IAAI,CAAC,IAAI,CAAC;IACrDR,IAAI,CAACZ,WAAW,GAAG,IAAI,CAACiB,YAAY,CAAC,IAAI,CAACjB,WAAW,CAAC;IAEtD,OAAOY,IAAI;EACZ;AACD,CACD,CAAC;AAED,IAAAS,uBAAQ,EAAC,eAAe,EAAEhD,aAAa,CAAC","ignoreList":[]}
@@ -222,8 +222,6 @@ var ManifestJSONModel = exports.ManifestJSONModel = _base.BaseModel.extend(/** @
222
222
  } else {
223
223
  fixtures[key] = response.body || {};
224
224
  }
225
- }).catch(_superagent.default.SuperagentPromiseError, function (e) {
226
- throw e;
227
225
  });
228
226
  });
229
227
  _context.next = 1;