@pixwel/pixwel-sdk 2.1.2 → 2.1.4

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.
@@ -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.2",
4
+ "version": "2.1.4",
5
5
  "author": "Pixwel",
6
6
  "license": "UNLICENSED",
7
7
  "main": "./dist/index.js",
@@ -28,6 +28,7 @@
28
28
  "@babel/runtime": "^7.5.5",
29
29
  "axios": "^0.19.0",
30
30
  "babel-loader": "^8.0.6",
31
+ "babel-runtime": "^6.26.0",
31
32
  "deep-object-diff": "^1.1.0",
32
33
  "lodash": "^4.17.15",
33
34
  "ramda": "^0.26.1",
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
@@ -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";
@@ -928,10 +927,9 @@ describe("Ingest", () => {
928
927
  describe("assemble", () => {
929
928
  it("should set country and language from filename if not found in order", () => {
930
929
  let original = {
931
- context: {},
932
- filename: {
933
- asset: ""
934
- },
930
+ context: {}
931
+ };
932
+ let filename = {
935
933
  selected: {
936
934
  download: {
937
935
  language: "ENG",
@@ -939,27 +937,26 @@ describe("Ingest", () => {
939
937
  }
940
938
  }
941
939
  };
940
+ let mediainfo = {};
942
941
  let order = new Order();
943
942
  let ingest = new Ingest(original);
944
- let data = ingest.assemble({ order });
943
+ let data = ingest.assemble({ filename, mediainfo, order });
945
944
  expect(data.selected.download.language).toBe("ENG");
946
945
  expect(data.selected.download.country).toBe("US");
947
946
  });
948
947
  it("should use asset from filename when there is no context", () => {
949
948
  let original = {
950
- context: {},
951
- filename: {
952
- asset: {
953
- _id: "a1b2c3"
954
- }
955
- }
949
+ context: {}
950
+ };
951
+ let filename = {
952
+ asset: { _id: "a1b2c3" },
956
953
  };
957
954
  let order = new Order();
958
955
  let ingest = new Ingest(original);
959
- let data = ingest.assemble({ order });
956
+ let data = ingest.assemble({ filename, order });
960
957
  expect(data.selected.asset).toBe("a1b2c3");
961
958
  });
962
- it("should prefer ingest asset data over filename when coming from workrequest", () => {
959
+ it("should prefer context asset data over filename when coming from workrequest", () => {
963
960
  let original = {
964
961
  asset: {
965
962
  slug: "alpha"
@@ -1020,35 +1017,32 @@ describe("Ingest", () => {
1020
1017
  asset: {
1021
1018
  creative: true
1022
1019
  },
1023
- context: {},
1024
- filename: {
1025
- selected: {
1026
- download: {
1027
- language: "ENG",
1028
- country: "US"
1029
- }
1020
+ context: {}
1021
+ };
1022
+ let filename = {
1023
+ selected: {
1024
+ download: {
1025
+ language: "ENG",
1026
+ country: "US"
1030
1027
  }
1031
1028
  }
1032
1029
  };
1033
1030
  let order = new Order();
1034
1031
  let ingest = new Ingest(original);
1035
- let data = ingest.assemble({ order });
1032
+ let data = ingest.assemble({ filename, order });
1036
1033
  expect(data.selected.preview.revision).toBe("Unfinished");
1037
1034
  });
1038
1035
  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
- }
1036
+ let original = { asset: { creative: true }, context: {} };
1037
+ let filename = {
1038
+ selected: {
1039
+ download: {
1040
+ language: "ENG",
1041
+ country: "US",
1042
+ tags: {
1043
+ Extra: ["coming-soon"],
1044
+ SubDub: {
1045
+ sub: true
1052
1046
  }
1053
1047
  }
1054
1048
  }
@@ -1056,120 +1050,111 @@ describe("Ingest", () => {
1056
1050
  };
1057
1051
  let order = new Order();
1058
1052
  let ingest = new Ingest(original);
1059
- let data = ingest.assemble({ order });
1053
+ let data = ingest.assemble({ filename, order });
1060
1054
  expect(data.selected.download.tags).toEqual({
1061
1055
  Extra: ["coming-soon"],
1062
1056
  SubDub: { sub: true }
1063
1057
  });
1064
1058
  });
1065
1059
  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
- }
1060
+ let original = { asset: { creative: false }, context: {} };
1061
+ let filename = {
1062
+ selected: { download: { language: "ENG", country: "US" } }
1072
1063
  };
1073
1064
  let order = new Order();
1074
1065
  let ingest = new Ingest(original);
1075
- let data = ingest.assemble({ order });
1066
+ let data = ingest.assemble({ filename, order });
1076
1067
  expect(data.selected.preview.revision).toBe("Final");
1077
1068
  });
1078
1069
  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
- }
1070
+ let original = { context: {} };
1071
+ let filename = {
1072
+ selected: { download: { language: "ENG", country: "US" } }
1073
+ };
1074
+ let mediainfo = {
1075
+ selected: {
1076
+ download: {
1077
+ tags: {
1078
+ Codec: "prores",
1079
+ Resolution: "720x1080",
1080
+ Framerate: "23.98"
1089
1081
  }
1090
1082
  }
1091
- },
1092
- filename: {
1093
- selected: { download: { language: "ENG", country: "US" } }
1094
1083
  }
1095
1084
  };
1096
1085
  let order = new Order();
1097
1086
  let watermarks = [1];
1098
1087
  let ingest = new Ingest(original);
1099
- let data = ingest.assemble({ order, watermarks });
1088
+ let data = ingest.assemble({ filename, mediainfo, order, watermarks });
1100
1089
  expect(data.selected.preview.enabled).toBe(true);
1101
1090
  });
1102
1091
  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
- }
1092
+ let original = { context: {} };
1093
+ let filename = {
1094
+ selected: { download: { language: "ENG", country: "US" } }
1108
1095
  };
1109
1096
  let order = new Order({
1110
1097
  territory: "FI",
1111
1098
  language: "FIN"
1112
1099
  });
1113
1100
  let ingest = new Ingest(original);
1114
- let data = ingest.assemble({ order });
1101
+ let data = ingest.assemble({ filename, order });
1115
1102
  expect(data.selected.download.language).toBe("FIN");
1116
1103
  expect(data.selected.download.country).toBe("FI");
1117
1104
  });
1118
1105
  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
- }
1106
+ let original = { context: {} };
1107
+ let filename = {
1108
+ selected: { download: { tags: { Codec: "prores", Aspect: "4X3" } } }
1109
+ };
1110
+ let mediainfo = {
1111
+ selected: { download: { tags: { Codec: "h264", Aspect: "16:9" } } }
1127
1112
  };
1128
1113
  let order = new Order();
1129
1114
  let ingest = new Ingest(original);
1130
- let data = ingest.assemble({ order });
1115
+ let data = ingest.assemble({ mediainfo, filename, order });
1131
1116
  expect(data.selected.download.tags.Codec).toBe("h264");
1132
1117
  expect(data.selected.download.tags.Aspect).toBe("16:9");
1133
1118
  });
1134
1119
  it("should set preview.type=sub if order.isSub", () => {
1135
- let original = { context: {}, filename: {}, mediainfo: {} };
1120
+ let original = { context: {} };
1121
+ let filename = {};
1136
1122
  let order = {
1137
1123
  isSub: jest.fn().mockReturnValue(true),
1138
1124
  isDub: jest.fn().mockReturnValue(null)
1139
1125
  };
1140
1126
  let ingest = new Ingest(original);
1141
- let data = ingest.assemble({ order });
1127
+ let data = ingest.assemble({ filename, order });
1142
1128
  expect(data.selected.preview.type).toBe("sub");
1143
1129
  });
1144
1130
  it("should set preview.type=dub if order.isDub", () => {
1145
- let original = { context: {}, filename: {}, mediainfo: {} };
1131
+ let original = { context: {} };
1132
+ let filename = {};
1146
1133
  let order = {
1147
1134
  isSub: jest.fn().mockReturnValue(null),
1148
1135
  isDub: jest.fn().mockReturnValue(true)
1149
1136
  };
1150
1137
  let ingest = new Ingest(original);
1151
- let data = ingest.assemble({ order });
1138
+ let data = ingest.assemble({ filename, order });
1152
1139
  expect(data.selected.preview.type).toBe("dub");
1153
1140
  });
1154
1141
  it("should set preview.type=both if order.isDub and order.isDub", () => {
1155
- let original = { context: {}, filename: {}, mediainfo: {} };
1142
+ let original = { context: {} };
1143
+ let filename = {};
1156
1144
  let order = {
1157
1145
  isSub: jest.fn().mockReturnValue(true),
1158
1146
  isDub: jest.fn().mockReturnValue(true)
1159
1147
  };
1160
1148
  let ingest = new Ingest(original);
1161
- let data = ingest.assemble({ order });
1149
+ let data = ingest.assemble({ filename, order });
1162
1150
  expect(data.selected.preview.type).toBe("both");
1163
1151
  });
1164
1152
  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
- }
1153
+ let original = { context: { tag: "coming-soon" } };
1154
+ let filename = {
1155
+ selected: {
1156
+ download: {
1157
+ tags: ["friday"]
1173
1158
  }
1174
1159
  }
1175
1160
  };
@@ -1178,7 +1163,7 @@ describe("Ingest", () => {
1178
1163
  isDub: jest.fn().mockReturnValue(true)
1179
1164
  };
1180
1165
  let ingest = new Ingest(original);
1181
- let data = ingest.assemble({ order });
1166
+ let data = ingest.assemble({ filename, order });
1182
1167
  expect(data.selected.download.tags.Extra).toEqual(["coming-soon"]);
1183
1168
  });
1184
1169
  });
@@ -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
  });