@faststore/core 2.1.84 → 2.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/.turbo/turbo-build.log +9 -7
  2. package/.turbo/turbo-test.log +25 -0
  3. package/@generated/graphql/index.ts +183 -79
  4. package/@generated/graphql/persisted.json +5 -5
  5. package/@generated/graphql/schema.graphql +1053 -0
  6. package/api/index.ts +15 -0
  7. package/cms/faststore/sections.json +2 -32
  8. package/codegen.yml +2 -1
  9. package/generate.sh +71 -0
  10. package/index.ts +15 -0
  11. package/jest.config.js +6 -0
  12. package/package.json +33 -18
  13. package/src/components/ThirdPartyScripts/ThirdPartyScripts.tsx +1 -2
  14. package/src/components/cms/RenderSections.tsx +4 -5
  15. package/src/components/navigation/Navbar/Navbar.tsx +4 -3
  16. package/src/components/navigation/NavbarSlider/NavbarSlider.tsx +5 -4
  17. package/src/components/product/ProductGrid/ProductGrid.tsx +4 -3
  18. package/src/components/sections/Breadcrumb/Breadcrumb.tsx +17 -22
  19. package/src/components/sections/CrossSellingShelf/CrossSellingShelf.tsx +8 -6
  20. package/src/components/sections/Footer/Footer.tsx +2 -14
  21. package/src/components/sections/Navbar/Navbar.tsx +0 -4
  22. package/src/components/sections/ProductDetails/ProductDetails.tsx +23 -33
  23. package/src/components/sections/ProductGallery/ProductGallery.tsx +15 -26
  24. package/src/components/sections/ProductShelf/ProductShelf.tsx +1 -1
  25. package/src/components/sections/ProductTiles/ProductTiles.tsx +4 -3
  26. package/src/components/templates/ProductListingPage/ProductListing.tsx +95 -0
  27. package/src/components/templates/ProductListingPage/ProductListingPage.tsx +34 -68
  28. package/src/components/templates/SearchPage/SearchPage.tsx +81 -0
  29. package/src/components/templates/SearchPage/index.ts +2 -0
  30. package/src/components/ui/ProductGallery/ProductGallery.tsx +24 -16
  31. package/src/components/ui/ProductGallery/ProductGalleryPage.tsx +8 -7
  32. package/src/components/ui/ProductGallery/useDelayedFacets.ts +3 -3
  33. package/src/components/ui/ProductShelf/ProductShelf.tsx +3 -2
  34. package/src/customizations/GlobalOverrides.tsx +0 -2
  35. package/src/customizations/fragments/ClientProduct.ts +9 -0
  36. package/src/customizations/fragments/ClientProductGallery.ts +19 -0
  37. package/src/customizations/fragments/ClientProducts.ts +19 -0
  38. package/src/customizations/fragments/ServerCollectionPage.ts +9 -0
  39. package/src/customizations/fragments/ServerProductPage.ts +9 -0
  40. package/src/customizations/graphql/thirdParty/resolvers/index.ts +3 -0
  41. package/src/customizations/graphql/vtex/resolvers/index.ts +3 -0
  42. package/src/pages/[...slug].tsx +5 -3
  43. package/src/pages/[slug]/p.tsx +38 -18
  44. package/src/pages/s.tsx +22 -34
  45. package/src/sdk/graphql/useQuery.ts +17 -13
  46. package/src/sdk/overrides/PageProvider.tsx +78 -0
  47. package/src/sdk/product/useLocalizedVariables.ts +33 -0
  48. package/src/sdk/product/usePageProductsQuery.ts +139 -0
  49. package/src/{components/sections/ProductGallery/useGalleryQuery.ts → sdk/product/useProductGalleryQuery.ts} +12 -13
  50. package/src/sdk/product/{useProduct.ts → useProductQuery.ts} +10 -7
  51. package/src/sdk/product/useProductsPrefetch.ts +72 -0
  52. package/src/sdk/product/useProductsQuery.ts +17 -63
  53. package/src/server/generator/generateGraphQLSchemaFile.ts +3 -0
  54. package/src/server/generator/schema.ts +82 -0
  55. package/src/server/index.ts +34 -21
  56. package/src/server/options.ts +16 -0
  57. package/test/server/index.test.ts +146 -0
  58. package/.next/BUILD_ID +0 -1
  59. package/.next/build-manifest.json +0 -129
  60. package/.next/cache/.tsbuildinfo +0 -1
  61. package/.next/cache/config.json +0 -7
  62. package/.next/cache/eslint/.cache_1gneedd +0 -1
  63. package/.next/cache/next-server.js.nft.json +0 -1
  64. package/.next/cache/webpack/client-production/0.pack +0 -0
  65. package/.next/cache/webpack/client-production/index.pack +0 -0
  66. package/.next/cache/webpack/server-production/0.pack +0 -0
  67. package/.next/cache/webpack/server-production/index.pack +0 -0
  68. package/.next/export-marker.json +0 -1
  69. package/.next/images-manifest.json +0 -1
  70. package/.next/next-server.js.nft.json +0 -1
  71. package/.next/package.json +0 -1
  72. package/.next/prerender-manifest.json +0 -1
  73. package/.next/react-loadable-manifest.json +0 -44
  74. package/.next/required-server-files.json +0 -1
  75. package/.next/routes-manifest.json +0 -1
  76. package/.next/server/chunks/143.js +0 -106
  77. package/.next/server/chunks/177.js +0 -120
  78. package/.next/server/chunks/183.js +0 -94
  79. package/.next/server/chunks/184.js +0 -61
  80. package/.next/server/chunks/186.js +0 -113
  81. package/.next/server/chunks/289.js +0 -239
  82. package/.next/server/chunks/312.js +0 -697
  83. package/.next/server/chunks/350.js +0 -143
  84. package/.next/server/chunks/483.js +0 -650
  85. package/.next/server/chunks/487.js +0 -9142
  86. package/.next/server/chunks/53.js +0 -61
  87. package/.next/server/chunks/530.js +0 -626
  88. package/.next/server/chunks/576.js +0 -94
  89. package/.next/server/chunks/650.js +0 -9142
  90. package/.next/server/chunks/676.js +0 -32
  91. package/.next/server/chunks/693.js +0 -58
  92. package/.next/server/chunks/71.js +0 -1254
  93. package/.next/server/chunks/74.js +0 -4065
  94. package/.next/server/chunks/753.js +0 -509
  95. package/.next/server/chunks/779.js +0 -58
  96. package/.next/server/chunks/825.js +0 -4039
  97. package/.next/server/chunks/854.js +0 -72
  98. package/.next/server/chunks/859.js +0 -959
  99. package/.next/server/chunks/907.js +0 -1911
  100. package/.next/server/chunks/933.js +0 -517
  101. package/.next/server/chunks/98.js +0 -124
  102. package/.next/server/chunks/988.js +0 -211
  103. package/.next/server/chunks/font-manifest.json +0 -1
  104. package/.next/server/font-manifest.json +0 -1
  105. package/.next/server/middleware-build-manifest.js +0 -1
  106. package/.next/server/middleware-manifest.json +0 -6
  107. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  108. package/.next/server/pages/404.js +0 -386
  109. package/.next/server/pages/404.js.nft.json +0 -1
  110. package/.next/server/pages/500.js +0 -388
  111. package/.next/server/pages/500.js.nft.json +0 -1
  112. package/.next/server/pages/[...slug].js +0 -1005
  113. package/.next/server/pages/[...slug].js.nft.json +0 -1
  114. package/.next/server/pages/[slug]/p.js +0 -2269
  115. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  116. package/.next/server/pages/_app.js +0 -280
  117. package/.next/server/pages/_app.js.nft.json +0 -1
  118. package/.next/server/pages/_document.js +0 -374
  119. package/.next/server/pages/_document.js.nft.json +0 -1
  120. package/.next/server/pages/_error.js +0 -164
  121. package/.next/server/pages/_error.js.nft.json +0 -1
  122. package/.next/server/pages/account.js +0 -363
  123. package/.next/server/pages/account.js.nft.json +0 -1
  124. package/.next/server/pages/api/graphql.js +0 -365
  125. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  126. package/.next/server/pages/api/health/live.js +0 -31
  127. package/.next/server/pages/api/health/live.js.nft.json +0 -1
  128. package/.next/server/pages/api/health/ready.js +0 -31
  129. package/.next/server/pages/api/health/ready.js.nft.json +0 -1
  130. package/.next/server/pages/api/preview.js +0 -148
  131. package/.next/server/pages/api/preview.js.nft.json +0 -1
  132. package/.next/server/pages/checkout.js +0 -363
  133. package/.next/server/pages/checkout.js.nft.json +0 -1
  134. package/.next/server/pages/en-US/404.html +0 -81
  135. package/.next/server/pages/en-US/404.json +0 -1
  136. package/.next/server/pages/en-US/500.html +0 -81
  137. package/.next/server/pages/en-US/500.json +0 -1
  138. package/.next/server/pages/en-US/account.html +0 -81
  139. package/.next/server/pages/en-US/account.json +0 -1
  140. package/.next/server/pages/en-US/checkout.html +0 -81
  141. package/.next/server/pages/en-US/checkout.json +0 -1
  142. package/.next/server/pages/en-US/login.html +0 -81
  143. package/.next/server/pages/en-US/login.json +0 -1
  144. package/.next/server/pages/en-US/s.html +0 -81
  145. package/.next/server/pages/en-US/s.json +0 -1
  146. package/.next/server/pages/en-US.html +0 -81
  147. package/.next/server/pages/en-US.json +0 -1
  148. package/.next/server/pages/index.js +0 -439
  149. package/.next/server/pages/index.js.nft.json +0 -1
  150. package/.next/server/pages/login.js +0 -368
  151. package/.next/server/pages/login.js.nft.json +0 -1
  152. package/.next/server/pages/s.js +0 -466
  153. package/.next/server/pages/s.js.nft.json +0 -1
  154. package/.next/server/pages-manifest.json +0 -18
  155. package/.next/server/webpack-api-runtime.js +0 -229
  156. package/.next/server/webpack-runtime.js +0 -229
  157. package/.next/static/UFCNzAvjHLcTNmP8sQK5l/_buildManifest.js +0 -1
  158. package/.next/static/UFCNzAvjHLcTNmP8sQK5l/_ssgManifest.js +0 -1
  159. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  160. package/.next/static/chunks/148.582eaa81293ee470.js +0 -1
  161. package/.next/static/chunks/238-39630714f5d70169.js +0 -1
  162. package/.next/static/chunks/243-b4f8e506d156ee41.js +0 -1
  163. package/.next/static/chunks/530.ec68de379130c11e.js +0 -1
  164. package/.next/static/chunks/548-4ee971bf7bdb3e81.js +0 -1
  165. package/.next/static/chunks/603-072c8fb73ac35775.js +0 -1
  166. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  167. package/.next/static/chunks/709.7bc5a25ce30abda6.js +0 -1
  168. package/.next/static/chunks/738-a5ff304828f20cbf.js +0 -1
  169. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  170. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  171. package/.next/static/chunks/988.afda042dd9ba11d1.js +0 -1
  172. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  173. package/.next/static/chunks/main-fd466221927468fd.js +0 -1
  174. package/.next/static/chunks/pages/404-af78f7cd1d3c1f60.js +0 -1
  175. package/.next/static/chunks/pages/500-f6346ca5f9dc4fef.js +0 -1
  176. package/.next/static/chunks/pages/[...slug]-3f4e5f74ff9436ec.js +0 -1
  177. package/.next/static/chunks/pages/[slug]/p-8e20c206fb84d184.js +0 -1
  178. package/.next/static/chunks/pages/_app-895781b1c7b5bf56.js +0 -1
  179. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  180. package/.next/static/chunks/pages/account-05bd79fb78365e88.js +0 -1
  181. package/.next/static/chunks/pages/checkout-c973786e68f25a39.js +0 -1
  182. package/.next/static/chunks/pages/index-73110361a184aa10.js +0 -1
  183. package/.next/static/chunks/pages/login-8deb9243376b6aa1.js +0 -1
  184. package/.next/static/chunks/pages/s-94691e1fdc9521a4.js +0 -1
  185. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  186. package/.next/static/chunks/webpack-504557a0a7373460.js +0 -1
  187. package/.next/static/css/20e4a3a45cdd65f4.css +0 -1
  188. package/.next/static/css/4b7138899cd07c63.css +0 -1
  189. package/.next/static/css/527e334fa69cf40a.css +0 -1
  190. package/.next/static/css/6e1a7434f061d0ef.css +0 -1
  191. package/.next/static/css/9e76fef1c9ca89af.css +0 -1
  192. package/.next/static/css/a2eefb25a4608343.css +0 -1
  193. package/.next/static/css/cb7d1fcea42fab9c.css +0 -1
  194. package/.next/static/css/df588bb98c0b0ca6.css +0 -1
  195. package/.next/static/css/e3b039e8f5daf95f.css +0 -1
  196. package/.next/static/css/f0e2d1b8832e935d.css +0 -1
  197. package/.next/trace +0 -80
  198. package/public/~partytown/debug/partytown-atomics.js +0 -556
  199. package/public/~partytown/debug/partytown-media.js +0 -374
  200. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  201. package/public/~partytown/debug/partytown-sw.js +0 -59
  202. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  203. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  204. package/public/~partytown/debug/partytown.js +0 -72
  205. package/public/~partytown/partytown-atomics.js +0 -2
  206. package/public/~partytown/partytown-media.js +0 -2
  207. package/public/~partytown/partytown-sw.js +0 -2
  208. package/public/~partytown/partytown.js +0 -2
  209. package/src/components/ui/ProductGallery/usePageProducts.ts +0 -48
  210. package/src/customizations/components/overrides/ThirdPartyScripts.tsx +0 -9
  211. package/src/customizations/scripts/ThirdPartyScripts.tsx +0 -8
@@ -1,374 +0,0 @@
1
- /* Partytown 0.6.4 - MIT builder.io */
2
- (self => {
3
- const [getter, setter, callMethod, constructGlobal, definePrototypePropertyDescriptor, randomId, WinIdKey, InstanceIdKey, ApplyPathKey] = self.$bridgeToMedia$;
4
- delete self.$bridgeToMedia$;
5
- const ContextKey = Symbol();
6
- const MediaSourceKey = Symbol();
7
- const ReadyStateKey = Symbol();
8
- const SourceBuffersKey = Symbol();
9
- const SourceBufferTasksKey = Symbol();
10
- const TimeRangesKey = Symbol();
11
- const EMPTY_ARRAY = [];
12
- const defineCstr = (win, cstrName, Cstr) => win[cstrName] = defineCstrName(cstrName, Cstr);
13
- const defineCstrName = (cstrName, Cstr) => Object.defineProperty(Cstr, "name", {
14
- value: cstrName
15
- });
16
- const initCanvas = (WorkerBase, win) => {
17
- const HTMLCanvasDescriptorMap = {
18
- getContext: {
19
- value(contextType, contextAttributes) {
20
- this[ContextKey] || (this[ContextKey] = (contextType.includes("webgl") ? createContextWebGL : createContext2D)(this, contextType, contextAttributes));
21
- return this[ContextKey];
22
- }
23
- }
24
- };
25
- const WorkerCanvasGradient = defineCstr(win, "CanvasGradient", class extends WorkerBase {
26
- addColorStop(...args) {
27
- callMethod(this, [ "addColorStop" ], args, 2);
28
- }
29
- });
30
- const WorkerCanvasPattern = defineCstr(win, "CanvasPattern", class extends WorkerBase {
31
- setTransform(...args) {
32
- callMethod(this, [ "setTransform" ], args, 2);
33
- }
34
- });
35
- const createContext2D = (canvasInstance, contextType, contextAttributes) => {
36
- const winId = canvasInstance[WinIdKey];
37
- const ctxInstanceId = randomId();
38
- const ctxInstance = {
39
- [WinIdKey]: winId,
40
- [InstanceIdKey]: ctxInstanceId,
41
- [ApplyPathKey]: []
42
- };
43
- const ctx = callMethod(canvasInstance, [ "getContext" ], [ contextType, contextAttributes ], 1, ctxInstanceId);
44
- const ctx2dGetterMethods = "getContextAttributes,getImageData,getLineDash,getTransform,isPointInPath,isPointInStroke,measureText".split(",");
45
- const CanvasRenderingContext2D = {
46
- get: (target, propName) => "string" == typeof propName && propName in ctx ? "function" == typeof ctx[propName] ? (...args) => {
47
- if (propName.startsWith("create")) {
48
- const instanceId = randomId();
49
- callMethod(ctxInstance, [ propName ], args, 2, instanceId);
50
- if ("createImageData" === propName || "createPattern" === propName) {
51
- (api => {
52
- console.warn(`${api} not implemented`);
53
- })(`${propName}()`);
54
- return {
55
- setTransform: () => {}
56
- };
57
- }
58
- return new WorkerCanvasGradient(winId, instanceId);
59
- }
60
- const methodCallType = ctx2dGetterMethods.includes(propName) ? 1 : 2;
61
- return callMethod(ctxInstance, [ propName ], args, methodCallType);
62
- } : ctx[propName] : target[propName],
63
- set(target, propName, value) {
64
- if ("string" == typeof propName && propName in ctx) {
65
- ctx[propName] !== value && "function" != typeof value && setter(ctxInstance, [ propName ], value);
66
- ctx[propName] = value;
67
- } else {
68
- target[propName] = value;
69
- }
70
- return true;
71
- }
72
- };
73
- return new Proxy(ctx, CanvasRenderingContext2D);
74
- };
75
- const createContextWebGL = (canvasInstance, contextType, contextAttributes) => {
76
- const winId = canvasInstance[WinIdKey];
77
- const ctxInstanceId = randomId();
78
- const ctxInstance = {
79
- [WinIdKey]: winId,
80
- [InstanceIdKey]: ctxInstanceId,
81
- [ApplyPathKey]: []
82
- };
83
- const ctx = callMethod(canvasInstance, [ "getContext" ], [ contextType, contextAttributes ], 1, ctxInstanceId);
84
- const WebGLRenderingContextHandler = {
85
- get: (target, propName) => "string" == typeof propName ? "function" != typeof ctx[propName] ? ctx[propName] : (...args) => callMethod(ctxInstance, [ propName ], args, getWebGlMethodCallType(propName)) : target[propName],
86
- set(target, propName, value) {
87
- if ("string" == typeof propName && propName in ctx) {
88
- ctx[propName] !== value && "function" != typeof value && setter(ctxInstance, [ propName ], value);
89
- ctx[propName] = value;
90
- } else {
91
- target[propName] = value;
92
- }
93
- return true;
94
- }
95
- };
96
- return new Proxy(ctx, WebGLRenderingContextHandler);
97
- };
98
- const ctxWebGLGetterMethods = "checkFramebufferStatus,makeXRCompatible".split(",");
99
- const getWebGlMethodCallType = methodName => methodName.startsWith("create") || methodName.startsWith("get") || methodName.startsWith("is") || ctxWebGLGetterMethods.includes(methodName) ? 1 : 2;
100
- defineCstr(win, "CanvasGradient", WorkerCanvasGradient);
101
- defineCstr(win, "CanvasPattern", WorkerCanvasPattern);
102
- definePrototypePropertyDescriptor(win.HTMLCanvasElement, HTMLCanvasDescriptorMap);
103
- };
104
- const initMedia = (WorkerBase, WorkerEventTargetProxy, env, win) => {
105
- var _a, _b;
106
- win.Audio = defineCstrName("HTMLAudioElement", class {
107
- constructor(src) {
108
- const audio = env.$createNode$("audio", randomId());
109
- audio.src = src;
110
- return audio;
111
- }
112
- });
113
- const WorkerAudioTrack = class extends WorkerBase {
114
- get enabled() {
115
- return getter(this, [ "enabled" ]);
116
- }
117
- set enabled(value) {
118
- setter(this, [ "enabled" ], value);
119
- }
120
- get id() {
121
- return getter(this, [ "id" ]);
122
- }
123
- get kind() {
124
- return getter(this, [ "kind" ]);
125
- }
126
- get label() {
127
- return getter(this, [ "label" ]);
128
- }
129
- get language() {
130
- return getter(this, [ "language" ]);
131
- }
132
- get sourceBuffer() {
133
- return new WorkerSourceBuffer(this);
134
- }
135
- };
136
- const WorkerAudioTrackList = class {
137
- constructor(mediaElm) {
138
- const winId = mediaElm[WinIdKey];
139
- const instanceId = mediaElm[InstanceIdKey];
140
- const instance = {
141
- addEventListener(...args) {
142
- callMethod(mediaElm, [ "audioTracks", "addEventListener" ], args, 3);
143
- },
144
- getTrackById: (...args) => callMethod(mediaElm, [ "audioTracks", "getTrackById" ], args),
145
- get length() {
146
- return getter(mediaElm, [ "audioTracks", "length" ]);
147
- },
148
- removeEventListener(...args) {
149
- callMethod(mediaElm, [ "audioTracks", "removeEventListener" ], args, 3);
150
- }
151
- };
152
- return new Proxy(instance, {
153
- get: (target, propName) => "number" == typeof propName ? new WorkerAudioTrack(winId, instanceId, [ "audioTracks", propName ]) : target[propName]
154
- });
155
- }
156
- };
157
- const WorkerSourceBufferList = defineCstr(win, "SourceBufferList", class extends Array {
158
- constructor(mediaSource) {
159
- super();
160
- this[MediaSourceKey] = mediaSource;
161
- }
162
- addEventListener(...args) {
163
- callMethod(this[MediaSourceKey], [ "sourceBuffers", "addEventListener" ], args, 3);
164
- }
165
- removeEventListener(...args) {
166
- callMethod(this[MediaSourceKey], [ "sourceBuffers", "removeEventListener" ], args, 3);
167
- }
168
- });
169
- const WorkerSourceBuffer = defineCstr(win, "SourceBuffer", (_b = class extends WorkerEventTargetProxy {
170
- constructor(mediaSource) {
171
- super(mediaSource[WinIdKey], mediaSource[InstanceIdKey], [ "sourceBuffers" ]);
172
- this[_a] = [];
173
- this[MediaSourceKey] = mediaSource;
174
- }
175
- abort() {
176
- const sbIndex = getSourceBufferIndex(this);
177
- callMethod(this, [ sbIndex, "appendWindowStart" ], EMPTY_ARRAY, 1);
178
- }
179
- addEventListener(...args) {
180
- const sbIndex = getSourceBufferIndex(this);
181
- callMethod(this, [ sbIndex, "addEventListener" ], args, 3);
182
- }
183
- appendBuffer(buf) {
184
- this[SourceBufferTasksKey].push([ "appendBuffer", [ buf ], buf ]);
185
- drainSourceBufferQueue(this);
186
- }
187
- get appendWindowStart() {
188
- const sbIndex = getSourceBufferIndex(this);
189
- return getter(this, [ sbIndex, "appendWindowStart" ]);
190
- }
191
- set appendWindowStart(value) {
192
- const sbIndex = getSourceBufferIndex(this);
193
- setter(this, [ sbIndex, "appendWindowStart" ], value);
194
- }
195
- get appendWindowEnd() {
196
- const sbIndex = getSourceBufferIndex(this);
197
- return getter(this, [ sbIndex, "appendWindowEnd" ]);
198
- }
199
- set appendWindowEnd(value) {
200
- const sbIndex = getSourceBufferIndex(this);
201
- setter(this, [ sbIndex, "appendWindowEnd" ], value);
202
- }
203
- get buffered() {
204
- const mediaSource = this[MediaSourceKey];
205
- const sbIndex = getSourceBufferIndex(this);
206
- const timeRanges = new WorkerTimeRanges(mediaSource[WinIdKey], mediaSource[InstanceIdKey], [ "sourceBuffers", sbIndex, "buffered" ]);
207
- return timeRanges;
208
- }
209
- changeType(mimeType) {
210
- const sbIndex = getSourceBufferIndex(this);
211
- callMethod(this, [ sbIndex, "changeType" ], [ mimeType ], 2);
212
- }
213
- get mode() {
214
- const sbIndex = getSourceBufferIndex(this);
215
- return getter(this, [ sbIndex, "mode" ]);
216
- }
217
- set mode(value) {
218
- const sbIndex = getSourceBufferIndex(this);
219
- setter(this, [ sbIndex, "mode" ], value);
220
- }
221
- remove(start, end) {
222
- this[SourceBufferTasksKey].push([ "remove", [ start, end ] ]);
223
- drainSourceBufferQueue(this);
224
- }
225
- removeEventListener(...args) {
226
- const sbIndex = getSourceBufferIndex(this);
227
- callMethod(this, [ sbIndex, "removeEventListener" ], args, 3);
228
- }
229
- get timestampOffset() {
230
- const sbIndex = getSourceBufferIndex(this);
231
- return getter(this, [ sbIndex, "timestampOffset" ]);
232
- }
233
- set timestampOffset(value) {
234
- const sbIndex = getSourceBufferIndex(this);
235
- setter(this, [ sbIndex, "timestampOffset" ], value);
236
- }
237
- get updating() {
238
- const sbIndex = getSourceBufferIndex(this);
239
- return getter(this, [ sbIndex, "updating" ]);
240
- }
241
- }, _a = SourceBufferTasksKey, _b));
242
- const WorkerTimeRanges = defineCstr(win, "TimeRanges", class extends WorkerBase {
243
- start(...args) {
244
- return callMethod(this, [ "start" ], args);
245
- }
246
- end(...args) {
247
- return callMethod(this, [ "end" ], args);
248
- }
249
- get length() {
250
- return getter(this, [ "length" ]);
251
- }
252
- });
253
- const getSourceBufferIndex = sourceBuffer => {
254
- if (sourceBuffer) {
255
- const mediaSource = sourceBuffer[MediaSourceKey];
256
- const sourceBufferList = mediaSource[SourceBuffersKey];
257
- return sourceBufferList.indexOf(sourceBuffer);
258
- }
259
- return -1;
260
- };
261
- const drainSourceBufferQueue = sourceBuffer => {
262
- if (sourceBuffer[SourceBufferTasksKey].length) {
263
- if (!sourceBuffer.updating) {
264
- const task = sourceBuffer[SourceBufferTasksKey].shift();
265
- if (task) {
266
- const sbIndex = getSourceBufferIndex(sourceBuffer);
267
- callMethod(sourceBuffer, [ sbIndex, task[0] ], task[1], 3, void 0, task[2]);
268
- }
269
- }
270
- setTimeout((() => drainSourceBufferQueue(sourceBuffer)), 50);
271
- }
272
- };
273
- const HTMLMediaDescriptorMap = {
274
- buffered: {
275
- get() {
276
- if (!this[TimeRangesKey]) {
277
- this[TimeRangesKey] = new WorkerTimeRanges(this[WinIdKey], this[InstanceIdKey], [ "buffered" ]);
278
- setTimeout((() => {
279
- this[TimeRangesKey] = void 0;
280
- }), 5e3);
281
- }
282
- return this[TimeRangesKey];
283
- }
284
- },
285
- readyState: {
286
- get() {
287
- if (4 === this[ReadyStateKey]) {
288
- return 4;
289
- }
290
- if ("number" != typeof this[ReadyStateKey]) {
291
- this[ReadyStateKey] = getter(this, [ "readyState" ]);
292
- setTimeout((() => {
293
- this[ReadyStateKey] = void 0;
294
- }), 1e3);
295
- }
296
- return this[ReadyStateKey];
297
- }
298
- }
299
- };
300
- defineCstr(win, "MediaSource", class extends WorkerEventTargetProxy {
301
- constructor() {
302
- super(env.$winId$);
303
- this[SourceBuffersKey] = new WorkerSourceBufferList(this);
304
- constructGlobal(this, "MediaSource", EMPTY_ARRAY);
305
- }
306
- get activeSourceBuffers() {
307
- return [];
308
- }
309
- addSourceBuffer(mimeType) {
310
- const sourceBuffer = new WorkerSourceBuffer(this);
311
- this[SourceBuffersKey].push(sourceBuffer);
312
- callMethod(this, [ "addSourceBuffer" ], [ mimeType ]);
313
- return sourceBuffer;
314
- }
315
- clearLiveSeekableRange() {
316
- callMethod(this, [ "clearLiveSeekableRange" ], EMPTY_ARRAY, 2);
317
- }
318
- get duration() {
319
- return getter(this, [ "duration" ]);
320
- }
321
- set duration(value) {
322
- setter(this, [ "duration" ], value);
323
- }
324
- endOfStream(endOfStreamError) {
325
- callMethod(this, [ "endOfStream" ], [ endOfStreamError ], 3);
326
- }
327
- get readyState() {
328
- return getter(this, [ "readyState" ]);
329
- }
330
- removeSourceBuffer(sourceBuffer) {
331
- const index = getSourceBufferIndex(sourceBuffer);
332
- if (index > -1) {
333
- this[SourceBuffersKey].splice(index, 1);
334
- callMethod(this, [ "removeSourceBuffer" ], [ index ], 1);
335
- }
336
- }
337
- setLiveSeekableRange(start, end) {
338
- callMethod(this, [ "setLiveSeekableRange" ], [ start, end ], 2);
339
- }
340
- get sourceBuffers() {
341
- return this[SourceBuffersKey];
342
- }
343
- static isTypeSupported(mimeType) {
344
- if (!isStaticTypeSupported.has(mimeType)) {
345
- const isSupported = callMethod(win, [ "MediaSource", "isTypeSupported" ], [ mimeType ]);
346
- isStaticTypeSupported.set(mimeType, isSupported);
347
- }
348
- return isStaticTypeSupported.get(mimeType);
349
- }
350
- });
351
- const winURL = win.URL = defineCstrName("URL", class extends URL {});
352
- const hasAudioTracks = "audioTracks" in win.HTMLMediaElement.prototype;
353
- if (hasAudioTracks) {
354
- defineCstr(win, "AudioTrackList", WorkerAudioTrackList);
355
- defineCstr(win, "AudioTrack", WorkerAudioTrack);
356
- HTMLMediaDescriptorMap.audioTracks = {
357
- get() {
358
- return new WorkerAudioTrackList(this);
359
- }
360
- };
361
- }
362
- definePrototypePropertyDescriptor(win.HTMLMediaElement, HTMLMediaDescriptorMap);
363
- winURL.createObjectURL = obj => callMethod(win, [ "URL", "createObjectURL" ], [ obj ]);
364
- winURL.revokeObjectURL = obj => callMethod(win, [ "URL", "revokeObjectURL" ], [ obj ]);
365
- };
366
- const isStaticTypeSupported = new Map;
367
- self.$bridgeFromMedia$ = (WorkerBase, WorkerEventTargetProxy, env, win, windowMediaConstructors) => {
368
- windowMediaConstructors.map((mediaCstrName => {
369
- delete win[mediaCstrName];
370
- }));
371
- initCanvas(WorkerBase, win);
372
- initMedia(WorkerBase, WorkerEventTargetProxy, env, win);
373
- };
374
- })(self);