sanity-plugin-mux-input 1.1.8 → 1.1.9

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 (72) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +9 -7
  3. package/build/actions/assets.js +0 -4
  4. package/build/actions/assets.js.map +1 -1
  5. package/build/actions/secrets.js +2 -18
  6. package/build/actions/secrets.js.map +1 -1
  7. package/build/actions/upload.js +6 -47
  8. package/build/actions/upload.js.map +1 -1
  9. package/build/clients/SanityClient.js +0 -3
  10. package/build/clients/SanityClient.js.map +1 -1
  11. package/build/clients/upChunkObservable.js +0 -11
  12. package/build/clients/upChunkObservable.js.map +1 -1
  13. package/build/components/EditThumbnailDialog.js +10 -35
  14. package/build/components/EditThumbnailDialog.js.map +1 -1
  15. package/build/components/FileInputButton.js +1 -20
  16. package/build/components/FileInputButton.js.map +1 -1
  17. package/build/components/Input.js +16 -94
  18. package/build/components/Input.js.map +1 -1
  19. package/build/components/InputBrowser.js +2 -8
  20. package/build/components/InputBrowser.js.map +1 -1
  21. package/build/components/InputError.js +1 -6
  22. package/build/components/InputError.js.map +1 -1
  23. package/build/components/MuxLogo.js +20 -34
  24. package/build/components/MuxLogo.js.map +1 -1
  25. package/build/components/Player.js +17 -66
  26. package/build/components/Player.js.map +1 -1
  27. package/build/components/Preview.js +7 -26
  28. package/build/components/Preview.js.map +1 -1
  29. package/build/components/SelectAsset.js +11 -34
  30. package/build/components/SelectAsset.js.map +1 -1
  31. package/build/components/Setup.js +8 -45
  32. package/build/components/Setup.js.map +1 -1
  33. package/build/components/SetupButton.js +6 -13
  34. package/build/components/SetupButton.js.map +1 -1
  35. package/build/components/SetupDialog.js +2 -8
  36. package/build/components/SetupDialog.js.map +1 -1
  37. package/build/components/SetupNotice.js +1 -9
  38. package/build/components/SetupNotice.js.map +1 -1
  39. package/build/components/Uploader.js +2 -53
  40. package/build/components/Uploader.js.map +1 -1
  41. package/build/components/Uploader.styles.js +27 -67
  42. package/build/components/Uploader.styles.js.map +1 -1
  43. package/build/components/VideoSource.js +5 -13
  44. package/build/components/VideoSource.js.map +1 -1
  45. package/build/components/VideoSource.styles.js +14 -38
  46. package/build/components/VideoSource.styles.js.map +1 -1
  47. package/build/config.js +1 -5
  48. package/build/config.js.map +1 -1
  49. package/build/index.js +0 -5
  50. package/build/index.js.map +1 -1
  51. package/build/schema/mux.video.js +0 -4
  52. package/build/schema/mux.video.js.map +1 -1
  53. package/build/schema/mux.videoAsset.js.map +1 -1
  54. package/build/util/areSecretsSignable.js +0 -1
  55. package/build/util/areSecretsSignable.js.map +1 -1
  56. package/build/util/extractFiles.js +7 -17
  57. package/build/util/extractFiles.js.map +1 -1
  58. package/build/util/generateJwt.js +0 -2
  59. package/build/util/generateJwt.js.map +1 -1
  60. package/build/util/getPlaybackId.js +0 -2
  61. package/build/util/getPlaybackId.js.map +1 -1
  62. package/build/util/getPlaybackPolicy.js +0 -2
  63. package/build/util/getPlaybackPolicy.js.map +1 -1
  64. package/build/util/getPosterSrc.js +8 -13
  65. package/build/util/getPosterSrc.js.map +1 -1
  66. package/build/util/getStoryboardSrc.js +3 -8
  67. package/build/util/getStoryboardSrc.js.map +1 -1
  68. package/build/util/getVideoSrc.js +3 -8
  69. package/build/util/getVideoSrc.js.map +1 -1
  70. package/build/util/isSigned.js +0 -6
  71. package/build/util/isSigned.js.map +1 -1
  72. package/package.json +19 -21
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Sanity.io
3
+ Copyright (c) 2022 Sanity.io
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -53,11 +53,7 @@ Not familiar with Sanity? [Visit www.sanity.io](https://www.sanity.io/)
53
53
 
54
54
  # Playing videos in the frontend
55
55
 
56
- We have made our own player which supports poster images for the videos as set with this plugin, see [`sanity-mux-player`](https://github.com/sanity-io/sanity-mux-player)
57
-
58
- You could use any player which supports HLS, just point the video source to:
59
-
60
- `https://stream.mux.com/${assetDocument.playbackId}.m3u8`
56
+ We recommend using [Mux Player](https://www.mux.com/player), try the [Codesandbox example](https://codesandbox.io/s/github/sanity-io/sanity-plugin-mux-input/tree/main/example).
61
57
 
62
58
  # Enabling Signed Urls
63
59
 
@@ -93,14 +89,20 @@ Issues are actively monitored and PRs are welcome. When developing this plugin t
93
89
 
94
90
  # Publishing
95
91
 
96
- Publishing is done by pushing [Conventional Commits](https://github.com/semantic-release/semantic-release#how-does-it-work).
92
+ Run the ["CI" workflow](https://github.com/sanity-io/sanity-plugin-mux-input/actions/workflows/ci.yml).
93
+ Make sure to select the studio-v2 branch and check "Release new version".
94
+
95
+ Semantic release will only release on configured branches, so it is safe to run release on any branch.
96
+
97
97
  On the [studio-v2](/tree/studio-v2) branch this will result in:
98
98
 
99
99
  - a new version on the `latest` dist-tag.
100
100
  - running `yarn add sanity-plugin-mux-input` or `npm i sanity-plugin-mux-input` will fetch the new version.
101
101
  - running `sanity install mux-input` will fetch the new version.
102
102
  - studio-v3 users are unaffected.
103
- On the [main](/tree/main) branch this will result in:
103
+
104
+ On the [main](/tree/main) branch this will result in:
105
+
104
106
  - a new prerelease version on the `studio-v3` dist-tag.
105
107
  - running `yarn add sanity-plugin-mux-input@studio-v3` or `npm i sanity-plugin-mux-input@studio-v3` will fetch the new version.
106
108
  - running `sanity install mux-input` won't fetch the new version.
@@ -5,11 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.deleteAsset = deleteAsset;
7
7
  exports.getAsset = getAsset;
8
-
9
8
  var _SanityClient = _interopRequireDefault(require("../clients/SanityClient"));
10
-
11
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
-
13
10
  function deleteAsset(assetId) {
14
11
  var dataset = _SanityClient.default.clientConfig.dataset;
15
12
  return _SanityClient.default.request({
@@ -18,7 +15,6 @@ function deleteAsset(assetId) {
18
15
  method: 'DELETE'
19
16
  });
20
17
  }
21
-
22
18
  function getAsset(assetId) {
23
19
  var dataset = _SanityClient.default.clientConfig.dataset;
24
20
  return _SanityClient.default.request({
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","names":["deleteAsset","assetId","dataset","client","clientConfig","request","url","withCredentials","method","getAsset"],"sources":["../../src/actions/assets.ts"],"sourcesContent":["import client from '../clients/SanityClient'\nimport type {MuxAsset} from '../util/types'\n\nexport function deleteAsset(assetId: string) {\n const dataset = client.clientConfig.dataset\n return client.request<void>({\n url: `/addons/mux/assets/${dataset}/${assetId}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function getAsset(assetId: string) {\n const dataset = client.clientConfig.dataset\n return client.request<{data: MuxAsset}>({\n url: `/addons/mux/assets/${dataset}/data/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n"],"mappings":";;;;;;;;AAAA;;;;AAGO,SAASA,WAAT,CAAqBC,OAArB,EAAsC;EAC3C,IAAMC,OAAO,GAAGC,qBAAA,CAAOC,YAAP,CAAoBF,OAApC;EACA,OAAOC,qBAAA,CAAOE,OAAP,CAAqB;IAC1BC,GAAG,+BAAwBJ,OAAxB,cAAmCD,OAAnC,CADuB;IAE1BM,eAAe,EAAE,IAFS;IAG1BC,MAAM,EAAE;EAHkB,CAArB,CAAP;AAKD;;AAEM,SAASC,QAAT,CAAkBR,OAAlB,EAAmC;EACxC,IAAMC,OAAO,GAAGC,qBAAA,CAAOC,YAAP,CAAoBF,OAApC;EACA,OAAOC,qBAAA,CAAOE,OAAP,CAAiC;IACtCC,GAAG,+BAAwBJ,OAAxB,mBAAwCD,OAAxC,CADmC;IAEtCM,eAAe,EAAE,IAFqB;IAGtCC,MAAM,EAAE;EAH8B,CAAjC,CAAP;AAKD"}
1
+ {"version":3,"file":"assets.js","names":["deleteAsset","assetId","dataset","client","clientConfig","request","url","withCredentials","method","getAsset"],"sources":["../../src/actions/assets.ts"],"sourcesContent":["import client from '../clients/SanityClient'\nimport type {MuxAsset} from '../util/types'\n\nexport function deleteAsset(assetId: string) {\n const dataset = client.clientConfig.dataset\n return client.request<void>({\n url: `/addons/mux/assets/${dataset}/${assetId}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function getAsset(assetId: string) {\n const dataset = client.clientConfig.dataset\n return client.request<{data: MuxAsset}>({\n url: `/addons/mux/assets/${dataset}/data/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n"],"mappings":";;;;;;;AAAA;AAA4C;AAGrC,SAASA,WAAW,CAACC,OAAe,EAAE;EAC3C,IAAMC,OAAO,GAAGC,qBAAM,CAACC,YAAY,CAACF,OAAO;EAC3C,OAAOC,qBAAM,CAACE,OAAO,CAAO;IAC1BC,GAAG,+BAAwBJ,OAAO,cAAID,OAAO,CAAE;IAC/CM,eAAe,EAAE,IAAI;IACrBC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ;AAEO,SAASC,QAAQ,CAACR,OAAe,EAAE;EACxC,IAAMC,OAAO,GAAGC,qBAAM,CAACC,YAAY,CAACF,OAAO;EAC3C,OAAOC,qBAAM,CAACE,OAAO,CAAmB;IACtCC,GAAG,+BAAwBJ,OAAO,mBAASD,OAAO,CAAE;IACpDM,eAAe,EAAE,IAAI;IACrBC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ"}
@@ -9,27 +9,19 @@ exports.haveValidSigningKeys = haveValidSigningKeys;
9
9
  exports.saveSecrets = saveSecrets;
10
10
  exports.testSecrets = testSecrets;
11
11
  exports.testSecretsObservable = testSecretsObservable;
12
-
13
12
  var _rxjs = require("rxjs");
14
-
15
13
  var _SanityClient = _interopRequireDefault(require("../clients/SanityClient"));
16
-
17
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
-
19
15
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
20
-
21
16
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
22
-
23
17
  var cache = {
24
18
  secrets: null,
25
19
  exists: false
26
20
  };
27
-
28
21
  function fetchSecrets() {
29
22
  if (cache.exists) {
30
23
  return Promise.resolve(cache);
31
24
  }
32
-
33
25
  return _SanityClient.default.fetch('*[_id == "secrets.mux"][0]').then(secrets => {
34
26
  cache.exists = Boolean(secrets);
35
27
  cache.secrets = {
@@ -42,7 +34,6 @@ function fetchSecrets() {
42
34
  return cache;
43
35
  });
44
36
  }
45
-
46
37
  function saveSecrets(token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate) {
47
38
  var doc = {
48
39
  _id: 'secrets.mux',
@@ -65,7 +56,6 @@ function saveSecrets(token, secretKey, enableSignedUrls, signingKeyId, signingKe
65
56
  return cache.secrets;
66
57
  });
67
58
  }
68
-
69
59
  function createSigningKeys() {
70
60
  var dataset = _SanityClient.default.clientConfig.dataset;
71
61
  return _SanityClient.default.request({
@@ -74,7 +64,6 @@ function createSigningKeys() {
74
64
  method: 'POST'
75
65
  });
76
66
  }
77
-
78
67
  function testSecrets() {
79
68
  var dataset = _SanityClient.default.clientConfig.dataset;
80
69
  return _SanityClient.default.request({
@@ -83,28 +72,24 @@ function testSecrets() {
83
72
  method: 'GET'
84
73
  });
85
74
  }
86
-
87
75
  function haveValidSigningKeys(_x, _x2) {
88
76
  return _haveValidSigningKeys.apply(this, arguments);
89
77
  }
90
-
91
78
  function _haveValidSigningKeys() {
92
79
  _haveValidSigningKeys = _asyncToGenerator(function* (signingKeyId, signingKeyPrivate) {
93
80
  if (!(signingKeyId && signingKeyPrivate)) {
94
81
  return false;
95
82
  }
96
-
97
83
  var dataset = _SanityClient.default.clientConfig.dataset;
98
-
99
84
  try {
100
85
  var res = yield _SanityClient.default.request({
101
86
  url: "/addons/mux/signing-keys/".concat(dataset, "/").concat(signingKeyId),
102
87
  withCredentials: true,
103
88
  method: 'GET'
104
- }); //
89
+ });
90
+ //
105
91
  // if this signing key is valid it will return { data: { id: 'xxxx' } }
106
92
  //
107
-
108
93
  return !!(res.data && res.data.id);
109
94
  } catch (e) {
110
95
  console.error('Error fetching signingKeyId', signingKeyId, 'assuming it is not valid');
@@ -113,7 +98,6 @@ function _haveValidSigningKeys() {
113
98
  });
114
99
  return _haveValidSigningKeys.apply(this, arguments);
115
100
  }
116
-
117
101
  function testSecretsObservable() {
118
102
  var dataset = _SanityClient.default.clientConfig.dataset;
119
103
  return (0, _rxjs.defer)(() => _SanityClient.default.observable.request({
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","names":["cache","secrets","exists","fetchSecrets","Promise","resolve","client","fetch","then","Boolean","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","saveSecrets","doc","_id","_type","createOrReplace","createSigningKeys","dataset","clientConfig","request","url","withCredentials","method","testSecrets","haveValidSigningKeys","res","data","id","e","console","error","testSecretsObservable","defer","observable"],"sources":["../../src/actions/secrets.ts"],"sourcesContent":["import {defer} from 'rxjs'\n\nimport client from '../clients/SanityClient'\nimport type {Secrets} from '../util/types'\n\nconst cache: {secrets: Secrets | null; exists: boolean} = {\n secrets: null,\n exists: false,\n}\n\nexport function fetchSecrets() {\n if (cache.exists) {\n return Promise.resolve(cache)\n }\n\n return client.fetch('*[_id == \"secrets.mux\"][0]').then((secrets: Secrets | null) => {\n cache.exists = Boolean(secrets)\n cache.secrets = {\n token: secrets?.token || null,\n secretKey: secrets?.secretKey || null,\n enableSignedUrls: secrets?.enableSignedUrls || false,\n signingKeyId: secrets?.signingKeyId || null,\n signingKeyPrivate: secrets?.signingKeyPrivate || null,\n }\n return cache\n })\n}\n\nexport function saveSecrets(\n token: string,\n secretKey: string,\n enableSignedUrls: boolean,\n signingKeyId: string,\n signingKeyPrivate: string\n) {\n const doc = {\n _id: 'secrets.mux',\n _type: 'mux.apiKey',\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n\n return client.createOrReplace(doc).then(() => {\n cache.exists = true\n cache.secrets = {\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n return cache.secrets\n })\n}\n\nexport function createSigningKeys() {\n const dataset = client.clientConfig.dataset\n return client.request<{data: {private_key: string; id: string; created_at: string}}>({\n url: `/addons/mux/signing-keys/${dataset}`,\n withCredentials: true,\n method: 'POST',\n })\n}\n\nexport function testSecrets() {\n const dataset = client.clientConfig.dataset\n return client.request<{status: boolean}>({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport async function haveValidSigningKeys(signingKeyId: string, signingKeyPrivate: string) {\n if (!(signingKeyId && signingKeyPrivate)) {\n return false\n }\n\n const dataset = client.clientConfig.dataset\n try {\n const res = await client.request<{data: {id: string; created_at: string}}>({\n url: `/addons/mux/signing-keys/${dataset}/${signingKeyId}`,\n withCredentials: true,\n method: 'GET',\n })\n //\n // if this signing key is valid it will return { data: { id: 'xxxx' } }\n //\n return !!(res.data && res.data.id)\n } catch (e) {\n console.error('Error fetching signingKeyId', signingKeyId, 'assuming it is not valid')\n return false\n }\n}\n\nexport function testSecretsObservable() {\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request<{status: boolean}>({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"secrets.js","names":["cache","secrets","exists","fetchSecrets","Promise","resolve","client","fetch","then","Boolean","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","saveSecrets","doc","_id","_type","createOrReplace","createSigningKeys","dataset","clientConfig","request","url","withCredentials","method","testSecrets","haveValidSigningKeys","res","data","id","e","console","error","testSecretsObservable","defer","observable"],"sources":["../../src/actions/secrets.ts"],"sourcesContent":["import {defer} from 'rxjs'\n\nimport client from '../clients/SanityClient'\nimport type {Secrets} from '../util/types'\n\nconst cache: {secrets: Secrets | null; exists: boolean} = {\n secrets: null,\n exists: false,\n}\n\nexport function fetchSecrets() {\n if (cache.exists) {\n return Promise.resolve(cache)\n }\n\n return client.fetch('*[_id == \"secrets.mux\"][0]').then((secrets: Secrets | null) => {\n cache.exists = Boolean(secrets)\n cache.secrets = {\n token: secrets?.token || null,\n secretKey: secrets?.secretKey || null,\n enableSignedUrls: secrets?.enableSignedUrls || false,\n signingKeyId: secrets?.signingKeyId || null,\n signingKeyPrivate: secrets?.signingKeyPrivate || null,\n }\n return cache\n })\n}\n\nexport function saveSecrets(\n token: string,\n secretKey: string,\n enableSignedUrls: boolean,\n signingKeyId: string,\n signingKeyPrivate: string\n) {\n const doc = {\n _id: 'secrets.mux',\n _type: 'mux.apiKey',\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n\n return client.createOrReplace(doc).then(() => {\n cache.exists = true\n cache.secrets = {\n token,\n secretKey,\n enableSignedUrls,\n signingKeyId,\n signingKeyPrivate,\n }\n return cache.secrets\n })\n}\n\nexport function createSigningKeys() {\n const dataset = client.clientConfig.dataset\n return client.request<{data: {private_key: string; id: string; created_at: string}}>({\n url: `/addons/mux/signing-keys/${dataset}`,\n withCredentials: true,\n method: 'POST',\n })\n}\n\nexport function testSecrets() {\n const dataset = client.clientConfig.dataset\n return client.request<{status: boolean}>({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nexport async function haveValidSigningKeys(signingKeyId: string, signingKeyPrivate: string) {\n if (!(signingKeyId && signingKeyPrivate)) {\n return false\n }\n\n const dataset = client.clientConfig.dataset\n try {\n const res = await client.request<{data: {id: string; created_at: string}}>({\n url: `/addons/mux/signing-keys/${dataset}/${signingKeyId}`,\n withCredentials: true,\n method: 'GET',\n })\n //\n // if this signing key is valid it will return { data: { id: 'xxxx' } }\n //\n return !!(res.data && res.data.id)\n } catch (e) {\n console.error('Error fetching signingKeyId', signingKeyId, 'assuming it is not valid')\n return false\n }\n}\n\nexport function testSecretsObservable() {\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request<{status: boolean}>({\n url: `/addons/mux/secrets/${dataset}/test`,\n withCredentials: true,\n method: 'GET',\n })\n )\n}\n"],"mappings":"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"}
@@ -7,37 +7,21 @@ exports.cancelUpload = cancelUpload;
7
7
  exports.getUpload = getUpload;
8
8
  exports.uploadFile = uploadFile;
9
9
  exports.uploadUrl = uploadUrl;
10
-
11
10
  var _uuid = require("@sanity/uuid");
12
-
13
11
  var _lodash = require("lodash");
14
-
15
12
  var _rxjs = require("rxjs");
16
-
17
13
  var _operators = require("rxjs/operators");
18
-
19
14
  var _SanityClient = _interopRequireDefault(require("../clients/SanityClient"));
20
-
21
15
  var _upChunkObservable = require("../clients/upChunkObservable");
22
-
23
16
  var _config = _interopRequireDefault(require("../config"));
24
-
25
17
  var _assets = require("./assets");
26
-
27
18
  var _secrets = require("./secrets");
28
-
29
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
-
31
20
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
32
-
33
21
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
34
-
35
22
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
36
-
37
23
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
38
-
39
24
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
40
-
41
25
  function cancelUpload(uuid) {
42
26
  return _SanityClient.default.observable.request({
43
27
  url: "/addons/mux/uploads/".concat(_SanityClient.default.clientConfig.dataset, "/").concat(uuid),
@@ -45,7 +29,6 @@ function cancelUpload(uuid) {
45
29
  method: 'DELETE'
46
30
  });
47
31
  }
48
-
49
32
  function uploadUrl(url) {
50
33
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
51
34
  return testUrl(url).pipe((0, _operators.switchMap)(validUrl => {
@@ -56,7 +39,6 @@ function uploadUrl(url) {
56
39
  if (!json || !json.status) {
57
40
  return (0, _rxjs.throwError)(new Error('Invalid credentials'));
58
41
  }
59
-
60
42
  var uuid = (0, _uuid.uuid)();
61
43
  var enableSignedUrls = options.enableSignedUrls;
62
44
  var muxBody = {
@@ -80,11 +62,9 @@ function uploadUrl(url) {
80
62
  query
81
63
  })).pipe((0, _operators.mergeMap)(result => {
82
64
  var asset = result && result.results && result.results[0] && result.results[0].document || null;
83
-
84
65
  if (!asset) {
85
66
  return (0, _rxjs.throwError)(new Error('No asset document returned'));
86
67
  }
87
-
88
68
  return (0, _rxjs.of)({
89
69
  type: 'success',
90
70
  id: uuid,
@@ -94,7 +74,6 @@ function uploadUrl(url) {
94
74
  })));
95
75
  }));
96
76
  }
97
-
98
77
  function uploadFile(file) {
99
78
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
100
79
  return testFile(file).pipe((0, _operators.switchMap)(fileOptions => {
@@ -105,7 +84,6 @@ function uploadFile(file) {
105
84
  if (!json || !json.status) {
106
85
  return (0, _rxjs.throwError)(new Error('Invalid credentials'));
107
86
  }
108
-
109
87
  var uuid = (0, _uuid.uuid)();
110
88
  var enableSignedUrls = options.enableSignedUrls;
111
89
  var body = {
@@ -125,19 +103,21 @@ function uploadFile(file) {
125
103
  },
126
104
  body
127
105
  })).pipe((0, _operators.mergeMap)(result => {
128
- return (0, _upChunkObservable.createUpChunkObservable)(uuid, result.upload.url, file).pipe( // eslint-disable-next-line no-warning-comments
106
+ return (0, _upChunkObservable.createUpChunkObservable)(uuid, result.upload.url, file).pipe(
107
+ // eslint-disable-next-line no-warning-comments
129
108
  // @TODO type the observable events
130
109
  // eslint-disable-next-line max-nested-callbacks
131
110
  (0, _operators.mergeMap)(event => {
132
111
  if (event.type !== 'success') {
133
112
  return (0, _rxjs.of)(event);
134
113
  }
135
-
136
- return (0, _rxjs.from)(updateAssetDocumentFromUpload(uuid)).pipe( // eslint-disable-next-line max-nested-callbacks
114
+ return (0, _rxjs.from)(updateAssetDocumentFromUpload(uuid)).pipe(
115
+ // eslint-disable-next-line max-nested-callbacks
137
116
  (0, _operators.mergeMap)(doc => (0, _rxjs.of)(_objectSpread(_objectSpread({}, event), {}, {
138
117
  asset: doc
139
118
  }))));
140
- }), // eslint-disable-next-line max-nested-callbacks
119
+ }),
120
+ // eslint-disable-next-line max-nested-callbacks
141
121
  (0, _operators.catchError)(err => {
142
122
  // Delete asset document
143
123
  return cancelUpload(uuid).pipe((0, _operators.mergeMapTo)((0, _rxjs.throwError)(err)));
@@ -146,7 +126,6 @@ function uploadFile(file) {
146
126
  })));
147
127
  }));
148
128
  }
149
-
150
129
  function getUpload(assetId) {
151
130
  return _SanityClient.default.request({
152
131
  url: "/addons/mux/uploads/".concat(_SanityClient.default.clientConfig.dataset, "/").concat(assetId),
@@ -154,7 +133,6 @@ function getUpload(assetId) {
154
133
  method: 'GET'
155
134
  });
156
135
  }
157
-
158
136
  function pollUpload(uuid) {
159
137
  var maxTries = 10;
160
138
  var pollInterval;
@@ -169,45 +147,36 @@ function pollUpload(uuid) {
169
147
  reject(err);
170
148
  return;
171
149
  }
172
-
173
150
  assetId = upload && upload.data && upload.data.asset_id;
174
-
175
151
  if (assetId) {
176
152
  clearInterval(pollInterval);
177
153
  resolve(upload);
178
154
  }
179
-
180
155
  if (tries > maxTries) {
181
156
  clearInterval(pollInterval);
182
157
  reject(new Error('Upload did not finish'));
183
158
  }
184
-
185
159
  tries++;
186
160
  }), 2000);
187
161
  });
188
162
  }
189
-
190
163
  function updateAssetDocumentFromUpload(_x) {
191
164
  return _updateAssetDocumentFromUpload.apply(this, arguments);
192
165
  }
193
-
194
166
  function _updateAssetDocumentFromUpload() {
195
167
  _updateAssetDocumentFromUpload = _asyncToGenerator(function* (uuid) {
196
168
  var upload;
197
169
  var asset;
198
-
199
170
  try {
200
171
  upload = yield pollUpload(uuid);
201
172
  } catch (err) {
202
173
  return Promise.reject(err);
203
174
  }
204
-
205
175
  try {
206
176
  asset = yield (0, _assets.getAsset)(upload.data.asset_id);
207
177
  } catch (err) {
208
178
  return Promise.reject(err);
209
179
  }
210
-
211
180
  var doc = {
212
181
  _id: uuid,
213
182
  _type: 'mux.videoAsset',
@@ -223,43 +192,33 @@ function _updateAssetDocumentFromUpload() {
223
192
  });
224
193
  return _updateAssetDocumentFromUpload.apply(this, arguments);
225
194
  }
226
-
227
195
  function testFile(file) {
228
196
  if (typeof window !== 'undefined' && file instanceof window.File) {
229
197
  var fileOptions = optionsFromFile({}, file);
230
198
  return (0, _rxjs.of)(fileOptions);
231
199
  }
232
-
233
200
  return (0, _rxjs.throwError)(new Error('Invalid file'));
234
201
  }
235
-
236
202
  function testUrl(url) {
237
203
  var error = new Error('Invalid URL');
238
-
239
204
  if (!(0, _lodash.isString)(url)) {
240
205
  return (0, _rxjs.throwError)(error);
241
206
  }
242
-
243
207
  var parsed;
244
-
245
208
  try {
246
209
  parsed = new URL(url);
247
210
  } catch (err) {
248
211
  return (0, _rxjs.throwError)(error);
249
212
  }
250
-
251
213
  if (parsed && !parsed.protocol.match(/http:|https:/)) {
252
214
  return (0, _rxjs.throwError)(error);
253
215
  }
254
-
255
216
  return (0, _rxjs.of)(url);
256
217
  }
257
-
258
218
  function optionsFromFile(opts, file) {
259
219
  if (typeof window === 'undefined' || !(file instanceof window.File)) {
260
220
  return opts;
261
221
  }
262
-
263
222
  return {
264
223
  name: opts.preserveFilename === false ? undefined : file.name,
265
224
  type: file.type
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","names":["cancelUpload","uuid","client","observable","request","url","clientConfig","dataset","withCredentials","method","uploadUrl","options","testUrl","pipe","switchMap","validUrl","concat","of","type","testSecretsObservable","json","status","throwError","Error","generateUuid","enableSignedUrls","muxBody","input","playback_policy","mp4_support","config","query","JSON","stringify","filename","split","slice","defer","headers","mergeMap","result","asset","results","document","id","uploadFile","file","testFile","fileOptions","body","createUpChunkObservable","upload","event","from","updateAssetDocumentFromUpload","doc","catchError","err","mergeMapTo","getUpload","assetId","pollUpload","maxTries","pollInterval","tries","Promise","resolve","reject","setInterval","data","asset_id","clearInterval","getAsset","_id","_type","playbackId","playback_ids","uploadId","createOrReplace","then","window","File","optionsFromFile","error","isString","parsed","URL","protocol","match","opts","name","preserveFilename","undefined"],"sources":["../../src/actions/upload.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {uuid as generateUuid} from '@sanity/uuid'\nimport {isString} from 'lodash'\nimport {type Observable, concat, defer, from, of, throwError} from 'rxjs'\nimport {catchError, mergeMap, mergeMapTo, switchMap} from 'rxjs/operators'\n\nimport client from '../clients/SanityClient'\nimport {createUpChunkObservable} from '../clients/upChunkObservable'\nimport config from '../config'\nimport type {MuxAsset} from '../util/types'\nimport {getAsset} from './assets'\nimport {testSecretsObservable} from './secrets'\n\nexport function cancelUpload(uuid: string) {\n return client.observable.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${uuid}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function uploadUrl(url: string, options: {enableSignedUrls?: boolean} = {}) {\n return testUrl(url).pipe(\n switchMap((validUrl) => {\n return concat(\n of({type: 'url', url: validUrl}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const muxBody = {\n input: validUrl,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n mp4_support: config.mp4_support,\n }\n const query = {\n muxBody: JSON.stringify(muxBody),\n filename: validUrl.split('/').slice(-1)[0],\n }\n\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request({\n url: `/addons/mux/assets/${dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n query,\n })\n ).pipe(\n mergeMap((result) => {\n const asset =\n (result && result.results && result.results[0] && result.results[0].document) ||\n null\n\n if (!asset) {\n return throwError(new Error('No asset document returned'))\n }\n return of({type: 'success', id: uuid, asset})\n })\n )\n })\n )\n )\n })\n )\n}\n\nexport function uploadFile(file: File, options: {enableSignedUrls?: boolean} = {}) {\n return testFile(file).pipe(\n switchMap((fileOptions) => {\n return concat(\n of({type: 'file', file: fileOptions}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const body = {\n mp4_support: config.mp4_support,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n }\n\n return concat(\n of({type: 'uuid', uuid}),\n defer(() =>\n client.observable.request<{\n sanityAssetId: string\n upload: {\n cors_origin: string\n id: string\n new_asset_settings: {\n mp4_support: 'standard' | 'none'\n passthrough: string\n playback_policies: ['public' | 'signed']\n }\n status: 'waiting'\n timeout: number\n url: string\n }\n }>({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n body,\n })\n ).pipe(\n mergeMap((result) => {\n return createUpChunkObservable(uuid, result.upload.url, file).pipe(\n // eslint-disable-next-line no-warning-comments\n // @TODO type the observable events\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((event: any) => {\n if (event.type !== 'success') {\n return of(event)\n }\n return from(updateAssetDocumentFromUpload(uuid)).pipe(\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((doc) => of({...event, asset: doc}))\n )\n }),\n // eslint-disable-next-line max-nested-callbacks\n catchError((err) => {\n // Delete asset document\n return cancelUpload(uuid).pipe(mergeMapTo(throwError(err)))\n })\n )\n })\n )\n )\n })\n )\n )\n })\n )\n}\n\ntype UploadResponse = {\n data: {\n asset_id: string\n cors_origin: string\n id: string\n new_asset_settings: {\n mp4_support: 'standard' | 'none'\n passthrough: string\n playback_policies: ['public' | 'signed']\n }\n status: string\n timeout: number\n }\n}\nexport function getUpload(assetId: string) {\n return client.request<UploadResponse>({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nfunction pollUpload(uuid: string): Promise<UploadResponse> {\n const maxTries = 10\n let pollInterval: number\n let tries = 0\n let assetId: string\n let upload: UploadResponse\n return new Promise((resolve, reject) => {\n pollInterval = (setInterval as typeof window.setInterval)(async () => {\n try {\n upload = await getUpload(uuid)\n } catch (err) {\n reject(err)\n return\n }\n assetId = upload && upload.data && upload.data.asset_id\n if (assetId) {\n clearInterval(pollInterval)\n resolve(upload)\n }\n if (tries > maxTries) {\n clearInterval(pollInterval)\n reject(new Error('Upload did not finish'))\n }\n tries++\n }, 2000)\n })\n}\n\nasync function updateAssetDocumentFromUpload(uuid: string) {\n let upload: UploadResponse\n let asset: {data: MuxAsset}\n try {\n upload = await pollUpload(uuid)\n } catch (err) {\n return Promise.reject(err)\n }\n try {\n asset = await getAsset(upload.data.asset_id)\n } catch (err) {\n return Promise.reject(err)\n }\n\n const doc = {\n _id: uuid,\n _type: 'mux.videoAsset',\n status: asset.data.status,\n data: asset.data,\n assetId: asset.data.id,\n playbackId: asset.data.playback_ids[0].id,\n uploadId: upload.data.id,\n }\n return client.createOrReplace(doc).then(() => {\n return doc\n })\n}\n\nfunction testFile(file: File) {\n if (typeof window !== 'undefined' && file instanceof window.File) {\n const fileOptions = optionsFromFile({}, file)\n return of(fileOptions)\n }\n return throwError(new Error('Invalid file'))\n}\n\nfunction testUrl(url: string): Observable<string> {\n const error = new Error('Invalid URL')\n if (!isString(url)) {\n return throwError(error)\n }\n let parsed\n try {\n parsed = new URL(url)\n } catch (err) {\n return throwError(error)\n }\n if (parsed && !parsed.protocol.match(/http:|https:/)) {\n return throwError(error)\n }\n return of(url)\n}\n\nfunction optionsFromFile(opts: {preserveFilename?: boolean}, file: File) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts\n }\n return {\n name: opts.preserveFilename === false ? undefined : file.name,\n type: file.type,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","names":["cancelUpload","uuid","client","observable","request","url","clientConfig","dataset","withCredentials","method","uploadUrl","options","testUrl","pipe","switchMap","validUrl","concat","of","type","testSecretsObservable","json","status","throwError","Error","generateUuid","enableSignedUrls","muxBody","input","playback_policy","mp4_support","config","query","JSON","stringify","filename","split","slice","defer","headers","mergeMap","result","asset","results","document","id","uploadFile","file","testFile","fileOptions","body","createUpChunkObservable","upload","event","from","updateAssetDocumentFromUpload","doc","catchError","err","mergeMapTo","getUpload","assetId","pollUpload","maxTries","pollInterval","tries","Promise","resolve","reject","setInterval","data","asset_id","clearInterval","getAsset","_id","_type","playbackId","playback_ids","uploadId","createOrReplace","then","window","File","optionsFromFile","error","isString","parsed","URL","protocol","match","opts","name","preserveFilename","undefined"],"sources":["../../src/actions/upload.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {uuid as generateUuid} from '@sanity/uuid'\nimport {isString} from 'lodash'\nimport {type Observable, concat, defer, from, of, throwError} from 'rxjs'\nimport {catchError, mergeMap, mergeMapTo, switchMap} from 'rxjs/operators'\n\nimport client from '../clients/SanityClient'\nimport {createUpChunkObservable} from '../clients/upChunkObservable'\nimport config from '../config'\nimport type {MuxAsset} from '../util/types'\nimport {getAsset} from './assets'\nimport {testSecretsObservable} from './secrets'\n\nexport function cancelUpload(uuid: string) {\n return client.observable.request({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${uuid}`,\n withCredentials: true,\n method: 'DELETE',\n })\n}\n\nexport function uploadUrl(url: string, options: {enableSignedUrls?: boolean} = {}) {\n return testUrl(url).pipe(\n switchMap((validUrl) => {\n return concat(\n of({type: 'url', url: validUrl}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const muxBody = {\n input: validUrl,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n mp4_support: config.mp4_support,\n }\n const query = {\n muxBody: JSON.stringify(muxBody),\n filename: validUrl.split('/').slice(-1)[0],\n }\n\n const dataset = client.clientConfig.dataset\n return defer(() =>\n client.observable.request({\n url: `/addons/mux/assets/${dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n query,\n })\n ).pipe(\n mergeMap((result) => {\n const asset =\n (result && result.results && result.results[0] && result.results[0].document) ||\n null\n\n if (!asset) {\n return throwError(new Error('No asset document returned'))\n }\n return of({type: 'success', id: uuid, asset})\n })\n )\n })\n )\n )\n })\n )\n}\n\nexport function uploadFile(file: File, options: {enableSignedUrls?: boolean} = {}) {\n return testFile(file).pipe(\n switchMap((fileOptions) => {\n return concat(\n of({type: 'file', file: fileOptions}),\n testSecretsObservable().pipe(\n switchMap((json) => {\n if (!json || !json.status) {\n return throwError(new Error('Invalid credentials'))\n }\n const uuid = generateUuid()\n const {enableSignedUrls} = options\n const body = {\n mp4_support: config.mp4_support,\n playback_policy: [enableSignedUrls ? 'signed' : 'public'],\n }\n\n return concat(\n of({type: 'uuid', uuid}),\n defer(() =>\n client.observable.request<{\n sanityAssetId: string\n upload: {\n cors_origin: string\n id: string\n new_asset_settings: {\n mp4_support: 'standard' | 'none'\n passthrough: string\n playback_policies: ['public' | 'signed']\n }\n status: 'waiting'\n timeout: number\n url: string\n }\n }>({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}`,\n withCredentials: true,\n method: 'POST',\n headers: {\n 'MUX-Proxy-UUID': uuid,\n 'Content-Type': 'application/json',\n },\n body,\n })\n ).pipe(\n mergeMap((result) => {\n return createUpChunkObservable(uuid, result.upload.url, file).pipe(\n // eslint-disable-next-line no-warning-comments\n // @TODO type the observable events\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((event: any) => {\n if (event.type !== 'success') {\n return of(event)\n }\n return from(updateAssetDocumentFromUpload(uuid)).pipe(\n // eslint-disable-next-line max-nested-callbacks\n mergeMap((doc) => of({...event, asset: doc}))\n )\n }),\n // eslint-disable-next-line max-nested-callbacks\n catchError((err) => {\n // Delete asset document\n return cancelUpload(uuid).pipe(mergeMapTo(throwError(err)))\n })\n )\n })\n )\n )\n })\n )\n )\n })\n )\n}\n\ntype UploadResponse = {\n data: {\n asset_id: string\n cors_origin: string\n id: string\n new_asset_settings: {\n mp4_support: 'standard' | 'none'\n passthrough: string\n playback_policies: ['public' | 'signed']\n }\n status: string\n timeout: number\n }\n}\nexport function getUpload(assetId: string) {\n return client.request<UploadResponse>({\n url: `/addons/mux/uploads/${client.clientConfig.dataset}/${assetId}`,\n withCredentials: true,\n method: 'GET',\n })\n}\n\nfunction pollUpload(uuid: string): Promise<UploadResponse> {\n const maxTries = 10\n let pollInterval: number\n let tries = 0\n let assetId: string\n let upload: UploadResponse\n return new Promise((resolve, reject) => {\n pollInterval = (setInterval as typeof window.setInterval)(async () => {\n try {\n upload = await getUpload(uuid)\n } catch (err) {\n reject(err)\n return\n }\n assetId = upload && upload.data && upload.data.asset_id\n if (assetId) {\n clearInterval(pollInterval)\n resolve(upload)\n }\n if (tries > maxTries) {\n clearInterval(pollInterval)\n reject(new Error('Upload did not finish'))\n }\n tries++\n }, 2000)\n })\n}\n\nasync function updateAssetDocumentFromUpload(uuid: string) {\n let upload: UploadResponse\n let asset: {data: MuxAsset}\n try {\n upload = await pollUpload(uuid)\n } catch (err) {\n return Promise.reject(err)\n }\n try {\n asset = await getAsset(upload.data.asset_id)\n } catch (err) {\n return Promise.reject(err)\n }\n\n const doc = {\n _id: uuid,\n _type: 'mux.videoAsset',\n status: asset.data.status,\n data: asset.data,\n assetId: asset.data.id,\n playbackId: asset.data.playback_ids[0].id,\n uploadId: upload.data.id,\n }\n return client.createOrReplace(doc).then(() => {\n return doc\n })\n}\n\nfunction testFile(file: File) {\n if (typeof window !== 'undefined' && file instanceof window.File) {\n const fileOptions = optionsFromFile({}, file)\n return of(fileOptions)\n }\n return throwError(new Error('Invalid file'))\n}\n\nfunction testUrl(url: string): Observable<string> {\n const error = new Error('Invalid URL')\n if (!isString(url)) {\n return throwError(error)\n }\n let parsed\n try {\n parsed = new URL(url)\n } catch (err) {\n return throwError(error)\n }\n if (parsed && !parsed.protocol.match(/http:|https:/)) {\n return throwError(error)\n }\n return of(url)\n}\n\nfunction optionsFromFile(opts: {preserveFilename?: boolean}, file: File) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts\n }\n return {\n name: opts.preserveFilename === false ? undefined : file.name,\n type: file.type,\n }\n}\n"],"mappings":"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"}
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.client = void 0;
7
-
8
7
  var _client = _interopRequireDefault(require("part:@sanity/base/client"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  var sanityClient = _client.default;
13
10
  var isContentLakeSupported = typeof sanityClient.withConfig === 'function';
14
11
  var client = isContentLakeSupported ? sanityClient.withConfig({
@@ -1 +1 @@
1
- {"version":3,"file":"SanityClient.js","names":["sanityClient","_sanityClient","isContentLakeSupported","withConfig","client","apiVersion"],"sources":["../../src/clients/SanityClient.ts"],"sourcesContent":["import type {SanityClient} from '@sanity/client'\nimport _sanityClient from 'part:@sanity/base/client'\nconst sanityClient = _sanityClient as SanityClient\n\nconst isContentLakeSupported = typeof sanityClient.withConfig === 'function'\n\nexport const client = isContentLakeSupported\n ? sanityClient.withConfig({apiVersion: '2021-05-17'})\n : sanityClient\n\nexport default client\n"],"mappings":";;;;;;;AACA;;;;AACA,IAAMA,YAAY,GAAGC,eAArB;AAEA,IAAMC,sBAAsB,GAAG,OAAOF,YAAY,CAACG,UAApB,KAAmC,UAAlE;AAEO,IAAMC,MAAM,GAAGF,sBAAsB,GACxCF,YAAY,CAACG,UAAb,CAAwB;EAACE,UAAU,EAAE;AAAb,CAAxB,CADwC,GAExCL,YAFG;;eAIQI,M"}
1
+ {"version":3,"file":"SanityClient.js","names":["sanityClient","_sanityClient","isContentLakeSupported","withConfig","client","apiVersion"],"sources":["../../src/clients/SanityClient.ts"],"sourcesContent":["import type {SanityClient} from '@sanity/client'\nimport _sanityClient from 'part:@sanity/base/client'\nconst sanityClient = _sanityClient as SanityClient\n\nconst isContentLakeSupported = typeof sanityClient.withConfig === 'function'\n\nexport const client = isContentLakeSupported\n ? sanityClient.withConfig({apiVersion: '2021-05-17'})\n : sanityClient\n\nexport default client\n"],"mappings":";;;;;;AACA;AAAoD;AACpD,IAAMA,YAAY,GAAGC,eAA6B;AAElD,IAAMC,sBAAsB,GAAG,OAAOF,YAAY,CAACG,UAAU,KAAK,UAAU;AAErE,IAAMC,MAAM,GAAGF,sBAAsB,GACxCF,YAAY,CAACG,UAAU,CAAC;EAACE,UAAU,EAAE;AAAY,CAAC,CAAC,GACnDL,YAAY;AAAA;AAAA,eAEDI,MAAM;AAAA"}
@@ -4,22 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createUpChunkObservable = createUpChunkObservable;
7
-
8
7
  var UpChunk = _interopRequireWildcard(require("@mux/upchunk"));
9
-
10
8
  var _rxjs = require("rxjs");
11
-
12
9
  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); }
13
-
14
10
  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; }
15
-
16
11
  function createUpChunkObservable(uuid, uploadUrl, source) {
17
12
  return new _rxjs.Observable(subscriber => {
18
13
  var upchunk = UpChunk.createUpload({
19
14
  endpoint: uploadUrl,
20
15
  file: source,
21
16
  chunkSize: 30720 // Uploads the file in 30 MB chunks
22
-
23
17
  });
24
18
 
25
19
  var successHandler = () => {
@@ -29,16 +23,13 @@ function createUpChunkObservable(uuid, uploadUrl, source) {
29
23
  });
30
24
  subscriber.complete();
31
25
  };
32
-
33
26
  var errorHandler = data => subscriber.error(new Error(data.detail.message));
34
-
35
27
  var progressHandler = data => {
36
28
  return subscriber.next({
37
29
  type: 'progress',
38
30
  percent: data.detail
39
31
  });
40
32
  };
41
-
42
33
  var offlineHandler = () => {
43
34
  upchunk.pause();
44
35
  subscriber.next({
@@ -46,7 +37,6 @@ function createUpChunkObservable(uuid, uploadUrl, source) {
46
37
  id: uuid
47
38
  });
48
39
  };
49
-
50
40
  var onlineHandler = () => {
51
41
  upchunk.resume();
52
42
  subscriber.next({
@@ -54,7 +44,6 @@ function createUpChunkObservable(uuid, uploadUrl, source) {
54
44
  id: uuid
55
45
  });
56
46
  };
57
-
58
47
  upchunk.on('success', successHandler);
59
48
  upchunk.on('error', errorHandler);
60
49
  upchunk.on('progress', progressHandler);
@@ -1 +1 @@
1
- {"version":3,"file":"upChunkObservable.js","names":["createUpChunkObservable","uuid","uploadUrl","source","Observable","subscriber","upchunk","UpChunk","createUpload","endpoint","file","chunkSize","successHandler","next","type","id","complete","errorHandler","data","error","Error","detail","message","progressHandler","percent","offlineHandler","pause","onlineHandler","resume","on","abort"],"sources":["../../src/clients/upChunkObservable.ts"],"sourcesContent":["import * as UpChunk from '@mux/upchunk'\nimport {Observable} from 'rxjs'\n\nexport function createUpChunkObservable(uuid: string, uploadUrl: string, source: File) {\n return new Observable((subscriber) => {\n const upchunk = UpChunk.createUpload({\n endpoint: uploadUrl,\n file: source,\n chunkSize: 30720, // Uploads the file in 30 MB chunks\n })\n\n const successHandler = () => {\n subscriber.next({\n type: 'success',\n id: uuid,\n })\n subscriber.complete()\n }\n\n const errorHandler = (data: CustomEvent) => subscriber.error(new Error(data.detail.message))\n\n const progressHandler = (data: CustomEvent) => {\n return subscriber.next({type: 'progress', percent: data.detail})\n }\n\n const offlineHandler = () => {\n upchunk.pause()\n subscriber.next({\n type: 'pause',\n id: uuid,\n })\n }\n\n const onlineHandler = () => {\n upchunk.resume()\n subscriber.next({\n type: 'resume',\n id: uuid,\n })\n }\n\n upchunk.on('success', successHandler)\n upchunk.on('error', errorHandler)\n upchunk.on('progress', progressHandler)\n upchunk.on('offline', offlineHandler)\n upchunk.on('online', onlineHandler)\n\n return () => upchunk.abort()\n })\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEO,SAASA,uBAAT,CAAiCC,IAAjC,EAA+CC,SAA/C,EAAkEC,MAAlE,EAAgF;EACrF,OAAO,IAAIC,gBAAJ,CAAgBC,UAAD,IAAgB;IACpC,IAAMC,OAAO,GAAGC,OAAO,CAACC,YAAR,CAAqB;MACnCC,QAAQ,EAAEP,SADyB;MAEnCQ,IAAI,EAAEP,MAF6B;MAGnCQ,SAAS,EAAE,KAHwB,CAGjB;;IAHiB,CAArB,CAAhB;;IAMA,IAAMC,cAAc,GAAG,MAAM;MAC3BP,UAAU,CAACQ,IAAX,CAAgB;QACdC,IAAI,EAAE,SADQ;QAEdC,EAAE,EAAEd;MAFU,CAAhB;MAIAI,UAAU,CAACW,QAAX;IACD,CAND;;IAQA,IAAMC,YAAY,GAAIC,IAAD,IAAuBb,UAAU,CAACc,KAAX,CAAiB,IAAIC,KAAJ,CAAUF,IAAI,CAACG,MAAL,CAAYC,OAAtB,CAAjB,CAA5C;;IAEA,IAAMC,eAAe,GAAIL,IAAD,IAAuB;MAC7C,OAAOb,UAAU,CAACQ,IAAX,CAAgB;QAACC,IAAI,EAAE,UAAP;QAAmBU,OAAO,EAAEN,IAAI,CAACG;MAAjC,CAAhB,CAAP;IACD,CAFD;;IAIA,IAAMI,cAAc,GAAG,MAAM;MAC3BnB,OAAO,CAACoB,KAAR;MACArB,UAAU,CAACQ,IAAX,CAAgB;QACdC,IAAI,EAAE,OADQ;QAEdC,EAAE,EAAEd;MAFU,CAAhB;IAID,CAND;;IAQA,IAAM0B,aAAa,GAAG,MAAM;MAC1BrB,OAAO,CAACsB,MAAR;MACAvB,UAAU,CAACQ,IAAX,CAAgB;QACdC,IAAI,EAAE,QADQ;QAEdC,EAAE,EAAEd;MAFU,CAAhB;IAID,CAND;;IAQAK,OAAO,CAACuB,EAAR,CAAW,SAAX,EAAsBjB,cAAtB;IACAN,OAAO,CAACuB,EAAR,CAAW,OAAX,EAAoBZ,YAApB;IACAX,OAAO,CAACuB,EAAR,CAAW,UAAX,EAAuBN,eAAvB;IACAjB,OAAO,CAACuB,EAAR,CAAW,SAAX,EAAsBJ,cAAtB;IACAnB,OAAO,CAACuB,EAAR,CAAW,QAAX,EAAqBF,aAArB;IAEA,OAAO,MAAMrB,OAAO,CAACwB,KAAR,EAAb;EACD,CA5CM,CAAP;AA6CD"}
1
+ {"version":3,"file":"upChunkObservable.js","names":["createUpChunkObservable","uuid","uploadUrl","source","Observable","subscriber","upchunk","UpChunk","createUpload","endpoint","file","chunkSize","successHandler","next","type","id","complete","errorHandler","data","error","Error","detail","message","progressHandler","percent","offlineHandler","pause","onlineHandler","resume","on","abort"],"sources":["../../src/clients/upChunkObservable.ts"],"sourcesContent":["import * as UpChunk from '@mux/upchunk'\nimport {Observable} from 'rxjs'\n\nexport function createUpChunkObservable(uuid: string, uploadUrl: string, source: File) {\n return new Observable((subscriber) => {\n const upchunk = UpChunk.createUpload({\n endpoint: uploadUrl,\n file: source,\n chunkSize: 30720, // Uploads the file in 30 MB chunks\n })\n\n const successHandler = () => {\n subscriber.next({\n type: 'success',\n id: uuid,\n })\n subscriber.complete()\n }\n\n const errorHandler = (data: CustomEvent) => subscriber.error(new Error(data.detail.message))\n\n const progressHandler = (data: CustomEvent) => {\n return subscriber.next({type: 'progress', percent: data.detail})\n }\n\n const offlineHandler = () => {\n upchunk.pause()\n subscriber.next({\n type: 'pause',\n id: uuid,\n })\n }\n\n const onlineHandler = () => {\n upchunk.resume()\n subscriber.next({\n type: 'resume',\n id: uuid,\n })\n }\n\n upchunk.on('success', successHandler)\n upchunk.on('error', errorHandler)\n upchunk.on('progress', progressHandler)\n upchunk.on('offline', offlineHandler)\n upchunk.on('online', onlineHandler)\n\n return () => upchunk.abort()\n })\n}\n"],"mappings":";;;;;;AAAA;AACA;AAA+B;AAAA;AAExB,SAASA,uBAAuB,CAACC,IAAY,EAAEC,SAAiB,EAAEC,MAAY,EAAE;EACrF,OAAO,IAAIC,gBAAU,CAAEC,UAAU,IAAK;IACpC,IAAMC,OAAO,GAAGC,OAAO,CAACC,YAAY,CAAC;MACnCC,QAAQ,EAAEP,SAAS;MACnBQ,IAAI,EAAEP,MAAM;MACZQ,SAAS,EAAE,KAAK,CAAE;IACpB,CAAC,CAAC;;IAEF,IAAMC,cAAc,GAAG,MAAM;MAC3BP,UAAU,CAACQ,IAAI,CAAC;QACdC,IAAI,EAAE,SAAS;QACfC,EAAE,EAAEd;MACN,CAAC,CAAC;MACFI,UAAU,CAACW,QAAQ,EAAE;IACvB,CAAC;IAED,IAAMC,YAAY,GAAIC,IAAiB,IAAKb,UAAU,CAACc,KAAK,CAAC,IAAIC,KAAK,CAACF,IAAI,CAACG,MAAM,CAACC,OAAO,CAAC,CAAC;IAE5F,IAAMC,eAAe,GAAIL,IAAiB,IAAK;MAC7C,OAAOb,UAAU,CAACQ,IAAI,CAAC;QAACC,IAAI,EAAE,UAAU;QAAEU,OAAO,EAAEN,IAAI,CAACG;MAAM,CAAC,CAAC;IAClE,CAAC;IAED,IAAMI,cAAc,GAAG,MAAM;MAC3BnB,OAAO,CAACoB,KAAK,EAAE;MACfrB,UAAU,CAACQ,IAAI,CAAC;QACdC,IAAI,EAAE,OAAO;QACbC,EAAE,EAAEd;MACN,CAAC,CAAC;IACJ,CAAC;IAED,IAAM0B,aAAa,GAAG,MAAM;MAC1BrB,OAAO,CAACsB,MAAM,EAAE;MAChBvB,UAAU,CAACQ,IAAI,CAAC;QACdC,IAAI,EAAE,QAAQ;QACdC,EAAE,EAAEd;MACN,CAAC,CAAC;IACJ,CAAC;IAEDK,OAAO,CAACuB,EAAE,CAAC,SAAS,EAAEjB,cAAc,CAAC;IACrCN,OAAO,CAACuB,EAAE,CAAC,OAAO,EAAEZ,YAAY,CAAC;IACjCX,OAAO,CAACuB,EAAE,CAAC,UAAU,EAAEN,eAAe,CAAC;IACvCjB,OAAO,CAACuB,EAAE,CAAC,SAAS,EAAEJ,cAAc,CAAC;IACrCnB,OAAO,CAACuB,EAAE,CAAC,QAAQ,EAAEF,aAAa,CAAC;IAEnC,OAAO,MAAMrB,OAAO,CAACwB,KAAK,EAAE;EAC9B,CAAC,CAAC;AACJ"}