sanity-plugin-mux-input 1.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.
- package/LICENSE +21 -0
- package/README.md +86 -0
- package/build/actions/assets.js +37 -0
- package/build/actions/assets.js.map +1 -0
- package/build/actions/secrets.js +125 -0
- package/build/actions/secrets.js.map +1 -0
- package/build/actions/upload.js +280 -0
- package/build/actions/upload.js.map +1 -0
- package/build/clients/SanityClient.js +19 -0
- package/build/clients/SanityClient.js.map +1 -0
- package/build/clients/upChunkObservable.js +66 -0
- package/build/clients/upChunkObservable.js.map +1 -0
- package/build/components/FileInputButton.js +84 -0
- package/build/components/FileInputButton.js.map +1 -0
- package/build/components/Input.css +30 -0
- package/build/components/Input.js +823 -0
- package/build/components/Input.js.map +1 -0
- package/build/components/MuxLogo.js +19 -0
- package/build/components/MuxLogo.js.map +1 -0
- package/build/components/Preview.css +16 -0
- package/build/components/Preview.js +95 -0
- package/build/components/Preview.js.map +1 -0
- package/build/components/SelectAsset.css +56 -0
- package/build/components/SelectAsset.js +162 -0
- package/build/components/SelectAsset.js.map +1 -0
- package/build/components/Setup.css +7 -0
- package/build/components/Setup.js +311 -0
- package/build/components/Setup.js.map +1 -0
- package/build/components/UploadPlaceholder.css +81 -0
- package/build/components/UploadPlaceholder.js +92 -0
- package/build/components/UploadPlaceholder.js.map +1 -0
- package/build/components/Uploader.css +28 -0
- package/build/components/Uploader.js +534 -0
- package/build/components/Uploader.js.map +1 -0
- package/build/components/Video.css +21 -0
- package/build/components/Video.js +360 -0
- package/build/components/Video.js.map +1 -0
- package/build/config.js +17 -0
- package/build/config.js.map +1 -0
- package/build/index.js +22 -0
- package/build/index.js.map +1 -0
- package/build/schema/mux.video.js +41 -0
- package/build/schema/mux.video.js.map +1 -0
- package/build/schema/mux.videoAsset.js +29 -0
- package/build/schema/mux.videoAsset.js.map +1 -0
- package/build/util/extractFiles.js +70 -0
- package/build/util/extractFiles.js.map +1 -0
- package/build/util/formatTime.js +28 -0
- package/build/util/formatTime.js.map +1 -0
- package/build/util/generateJwt.js +30 -0
- package/build/util/generateJwt.js.map +1 -0
- package/build/util/getPosterSrc.js +46 -0
- package/build/util/getPosterSrc.js.map +1 -0
- package/build/util/getStoryboardSrc.js +26 -0
- package/build/util/getStoryboardSrc.js.map +1 -0
- package/build/util/getVideoSrc.js +23 -0
- package/build/util/getVideoSrc.js.map +1 -0
- package/config.dist.json +3 -0
- package/package.json +85 -0
- package/sanity.json +16 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var jwt = _interopRequireWildcard(require("jsonwebtoken"));
|
|
9
|
+
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
|
|
14
|
+
var getPrivateKey = key => Buffer.from(key, 'base64');
|
|
15
|
+
|
|
16
|
+
var generateJwt = function generateJwt(playbackId, signingKeyId, signingKeyPrivate, aud) {
|
|
17
|
+
var payload = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
18
|
+
return jwt.sign(payload, getPrivateKey(signingKeyPrivate), {
|
|
19
|
+
algorithm: 'RS256',
|
|
20
|
+
keyid: signingKeyId,
|
|
21
|
+
audience: aud,
|
|
22
|
+
subject: playbackId,
|
|
23
|
+
noTimestamp: true,
|
|
24
|
+
expiresIn: '12h'
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var _default = generateJwt;
|
|
29
|
+
exports.default = _default;
|
|
30
|
+
//# sourceMappingURL=generateJwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/generateJwt.js"],"names":["getPrivateKey","key","Buffer","from","generateJwt","playbackId","signingKeyId","signingKeyPrivate","aud","payload","jwt","sign","algorithm","keyid","audience","subject","noTimestamp","expiresIn"],"mappings":";;;;;;;AAAA;;;;;;AAEA,IAAMA,aAAa,GAAIC,GAAD,IAASC,MAAM,CAACC,IAAP,CAAYF,GAAZ,EAAiB,QAAjB,CAA/B;;AAEA,IAAMG,WAAW,GAAG,SAAdA,WAAc,CAACC,UAAD,EAAaC,YAAb,EAA2BC,iBAA3B,EAA8CC,GAA9C;AAAA,MAAmDC,OAAnD,uEAA6D,EAA7D;AAAA,SAClBC,GAAG,CAACC,IAAJ,CAASF,OAAT,EAAkBT,aAAa,CAACO,iBAAD,CAA/B,EAAoD;AAClDK,IAAAA,SAAS,EAAE,OADuC;AAElDC,IAAAA,KAAK,EAAEP,YAF2C;AAGlDQ,IAAAA,QAAQ,EAAEN,GAHwC;AAIlDO,IAAAA,OAAO,EAAEV,UAJyC;AAKlDW,IAAAA,WAAW,EAAE,IALqC;AAMlDC,IAAAA,SAAS,EAAE;AANuC,GAApD,CADkB;AAAA,CAApB;;eAUeb,W","sourcesContent":["import * as jwt from 'jsonwebtoken'\r\n\r\nconst getPrivateKey = (key) => Buffer.from(key, 'base64')\r\n\r\nconst generateJwt = (playbackId, signingKeyId, signingKeyPrivate, aud, payload = {}) =>\r\n jwt.sign(payload, getPrivateKey(signingKeyPrivate), {\r\n algorithm: 'RS256',\r\n keyid: signingKeyId,\r\n audience: aud,\r\n subject: playbackId,\r\n noTimestamp: true,\r\n expiresIn: '12h',\r\n })\r\n\r\nexport default generateJwt\r\n"],"file":"generateJwt.js"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getPosterSrc;
|
|
7
|
+
|
|
8
|
+
var _generateJwt = _interopRequireDefault(require("./generateJwt"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
/* eslint-disable camelcase */
|
|
13
|
+
function getPosterSrc(playbackId) {
|
|
14
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
15
|
+
var _options$width = options.width,
|
|
16
|
+
width = _options$width === void 0 ? 640 : _options$width,
|
|
17
|
+
_options$height = options.height,
|
|
18
|
+
height = _options$height === void 0 ? null : _options$height,
|
|
19
|
+
_options$time = options.time,
|
|
20
|
+
time = _options$time === void 0 ? 1 : _options$time,
|
|
21
|
+
_options$fit_mode = options.fit_mode,
|
|
22
|
+
fit_mode = _options$fit_mode === void 0 ? 'preserve' : _options$fit_mode,
|
|
23
|
+
_options$isSigned = options.isSigned,
|
|
24
|
+
isSigned = _options$isSigned === void 0 ? false : _options$isSigned;
|
|
25
|
+
var params = {
|
|
26
|
+
width,
|
|
27
|
+
time,
|
|
28
|
+
fit_mode
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
if (options.height) {
|
|
32
|
+
params.height = height.toString();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var qs;
|
|
36
|
+
|
|
37
|
+
if (isSigned && options.signingKeyId && options.signingKeyPrivate) {
|
|
38
|
+
var token = (0, _generateJwt.default)(playbackId, options.signingKeyId, options.signingKeyPrivate, 't', params);
|
|
39
|
+
qs = "token=".concat(token);
|
|
40
|
+
} else {
|
|
41
|
+
qs = Object.keys(params).map(key => "".concat(key, "=").concat(params[key])).join('&');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return "https://image.mux.com/".concat(playbackId, "/thumbnail.png?").concat(qs);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=getPosterSrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/getPosterSrc.js"],"names":["getPosterSrc","playbackId","options","width","height","time","fit_mode","isSigned","params","toString","qs","signingKeyId","signingKeyPrivate","token","Object","keys","map","key","join"],"mappings":";;;;;;;AACA;;;;AADA;AAGe,SAASA,YAAT,CAAsBC,UAAtB,EAAgD;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AAC7D,uBAAwFA,OAAxF,CAAOC,KAAP;AAAA,MAAOA,KAAP,+BAAe,GAAf;AAAA,wBAAwFD,OAAxF,CAAoBE,MAApB;AAAA,MAAoBA,MAApB,gCAA6B,IAA7B;AAAA,sBAAwFF,OAAxF,CAAmCG,IAAnC;AAAA,MAAmCA,IAAnC,8BAA0C,CAA1C;AAAA,0BAAwFH,OAAxF,CAA6CI,QAA7C;AAAA,MAA6CA,QAA7C,kCAAwD,UAAxD;AAAA,0BAAwFJ,OAAxF,CAAoEK,QAApE;AAAA,MAAoEA,QAApE,kCAA+E,KAA/E;AACA,MAAMC,MAAM,GAAG;AAACL,IAAAA,KAAD;AAAQE,IAAAA,IAAR;AAAcC,IAAAA;AAAd,GAAf;;AAEA,MAAIJ,OAAO,CAACE,MAAZ,EAAoB;AAClBI,IAAAA,MAAM,CAACJ,MAAP,GAAgBA,MAAM,CAACK,QAAP,EAAhB;AACD;;AAED,MAAIC,EAAJ;;AACA,MAAIH,QAAQ,IAAIL,OAAO,CAACS,YAApB,IAAoCT,OAAO,CAACU,iBAAhD,EAAmE;AACjE,QAAMC,KAAK,GAAG,0BACZZ,UADY,EAEZC,OAAO,CAACS,YAFI,EAGZT,OAAO,CAACU,iBAHI,EAIZ,GAJY,EAKZJ,MALY,CAAd;AAOAE,IAAAA,EAAE,mBAAYG,KAAZ,CAAF;AACD,GATD,MASO;AACLH,IAAAA,EAAE,GAAGI,MAAM,CAACC,IAAP,CAAYP,MAAZ,EACFQ,GADE,CACGC,GAAD,cAAYA,GAAZ,cAAmBT,MAAM,CAACS,GAAD,CAAzB,CADF,EAEFC,IAFE,CAEG,GAFH,CAAL;AAGD;;AAED,yCAAgCjB,UAAhC,4BAA4DS,EAA5D;AACD","sourcesContent":["/* eslint-disable camelcase */\r\nimport generateJwt from './generateJwt'\r\n\r\nexport default function getPosterSrc(playbackId, options = {}) {\r\n const {width = 640, height = null, time = 1, fit_mode = 'preserve', isSigned = false} = options\r\n const params = {width, time, fit_mode}\r\n\r\n if (options.height) {\r\n params.height = height.toString()\r\n }\r\n\r\n let qs\r\n if (isSigned && options.signingKeyId && options.signingKeyPrivate) {\r\n const token = generateJwt(\r\n playbackId,\r\n options.signingKeyId,\r\n options.signingKeyPrivate,\r\n 't',\r\n params\r\n )\r\n qs = `token=${token}`\r\n } else {\r\n qs = Object.keys(params)\r\n .map((key) => `${key}=${params[key]}`)\r\n .join('&')\r\n }\r\n\r\n return `https://image.mux.com/${playbackId}/thumbnail.png?${qs}`\r\n}\r\n"],"file":"getPosterSrc.js"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getStoryboardSrc;
|
|
7
|
+
|
|
8
|
+
var _generateJwt = _interopRequireDefault(require("./generateJwt"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
/* eslint-disable camelcase */
|
|
13
|
+
function getStoryboardSrc(playbackId) {
|
|
14
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
15
|
+
var _options$isSigned = options.isSigned,
|
|
16
|
+
isSigned = _options$isSigned === void 0 ? false : _options$isSigned;
|
|
17
|
+
var qs = '';
|
|
18
|
+
|
|
19
|
+
if (isSigned && options.signingKeyId && options.signingKeyPrivate) {
|
|
20
|
+
var token = (0, _generateJwt.default)(playbackId, options.signingKeyId, options.signingKeyPrivate, 's');
|
|
21
|
+
qs = "?token=".concat(token);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return "https://image.mux.com/".concat(playbackId, "/storyboard.vtt?").concat(qs);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=getStoryboardSrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/getStoryboardSrc.js"],"names":["getStoryboardSrc","playbackId","options","isSigned","qs","signingKeyId","signingKeyPrivate","token"],"mappings":";;;;;;;AACA;;;;AADA;AAGe,SAASA,gBAAT,CAA0BC,UAA1B,EAAoD;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACjE,0BAA2BA,OAA3B,CAAOC,QAAP;AAAA,MAAOA,QAAP,kCAAkB,KAAlB;AAEA,MAAIC,EAAE,GAAG,EAAT;;AACA,MAAID,QAAQ,IAAID,OAAO,CAACG,YAApB,IAAoCH,OAAO,CAACI,iBAAhD,EAAmE;AACjE,QAAMC,KAAK,GAAG,0BAAYN,UAAZ,EAAwBC,OAAO,CAACG,YAAhC,EAA8CH,OAAO,CAACI,iBAAtD,EAAyE,GAAzE,CAAd;AACAF,IAAAA,EAAE,oBAAaG,KAAb,CAAF;AACD;;AAED,yCAAgCN,UAAhC,6BAA6DG,EAA7D;AACD","sourcesContent":["/* eslint-disable camelcase */\r\nimport generateJwt from './generateJwt'\r\n\r\nexport default function getStoryboardSrc(playbackId, options = {}) {\r\n const {isSigned = false} = options\r\n\r\n let qs = ''\r\n if (isSigned && options.signingKeyId && options.signingKeyPrivate) {\r\n const token = generateJwt(playbackId, options.signingKeyId, options.signingKeyPrivate, 's')\r\n qs = `?token=${token}`\r\n }\r\n\r\n return `https://image.mux.com/${playbackId}/storyboard.vtt?${qs}`\r\n}\r\n"],"file":"getStoryboardSrc.js"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getVideoSrc;
|
|
7
|
+
|
|
8
|
+
var _generateJwt = _interopRequireDefault(require("./generateJwt"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function getVideoSrc(playbackId) {
|
|
13
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
14
|
+
var qs = '';
|
|
15
|
+
|
|
16
|
+
if (options.isSigned && options.signingKeyId && options.signingKeyPrivate) {
|
|
17
|
+
var token = (0, _generateJwt.default)(playbackId, options.signingKeyId, options.signingKeyPrivate, 'v');
|
|
18
|
+
qs = "?token=".concat(token);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return "https://stream.mux.com/".concat(playbackId, ".m3u8").concat(qs);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=getVideoSrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/util/getVideoSrc.js"],"names":["getVideoSrc","playbackId","options","qs","isSigned","signingKeyId","signingKeyPrivate","token"],"mappings":";;;;;;;AAAA;;;;AAEe,SAASA,WAAT,CAAqBC,UAArB,EAA+C;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AAC5D,MAAIC,EAAE,GAAG,EAAT;;AACA,MAAID,OAAO,CAACE,QAAR,IAAoBF,OAAO,CAACG,YAA5B,IAA4CH,OAAO,CAACI,iBAAxD,EAA2E;AACzE,QAAMC,KAAK,GAAG,0BAAYN,UAAZ,EAAwBC,OAAO,CAACG,YAAhC,EAA8CH,OAAO,CAACI,iBAAtD,EAAyE,GAAzE,CAAd;AACAH,IAAAA,EAAE,oBAAaI,KAAb,CAAF;AACD;;AAED,0CAAiCN,UAAjC,kBAAmDE,EAAnD;AACD","sourcesContent":["import generateJwt from './generateJwt'\r\n\r\nexport default function getVideoSrc(playbackId, options = {}) {\r\n let qs = ''\r\n if (options.isSigned && options.signingKeyId && options.signingKeyPrivate) {\r\n const token = generateJwt(playbackId, options.signingKeyId, options.signingKeyPrivate, 'v')\r\n qs = `?token=${token}`\r\n }\r\n\r\n return `https://stream.mux.com/${playbackId}.m3u8${qs}`\r\n}\r\n"],"file":"getVideoSrc.js"}
|
package/config.dist.json
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sanity-plugin-mux-input",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "An input component that integrates Sanity Studio with Mux video encoding/hosting service.",
|
|
5
|
+
"main": "build/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "sanipack build",
|
|
8
|
+
"watch": "sanipack build --watch",
|
|
9
|
+
"test": "eslint .",
|
|
10
|
+
"prepublishOnly": "sanipack build && sanipack verify"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git@github.com:sanity-io/sanity-plugin-mux-input.git"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"sanity",
|
|
18
|
+
"video",
|
|
19
|
+
"mux",
|
|
20
|
+
"input",
|
|
21
|
+
"plugin",
|
|
22
|
+
"sanity-plugin"
|
|
23
|
+
],
|
|
24
|
+
"author": "Sanity.io <hello@sanity.io>",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@mux/upchunk": "^2.2.2",
|
|
28
|
+
"@sanity/icons": "^1.2.1",
|
|
29
|
+
"@sanity/ui": "^0.36.12",
|
|
30
|
+
"@sanity/uuid": "^3.0.1",
|
|
31
|
+
"hls.js": "^0.11.0",
|
|
32
|
+
"jsonwebtoken": "^8.5.1",
|
|
33
|
+
"lodash": "^4.17.21",
|
|
34
|
+
"media-chrome": "^0.2.2",
|
|
35
|
+
"prop-types": "^15.7.2",
|
|
36
|
+
"react-icons": "^4.3.1",
|
|
37
|
+
"rxjs": "^6.5.3"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"eslint": "^7.32.0",
|
|
41
|
+
"eslint-config-prettier": "^8.3.0",
|
|
42
|
+
"eslint-config-sanity": "^5.1.0",
|
|
43
|
+
"eslint-plugin-import": "^2.24.2",
|
|
44
|
+
"eslint-plugin-react": "^7.26.1",
|
|
45
|
+
"prettier": "^2.4.1",
|
|
46
|
+
"react": "^17.0.1",
|
|
47
|
+
"sanipack": "^2.0.1"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": "^16.9 || ^17",
|
|
51
|
+
"@sanity/base": "^2.11.0",
|
|
52
|
+
"styled-components": "^5.0.0"
|
|
53
|
+
},
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"access": "public"
|
|
56
|
+
},
|
|
57
|
+
"bugs": {
|
|
58
|
+
"url": "https://github.com/sanity-io/sanity-plugin-mux-input/issues"
|
|
59
|
+
},
|
|
60
|
+
"homepage": "https://github.com/sanity-io/sanity-plugin-mux-input#readme",
|
|
61
|
+
"prettier": {
|
|
62
|
+
"semi": false,
|
|
63
|
+
"printWidth": 100,
|
|
64
|
+
"bracketSpacing": false,
|
|
65
|
+
"singleQuote": true,
|
|
66
|
+
"arrowParens": "always",
|
|
67
|
+
"trailingComma": "es5"
|
|
68
|
+
},
|
|
69
|
+
"eslintConfig": {
|
|
70
|
+
"parser": "sanipack/babel/eslint-parser",
|
|
71
|
+
"extends": [
|
|
72
|
+
"sanity",
|
|
73
|
+
"sanity/react",
|
|
74
|
+
"prettier",
|
|
75
|
+
"prettier/react"
|
|
76
|
+
],
|
|
77
|
+
"rules": {
|
|
78
|
+
"react/prop-types": "off",
|
|
79
|
+
"react/jsx-boolean-value": "off",
|
|
80
|
+
"react/jsx-no-bind": "off",
|
|
81
|
+
"react/forbid-prop-types": "off",
|
|
82
|
+
"react/no-did-mount-set-state": "off"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
package/sanity.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"paths": {
|
|
3
|
+
"source": "./src",
|
|
4
|
+
"compiled": "./build"
|
|
5
|
+
},
|
|
6
|
+
"parts": [
|
|
7
|
+
{
|
|
8
|
+
"implements": "part:@sanity/base/schema-type",
|
|
9
|
+
"path": "schema/mux.video.js"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"implements": "part:@sanity/base/schema-type",
|
|
13
|
+
"path": "schema/mux.videoAsset.js"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|