@pixwel/pixwel-sdk 2.0.0 → 2.1.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.
Files changed (47) hide show
  1. package/.babelrc +2 -1
  2. package/README.md +60 -0
  3. package/coverage/clover.xml +581 -430
  4. package/coverage/coverage-final.json +15 -9
  5. package/coverage/lcov-report/Ass.js.html +212 -212
  6. package/coverage/lcov-report/Asset.js.html +27 -27
  7. package/coverage/lcov-report/AssetType.js.html +98 -0
  8. package/coverage/lcov-report/Encode.js.html +98 -0
  9. package/coverage/lcov-report/File.js.html +98 -0
  10. package/coverage/lcov-report/Filename.js.html +9 -726
  11. package/coverage/lcov-report/Ingest.js.html +1239 -279
  12. package/coverage/lcov-report/IngestFile.js.html +5 -5
  13. package/coverage/lcov-report/Model.js.html +821 -0
  14. package/coverage/lcov-report/Order.js.html +25 -25
  15. package/coverage/lcov-report/Srt.js.html +102 -102
  16. package/coverage/lcov-report/Sub.js.html +43 -43
  17. package/coverage/lcov-report/Tag.js.html +98 -0
  18. package/coverage/lcov-report/TimeFormat.js.html +63 -63
  19. package/coverage/lcov-report/fileType.js.html +188 -0
  20. package/coverage/lcov-report/index.html +164 -86
  21. package/coverage/lcov.info +1159 -846
  22. package/dist/index.js +74 -22
  23. package/dist/src/Asset.js +10 -5
  24. package/dist/src/AssetType.js +54 -0
  25. package/dist/src/Encode.js +54 -0
  26. package/dist/src/File.js +54 -0
  27. package/dist/src/Filename.js +7 -228
  28. package/dist/src/Ingest.js +365 -33
  29. package/dist/src/IngestFile.js +6 -2
  30. package/dist/src/Model.js +569 -0
  31. package/dist/src/Order.js +20 -9
  32. package/dist/src/Srt.js +5 -1
  33. package/dist/src/Tag.js +54 -0
  34. package/dist/src/fileType.js +43 -0
  35. package/index.js +14 -0
  36. package/package.json +9 -3
  37. package/src/AssetType.js +11 -0
  38. package/src/Encode.js +11 -0
  39. package/src/File.js +11 -0
  40. package/src/Filename.js +0 -239
  41. package/src/Ingest.js +347 -27
  42. package/src/Model.js +252 -0
  43. package/src/Tag.js +11 -0
  44. package/src/fileType.js +41 -0
  45. package/test/Filename.spec.js +3 -707
  46. package/test/Ingest.spec.js +1107 -152
  47. package/test/Model.spec.js +328 -0
package/dist/index.js CHANGED
@@ -1,52 +1,104 @@
1
1
  'use strict';
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
- value: true
4
+ value: true
5
5
  });
6
6
 
7
7
  var _Asset = require('./src/Asset');
8
8
 
9
9
  Object.defineProperty(exports, 'Asset', {
10
- enumerable: true,
11
- get: function get() {
12
- return _interopRequireDefault(_Asset).default;
13
- }
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _interopRequireDefault(_Asset).default;
13
+ }
14
+ });
15
+
16
+ var _AssetType = require('./src/AssetType');
17
+
18
+ Object.defineProperty(exports, 'AssetType', {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _interopRequireDefault(_AssetType).default;
22
+ }
23
+ });
24
+
25
+ var _Encode = require('./src/Encode');
26
+
27
+ Object.defineProperty(exports, 'Encode', {
28
+ enumerable: true,
29
+ get: function get() {
30
+ return _interopRequireDefault(_Encode).default;
31
+ }
32
+ });
33
+
34
+ var _File = require('./src/File');
35
+
36
+ Object.defineProperty(exports, 'File', {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _interopRequireDefault(_File).default;
40
+ }
14
41
  });
15
42
 
16
43
  var _Filename = require('./src/Filename');
17
44
 
18
45
  Object.defineProperty(exports, 'Filename', {
19
- enumerable: true,
20
- get: function get() {
21
- return _interopRequireDefault(_Filename).default;
22
- }
46
+ enumerable: true,
47
+ get: function get() {
48
+ return _interopRequireDefault(_Filename).default;
49
+ }
23
50
  });
24
51
 
25
52
  var _Ingest = require('./src/Ingest');
26
53
 
27
54
  Object.defineProperty(exports, 'Ingest', {
28
- enumerable: true,
29
- get: function get() {
30
- return _interopRequireDefault(_Ingest).default;
31
- }
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _interopRequireDefault(_Ingest).default;
58
+ }
32
59
  });
33
60
 
34
61
  var _IngestFile = require('./src/IngestFile');
35
62
 
36
63
  Object.defineProperty(exports, 'IngestFile', {
37
- enumerable: true,
38
- get: function get() {
39
- return _interopRequireDefault(_IngestFile).default;
40
- }
64
+ enumerable: true,
65
+ get: function get() {
66
+ return _interopRequireDefault(_IngestFile).default;
67
+ }
68
+ });
69
+
70
+ var _Model = require('./src/Model');
71
+
72
+ Object.defineProperty(exports, 'Model', {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _interopRequireDefault(_Model).default;
76
+ }
41
77
  });
42
78
 
43
79
  var _Order = require('./src/Order');
44
80
 
45
81
  Object.defineProperty(exports, 'Order', {
46
- enumerable: true,
47
- get: function get() {
48
- return _interopRequireDefault(_Order).default;
49
- }
82
+ enumerable: true,
83
+ get: function get() {
84
+ return _interopRequireDefault(_Order).default;
85
+ }
50
86
  });
51
87
 
52
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
88
+ var _Tag = require('./src/Tag');
89
+
90
+ Object.defineProperty(exports, 'Tag', {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _interopRequireDefault(_Tag).default;
94
+ }
95
+ });
96
+
97
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
98
+
99
+ var Pixwel = exports.Pixwel = {
100
+ credentials: {
101
+ token: null
102
+ },
103
+ endpoint: 'https://api.pixwel.com/api'
104
+ };
package/dist/src/Asset.js CHANGED
@@ -4,16 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
 
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
7
+ var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
8
8
 
9
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10
+
11
+ var _createClass2 = require("babel-runtime/helpers/createClass");
12
+
13
+ var _createClass3 = _interopRequireDefault(_createClass2);
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
16
 
11
17
  var Asset = function () {
12
18
  function Asset() {
13
- _classCallCheck(this, Asset);
19
+ (0, _classCallCheck3.default)(this, Asset);
14
20
  }
15
21
 
16
- _createClass(Asset, null, [{
22
+ (0, _createClass3.default)(Asset, null, [{
17
23
  key: "mapFromOrder",
18
24
  value: function mapFromOrder(order) {
19
25
  if (!order) {
@@ -34,7 +40,6 @@ var Asset = function () {
34
40
  return asset;
35
41
  }
36
42
  }]);
37
-
38
43
  return Asset;
39
44
  }();
40
45
 
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
8
+
9
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
10
+
11
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
12
+
13
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14
+
15
+ var _createClass2 = require('babel-runtime/helpers/createClass');
16
+
17
+ var _createClass3 = _interopRequireDefault(_createClass2);
18
+
19
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
20
+
21
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22
+
23
+ var _inherits2 = require('babel-runtime/helpers/inherits');
24
+
25
+ var _inherits3 = _interopRequireDefault(_inherits2);
26
+
27
+ var _Model2 = require('./Model');
28
+
29
+ var _Model3 = _interopRequireDefault(_Model2);
30
+
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
+
33
+ var AssetType = function (_Model) {
34
+ (0, _inherits3.default)(AssetType, _Model);
35
+
36
+ function AssetType(data) {
37
+ (0, _classCallCheck3.default)(this, AssetType);
38
+
39
+ var _this = (0, _possibleConstructorReturn3.default)(this, (AssetType.__proto__ || (0, _getPrototypeOf2.default)(AssetType)).call(this, data));
40
+
41
+ _this._resource = 'assettypes';
42
+ return _this;
43
+ }
44
+
45
+ (0, _createClass3.default)(AssetType, null, [{
46
+ key: '_resource',
47
+ get: function get() {
48
+ return 'assettypes';
49
+ }
50
+ }]);
51
+ return AssetType;
52
+ }(_Model3.default);
53
+
54
+ exports.default = AssetType;
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
8
+
9
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
10
+
11
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
12
+
13
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14
+
15
+ var _createClass2 = require('babel-runtime/helpers/createClass');
16
+
17
+ var _createClass3 = _interopRequireDefault(_createClass2);
18
+
19
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
20
+
21
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22
+
23
+ var _inherits2 = require('babel-runtime/helpers/inherits');
24
+
25
+ var _inherits3 = _interopRequireDefault(_inherits2);
26
+
27
+ var _Model2 = require('./Model');
28
+
29
+ var _Model3 = _interopRequireDefault(_Model2);
30
+
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
+
33
+ var Encode = function (_Model) {
34
+ (0, _inherits3.default)(Encode, _Model);
35
+
36
+ function Encode(data) {
37
+ (0, _classCallCheck3.default)(this, Encode);
38
+
39
+ var _this = (0, _possibleConstructorReturn3.default)(this, (Encode.__proto__ || (0, _getPrototypeOf2.default)(Encode)).call(this, data));
40
+
41
+ _this._resource = 'encodes';
42
+ return _this;
43
+ }
44
+
45
+ (0, _createClass3.default)(Encode, null, [{
46
+ key: '_resource',
47
+ get: function get() {
48
+ return 'encodes';
49
+ }
50
+ }]);
51
+ return Encode;
52
+ }(_Model3.default);
53
+
54
+ exports.default = Encode;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
8
+
9
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
10
+
11
+ var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
12
+
13
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14
+
15
+ var _createClass2 = require("babel-runtime/helpers/createClass");
16
+
17
+ var _createClass3 = _interopRequireDefault(_createClass2);
18
+
19
+ var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
20
+
21
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22
+
23
+ var _inherits2 = require("babel-runtime/helpers/inherits");
24
+
25
+ var _inherits3 = _interopRequireDefault(_inherits2);
26
+
27
+ var _Model2 = require("./Model");
28
+
29
+ var _Model3 = _interopRequireDefault(_Model2);
30
+
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
+
33
+ var File = function (_Model) {
34
+ (0, _inherits3.default)(File, _Model);
35
+
36
+ function File(data) {
37
+ (0, _classCallCheck3.default)(this, File);
38
+
39
+ var _this = (0, _possibleConstructorReturn3.default)(this, (File.__proto__ || (0, _getPrototypeOf2.default)(File)).call(this, data));
40
+
41
+ _this._resource = "files";
42
+ return _this;
43
+ }
44
+
45
+ (0, _createClass3.default)(File, null, [{
46
+ key: "_resource",
47
+ get: function get() {
48
+ return 'files';
49
+ }
50
+ }]);
51
+ return File;
52
+ }(_Model3.default);
53
+
54
+ exports.default = File;
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
- value: true
4
+ value: true
5
5
  });
6
6
 
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
7
+ var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
8
+
9
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8
10
 
9
11
  var _lodash = require("lodash");
10
12
 
@@ -12,236 +14,13 @@ var _lodash2 = _interopRequireDefault(_lodash);
12
14
 
13
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
16
 
15
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16
-
17
17
  /**
18
18
  * The Filename class parses a filename into tokens, and can also take a set of
19
19
  * tokens and create a valid Pixwel filename.
20
20
  * @type class
21
21
  */
22
- var Filename = function () {
23
- function Filename() {
24
- _classCallCheck(this, Filename);
25
- }
26
-
27
- _createClass(Filename, null, [{
28
- key: "render",
29
-
30
- /**
31
- * Renders a valid filename given all tags, all types, an asset, and metadata
32
- * options likely parsed from the file itself.
33
- * @param {Array} [allTags=[]] Collection of all known tags
34
- * @param {Array} [allTypes=[]] Collection of all known types
35
- * @param {Object} [asset={}] A Platform Asset
36
- * @param {Object} [options={}] options containing metadata about file
37
- * @param {String} [mediaType=''] Indicates video, audio, image and allows for stricter required fields
38
- * @return {String} A valid filename
39
- */
40
- value: function render(params) {
41
- var _params$allTags = params.allTags,
42
- allTags = _params$allTags === undefined ? [] : _params$allTags,
43
- _params$allTypes = params.allTypes,
44
- allTypes = _params$allTypes === undefined ? [] : _params$allTypes,
45
- _params$asset = params.asset,
46
- asset = _params$asset === undefined ? {} : _params$asset,
47
- _params$options = params.options,
48
- options = _params$options === undefined ? {} : _params$options,
49
- _params$mediaType = params.mediaType,
50
- mediaType = _params$mediaType === undefined ? "" : _params$mediaType;
51
-
52
-
53
- if (!asset.project) {
54
- throw new Error("missing asset.project");
55
- }
56
-
57
- if (asset.project && !asset.project.filePrefix) {
58
- throw new Error("missing asset.project.filePrefix");
59
- }
60
-
61
- if (!asset.name) {
62
- throw new Error("missing asset.name");
63
- }
64
-
65
- if (!asset.type) {
66
- throw new Error("missing asset.type");
67
- }
68
-
69
- var defaults = {
70
- language: null,
71
- country: null,
72
- version: null,
73
- tags: {
74
- Usage: null,
75
- Aspect: null,
76
- SubDub: {
77
- sub: null,
78
- dub: null
79
- },
80
- Resolution: null,
81
- "Frame Mode": null,
82
- Framerate: null,
83
- Text: null,
84
- Codec: null,
85
- Extra: []
86
- }
87
- };
88
- options = _lodash2.default.merge(defaults, options);
89
-
90
- if (!options.language) {
91
- throw new Error("missing options.language");
92
- }
93
-
94
- if (mediaType && mediaType == "video" && !options.tags.Codec) {
95
- throw new Error("missing options.tags.Codec");
96
- }
97
-
98
- if (mediaType && mediaType == "video" && !options.tags.Resolution) {
99
- throw new Error("missing options.tags.Resolution");
100
- }
101
-
102
- if (mediaType && mediaType == "video" && !options.tags.Framerate) {
103
- throw new Error("missing options.tags.Framerate");
104
- }
105
-
106
- if (mediaType == "video" && !options.tags["Frame Mode"]) {
107
- throw new Error("missing options.tags[Frame Mode]");
108
- }
109
-
110
- function assetType(asset, types) {
111
- if (/trailer/.test(asset.type)) {
112
- return false;
113
- }
114
-
115
- var matchingType = _lodash2.default.find(types, { name: asset.type });
116
- if (!matchingType) {
117
- throw new Error("Asset type \"" + asset.type + "\" could not be found");
118
- }
119
-
120
- return matchingType.file || matchingType.name.replace(".", "-").toUpperCase();
121
- }
122
-
123
- function assetTitle(asset) {
124
- var prefix = "";
125
- var name = asset.slug.toUpperCase().replace("INT-L", "INTL");
126
- if (/trailer/.test(asset.type)) {
127
- switch (asset.type) {
128
- case "trailer.intl":
129
- prefix = "ITR-";
130
- name = name.replace(/INTL-TRAILER-/, "");
131
- break;
132
- case "trailer":
133
- prefix = "TR-";
134
- name = name.replace(/TRAILER-/, "");
135
- break;
136
- case "trailer.us":
137
- prefix = "DTR-";
138
- name = name.replace(/DOMESTIC-TRAILER-/, "");
139
- break;
140
- }
141
- }
142
- return prefix + name;
143
- }
144
-
145
- function runningTime(asset) {
146
- var matches = asset.type.match(/^film-clip|^featurette/);
147
- if (!matches) {
148
- return;
149
- }
150
-
151
- var minutes = Math.floor(asset.length / 60);
152
- var seconds = asset.length % 60;
153
-
154
- var result = "";
155
-
156
- if (minutes > 0) {
157
- result += minutes + "min";
158
- }
159
-
160
- if (seconds > 0) {
161
- result += seconds + "sec";
162
- }
163
-
164
- return result;
165
- }
166
-
167
- function locale(country, language) {
168
- if (language.includes("-")) {
169
- country = "";
170
- }
171
- return [language, country].filter(function (str) {
172
- return !!str && str !== "WW";
173
- }).join("-");
174
- }
175
-
176
- function textType(subDub, text) {
177
- if (!subDub || !subDub.sub && !subDub.dub) {
178
- return text;
179
- }
180
-
181
- var result = [];
182
- if (subDub.sub) {
183
- result.push("sub");
184
- }
185
-
186
- if (subDub.dub) {
187
- result.push("dub");
188
- }
189
-
190
- return result;
191
- }
192
-
193
- function matchSet(allTags, tags) {
194
- var selectedTags = (0, _lodash2.default)(tags).values().flatten().value();
195
-
196
- var setTag = (0, _lodash2.default)(allTags).filter("set").find(function (setTag) {
197
- return _lodash2.default.difference(setTag.set, selectedTags).length === 0;
198
- });
199
-
200
- if (setTag) {
201
- return setTag.name;
202
- }
203
- }
204
-
205
- var tags = options.tags,
206
- parts = [asset.project.filePrefix, assetType(asset, allTypes), assetTitle(asset), runningTime(asset), locale(options.country, options.language), textType(tags.SubDub, tags.Text), tags.Extra.join("_"), options.version, tags.Codec];
207
-
208
- parts = (0, _lodash2.default)(parts).flatten().filter().map(function (part) {
209
- return part.toUpperCase();
210
- });
211
-
212
- var matchedSet = matchSet(allTags, options.tags);
213
- var requiredInfo = tags.Resolution && tags["Frame Mode"] && tags.Framerate;
214
-
215
- if (matchedSet) {
216
- parts = parts.push(matchedSet);
217
- } else if (mediaType == "video" && tags.Resolution && !requiredInfo) {
218
- parts = parts.push(tags.Resolution.replace(/\d+x/, ""));
219
- } else if (mediaType == "image" && tags.Resolution) {
220
- parts = parts.push(tags.Resolution);
221
- }
222
-
223
- var name = parts.join("_");
224
-
225
- var hasResInfo = name.match(/\d+(i|p)/i);
226
- var hasAllInfo = name.match(/\d+(i|p)\d+/i);
227
-
228
- if (requiredInfo && !hasResInfo && !hasAllInfo) {
229
- var res = tags.Resolution;
230
- var encodeTag = [hasResInfo ? "" : res.indexOf("x") ? res.replace(/\d+x/, "") : res, res.match(/i|p/i) && !hasResInfo ? "" : tags["Frame Mode"].toLowerCase().slice(0, 1), tags.Framerate.replace(".", "").toUpperCase()].filter(function (val) {
231
- return val;
232
- }).join("");
233
-
234
- var match = new RegExp(encodeTag, "i");
235
- name = name.match(match) ? name.replace(match, encodeTag) : name + "_" + encodeTag;
236
- } else if (hasResInfo && !hasAllInfo && tags.Framerate) {
237
- name += tags.Framerate.replace(".", "").toUpperCase();
238
- }
239
-
240
- return name;
241
- }
242
- }]);
243
-
244
- return Filename;
245
- }();
22
+ var Filename = function Filename() {
23
+ (0, _classCallCheck3.default)(this, Filename);
24
+ };
246
25
 
247
26
  exports.default = Filename;