@livepreso/api 6.55.1 → 6.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/shrinkwrap-deps.json +1013 -1191
- package/CHANGELOG.json +29 -0
- package/CHANGELOG.md +19 -1
- package/cjs/api.js +3 -5
- package/cjs/api.js.map +1 -1
- package/cjs/auth.spec.js +11 -11
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/collections/appointment-tags.js +14 -15
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/base.spec.js +30 -30
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/fixtures.js +1 -2
- package/cjs/fixtures.js.map +1 -1
- package/cjs/models/appointment.js +7 -7
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/base.js +30 -12
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/cms-val.spec.js +2 -2
- package/cjs/models/cms-val.spec.js.map +1 -1
- package/cjs/models/deck-version.js +14 -34
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/manifest-json.js +41 -5
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/pack.js +2 -1
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/snapshot.spec.js +2 -2
- package/cjs/models/snapshot.spec.js.map +1 -1
- package/cjs/models/template.js +10 -10
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/timing-log.spec.js +2 -2
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/user.spec.js +4 -4
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +19 -9
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +6 -6
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-section.js +33 -10
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +24 -16
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +18 -7
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +21 -12
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +10 -10
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation.js +26 -26
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/sync.js +1 -3
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +33 -3
- package/cjs/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/api.js +3 -5
- package/src/models/base.js +27 -9
- package/src/models/deck-version.js +5 -31
- package/src/models/manifest-json.js +33 -5
- package/src/models/pack.js +1 -0
- package/src/presentation/presentation-deck.js +9 -9
- package/src/presentation/presentation-section.js +35 -12
- package/src/presentation/presentation-section.spec.js +8 -0
- package/src/presentation/presentation-slide.js +7 -4
- package/src/presentation/presentation-slide.spec.js +9 -0
- package/src/sync.js +1 -3
- package/src/utils.js +31 -2
|
@@ -40,16 +40,16 @@ Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
|
40
40
|
return deckversion.fetch().then(function () {
|
|
41
41
|
return _bluebird.default.all([deckversion.manifest_json.fetch(), deckversion.deck.fetch()]);
|
|
42
42
|
}).then(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
43
|
-
var templates, _iterator, _step, _loop;
|
|
44
|
-
return _regenerator.default.wrap(function
|
|
43
|
+
var templates, _iterator, _step, _loop, _t;
|
|
44
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
45
45
|
while (1) switch (_context2.prev = _context2.next) {
|
|
46
46
|
case 0:
|
|
47
47
|
templates = (0, _toConsumableArray2.default)(deckversion.template_set.models);
|
|
48
48
|
_iterator = _createForOfIteratorHelper(opts.autoAdjuncts.models);
|
|
49
|
-
_context2.prev =
|
|
49
|
+
_context2.prev = 1;
|
|
50
50
|
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
51
51
|
var auto, dvTemplate;
|
|
52
|
-
return _regenerator.default.wrap(function
|
|
52
|
+
return _regenerator.default.wrap(function (_context) {
|
|
53
53
|
while (1) switch (_context.prev = _context.next) {
|
|
54
54
|
case 0:
|
|
55
55
|
auto = _step.value;
|
|
@@ -57,49 +57,49 @@ Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
|
57
57
|
return t.url() === auto.template.url();
|
|
58
58
|
});
|
|
59
59
|
if (!dvTemplate) {
|
|
60
|
-
_context.next =
|
|
60
|
+
_context.next = 1;
|
|
61
61
|
break;
|
|
62
62
|
}
|
|
63
63
|
auto.template = dvTemplate;
|
|
64
|
-
_context.next =
|
|
64
|
+
_context.next = 3;
|
|
65
65
|
break;
|
|
66
|
-
case
|
|
67
|
-
_context.next =
|
|
66
|
+
case 1:
|
|
67
|
+
_context.next = 2;
|
|
68
68
|
return auto.template.fetch();
|
|
69
|
-
case
|
|
69
|
+
case 2:
|
|
70
70
|
templates.push(auto.template);
|
|
71
|
-
case
|
|
71
|
+
case 3:
|
|
72
72
|
case "end":
|
|
73
73
|
return _context.stop();
|
|
74
74
|
}
|
|
75
75
|
}, _loop);
|
|
76
76
|
});
|
|
77
77
|
_iterator.s();
|
|
78
|
-
case
|
|
78
|
+
case 2:
|
|
79
79
|
if ((_step = _iterator.n()).done) {
|
|
80
|
-
_context2.next =
|
|
80
|
+
_context2.next = 4;
|
|
81
81
|
break;
|
|
82
82
|
}
|
|
83
|
-
return _context2.delegateYield(_loop(), "t0",
|
|
84
|
-
case
|
|
85
|
-
_context2.next =
|
|
83
|
+
return _context2.delegateYield(_loop(), "t0", 3);
|
|
84
|
+
case 3:
|
|
85
|
+
_context2.next = 2;
|
|
86
86
|
break;
|
|
87
|
-
case
|
|
88
|
-
_context2.next =
|
|
87
|
+
case 4:
|
|
88
|
+
_context2.next = 6;
|
|
89
89
|
break;
|
|
90
|
-
case
|
|
91
|
-
_context2.prev =
|
|
92
|
-
|
|
93
|
-
_iterator.e(
|
|
94
|
-
case
|
|
95
|
-
_context2.prev =
|
|
90
|
+
case 5:
|
|
91
|
+
_context2.prev = 5;
|
|
92
|
+
_t = _context2["catch"](1);
|
|
93
|
+
_iterator.e(_t);
|
|
94
|
+
case 6:
|
|
95
|
+
_context2.prev = 6;
|
|
96
96
|
_iterator.f();
|
|
97
|
-
return _context2.finish(
|
|
98
|
-
case
|
|
97
|
+
return _context2.finish(6);
|
|
98
|
+
case 7:
|
|
99
99
|
case "end":
|
|
100
100
|
return _context2.stop();
|
|
101
101
|
}
|
|
102
|
-
}, _callee, null, [[
|
|
102
|
+
}, _callee, null, [[1, 5, 6, 7]]);
|
|
103
103
|
}))).then(function () {
|
|
104
104
|
return deckversion.deck.tags.fetch();
|
|
105
105
|
}).then(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation.js","names":["require","_models","_autoAdjuncts","_basePresentationModel","_presentationDeck","_bluebird","_interopRequireDefault","_lodash","_log","_stateRegister","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","n","done","value","f","TypeError","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","Presentation","exports","BasePresentationModel","extend","collections","decks","createFromDeckversion","deckversionURL","options","deckversion","DeckVersionModel","opts","_","defaults","includeTemplates","choicelist","autoAdjuncts","AutoAdjunctCollection","fetch","then","Promise","all","manifest_json","deck","_asyncToGenerator2","_regenerator","mark","_callee","templates","_iterator","_step","_loop","wrap","_callee$","_context2","prev","_toConsumableArray2","template_set","models","auto","dvTemplate","_loop$","_context","find","url","template","stop","delegateYield","t1","finish","tags","deckTags","items","reduce","tagObj","tagItem","namespaced_key","presentation","otherOpts","_objectWithoutProperties2","toJSON","add","PresentationDeck","createFromDeckVersion","catch","log","error","createFromManifestJSON","manifestJSON","project","manifestModel","ManifestJSONModel","_url","register"],"sources":["../../src/presentation/presentation.js"],"sourcesContent":["import \"./presentation-decks.js\";\n\nimport { DeckVersionModel, ManifestJSONModel } from \"../models.js\";\n\nimport { AutoAdjunctCollection } from \"../collections/auto-adjuncts.js\";\nimport { BasePresentationModel } from \"./base-presentation-model.js\";\nimport { PresentationDeck } from \"./presentation-deck.js\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport { register } from \"../state-register.js\";\n\nexport const Presentation = BasePresentationModel.extend({\n\tcollections: {\n\t\tdecks: \"PresentationDeckCollection\",\n\t},\n});\n\nPresentation.createFromDeckversion = function (deckversionURL, options) {\n\tconst deckversion = new DeckVersionModel(deckversionURL);\n\tconst opts = _.defaults(options, {\n\t\tincludeTemplates: false,\n\t\tchoicelist: null,\n\t\tautoAdjuncts: new AutoAdjunctCollection(),\n\t});\n\n\treturn deckversion\n\t\t.fetch()\n\t\t.then(() => {\n\t\t\treturn Promise.all([\n\t\t\t\tdeckversion.manifest_json.fetch(),\n\t\t\t\tdeckversion.deck.fetch(),\n\t\t\t]);\n\t\t})\n\t\t.then(async () => {\n\t\t\tconst templates = [...deckversion.template_set.models];\n\n\t\t\tfor (const auto of opts.autoAdjuncts.models) {\n\t\t\t\tconst dvTemplate = templates.find(\n\t\t\t\t\t(t) => t.url() === auto.template.url(),\n\t\t\t\t);\n\t\t\t\tif (dvTemplate) {\n\t\t\t\t\tauto.template = dvTemplate;\n\t\t\t\t} else {\n\t\t\t\t\tawait auto.template.fetch();\n\t\t\t\t\ttemplates.push(auto.template);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t.then(() => {\n\t\t\treturn deckversion.deck.tags.fetch();\n\t\t})\n\t\t.then(() => {\n\t\t\tconst deckTags = deckversion.deck.tags.items.reduce((tagObj, tagItem) => {\n\t\t\t\ttagObj[tagItem.namespaced_key] = tagItem.tags;\n\t\t\t\treturn tagObj;\n\t\t\t}, {});\n\n\t\t\tconst presentation = new Presentation();\n\n\t\t\tconst { includeTemplates, ...otherOpts } = opts;\n\n\t\t\tif (includeTemplates) {\n\t\t\t\totherOpts.templates = deckversion.template_set.toJSON();\n\t\t\t}\n\n\t\t\tpresentation.decks.add([\n\t\t\t\tPresentationDeck.createFromDeckVersion(deckversion, {\n\t\t\t\t\t...otherOpts,\n\t\t\t\t\tdeckTags,\n\t\t\t\t}),\n\t\t\t]);\n\n\t\t\treturn presentation;\n\t\t})\n\t\t.catch((e) => {\n\t\t\tlog.error(e);\n\t\t\tthrow e;\n\t\t});\n};\n\nPresentation.createFromManifestJSON = function (manifestJSON, project, url) {\n\tconst manifestModel = new ManifestJSONModel(manifestJSON.toJSON());\n\n\t// Let's use the model to transport the base url for the deck assets\n\tmanifestModel._url = url;\n\n\tconst deck = PresentationDeck.createFromManifestJSON(manifestModel, project);\n\tconst presentation = new Presentation();\n\tpresentation.decks.add(deck);\n\treturn presentation;\n};\n\nregister(\"Presentation\", Presentation);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"presentation.js","names":["require","_models","_autoAdjuncts","_basePresentationModel","_presentationDeck","_bluebird","_interopRequireDefault","_lodash","_log","_stateRegister","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","n","done","value","f","TypeError","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","Presentation","exports","BasePresentationModel","extend","collections","decks","createFromDeckversion","deckversionURL","options","deckversion","DeckVersionModel","opts","_","defaults","includeTemplates","choicelist","autoAdjuncts","AutoAdjunctCollection","fetch","then","Promise","all","manifest_json","deck","_asyncToGenerator2","_regenerator","mark","_callee","templates","_iterator","_step","_loop","_t","wrap","_context2","prev","_toConsumableArray2","template_set","models","auto","dvTemplate","_context","find","url","template","stop","delegateYield","finish","tags","deckTags","items","reduce","tagObj","tagItem","namespaced_key","presentation","otherOpts","_objectWithoutProperties2","toJSON","add","PresentationDeck","createFromDeckVersion","catch","log","error","createFromManifestJSON","manifestJSON","project","manifestModel","ManifestJSONModel","_url","register"],"sources":["../../src/presentation/presentation.js"],"sourcesContent":["import \"./presentation-decks.js\";\n\nimport { DeckVersionModel, ManifestJSONModel } from \"../models.js\";\n\nimport { AutoAdjunctCollection } from \"../collections/auto-adjuncts.js\";\nimport { BasePresentationModel } from \"./base-presentation-model.js\";\nimport { PresentationDeck } from \"./presentation-deck.js\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport { register } from \"../state-register.js\";\n\nexport const Presentation = BasePresentationModel.extend({\n\tcollections: {\n\t\tdecks: \"PresentationDeckCollection\",\n\t},\n});\n\nPresentation.createFromDeckversion = function (deckversionURL, options) {\n\tconst deckversion = new DeckVersionModel(deckversionURL);\n\tconst opts = _.defaults(options, {\n\t\tincludeTemplates: false,\n\t\tchoicelist: null,\n\t\tautoAdjuncts: new AutoAdjunctCollection(),\n\t});\n\n\treturn deckversion\n\t\t.fetch()\n\t\t.then(() => {\n\t\t\treturn Promise.all([\n\t\t\t\tdeckversion.manifest_json.fetch(),\n\t\t\t\tdeckversion.deck.fetch(),\n\t\t\t]);\n\t\t})\n\t\t.then(async () => {\n\t\t\tconst templates = [...deckversion.template_set.models];\n\n\t\t\tfor (const auto of opts.autoAdjuncts.models) {\n\t\t\t\tconst dvTemplate = templates.find(\n\t\t\t\t\t(t) => t.url() === auto.template.url(),\n\t\t\t\t);\n\t\t\t\tif (dvTemplate) {\n\t\t\t\t\tauto.template = dvTemplate;\n\t\t\t\t} else {\n\t\t\t\t\tawait auto.template.fetch();\n\t\t\t\t\ttemplates.push(auto.template);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t.then(() => {\n\t\t\treturn deckversion.deck.tags.fetch();\n\t\t})\n\t\t.then(() => {\n\t\t\tconst deckTags = deckversion.deck.tags.items.reduce((tagObj, tagItem) => {\n\t\t\t\ttagObj[tagItem.namespaced_key] = tagItem.tags;\n\t\t\t\treturn tagObj;\n\t\t\t}, {});\n\n\t\t\tconst presentation = new Presentation();\n\n\t\t\tconst { includeTemplates, ...otherOpts } = opts;\n\n\t\t\tif (includeTemplates) {\n\t\t\t\totherOpts.templates = deckversion.template_set.toJSON();\n\t\t\t}\n\n\t\t\tpresentation.decks.add([\n\t\t\t\tPresentationDeck.createFromDeckVersion(deckversion, {\n\t\t\t\t\t...otherOpts,\n\t\t\t\t\tdeckTags,\n\t\t\t\t}),\n\t\t\t]);\n\n\t\t\treturn presentation;\n\t\t})\n\t\t.catch((e) => {\n\t\t\tlog.error(e);\n\t\t\tthrow e;\n\t\t});\n};\n\nPresentation.createFromManifestJSON = function (manifestJSON, project, url) {\n\tconst manifestModel = new ManifestJSONModel(manifestJSON.toJSON());\n\n\t// Let's use the model to transport the base url for the deck assets\n\tmanifestModel._url = url;\n\n\tconst deck = PresentationDeck.createFromManifestJSON(manifestModel, project);\n\tconst presentation = new Presentation();\n\tpresentation.decks.add(deck);\n\treturn presentation;\n};\n\nregister(\"Presentation\", Presentation);\n"],"mappings":"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","ignoreList":[]}
|
package/cjs/sync.js
CHANGED
|
@@ -12,7 +12,6 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
12
12
|
var _log = _interopRequireDefault(require("./log.js"));
|
|
13
13
|
var _middleware = require("./middleware.js");
|
|
14
14
|
var _superagent = _interopRequireDefault(require("superagent"));
|
|
15
|
-
var _url = _interopRequireDefault(require("url"));
|
|
16
15
|
var defaults = _lodash.default.defaults;
|
|
17
16
|
var assign = _lodash.default.assign;
|
|
18
17
|
|
|
@@ -38,11 +37,10 @@ var buildURL = exports.buildURL = function buildURL(_ref2) {
|
|
|
38
37
|
var method = _ref2.method,
|
|
39
38
|
model = _ref2.model;
|
|
40
39
|
var url = model.url();
|
|
41
|
-
var urlParse = _url.default.parse(url);
|
|
42
40
|
|
|
43
41
|
// If not a GET request, strip the query params from the url
|
|
44
42
|
if (method !== "read") {
|
|
45
|
-
return url.
|
|
43
|
+
return url.split("?")[0];
|
|
46
44
|
}
|
|
47
45
|
return url;
|
|
48
46
|
};
|
package/cjs/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","names":["_bluebird","_interopRequireDefault","require","_superagentBluebirdPromise","_lodash","_log","_middleware","_superagent","_url","defaults","_","assign","urlError","Error","methodMap","exports","create","update","patch","delete","read","defaultFetchURL","_ref","model","log","warn","url","buildURL","_ref2","method","urlParse","url2","parse","replace","search","sync","defaultOpts","_this","syncArguments","arguments","syncActions","middlewares","forEach","middleware","push","apply","Promise","all","then","_len","length","newOpts","Array","_key","joinedOpts","merge","concat","_toConsumableArray2","default","flat","ajaxSync","call","options","type","emulateHTTP","emulateJSON","params","result","data","batch","json","attrs","toJSON","requestSettings","request","SuperAgentRequest","toServer","isArray","FormData","pick","Object","keys","send","xhr","preflight","mc","getNextMiddleware","middlewareInterceptor","response","intercept","resolve","trigger","ajaxConfig","headers","key","header","toLowerCase","cachedResponse","JSON","text","each","success","catch","error","message","timeout","e","set","emit","superagent","SuperagentPromiseError","res","body","status","stringify","originalError","code"],"sources":["../src/sync.js"],"sourcesContent":["import Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport log from \"./log.js\";\nimport { middlewares } from \"./middleware.js\";\nimport superagent from \"superagent\";\nimport url2 from \"url\";\n\nconst defaults = _.defaults;\nconst assign = _.assign;\n\n// Throw an error when a URL is needed, and none is supplied.\nconst urlError = function () {\n\tthrow new Error(`A \"url\" property or function must be specified`);\n};\n\n// Map from CRUD to HTTP for our default `Backbone.sync` implementation.\nexport const methodMap = {\n\tcreate: \"POST\",\n\tupdate: \"PUT\",\n\tpatch: \"PATCH\",\n\tdelete: \"DELETE\",\n\tread: \"GET\",\n};\n\nexport const defaultFetchURL = function ({ model }) {\n\tlog.warn(\"Deprecation: defaultFetchURL is deprecated. Just use .url()\");\n\treturn model.url();\n};\n\nexport const buildURL = function ({ method, model }) {\n\tconst url = model.url();\n\tconst urlParse = url2.parse(url);\n\n\t// If not a GET request, strip the query params from the url\n\tif (method !== \"read\") {\n\t\treturn url.replace(urlParse.search, \"\");\n\t}\n\n\treturn url;\n};\n\nexport const sync = function (method, model, defaultOpts) {\n\tconst syncArguments = arguments;\n\n\tif (method === \"read\") {\n\t\t// look for sync methods\n\t\tconst syncActions = [];\n\t\tmiddlewares.forEach((middleware) => {\n\t\t\tif (middleware.sync) {\n\t\t\t\tsyncActions.push(middleware.sync.apply(this, syncArguments));\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.all(syncActions).then((...newOpts) => {\n\t\t\tconst joinedOpts = _.merge({}, defaultOpts, ...newOpts.flat());\n\t\t\treturn ajaxSync.call(this, method, model, joinedOpts);\n\t\t});\n\t}\n\treturn ajaxSync.call(this, method, model, defaultOpts);\n};\n\nexport const ajaxSync = function (method, model, options) {\n\tconst type = methodMap[method];\n\n\t// Default options, unless specified.\n\tdefaults(options || {}, {\n\t\temulateHTTP: false,\n\t\temulateJSON: false,\n\t});\n\n\t// Default request options.\n\tconst params = { type: type };\n\n\t// Ensure that we have a URL.\n\tif (!options.url) {\n\t\toptions.url = _.result(model, \"url\") || urlError();\n\t}\n\n\t// Ensure that we have the appropriate request data.\n\tif (\n\t\toptions.data === null &&\n\t\tmodel &&\n\t\t(method === \"create\" ||\n\t\t\tmethod === \"update\" ||\n\t\t\tmethod === \"patch\" ||\n\t\t\t(method === \"delete\" && options.batch))\n\t) {\n\t\tparams.json = options.attrs || model.toJSON(options);\n\t}\n\n\tconst url = buildURL({ method, model, options });\n\n\tconst requestSettings = assign(params, options);\n\trequestSettings.method = type;\n\n\tconst request = SuperAgentRequest(type, url);\n\n\tif (\n\t\ttype === \"PATCH\" ||\n\t\ttype === \"POST\" ||\n\t\ttype === \"PUT\" ||\n\t\t(type === \"DELETE\" && options.batch)\n\t) {\n\t\tlet data = model.toServer();\n\n\t\t// Note we can use formdata to override the way a patch works - if we\n\t\t// are doing this it's for a particular patch with an image or file,\n\t\t// probably.\n\t\tif (type === \"PATCH\" && !_.isArray(data) && !(data instanceof FormData)) {\n\t\t\t// Make sure we're only updating data actually passed to the save\n\t\t\t// function, rather than automatically generated stuff\n\t\t\tdata = _.pick(options.attrs, Object.keys(data));\n\t\t}\n\t\trequest.send(data);\n\t}\n\n\toptions.xhr = request;\n\n\tmiddlewares.forEach((middleware) => {\n\t\tif (middleware.preflight) {\n\t\t\tmiddleware.preflight(request, model, options);\n\t\t}\n\t});\n\n\tlet mc = 0;\n\n\tfunction getNextMiddleware(request) {\n\t\treturn function middlewareInterceptor(response) {\n\t\t\tif (mc < middlewares.length) {\n\t\t\t\treturn middlewares[mc++]\n\t\t\t\t\t.intercept(request, response, model)\n\t\t\t\t\t.then(getNextMiddleware(request));\n\t\t\t}\n\t\t\treturn Promise.resolve(response);\n\t\t};\n\t}\n\n\tmodel.trigger(\"request\", model, request, options, requestSettings);\n\trequest.requestSettings = requestSettings;\n\n\tconst ajaxConfig = _.result(model, \"ajaxConfig\") || {};\n\n\t// Combine generated headers with user's headers.\n\tif (ajaxConfig.headers) {\n\t\tfor (const key in ajaxConfig.headers) {\n\t\t\trequest.header[key.toLowerCase()] = ajaxConfig.headers[key];\n\t\t}\n\t}\n\n\tif (options.headers) {\n\t\tfor (const key in options.headers) {\n\t\t\trequest.header[key.toLowerCase()] = options.headers[key];\n\t\t}\n\t}\n\n\t// TODO: Remove me when this can be moved... for now this removal is quite a complex\n\t// process.\n\tif (options.cachedResponse) {\n\t\treturn Promise.resolve(options.cachedResponse)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((response) => {\n\t\t\t\tif (!response.data) {\n\t\t\t\t\tresponse.data = JSON.parse(response.text);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, true);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(response.data, \"success\", response);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((response) => {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response, model);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\treturn (\n\t\trequest\n\t\t\t// Force a timeout on every request. Intermittent connections\n\t\t\t// can have the request continue trying for minutes otherwise.\n\t\t\t// 60 seconds is the timeout the server has, so we go for 65 seconds,\n\t\t\t// so we give the chance to the server to time out first - helps with\n\t\t\t// debugging.\n\t\t\t.timeout(65 * 1000)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((response) => {\n\t\t\t\tlet data;\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(response.text);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tdata = response;\n\t\t\t\t}\n\n\t\t\t\tif (type !== \"DELETE\") {\n\t\t\t\t\tmodel.set(data);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, false);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(data, \"success\", response);\n\t\t\t\t\t}\n\t\t\t\t\trequest.emit(\"success\", response);\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\tif (\n\t\t\t\t\te.res &&\n\t\t\t\t\te.res.body &&\n\t\t\t\t\t((e.status >= 400 && e.status < 500) || e.status === 503)\n\t\t\t\t) {\n\t\t\t\t\te.message += `\\nBody: ${JSON.stringify(e.res.body)}`;\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t})\n\t\t\t.catch((response) => {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Provide a more explanatory error message on timeout\n\t\t\t\t\tif (\n\t\t\t\t\t\tresponse &&\n\t\t\t\t\t\tresponse.originalError &&\n\t\t\t\t\t\tresponse.originalError.code === \"ECONNABORTED\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Failed ${type} request on url: ${url}. ${response.message}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t})\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"sync.js","names":["_bluebird","_interopRequireDefault","require","_superagentBluebirdPromise","_lodash","_log","_middleware","_superagent","defaults","_","assign","urlError","Error","methodMap","exports","create","update","patch","delete","read","defaultFetchURL","_ref","model","log","warn","url","buildURL","_ref2","method","split","sync","defaultOpts","_this","syncArguments","arguments","syncActions","middlewares","forEach","middleware","push","apply","Promise","all","then","_len","length","newOpts","Array","_key","joinedOpts","merge","concat","_toConsumableArray2","default","flat","ajaxSync","call","options","type","emulateHTTP","emulateJSON","params","result","data","batch","json","attrs","toJSON","requestSettings","request","SuperAgentRequest","toServer","isArray","FormData","pick","Object","keys","send","xhr","preflight","mc","getNextMiddleware","middlewareInterceptor","response","intercept","resolve","trigger","ajaxConfig","headers","key","header","toLowerCase","cachedResponse","JSON","parse","text","each","success","catch","error","message","timeout","e","set","emit","superagent","SuperagentPromiseError","res","body","status","stringify","originalError","code"],"sources":["../src/sync.js"],"sourcesContent":["import Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport log from \"./log.js\";\nimport { middlewares } from \"./middleware.js\";\nimport superagent from \"superagent\";\n\nconst defaults = _.defaults;\nconst assign = _.assign;\n\n// Throw an error when a URL is needed, and none is supplied.\nconst urlError = function () {\n\tthrow new Error(`A \"url\" property or function must be specified`);\n};\n\n// Map from CRUD to HTTP for our default `Backbone.sync` implementation.\nexport const methodMap = {\n\tcreate: \"POST\",\n\tupdate: \"PUT\",\n\tpatch: \"PATCH\",\n\tdelete: \"DELETE\",\n\tread: \"GET\",\n};\n\nexport const defaultFetchURL = function ({ model }) {\n\tlog.warn(\"Deprecation: defaultFetchURL is deprecated. Just use .url()\");\n\treturn model.url();\n};\n\nexport const buildURL = function ({ method, model }) {\n\tconst url = model.url();\n\n\t// If not a GET request, strip the query params from the url\n\tif (method !== \"read\") {\n\t\treturn url.split(\"?\")[0];\n\t}\n\n\treturn url;\n};\n\nexport const sync = function (method, model, defaultOpts) {\n\tconst syncArguments = arguments;\n\n\tif (method === \"read\") {\n\t\t// look for sync methods\n\t\tconst syncActions = [];\n\t\tmiddlewares.forEach((middleware) => {\n\t\t\tif (middleware.sync) {\n\t\t\t\tsyncActions.push(middleware.sync.apply(this, syncArguments));\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.all(syncActions).then((...newOpts) => {\n\t\t\tconst joinedOpts = _.merge({}, defaultOpts, ...newOpts.flat());\n\t\t\treturn ajaxSync.call(this, method, model, joinedOpts);\n\t\t});\n\t}\n\treturn ajaxSync.call(this, method, model, defaultOpts);\n};\n\nexport const ajaxSync = function (method, model, options) {\n\tconst type = methodMap[method];\n\n\t// Default options, unless specified.\n\tdefaults(options || {}, {\n\t\temulateHTTP: false,\n\t\temulateJSON: false,\n\t});\n\n\t// Default request options.\n\tconst params = { type: type };\n\n\t// Ensure that we have a URL.\n\tif (!options.url) {\n\t\toptions.url = _.result(model, \"url\") || urlError();\n\t}\n\n\t// Ensure that we have the appropriate request data.\n\tif (\n\t\toptions.data === null &&\n\t\tmodel &&\n\t\t(method === \"create\" ||\n\t\t\tmethod === \"update\" ||\n\t\t\tmethod === \"patch\" ||\n\t\t\t(method === \"delete\" && options.batch))\n\t) {\n\t\tparams.json = options.attrs || model.toJSON(options);\n\t}\n\n\tconst url = buildURL({ method, model, options });\n\n\tconst requestSettings = assign(params, options);\n\trequestSettings.method = type;\n\n\tconst request = SuperAgentRequest(type, url);\n\n\tif (\n\t\ttype === \"PATCH\" ||\n\t\ttype === \"POST\" ||\n\t\ttype === \"PUT\" ||\n\t\t(type === \"DELETE\" && options.batch)\n\t) {\n\t\tlet data = model.toServer();\n\n\t\t// Note we can use formdata to override the way a patch works - if we\n\t\t// are doing this it's for a particular patch with an image or file,\n\t\t// probably.\n\t\tif (type === \"PATCH\" && !_.isArray(data) && !(data instanceof FormData)) {\n\t\t\t// Make sure we're only updating data actually passed to the save\n\t\t\t// function, rather than automatically generated stuff\n\t\t\tdata = _.pick(options.attrs, Object.keys(data));\n\t\t}\n\t\trequest.send(data);\n\t}\n\n\toptions.xhr = request;\n\n\tmiddlewares.forEach((middleware) => {\n\t\tif (middleware.preflight) {\n\t\t\tmiddleware.preflight(request, model, options);\n\t\t}\n\t});\n\n\tlet mc = 0;\n\n\tfunction getNextMiddleware(request) {\n\t\treturn function middlewareInterceptor(response) {\n\t\t\tif (mc < middlewares.length) {\n\t\t\t\treturn middlewares[mc++]\n\t\t\t\t\t.intercept(request, response, model)\n\t\t\t\t\t.then(getNextMiddleware(request));\n\t\t\t}\n\t\t\treturn Promise.resolve(response);\n\t\t};\n\t}\n\n\tmodel.trigger(\"request\", model, request, options, requestSettings);\n\trequest.requestSettings = requestSettings;\n\n\tconst ajaxConfig = _.result(model, \"ajaxConfig\") || {};\n\n\t// Combine generated headers with user's headers.\n\tif (ajaxConfig.headers) {\n\t\tfor (const key in ajaxConfig.headers) {\n\t\t\trequest.header[key.toLowerCase()] = ajaxConfig.headers[key];\n\t\t}\n\t}\n\n\tif (options.headers) {\n\t\tfor (const key in options.headers) {\n\t\t\trequest.header[key.toLowerCase()] = options.headers[key];\n\t\t}\n\t}\n\n\t// TODO: Remove me when this can be moved... for now this removal is quite a complex\n\t// process.\n\tif (options.cachedResponse) {\n\t\treturn Promise.resolve(options.cachedResponse)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((response) => {\n\t\t\t\tif (!response.data) {\n\t\t\t\t\tresponse.data = JSON.parse(response.text);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, true);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(response.data, \"success\", response);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((response) => {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response, model);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\treturn (\n\t\trequest\n\t\t\t// Force a timeout on every request. Intermittent connections\n\t\t\t// can have the request continue trying for minutes otherwise.\n\t\t\t// 60 seconds is the timeout the server has, so we go for 65 seconds,\n\t\t\t// so we give the chance to the server to time out first - helps with\n\t\t\t// debugging.\n\t\t\t.timeout(65 * 1000)\n\t\t\t.then(getNextMiddleware(request))\n\t\t\t.then((response) => {\n\t\t\t\tlet data;\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(response.text);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tdata = response;\n\t\t\t\t}\n\n\t\t\t\tif (type !== \"DELETE\") {\n\t\t\t\t\tmodel.set(data);\n\t\t\t\t}\n\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.success(request, response, model, false);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.success) {\n\t\t\t\t\t\toptions.success(data, \"success\", response);\n\t\t\t\t\t}\n\t\t\t\t\trequest.emit(\"success\", response);\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\tif (\n\t\t\t\t\te.res &&\n\t\t\t\t\te.res.body &&\n\t\t\t\t\t((e.status >= 400 && e.status < 500) || e.status === 503)\n\t\t\t\t) {\n\t\t\t\t\te.message += `\\nBody: ${JSON.stringify(e.res.body)}`;\n\t\t\t\t}\n\t\t\t\tthrow e;\n\t\t\t})\n\t\t\t.catch((response) => {\n\t\t\t\treturn Promise.each(middlewares, (middleware) => {\n\t\t\t\t\treturn middleware.error(response);\n\t\t\t\t}).then(() => {\n\t\t\t\t\tif (options.error) {\n\t\t\t\t\t\toptions.error(response, \"error\", response.message);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Provide a more explanatory error message on timeout\n\t\t\t\t\tif (\n\t\t\t\t\t\tresponse &&\n\t\t\t\t\t\tresponse.originalError &&\n\t\t\t\t\t\tresponse.originalError.code === \"ECONNABORTED\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Failed ${type} request on url: ${url}. ${response.message}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t})\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
|
package/cjs/utils.js
CHANGED
|
@@ -12,19 +12,49 @@ exports.isImpostor = isImpostor;
|
|
|
12
12
|
exports.isImpostorDeck = isImpostorDeck;
|
|
13
13
|
exports.removeMultiByteChars = removeMultiByteChars;
|
|
14
14
|
exports.replaceHostname = replaceHostname;
|
|
15
|
+
exports.resolveURL = resolveURL;
|
|
15
16
|
exports.sanitizeBase64 = sanitizeBase64;
|
|
16
17
|
exports.setSequentialSequences = setSequentialSequences;
|
|
17
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
19
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
19
20
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
20
21
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
21
|
-
var _url = _interopRequireDefault(require("url"));
|
|
22
22
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
/* eslint-disable no-control-regex */
|
|
25
|
+
|
|
24
26
|
var DATE_FORMAT = exports.DATE_FORMAT = "YYYY-MM-DD HH:mm:ss.SSSSSS[Z]";
|
|
25
27
|
var DATE_FORMAT_T = exports.DATE_FORMAT_T = "YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]";
|
|
26
28
|
function getShortURL(url) {
|
|
27
|
-
|
|
29
|
+
if (!url) return url;
|
|
30
|
+
if (typeof url !== "string") return url;
|
|
31
|
+
try {
|
|
32
|
+
return new URL(url, "http://a.b").pathname;
|
|
33
|
+
} catch (e) {
|
|
34
|
+
return url;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Resolves a target URL relative to a base URL in a manner similar to a Web browser resolving an anchor tag.
|
|
40
|
+
* Matches url.resolve() behavior but handles relative bases.
|
|
41
|
+
*/
|
|
42
|
+
function resolveURL(base, relative) {
|
|
43
|
+
if (!base) return relative;
|
|
44
|
+
if (!relative) return base;
|
|
45
|
+
var dummyBase = "http://a.b";
|
|
46
|
+
try {
|
|
47
|
+
// Try resolving normally (if base is absolute)
|
|
48
|
+
return new URL(relative, base).href;
|
|
49
|
+
} catch (e) {
|
|
50
|
+
try {
|
|
51
|
+
// If base is relative, resolve it against a dummy base, then strip it
|
|
52
|
+
var resolved = new URL(relative, new URL(base, dummyBase));
|
|
53
|
+
return resolved.href.replace(dummyBase, "");
|
|
54
|
+
} catch (e2) {
|
|
55
|
+
return relative;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
28
58
|
}
|
|
29
59
|
|
|
30
60
|
/**
|
package/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_lodash","_interopRequireDefault","require","_url","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DATE_FORMAT","exports","DATE_FORMAT_T","getShortURL","url","url2","parse","path","removeMultiByteChars","_txt","txt","replace","HOSTNAME_RE","getHostname","data","Error","concat","match","replaceHostname","before","after","hostnameBefore","hostnameAfter","indexOf","Array","isArray","map","item","_","isObject","reduce","newObj","key","getMaxID","deckVersionModel","ids","section_set","section","slides","slide_set","slide","subslides","subslide_set","subslide","id","_toConsumableArray2","flatten","max","setSequentialSequences","deck","sections","index","sequence","isImpostor","model","tags","isImpostorDeck","first","Boolean","find","sanitizeBase64","obj","conditionFn","undefined","v","_typeof2","acc","re","test","_conditionFn","process","env","NODE_ENV","window","Cypress"],"sources":["../src/utils.js"],"sourcesContent":["import _ from \"lodash\";\n/* eslint-disable no-control-regex */\nimport url2 from \"url\";\n\nexport const DATE_FORMAT = \"YYYY-MM-DD HH:mm:ss.SSSSSS[Z]\";\nexport const DATE_FORMAT_T = \"YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]\";\n\nexport function getShortURL(url) {\n\treturn url2.parse(url).path;\n}\n\n/**\n * Sometimes a string(especially from another platform) has characters encoded using another method.\n * In these circumstances those characters, when encoded with utf-8, look like errors.\n * see http://i18nqa.com/debug/utf8-debug.html for examples\n */\nexport function removeMultiByteChars(_txt) {\n\t// replace possible whitespace characters (non-breaking space, thin space etc.) with a normal space\n\tconst txt = _txt.replace(/(\\xA0|\\x20|\\x07|â)/gmu, \" \");\n\n\t// remove every other cursed character entirely.\n\treturn txt.replace(\n\t\t/[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}|[\\x80-\\xBF][\\xC0-\\xFF]/gmu,\n\t\t\"\",\n\t);\n}\n\nconst HOSTNAME_RE = /^(?:https?:\\/\\/)?([\\w-\\._]*)/;\n\nexport function getHostname(data) {\n\tif (typeof data !== \"string\") {\n\t\tthrow new Error(\n\t\t\t`Arg must contain a hostname, ie: \"test.livepreso.com\". Found \"${data}\"`,\n\t\t);\n\t}\n\n\treturn data.match(HOSTNAME_RE)[1];\n}\n\n/**\n * Replaces the hostname in some data (regardless of it being a string, array or object),\n * it will recursively update it all.\n *\n * Eg:\n *\n * replaceHostname(\"https://test.com/api/cool/1/\", \"test.com\", \"real.com\")\n * > \"https://real.com/api/cool/1/\"\n *\n */\nexport function replaceHostname(data, before, after) {\n\t// Don't do anything if they're the same!\n\tif (before === after) {\n\t\treturn data;\n\t}\n\n\tconst hostnameBefore = getHostname(before, \"Before\");\n\tconst hostnameAfter = getHostname(after, \"After\");\n\n\tif (typeof data === \"string\" && data.indexOf(\"http\") === 0) {\n\t\treturn data.replace(hostnameBefore, hostnameAfter);\n\t} else if (Array.isArray(data)) {\n\t\treturn data.map((item) => replaceHostname(item, before, after));\n\t} else if (_.isObject(data)) {\n\t\treturn Object.keys(data).reduce((newObj, key) => {\n\t\t\tnewObj[key] = replaceHostname(data[key], before, after);\n\t\t\treturn newObj;\n\t\t}, {});\n\t}\n\treturn data;\n}\n\n// Takes the deckversion model and retrieves the highest id between all of\n// the sections, slides and subslides\nexport function getMaxID(deckVersionModel) {\n\tconst ids = deckVersionModel.section_set.map((section) => {\n\t\tlet slides = [];\n\t\tif (section.slide_set) {\n\t\t\tslides = section.slide_set.map((slide) => {\n\t\t\t\tlet subslides = [];\n\n\t\t\t\tif (slide.subslide_set) {\n\t\t\t\t\tsubslides = slide.subslide_set.map((subslide) => subslide.id);\n\t\t\t\t}\n\n\t\t\t\treturn [slide.id, ...subslides];\n\t\t\t});\n\t\t}\n\n\t\treturn [section.id, ..._.flatten(slides)];\n\t});\n\n\treturn _.max(_.flatten(ids));\n}\n\n// The sections, slides and subslides are currently ordered by sequence\n// but the sequence is not necessarily 0-based and sequential (e.g. in the\n// case of impostor decks). We fix that here.\nexport function setSequentialSequences(deck) {\n\tdeck.sections.forEach((section, index) => {\n\t\tsection.sequence = index;\n\t\tsection.index = index;\n\n\t\tsection.slides.forEach((slide, index) => {\n\t\t\tslide.sequence = index;\n\t\t\tslide.index = index;\n\n\t\t\tslide.subslides.forEach((subslide, index) => {\n\t\t\t\tsubslide.sequence = index;\n\t\t\t\tsubslide.index = index;\n\t\t\t});\n\t\t});\n\t});\n}\n\n// A simple function to check the tags of a model - if it has the \"section-header\"\n// tag then it's an impostor slide\nexport function isImpostor(model) {\n\tconst tags = model.tags || [];\n\n\treturn tags.indexOf(\"section-header\") !== -1;\n}\n\n// An impostor deck will have impostor slides - checking for these is the\n// most reliable method of determining whether a deck is an impostor deck,\n// and is also the same method that the server uses.\nexport function isImpostorDeck(deckVersionModel) {\n\tconst section = deckVersionModel.section_set.first();\n\n\treturn Boolean(\n\t\tsection && section.slide_set.find((slide) => isImpostor(slide)),\n\t);\n}\n\n/**\n * Strips base64 strings recursively.\n *\n * Optionally accepts a condition function, which you can use you add any extra\n * checks to test whether you want to clear the string.\n */\nexport function sanitizeBase64(obj, conditionFn = () => true) {\n\tif (Array.isArray(obj)) {\n\t\treturn obj.map((v) => sanitizeBase64(v, conditionFn));\n\t} else if (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\ttypeof obj !== \"undefined\"\n\t) {\n\t\treturn Object.keys(obj).reduce((acc, key) => {\n\t\t\treturn { ...acc, [key]: sanitizeBase64(obj[key], conditionFn) };\n\t\t}, {});\n\t} else if (typeof obj === \"string\") {\n\t\t// Catch anything that looks like base64, or base64%2C (which is the encoded version)\n\t\t// and strip it. This is a last resort, we'd prefer not to be in this position!\n\t\tconst re = /base64(,|(%2C))/;\n\n\t\tif (re.test(obj)) {\n\t\t\t// If you're a developer, let's throw an error.\n\t\t\tif (process.env.NODE_ENV === \"development\" && !window.Cypress) {\n\t\t\t\tthrow new Error(\"Tried to save a base64 string. Figure out why!\");\n\t\t\t}\n\n\t\t\tif (conditionFn?.(obj) ?? true) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn obj;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_lodash","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DATE_FORMAT","exports","DATE_FORMAT_T","getShortURL","url","URL","pathname","resolveURL","base","relative","dummyBase","href","resolved","replace","e2","removeMultiByteChars","_txt","txt","HOSTNAME_RE","getHostname","data","Error","concat","match","replaceHostname","before","after","hostnameBefore","hostnameAfter","indexOf","Array","isArray","map","item","_","isObject","reduce","newObj","key","getMaxID","deckVersionModel","ids","section_set","section","slides","slide_set","slide","subslides","subslide_set","subslide","id","_toConsumableArray2","flatten","max","setSequentialSequences","deck","sections","index","sequence","isImpostor","model","tags","isImpostorDeck","first","Boolean","find","sanitizeBase64","obj","conditionFn","undefined","v","_typeof2","acc","re","test","_conditionFn","process","env","NODE_ENV","window","Cypress"],"sources":["../src/utils.js"],"sourcesContent":["import _ from \"lodash\";\n/* eslint-disable no-control-regex */\n\nexport const DATE_FORMAT = \"YYYY-MM-DD HH:mm:ss.SSSSSS[Z]\";\nexport const DATE_FORMAT_T = \"YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]\";\n\nexport function getShortURL(url) {\n\tif (!url) return url;\n\tif (typeof url !== \"string\") return url;\n\n\ttry {\n\t\treturn new URL(url, \"http://a.b\").pathname;\n\t} catch (e) {\n\t\treturn url;\n\t}\n}\n\n/**\n * Resolves a target URL relative to a base URL in a manner similar to a Web browser resolving an anchor tag.\n * Matches url.resolve() behavior but handles relative bases.\n */\nexport function resolveURL(base, relative) {\n\tif (!base) return relative;\n\tif (!relative) return base;\n\n\tconst dummyBase = \"http://a.b\";\n\ttry {\n\t\t// Try resolving normally (if base is absolute)\n\t\treturn new URL(relative, base).href;\n\t} catch (e) {\n\t\ttry {\n\t\t\t// If base is relative, resolve it against a dummy base, then strip it\n\t\t\tconst resolved = new URL(relative, new URL(base, dummyBase));\n\t\t\treturn resolved.href.replace(dummyBase, \"\");\n\t\t} catch (e2) {\n\t\t\treturn relative;\n\t\t}\n\t}\n}\n\n/**\n * Sometimes a string(especially from another platform) has characters encoded using another method.\n * In these circumstances those characters, when encoded with utf-8, look like errors.\n * see http://i18nqa.com/debug/utf8-debug.html for examples\n */\nexport function removeMultiByteChars(_txt) {\n\t// replace possible whitespace characters (non-breaking space, thin space etc.) with a normal space\n\tconst txt = _txt.replace(/(\\xA0|\\x20|\\x07|â)/gmu, \" \");\n\n\t// remove every other cursed character entirely.\n\treturn txt.replace(\n\t\t/[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}|[\\x80-\\xBF][\\xC0-\\xFF]/gmu,\n\t\t\"\",\n\t);\n}\n\nconst HOSTNAME_RE = /^(?:https?:\\/\\/)?([\\w-\\._]*)/;\n\nexport function getHostname(data) {\n\tif (typeof data !== \"string\") {\n\t\tthrow new Error(\n\t\t\t`Arg must contain a hostname, ie: \"test.livepreso.com\". Found \"${data}\"`,\n\t\t);\n\t}\n\n\treturn data.match(HOSTNAME_RE)[1];\n}\n\n/**\n * Replaces the hostname in some data (regardless of it being a string, array or object),\n * it will recursively update it all.\n *\n * Eg:\n *\n * replaceHostname(\"https://test.com/api/cool/1/\", \"test.com\", \"real.com\")\n * > \"https://real.com/api/cool/1/\"\n *\n */\nexport function replaceHostname(data, before, after) {\n\t// Don't do anything if they're the same!\n\tif (before === after) {\n\t\treturn data;\n\t}\n\n\tconst hostnameBefore = getHostname(before, \"Before\");\n\tconst hostnameAfter = getHostname(after, \"After\");\n\n\tif (typeof data === \"string\" && data.indexOf(\"http\") === 0) {\n\t\treturn data.replace(hostnameBefore, hostnameAfter);\n\t} else if (Array.isArray(data)) {\n\t\treturn data.map((item) => replaceHostname(item, before, after));\n\t} else if (_.isObject(data)) {\n\t\treturn Object.keys(data).reduce((newObj, key) => {\n\t\t\tnewObj[key] = replaceHostname(data[key], before, after);\n\t\t\treturn newObj;\n\t\t}, {});\n\t}\n\treturn data;\n}\n\n// Takes the deckversion model and retrieves the highest id between all of\n// the sections, slides and subslides\nexport function getMaxID(deckVersionModel) {\n\tconst ids = deckVersionModel.section_set.map((section) => {\n\t\tlet slides = [];\n\t\tif (section.slide_set) {\n\t\t\tslides = section.slide_set.map((slide) => {\n\t\t\t\tlet subslides = [];\n\n\t\t\t\tif (slide.subslide_set) {\n\t\t\t\t\tsubslides = slide.subslide_set.map((subslide) => subslide.id);\n\t\t\t\t}\n\n\t\t\t\treturn [slide.id, ...subslides];\n\t\t\t});\n\t\t}\n\n\t\treturn [section.id, ..._.flatten(slides)];\n\t});\n\n\treturn _.max(_.flatten(ids));\n}\n\n// The sections, slides and subslides are currently ordered by sequence\n// but the sequence is not necessarily 0-based and sequential (e.g. in the\n// case of impostor decks). We fix that here.\nexport function setSequentialSequences(deck) {\n\tdeck.sections.forEach((section, index) => {\n\t\tsection.sequence = index;\n\t\tsection.index = index;\n\n\t\tsection.slides.forEach((slide, index) => {\n\t\t\tslide.sequence = index;\n\t\t\tslide.index = index;\n\n\t\t\tslide.subslides.forEach((subslide, index) => {\n\t\t\t\tsubslide.sequence = index;\n\t\t\t\tsubslide.index = index;\n\t\t\t});\n\t\t});\n\t});\n}\n\n// A simple function to check the tags of a model - if it has the \"section-header\"\n// tag then it's an impostor slide\nexport function isImpostor(model) {\n\tconst tags = model.tags || [];\n\n\treturn tags.indexOf(\"section-header\") !== -1;\n}\n\n// An impostor deck will have impostor slides - checking for these is the\n// most reliable method of determining whether a deck is an impostor deck,\n// and is also the same method that the server uses.\nexport function isImpostorDeck(deckVersionModel) {\n\tconst section = deckVersionModel.section_set.first();\n\n\treturn Boolean(\n\t\tsection && section.slide_set.find((slide) => isImpostor(slide)),\n\t);\n}\n\n/**\n * Strips base64 strings recursively.\n *\n * Optionally accepts a condition function, which you can use you add any extra\n * checks to test whether you want to clear the string.\n */\nexport function sanitizeBase64(obj, conditionFn = () => true) {\n\tif (Array.isArray(obj)) {\n\t\treturn obj.map((v) => sanitizeBase64(v, conditionFn));\n\t} else if (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\ttypeof obj !== \"undefined\"\n\t) {\n\t\treturn Object.keys(obj).reduce((acc, key) => {\n\t\t\treturn { ...acc, [key]: sanitizeBase64(obj[key], conditionFn) };\n\t\t}, {});\n\t} else if (typeof obj === \"string\") {\n\t\t// Catch anything that looks like base64, or base64%2C (which is the encoded version)\n\t\t// and strip it. This is a last resort, we'd prefer not to be in this position!\n\t\tconst re = /base64(,|(%2C))/;\n\n\t\tif (re.test(obj)) {\n\t\t\t// If you're a developer, let's throw an error.\n\t\t\tif (process.env.NODE_ENV === \"development\" && !window.Cypress) {\n\t\t\t\tthrow new Error(\"Tried to save a base64 string. Figure out why!\");\n\t\t\t}\n\n\t\t\tif (conditionFn?.(obj) ?? true) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn obj;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livepreso/api",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.56.0",
|
|
5
5
|
"description": "Everything to do with talking to the SalePreso API",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"module": "esm/index.js",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"jest-fixed-default-reporter": "~2.0.1",
|
|
57
57
|
"rosie": "~2.1.0",
|
|
58
58
|
"@faker-js/faker": "~7.5.0",
|
|
59
|
-
"
|
|
60
|
-
"
|
|
59
|
+
"sp-test": "0.2.0",
|
|
60
|
+
"@livepreso/eslint-config": "1.0.0"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"test:debug": "node --inspect node_modules/.bin/jest --watch --runInBand",
|
package/src/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Promise from "bluebird";
|
|
2
|
-
import
|
|
2
|
+
import { resolveURL } from "./utils.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @namespace api
|
|
@@ -72,10 +72,8 @@ export const Api = {
|
|
|
72
72
|
* @returns {string}
|
|
73
73
|
*/
|
|
74
74
|
getRootURL() {
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
urlObj.search = "";
|
|
78
|
-
return url2.format(urlObj);
|
|
75
|
+
const url = resolveURL(Api._apiURL, "/");
|
|
76
|
+
return url;
|
|
79
77
|
},
|
|
80
78
|
|
|
81
79
|
/**
|
package/src/models/base.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getShortURL, removeMultiByteChars } from "../utils.js";
|
|
2
2
|
|
|
3
3
|
import { Api } from "../api.js";
|
|
4
4
|
import Collection from "ampersand-rest-collection";
|
|
@@ -8,11 +8,9 @@ import SuperAgentRequest from "superagent-bluebird-promise";
|
|
|
8
8
|
import _ from "lodash";
|
|
9
9
|
import dedent from "dedent-js";
|
|
10
10
|
import log from "../log.js";
|
|
11
|
-
import moment from "moment";
|
|
12
11
|
import qs from "qs";
|
|
13
12
|
import { registeredStates } from "../state-register.js";
|
|
14
13
|
import { sync } from "../sync.js";
|
|
15
|
-
import url2 from "url";
|
|
16
14
|
|
|
17
15
|
/**
|
|
18
16
|
* @constructor
|
|
@@ -246,8 +244,8 @@ export const BaseModel = Model.extend(
|
|
|
246
244
|
return null;
|
|
247
245
|
}
|
|
248
246
|
|
|
249
|
-
const urlPath =
|
|
250
|
-
const resourceURLPath =
|
|
247
|
+
const urlPath = getShortURL(url);
|
|
248
|
+
const resourceURLPath = getShortURL(resourceURL);
|
|
251
249
|
|
|
252
250
|
// Remove the '/api' if present
|
|
253
251
|
const resourceEnd = resourceURLPath.split("/api").join("");
|
|
@@ -276,20 +274,40 @@ export const BaseModel = Model.extend(
|
|
|
276
274
|
dataTypes: {
|
|
277
275
|
date: {
|
|
278
276
|
set: (newVal) => {
|
|
277
|
+
let val = null;
|
|
278
|
+
if (newVal) {
|
|
279
|
+
try {
|
|
280
|
+
const date = new Date(newVal);
|
|
281
|
+
if (!isNaN(date.getTime())) {
|
|
282
|
+
val = date.toISOString().replace("Z", "000Z");
|
|
283
|
+
}
|
|
284
|
+
} catch (_e) {
|
|
285
|
+
// fallback to null if invalid
|
|
286
|
+
}
|
|
287
|
+
}
|
|
279
288
|
return {
|
|
280
|
-
val
|
|
289
|
+
val,
|
|
281
290
|
type: "date",
|
|
282
291
|
};
|
|
283
292
|
},
|
|
284
293
|
compare: (currentVal, newVal) => {
|
|
285
|
-
if (
|
|
294
|
+
if (currentVal === undefined) {
|
|
286
295
|
return false;
|
|
287
296
|
}
|
|
288
297
|
|
|
289
298
|
if (currentVal || newVal) {
|
|
290
|
-
|
|
299
|
+
if (currentVal === newVal) {
|
|
300
|
+
return true;
|
|
301
|
+
}
|
|
302
|
+
try {
|
|
303
|
+
const d1 = new Date(currentVal);
|
|
304
|
+
const d2 = new Date(newVal);
|
|
305
|
+
return d1.getTime() === d2.getTime();
|
|
306
|
+
} catch (_e) {
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
291
309
|
}
|
|
292
|
-
return currentVal
|
|
310
|
+
return currentVal === newVal;
|
|
293
311
|
},
|
|
294
312
|
},
|
|
295
313
|
stringSanitized: {
|
|
@@ -5,15 +5,12 @@ import "./deck.js";
|
|
|
5
5
|
import "./asset.js";
|
|
6
6
|
import "./manifest-json.js";
|
|
7
7
|
|
|
8
|
-
import { Auth } from "../auth.js";
|
|
9
8
|
import { BaseModel } from "./base.js";
|
|
10
9
|
import { DeckLayoutModel } from "./deck-layout.js";
|
|
11
10
|
import { DeckVersionScreenshotCollection } from "../collections/deck-version-screenshots.js";
|
|
12
11
|
import Promise from "bluebird";
|
|
13
12
|
import { TemplateCollection } from "../collections.js";
|
|
14
|
-
import _ from "lodash";
|
|
15
13
|
import { register } from "../state-register.js";
|
|
16
|
-
import superagent from "superagent";
|
|
17
14
|
|
|
18
15
|
/**
|
|
19
16
|
* @constructor
|
|
@@ -178,29 +175,6 @@ export const DeckVersionModel = BaseModel.extend(
|
|
|
178
175
|
});
|
|
179
176
|
},
|
|
180
177
|
|
|
181
|
-
getFixtures(fixtures = {}, rootAssetUrl = this.getRootAssetUrl()) {
|
|
182
|
-
const fixturePaths = this.manifest_json.fixtures || {};
|
|
183
|
-
|
|
184
|
-
const imports = _.map(fixturePaths, (fixture, key) => {
|
|
185
|
-
const path = `${rootAssetUrl}${fixture}`;
|
|
186
|
-
|
|
187
|
-
return superagent
|
|
188
|
-
.get(path)
|
|
189
|
-
.then((response) => {
|
|
190
|
-
if (response.text) {
|
|
191
|
-
fixtures[key] = JSON.parse(response.text);
|
|
192
|
-
} else {
|
|
193
|
-
fixtures[key] = response.body || {};
|
|
194
|
-
}
|
|
195
|
-
})
|
|
196
|
-
.catch(superagent.SuperagentPromiseError, (e) => {
|
|
197
|
-
throw e;
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
return Promise.all(imports);
|
|
202
|
-
},
|
|
203
|
-
|
|
204
178
|
fetch(opts, ...other) {
|
|
205
179
|
const fetch = BaseModel.prototype.fetch.apply(this, [opts, ...other]);
|
|
206
180
|
const shouldFetchTemplates = opts?.fetchTemplates ?? true;
|
|
@@ -226,17 +200,17 @@ export const DeckVersionModel = BaseModel.extend(
|
|
|
226
200
|
);
|
|
227
201
|
},
|
|
228
202
|
|
|
229
|
-
fetchLayout: async function (
|
|
203
|
+
fetchLayout: async function ({ presetID, scenarioID }) {
|
|
230
204
|
let queryParams = { version: this.version };
|
|
231
|
-
if (
|
|
232
|
-
queryParams.preset_id =
|
|
205
|
+
if (presetID) {
|
|
206
|
+
queryParams.preset_id = presetID;
|
|
233
207
|
}
|
|
234
208
|
if (scenarioID) {
|
|
235
209
|
queryParams.scenario_id = scenarioID;
|
|
236
210
|
}
|
|
237
211
|
|
|
238
|
-
if (!this.id) {
|
|
239
|
-
return Promise.reject(new Error("DeckVersion has no
|
|
212
|
+
if (!this.deck.id) {
|
|
213
|
+
return Promise.reject(new Error("DeckVersion has no deck."));
|
|
240
214
|
}
|
|
241
215
|
|
|
242
216
|
const layout = new DeckLayoutModel(
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
1
2
|
import "./pack.js";
|
|
2
3
|
|
|
4
|
+
import superagent from "superagent";
|
|
3
5
|
import { BaseModel } from "./base.js";
|
|
4
6
|
import { register } from "../state-register.js";
|
|
5
|
-
import
|
|
7
|
+
import { resolveURL } from "../utils.js";
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* @constructor
|
|
@@ -135,7 +137,7 @@ export const ManifestJSONModel = BaseModel.extend(
|
|
|
135
137
|
getDimensionsByName(name) {
|
|
136
138
|
if (Array.isArray(this.dimensions)) {
|
|
137
139
|
const dimension = this.dimensions.find(
|
|
138
|
-
(d) => d.name?.toLowerCase() === name
|
|
140
|
+
(d) => d.name?.toLowerCase() === name.toLowerCase(),
|
|
139
141
|
);
|
|
140
142
|
if (!dimension) {
|
|
141
143
|
return { width: 1024, height: 767 };
|
|
@@ -166,12 +168,12 @@ export const ManifestJSONModel = BaseModel.extend(
|
|
|
166
168
|
getAssetPath(key = null) {
|
|
167
169
|
if (key) {
|
|
168
170
|
const [sectionKey, slideKey = null] = key.split("/");
|
|
169
|
-
const sectionKeyPath =
|
|
171
|
+
const sectionKeyPath = resolveURL(
|
|
170
172
|
this.url(),
|
|
171
173
|
`sections/${sectionKey}/`,
|
|
172
174
|
);
|
|
173
175
|
if (slideKey) {
|
|
174
|
-
return
|
|
176
|
+
return resolveURL(sectionKeyPath, `slides/${slideKey}/`);
|
|
175
177
|
}
|
|
176
178
|
return sectionKeyPath;
|
|
177
179
|
}
|
|
@@ -185,7 +187,33 @@ export const ManifestJSONModel = BaseModel.extend(
|
|
|
185
187
|
* @returns {?string}
|
|
186
188
|
*/
|
|
187
189
|
getTemplateAssetPath(key) {
|
|
188
|
-
return
|
|
190
|
+
return resolveURL(this.getAssetPath(), `templates/${key}/`);
|
|
191
|
+
},
|
|
192
|
+
|
|
193
|
+
async getFixtures(rootAssetUrl) {
|
|
194
|
+
const fixturePaths = this.fixtures || {};
|
|
195
|
+
const fixtures = {};
|
|
196
|
+
|
|
197
|
+
const imports = _.map(fixturePaths, (fixture, key) => {
|
|
198
|
+
const path = `${rootAssetUrl}${fixture}`;
|
|
199
|
+
|
|
200
|
+
return superagent
|
|
201
|
+
.get(path)
|
|
202
|
+
.then((response) => {
|
|
203
|
+
if (response.text) {
|
|
204
|
+
fixtures[key] = JSON.parse(response.text);
|
|
205
|
+
} else {
|
|
206
|
+
fixtures[key] = response.body || {};
|
|
207
|
+
}
|
|
208
|
+
})
|
|
209
|
+
.catch(superagent.SuperagentPromiseError, (e) => {
|
|
210
|
+
throw e;
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
await Promise.all(imports);
|
|
215
|
+
|
|
216
|
+
return fixtures;
|
|
189
217
|
},
|
|
190
218
|
|
|
191
219
|
url() {
|