@pixwel/pixwel-sdk 2.1.3 → 2.1.5

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.
@@ -303,7 +303,7 @@ var Ingest = function (_Model) {
303
303
  key: "mapFromMediainfo",
304
304
  value: function mapFromMediainfo() {
305
305
  var info = this.mediainfo;
306
- var mediaType = this.asset.mediaType;
306
+ var mediaType = this.source.mediaType;
307
307
 
308
308
  var schema = {
309
309
  Aspect: null,
@@ -540,7 +540,7 @@ var Ingest = function (_Model) {
540
540
  /**
541
541
  * Create a File from an Ingest object
542
542
  *
543
- * @param {object} params
543
+ * @param {object} params
544
544
  */
545
545
 
546
546
  }, {
@@ -551,16 +551,16 @@ var Ingest = function (_Model) {
551
551
  order = params.order;
552
552
 
553
553
 
554
- this.filename = this.mapFromFilename({ allTags: allTags });
555
- this.mediainfo = this.mapFromMediainfo();
554
+ var filename = this.mapFromFilename({ allTags: allTags });
555
+ var mediainfo = this.mapFromMediainfo();
556
556
 
557
- var ingest = this.assemble({ order: order });
557
+ var ingest = this.assemble({ filename: filename, mediainfo: mediainfo, order: order });
558
558
 
559
559
  var file = new _File2.default({
560
560
  name: this.renderFilename({ allTags: allTags, allTypes: allTypes }),
561
561
  path: this.renderPath(),
562
562
  asset: ingest.asset._id,
563
- generator: 'ingest',
563
+ generator: "ingest",
564
564
  contextTag: ingest.context.tag,
565
565
  language: ingest.selected.download.language,
566
566
  country: ingest.selected.download.country,
@@ -581,15 +581,15 @@ var Ingest = function (_Model) {
581
581
  }, {
582
582
  key: "assemble",
583
583
  value: function assemble(params) {
584
- var original = this.data();
585
- var filename = this.data().filename;
586
- var mediainfo = this.data().mediainfo;
587
-
588
- var order = params.order,
584
+ var filename = params.filename,
585
+ mediainfo = params.mediainfo,
586
+ order = params.order,
589
587
  _params$watermarks = params.watermarks,
590
588
  watermarks = _params$watermarks === undefined ? [] : _params$watermarks;
591
589
 
592
590
 
591
+ var original = this.data();
592
+
593
593
  var defaults = {
594
594
  workRequest: order._id,
595
595
  selected: {
@@ -677,7 +677,7 @@ var Ingest = function (_Model) {
677
677
  }], [{
678
678
  key: "_resource",
679
679
  get: function get() {
680
- return 'ingests';
680
+ return "ingests";
681
681
  }
682
682
  }]);
683
683
  return Ingest;
package/dist/src/Model.js CHANGED
@@ -32,14 +32,16 @@ var _createClass2 = require("babel-runtime/helpers/createClass");
32
32
 
33
33
  var _createClass3 = _interopRequireDefault(_createClass2);
34
34
 
35
+ var _lodash = require("lodash");
36
+
37
+ var _lodash2 = _interopRequireDefault(_lodash);
38
+
35
39
  var _index = require("../index");
36
40
 
37
41
  var _axios = require("axios");
38
42
 
39
43
  var _axios2 = _interopRequireDefault(_axios);
40
44
 
41
- var _lodash = require("lodash");
42
-
43
45
  var _deepObjectDiff = require("deep-object-diff");
44
46
 
45
47
  var _validate = require("validate.js");
@@ -86,7 +88,6 @@ var Model = function () {
86
88
  (0, _classCallCheck3.default)(this, Model);
87
89
 
88
90
  (0, _assign2.default)(this, data);
89
- this._name = 'model';
90
91
  this._endpoint = _index.Pixwel.endpoint;
91
92
  this._api = connection();
92
93
  this._lastState = {};
@@ -258,7 +259,7 @@ var Model = function () {
258
259
  }, {
259
260
  key: "set",
260
261
  value: function set(data) {
261
- return (0, _assign2.default)(this, data);
262
+ return _lodash2.default.merge(this, data);
262
263
  }
263
264
  /**
264
265
  * Returns a deep clone of the current object
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pixwel/pixwel-sdk",
3
3
  "description": "",
4
- "version": "2.1.3",
4
+ "version": "2.1.5",
5
5
  "author": "Pixwel",
6
6
  "license": "UNLICENSED",
7
7
  "main": "./dist/index.js",
package/src/Ingest.js CHANGED
@@ -14,7 +14,7 @@ export default class Ingest extends Model {
14
14
  this._resource = "ingests";
15
15
  }
16
16
  static get _resource() {
17
- return 'ingests';
17
+ return "ingests";
18
18
  }
19
19
  /**
20
20
  * Returns path given an ingest record
@@ -278,7 +278,7 @@ export default class Ingest extends Model {
278
278
  */
279
279
  mapFromMediainfo() {
280
280
  let info = this.mediainfo;
281
- let mediaType = this.asset.mediaType;
281
+ let mediaType = this.source.mediaType;
282
282
 
283
283
  let schema = {
284
284
  Aspect: null,
@@ -514,21 +514,21 @@ export default class Ingest extends Model {
514
514
  /**
515
515
  * Create a File from an Ingest object
516
516
  *
517
- * @param {object} params
517
+ * @param {object} params
518
518
  */
519
519
  createFile(params) {
520
520
  let { allTags, allTypes, order } = params;
521
521
 
522
- this.filename = this.mapFromFilename({ allTags });
523
- this.mediainfo = this.mapFromMediainfo();
522
+ let filename = this.mapFromFilename({ allTags });
523
+ let mediainfo = this.mapFromMediainfo();
524
524
 
525
- let ingest = this.assemble({ order });
525
+ let ingest = this.assemble({ filename, mediainfo, order });
526
526
 
527
527
  let file = new File({
528
528
  name: this.renderFilename({ allTags, allTypes }),
529
529
  path: this.renderPath(),
530
530
  asset: ingest.asset._id,
531
- generator: 'ingest',
531
+ generator: "ingest",
532
532
  contextTag: ingest.context.tag,
533
533
  language: ingest.selected.download.language,
534
534
  country: ingest.selected.download.country,
@@ -546,11 +546,9 @@ export default class Ingest extends Model {
546
546
  * @param {object} params
547
547
  */
548
548
  assemble(params) {
549
- let original = this.data();
550
- let filename = this.data().filename;
551
- let mediainfo = this.data().mediainfo;
549
+ let { filename, mediainfo, order, watermarks = [] } = params;
552
550
 
553
- let { order, watermarks = [] } = params;
551
+ let original = this.data();
554
552
 
555
553
  let defaults = {
556
554
  workRequest: order._id,
@@ -656,4 +654,3 @@ function flatValues(data) {
656
654
  }
657
655
  return flatten(values(copy));
658
656
  }
659
-
package/src/Model.js CHANGED
@@ -1,3 +1,4 @@
1
+ import _ from "lodash";
1
2
  import { Pixwel } from "../index";
2
3
  import axios from "axios";
3
4
  import { cloneDeep } from "lodash";
@@ -41,7 +42,6 @@ function connection() {
41
42
  export default class Model {
42
43
  constructor(data) {
43
44
  Object.assign(this, data);
44
- this._name = 'model';
45
45
  this._endpoint = Pixwel.endpoint;
46
46
  this._api = connection();
47
47
  this._lastState = {};
@@ -134,7 +134,7 @@ export default class Model {
134
134
  * @param {object} data
135
135
  */
136
136
  set(data) {
137
- return Object.assign(this, data);
137
+ return _.merge(this, data);
138
138
  }
139
139
  /**
140
140
  * Returns a deep clone of the current object
@@ -1,5 +1,4 @@
1
- import Ingest from "../src/Ingest";
2
- import Order from "../src/Order";
1
+ import { Ingest, Order } from "../index";
3
2
 
4
3
  import mock from "./mocks/mediainfo.mock";
5
4
  import proresMock from "./mocks/prores.mock";
@@ -868,6 +867,9 @@ describe("Ingest", () => {
868
867
  context: {
869
868
  tag: "FRIDAY"
870
869
  },
870
+ source: {
871
+ mediaType: "video"
872
+ },
871
873
  asset: {
872
874
  _id: "a1b2c3",
873
875
  name: "Asset",
@@ -928,10 +930,9 @@ describe("Ingest", () => {
928
930
  describe("assemble", () => {
929
931
  it("should set country and language from filename if not found in order", () => {
930
932
  let original = {
931
- context: {},
932
- filename: {
933
- asset: ""
934
- },
933
+ context: {}
934
+ };
935
+ let filename = {
935
936
  selected: {
936
937
  download: {
937
938
  language: "ENG",
@@ -939,27 +940,26 @@ describe("Ingest", () => {
939
940
  }
940
941
  }
941
942
  };
943
+ let mediainfo = {};
942
944
  let order = new Order();
943
945
  let ingest = new Ingest(original);
944
- let data = ingest.assemble({ order });
946
+ let data = ingest.assemble({ filename, mediainfo, order });
945
947
  expect(data.selected.download.language).toBe("ENG");
946
948
  expect(data.selected.download.country).toBe("US");
947
949
  });
948
950
  it("should use asset from filename when there is no context", () => {
949
951
  let original = {
950
- context: {},
951
- filename: {
952
- asset: {
953
- _id: "a1b2c3"
954
- }
955
- }
952
+ context: {}
953
+ };
954
+ let filename = {
955
+ asset: { _id: "a1b2c3" },
956
956
  };
957
957
  let order = new Order();
958
958
  let ingest = new Ingest(original);
959
- let data = ingest.assemble({ order });
959
+ let data = ingest.assemble({ filename, order });
960
960
  expect(data.selected.asset).toBe("a1b2c3");
961
961
  });
962
- it("should prefer ingest asset data over filename when coming from workrequest", () => {
962
+ it("should prefer context asset data over filename when coming from workrequest", () => {
963
963
  let original = {
964
964
  asset: {
965
965
  slug: "alpha"
@@ -1020,35 +1020,32 @@ describe("Ingest", () => {
1020
1020
  asset: {
1021
1021
  creative: true
1022
1022
  },
1023
- context: {},
1024
- filename: {
1025
- selected: {
1026
- download: {
1027
- language: "ENG",
1028
- country: "US"
1029
- }
1023
+ context: {}
1024
+ };
1025
+ let filename = {
1026
+ selected: {
1027
+ download: {
1028
+ language: "ENG",
1029
+ country: "US"
1030
1030
  }
1031
1031
  }
1032
1032
  };
1033
1033
  let order = new Order();
1034
1034
  let ingest = new Ingest(original);
1035
- let data = ingest.assemble({ order });
1035
+ let data = ingest.assemble({ filename, order });
1036
1036
  expect(data.selected.preview.revision).toBe("Unfinished");
1037
1037
  });
1038
1038
  it("should keep tags from parsed filename when order is empty", () => {
1039
- let original = {
1040
- asset: { creative: true },
1041
- context: {},
1042
- filename: {
1043
- selected: {
1044
- download: {
1045
- language: "ENG",
1046
- country: "US",
1047
- tags: {
1048
- Extra: ["coming-soon"],
1049
- SubDub: {
1050
- sub: true
1051
- }
1039
+ let original = { asset: { creative: true }, context: {} };
1040
+ let filename = {
1041
+ selected: {
1042
+ download: {
1043
+ language: "ENG",
1044
+ country: "US",
1045
+ tags: {
1046
+ Extra: ["coming-soon"],
1047
+ SubDub: {
1048
+ sub: true
1052
1049
  }
1053
1050
  }
1054
1051
  }
@@ -1056,120 +1053,111 @@ describe("Ingest", () => {
1056
1053
  };
1057
1054
  let order = new Order();
1058
1055
  let ingest = new Ingest(original);
1059
- let data = ingest.assemble({ order });
1056
+ let data = ingest.assemble({ filename, order });
1060
1057
  expect(data.selected.download.tags).toEqual({
1061
1058
  Extra: ["coming-soon"],
1062
1059
  SubDub: { sub: true }
1063
1060
  });
1064
1061
  });
1065
1062
  it("should set preview revision=Final for finished assets", () => {
1066
- let original = {
1067
- asset: { creative: false },
1068
- context: {},
1069
- filename: {
1070
- selected: { download: { language: "ENG", country: "US" } }
1071
- }
1063
+ let original = { asset: { creative: false }, context: {} };
1064
+ let filename = {
1065
+ selected: { download: { language: "ENG", country: "US" } }
1072
1066
  };
1073
1067
  let order = new Order();
1074
1068
  let ingest = new Ingest(original);
1075
- let data = ingest.assemble({ order });
1069
+ let data = ingest.assemble({ filename, order });
1076
1070
  expect(data.selected.preview.revision).toBe("Final");
1077
1071
  });
1078
1072
  it("should enable preview if file is prores 1080p 23.98/25", () => {
1079
- let original = {
1080
- context: {},
1081
- mediainfo: {
1082
- selected: {
1083
- download: {
1084
- tags: {
1085
- Codec: "prores",
1086
- Resolution: "720x1080",
1087
- Framerate: "23.98"
1088
- }
1073
+ let original = { context: {} };
1074
+ let filename = {
1075
+ selected: { download: { language: "ENG", country: "US" } }
1076
+ };
1077
+ let mediainfo = {
1078
+ selected: {
1079
+ download: {
1080
+ tags: {
1081
+ Codec: "prores",
1082
+ Resolution: "720x1080",
1083
+ Framerate: "23.98"
1089
1084
  }
1090
1085
  }
1091
- },
1092
- filename: {
1093
- selected: { download: { language: "ENG", country: "US" } }
1094
1086
  }
1095
1087
  };
1096
1088
  let order = new Order();
1097
1089
  let watermarks = [1];
1098
1090
  let ingest = new Ingest(original);
1099
- let data = ingest.assemble({ order, watermarks });
1091
+ let data = ingest.assemble({ filename, mediainfo, order, watermarks });
1100
1092
  expect(data.selected.preview.enabled).toBe(true);
1101
1093
  });
1102
1094
  it("should prefer language and country from order over filename", () => {
1103
- let original = {
1104
- context: {},
1105
- filename: {
1106
- selected: { download: { language: "ENG", country: "US" } }
1107
- }
1095
+ let original = { context: {} };
1096
+ let filename = {
1097
+ selected: { download: { language: "ENG", country: "US" } }
1108
1098
  };
1109
1099
  let order = new Order({
1110
1100
  territory: "FI",
1111
1101
  language: "FIN"
1112
1102
  });
1113
1103
  let ingest = new Ingest(original);
1114
- let data = ingest.assemble({ order });
1104
+ let data = ingest.assemble({ filename, order });
1115
1105
  expect(data.selected.download.language).toBe("FIN");
1116
1106
  expect(data.selected.download.country).toBe("FI");
1117
1107
  });
1118
1108
  it("should correctly merge tags from mediainfo over filename", () => {
1119
- let original = {
1120
- context: {},
1121
- mediainfo: {
1122
- selected: { download: { tags: { Codec: "h264", Aspect: "16:9" } } }
1123
- },
1124
- filename: {
1125
- selected: { download: { tags: { Codec: "prores", Aspect: "4X3" } } }
1126
- }
1109
+ let original = { context: {} };
1110
+ let filename = {
1111
+ selected: { download: { tags: { Codec: "prores", Aspect: "4X3" } } }
1112
+ };
1113
+ let mediainfo = {
1114
+ selected: { download: { tags: { Codec: "h264", Aspect: "16:9" } } }
1127
1115
  };
1128
1116
  let order = new Order();
1129
1117
  let ingest = new Ingest(original);
1130
- let data = ingest.assemble({ order });
1118
+ let data = ingest.assemble({ mediainfo, filename, order });
1131
1119
  expect(data.selected.download.tags.Codec).toBe("h264");
1132
1120
  expect(data.selected.download.tags.Aspect).toBe("16:9");
1133
1121
  });
1134
1122
  it("should set preview.type=sub if order.isSub", () => {
1135
- let original = { context: {}, filename: {}, mediainfo: {} };
1123
+ let original = { context: {} };
1124
+ let filename = {};
1136
1125
  let order = {
1137
1126
  isSub: jest.fn().mockReturnValue(true),
1138
1127
  isDub: jest.fn().mockReturnValue(null)
1139
1128
  };
1140
1129
  let ingest = new Ingest(original);
1141
- let data = ingest.assemble({ order });
1130
+ let data = ingest.assemble({ filename, order });
1142
1131
  expect(data.selected.preview.type).toBe("sub");
1143
1132
  });
1144
1133
  it("should set preview.type=dub if order.isDub", () => {
1145
- let original = { context: {}, filename: {}, mediainfo: {} };
1134
+ let original = { context: {} };
1135
+ let filename = {};
1146
1136
  let order = {
1147
1137
  isSub: jest.fn().mockReturnValue(null),
1148
1138
  isDub: jest.fn().mockReturnValue(true)
1149
1139
  };
1150
1140
  let ingest = new Ingest(original);
1151
- let data = ingest.assemble({ order });
1141
+ let data = ingest.assemble({ filename, order });
1152
1142
  expect(data.selected.preview.type).toBe("dub");
1153
1143
  });
1154
1144
  it("should set preview.type=both if order.isDub and order.isDub", () => {
1155
- let original = { context: {}, filename: {}, mediainfo: {} };
1145
+ let original = { context: {} };
1146
+ let filename = {};
1156
1147
  let order = {
1157
1148
  isSub: jest.fn().mockReturnValue(true),
1158
1149
  isDub: jest.fn().mockReturnValue(true)
1159
1150
  };
1160
1151
  let ingest = new Ingest(original);
1161
- let data = ingest.assemble({ order });
1152
+ let data = ingest.assemble({ filename, order });
1162
1153
  expect(data.selected.preview.type).toBe("both");
1163
1154
  });
1164
1155
  it("should retain Extra tags from order over filename", () => {
1165
- let original = {
1166
- context: { tag: "coming-soon" },
1167
- mediainfo: {},
1168
- filename: {
1169
- selected: {
1170
- download: {
1171
- tags: ["friday"]
1172
- }
1156
+ let original = { context: { tag: "coming-soon" } };
1157
+ let filename = {
1158
+ selected: {
1159
+ download: {
1160
+ tags: ["friday"]
1173
1161
  }
1174
1162
  }
1175
1163
  };
@@ -1178,7 +1166,7 @@ describe("Ingest", () => {
1178
1166
  isDub: jest.fn().mockReturnValue(true)
1179
1167
  };
1180
1168
  let ingest = new Ingest(original);
1181
- let data = ingest.assemble({ order });
1169
+ let data = ingest.assemble({ filename, order });
1182
1170
  expect(data.selected.download.tags.Extra).toEqual(["coming-soon"]);
1183
1171
  });
1184
1172
  });
@@ -1187,7 +1175,7 @@ describe("Ingest", () => {
1187
1175
  let meta = {};
1188
1176
  expect(() => {
1189
1177
  let ingest = new Ingest({
1190
- asset: { mediaType: "video" },
1178
+ source: { mediaType: "video" },
1191
1179
  mediainfo: meta
1192
1180
  });
1193
1181
  let info = ingest.mapFromMediainfo();
@@ -1197,7 +1185,7 @@ describe("Ingest", () => {
1197
1185
  let meta = { File: {} };
1198
1186
  expect(() => {
1199
1187
  let ingest = new Ingest({
1200
- asset: { mediaType: "video" },
1188
+ source: { mediaType: "video" },
1201
1189
  mediainfo: meta
1202
1190
  });
1203
1191
  let info = ingest.mapFromMediainfo();
@@ -1206,7 +1194,7 @@ describe("Ingest", () => {
1206
1194
  it("should return empty object of tags if no metadata supplied", () => {
1207
1195
  let meta = { File: { track: {} } };
1208
1196
  let ingest = new Ingest({
1209
- asset: { mediaType: "video" },
1197
+ source: { mediaType: "video" },
1210
1198
  mediainfo: meta
1211
1199
  });
1212
1200
  let info = ingest.mapFromMediainfo();
@@ -1214,7 +1202,7 @@ describe("Ingest", () => {
1214
1202
  });
1215
1203
  it("should set usage to broadcast for mxf files", () => {
1216
1204
  let ingest = new Ingest({
1217
- asset: { mediaType: "" },
1205
+ source: { mediaType: "" },
1218
1206
  mediainfo: mxfMock
1219
1207
  });
1220
1208
  let info = ingest.mapFromMediainfo();
@@ -1224,7 +1212,7 @@ describe("Ingest", () => {
1224
1212
  });
1225
1213
  it("should correctly map h264 metadata to tags", () => {
1226
1214
  let ingest = new Ingest({
1227
- asset: { mediaType: "video" },
1215
+ source: { mediaType: "video" },
1228
1216
  mediainfo: mock
1229
1217
  });
1230
1218
  let info = ingest.mapFromMediainfo();
@@ -1247,7 +1235,7 @@ describe("Ingest", () => {
1247
1235
  });
1248
1236
  it("should correctly map prores metadata to tags", () => {
1249
1237
  let ingest = new Ingest({
1250
- asset: { mediaType: "video" },
1238
+ source: { mediaType: "video" },
1251
1239
  mediainfo: proresMock
1252
1240
  });
1253
1241
  let info = ingest.mapFromMediainfo();
@@ -1270,7 +1258,7 @@ describe("Ingest", () => {
1270
1258
  });
1271
1259
  it("should correctly map png metadata to tags", () => {
1272
1260
  let ingest = new Ingest({
1273
- asset: { mediaType: "image" },
1261
+ source: { mediaType: "image" },
1274
1262
  mediainfo: pngMock
1275
1263
  });
1276
1264
  let info = ingest.mapFromMediainfo();
@@ -62,12 +62,13 @@ describe("Model", () => {
62
62
  });
63
63
  });
64
64
  describe("set", () => {
65
- it("should merge incoming data into the model", () => {
65
+ it("should deeply merge incoming data into the model", () => {
66
66
  let model = new Model();
67
67
  model.set({ details: { name: "Jeff" } });
68
+ model.set({ details: { age: "20" } });
68
69
  expect(model.data()).toEqual({
69
70
  _id: undefined,
70
- details: { name: "Jeff" }
71
+ details: { name: "Jeff", age: "20" }
71
72
  });
72
73
  });
73
74
  });