@tramvai/module-render 5.49.1 → 5.53.74

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 (31) hide show
  1. package/lib/browser.js +1 -12
  2. package/lib/resourcesInliner/resourcesInliner.es.js +71 -67
  3. package/lib/resourcesInliner/resourcesInliner.js +71 -67
  4. package/lib/resourcesRegistry/index.es.js +2 -1
  5. package/lib/resourcesRegistry/index.js +2 -1
  6. package/lib/server/PageBuilder.d.ts +3 -3
  7. package/lib/server/PageBuilder.es.js +21 -6
  8. package/lib/server/PageBuilder.js +21 -6
  9. package/lib/server/ReactRenderServer.es.js +15 -1
  10. package/lib/server/ReactRenderServer.js +15 -1
  11. package/lib/server/blocks/bundleResource/bundleResource.d.ts +2 -2
  12. package/lib/server/blocks/bundleResource/bundleResource.es.js +42 -7
  13. package/lib/server/blocks/bundleResource/bundleResource.js +42 -7
  14. package/lib/server/blocks/polyfill.d.ts +1 -2
  15. package/lib/server/blocks/polyfill.es.js +18 -6
  16. package/lib/server/blocks/polyfill.js +18 -6
  17. package/lib/server/blocks/utils/fetchWebpackRuntime.d.ts +2 -0
  18. package/lib/server/blocks/utils/fetchWebpackRuntime.es.js +16 -0
  19. package/lib/server/blocks/utils/fetchWebpackRuntime.js +24 -0
  20. package/lib/server/blocks/utils/fetchWebpackStats.es.js +13 -17
  21. package/lib/server/blocks/utils/fetchWebpackStats.js +13 -17
  22. package/lib/server/blocks/utils/flushFiles.d.ts +2 -1
  23. package/lib/server/blocks/utils/flushFiles.es.js +5 -2
  24. package/lib/server/blocks/utils/flushFiles.js +5 -2
  25. package/lib/server/constants/slots.d.ts +1 -0
  26. package/lib/server/htmlPageSchema.es.js +2 -1
  27. package/lib/server/htmlPageSchema.js +2 -1
  28. package/lib/server.es.js +7 -37
  29. package/lib/server.js +5 -35
  30. package/package.json +22 -22
  31. package/tests.js +3 -1
package/lib/server.es.js CHANGED
@@ -2,15 +2,13 @@ import { __decorate } from 'tslib';
2
2
  import { Module, provide, commandLineListTokens, DI_TOKEN } from '@tramvai/core';
3
3
  import { CREATE_CACHE_TOKEN, LOGGER_TOKEN, REQUEST_MANAGER_TOKEN, RESPONSE_MANAGER_TOKEN, CONTEXT_TOKEN, DEFERRED_ACTIONS_MAP_TOKEN } from '@tramvai/tokens-common';
4
4
  import { PAGE_SERVICE_TOKEN } from '@tramvai/tokens-router';
5
- import { ClientHintsModule, USER_AGENT_TOKEN } from '@tramvai/module-client-hints';
6
- import { RESOURCES_REGISTRY, RESOURCE_INLINE_OPTIONS, ASSETS_PREFIX_TOKEN, BACK_FORWARD_CACHE_ENABLED, RENDER_SLOTS, POLYFILL_CONDITION, HTML_ATTRS, MODERN_SATISFIES_TOKEN, RENDER_FLOW_AFTER_TOKEN, FETCH_WEBPACK_STATS_TOKEN, REACT_SERVER_RENDER_MODE, CUSTOM_RENDER, EXTEND_RENDER, REACT_STREAMING_RENDER_TIMEOUT, ResourceType, DEFAULT_ASSETS_PREFIX_TOKEN } from '@tramvai/tokens-render';
5
+ import { ClientHintsModule } from '@tramvai/module-client-hints';
6
+ import { RESOURCES_REGISTRY, RESOURCE_INLINE_OPTIONS, ASSETS_PREFIX_TOKEN, BACK_FORWARD_CACHE_ENABLED, RENDER_SLOTS, POLYFILL_CONDITION, HTML_ATTRS, RENDER_FLOW_AFTER_TOKEN, FETCH_WEBPACK_STATS_TOKEN, INLINE_WEBPACK_RUNTIME, REACT_SERVER_RENDER_MODE, CUSTOM_RENDER, EXTEND_RENDER, REACT_STREAMING_RENDER_TIMEOUT, ResourceType, DEFAULT_ASSETS_PREFIX_TOKEN } from '@tramvai/tokens-render';
7
7
  export * from '@tramvai/tokens-render';
8
8
  import { Scope, optional } from '@tinkoff/dippy';
9
- import { satisfies } from '@tinkoff/user-agent';
10
9
  import { isRedirectFoundError } from '@tinkoff/errors';
11
10
  import { setPageErrorEvent, PageErrorStore, deserializeError } from '@tramvai/module-router';
12
11
  export { PageErrorStore, setPageErrorEvent } from '@tramvai/module-router';
13
- import { COOKIE_MANAGER_TOKEN } from '@tramvai/module-common';
14
12
  import { SERVER_RESPONSE_TASK_MANAGER, SERVER_RESPONSE_STREAM } from '@tramvai/tokens-server-private';
15
13
  import { ResourcesInliner } from './resourcesInliner/resourcesInliner.es.js';
16
14
  import { RESOURCE_INLINER, RESOURCES_REGISTRY_CACHE } from './resourcesInliner/tokens.es.js';
@@ -224,10 +222,10 @@ Page Error Boundary will be rendered for the client`,
224
222
  renderSlots: { token: RENDER_SLOTS, optional: true },
225
223
  polyfillCondition: POLYFILL_CONDITION,
226
224
  htmlAttrs: HTML_ATTRS,
227
- modern: MODERN_SATISFIES_TOKEN,
228
225
  renderFlowAfter: { token: RENDER_FLOW_AFTER_TOKEN, optional: true },
229
226
  logger: LOGGER_TOKEN,
230
227
  fetchWebpackStats: FETCH_WEBPACK_STATS_TOKEN,
228
+ inlineWebpackRuntime: INLINE_WEBPACK_RUNTIME,
231
229
  di: DI_TOKEN,
232
230
  renderMode: optional(REACT_SERVER_RENDER_MODE),
233
231
  assetsPrefixFactory: ASSETS_PREFIX_TOKEN,
@@ -294,38 +292,6 @@ Page Error Boundary will be rendered for the client`,
294
292
  },
295
293
  },
296
294
  }),
297
- provide({
298
- provide: MODERN_SATISFIES_TOKEN,
299
- useFactory: ({ requestManager, userAgent, cache, cookieManager }) => {
300
- const reqUserAgent = requestManager.getHeader('user-agent');
301
- let result;
302
- if (cache.has(reqUserAgent)) {
303
- result = cache.get(reqUserAgent);
304
- }
305
- else {
306
- result = satisfies(userAgent, null, { env: 'modern' });
307
- cache.set(reqUserAgent, result);
308
- }
309
- cookieManager.set({ name: '_t_modern', value: JSON.stringify(result) });
310
- return result;
311
- },
312
- deps: {
313
- requestManager: REQUEST_MANAGER_TOKEN,
314
- userAgent: USER_AGENT_TOKEN,
315
- cache: 'modernSatisfiesMemoryCache',
316
- cookieManager: COOKIE_MANAGER_TOKEN,
317
- },
318
- }),
319
- provide({
320
- provide: 'modernSatisfiesMemoryCache',
321
- scope: Scope.SINGLETON,
322
- useFactory: ({ createCache }) => {
323
- return createCache('memory', { name: 'modern-satisfies', max: 200 });
324
- },
325
- deps: {
326
- createCache: CREATE_CACHE_TOKEN,
327
- },
328
- }),
329
295
  provide({
330
296
  provide: ASSETS_PREFIX_TOKEN,
331
297
  useFactory: ({ defaultAssetsPrefix }) => {
@@ -352,6 +318,10 @@ Page Error Boundary will be rendered for the client`,
352
318
  provide: BACK_FORWARD_CACHE_ENABLED,
353
319
  useValue: true,
354
320
  }),
321
+ provide({
322
+ provide: INLINE_WEBPACK_RUNTIME,
323
+ useValue: false,
324
+ }),
355
325
  provide({
356
326
  provide: REACT_SERVER_RENDER_MODE,
357
327
  useValue: 'sync',
package/lib/server.js CHANGED
@@ -9,10 +9,8 @@ var tokensRouter = require('@tramvai/tokens-router');
9
9
  var moduleClientHints = require('@tramvai/module-client-hints');
10
10
  var tokensRender = require('@tramvai/tokens-render');
11
11
  var dippy = require('@tinkoff/dippy');
12
- var userAgent = require('@tinkoff/user-agent');
13
12
  var errors = require('@tinkoff/errors');
14
13
  var moduleRouter = require('@tramvai/module-router');
15
- var moduleCommon = require('@tramvai/module-common');
16
14
  var tokensServerPrivate = require('@tramvai/tokens-server-private');
17
15
  var resourcesInliner = require('./resourcesInliner/resourcesInliner.js');
18
16
  var tokens = require('./resourcesInliner/tokens.js');
@@ -225,10 +223,10 @@ Page Error Boundary will be rendered for the client`,
225
223
  renderSlots: { token: tokensRender.RENDER_SLOTS, optional: true },
226
224
  polyfillCondition: tokensRender.POLYFILL_CONDITION,
227
225
  htmlAttrs: tokensRender.HTML_ATTRS,
228
- modern: tokensRender.MODERN_SATISFIES_TOKEN,
229
226
  renderFlowAfter: { token: tokensRender.RENDER_FLOW_AFTER_TOKEN, optional: true },
230
227
  logger: tokensCommon.LOGGER_TOKEN,
231
228
  fetchWebpackStats: tokensRender.FETCH_WEBPACK_STATS_TOKEN,
229
+ inlineWebpackRuntime: tokensRender.INLINE_WEBPACK_RUNTIME,
232
230
  di: core.DI_TOKEN,
233
231
  renderMode: dippy.optional(tokensRender.REACT_SERVER_RENDER_MODE),
234
232
  assetsPrefixFactory: tokensRender.ASSETS_PREFIX_TOKEN,
@@ -295,38 +293,6 @@ Page Error Boundary will be rendered for the client`,
295
293
  },
296
294
  },
297
295
  }),
298
- core.provide({
299
- provide: tokensRender.MODERN_SATISFIES_TOKEN,
300
- useFactory: ({ requestManager, userAgent: userAgent$1, cache, cookieManager }) => {
301
- const reqUserAgent = requestManager.getHeader('user-agent');
302
- let result;
303
- if (cache.has(reqUserAgent)) {
304
- result = cache.get(reqUserAgent);
305
- }
306
- else {
307
- result = userAgent.satisfies(userAgent$1, null, { env: 'modern' });
308
- cache.set(reqUserAgent, result);
309
- }
310
- cookieManager.set({ name: '_t_modern', value: JSON.stringify(result) });
311
- return result;
312
- },
313
- deps: {
314
- requestManager: tokensCommon.REQUEST_MANAGER_TOKEN,
315
- userAgent: moduleClientHints.USER_AGENT_TOKEN,
316
- cache: 'modernSatisfiesMemoryCache',
317
- cookieManager: moduleCommon.COOKIE_MANAGER_TOKEN,
318
- },
319
- }),
320
- core.provide({
321
- provide: 'modernSatisfiesMemoryCache',
322
- scope: dippy.Scope.SINGLETON,
323
- useFactory: ({ createCache }) => {
324
- return createCache('memory', { name: 'modern-satisfies', max: 200 });
325
- },
326
- deps: {
327
- createCache: tokensCommon.CREATE_CACHE_TOKEN,
328
- },
329
- }),
330
296
  core.provide({
331
297
  provide: tokensRender.ASSETS_PREFIX_TOKEN,
332
298
  useFactory: ({ defaultAssetsPrefix }) => {
@@ -353,6 +319,10 @@ Page Error Boundary will be rendered for the client`,
353
319
  provide: tokensRender.BACK_FORWARD_CACHE_ENABLED,
354
320
  useValue: true,
355
321
  }),
322
+ core.provide({
323
+ provide: tokensRender.INLINE_WEBPACK_RUNTIME,
324
+ useValue: false,
325
+ }),
356
326
  core.provide({
357
327
  provide: tokensRender.REACT_SERVER_RENDER_MODE,
358
328
  useValue: 'sync',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-render",
3
- "version": "5.49.1",
3
+ "version": "5.53.74",
4
4
  "description": "",
5
5
  "browser": "lib/browser.js",
6
6
  "main": "lib/server.js",
@@ -22,35 +22,35 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@loadable/server": "^5.15.0",
25
- "@tinkoff/htmlpagebuilder": "0.8.3",
26
- "@tinkoff/layout-factory": "0.6.3",
27
- "@tinkoff/errors": "0.6.2",
28
- "@tinkoff/url": "0.11.2",
29
- "@tinkoff/user-agent": "0.7.115",
25
+ "@tinkoff/errors": "0.6.3",
26
+ "@tinkoff/htmlpagebuilder": "0.8.5",
27
+ "@tinkoff/layout-factory": "0.6.4",
30
28
  "@tinkoff/request-core": "^0.10.0",
31
29
  "@tinkoff/request-plugin-protocol-http": "^0.12.1",
32
- "@tramvai/module-client-hints": "5.49.1",
33
- "@tramvai/module-router": "5.49.1",
34
- "@tramvai/react": "5.49.1",
30
+ "@tinkoff/url": "0.11.3",
31
+ "@tinkoff/user-agent": "0.7.198",
32
+ "@tramvai/experiments": "5.53.74",
33
+ "@tramvai/module-client-hints": "5.53.74",
34
+ "@tramvai/module-router": "5.53.74",
35
+ "@tramvai/react": "5.53.74",
35
36
  "@tramvai/safe-strings": "0.8.4",
36
- "@tramvai/tokens-render": "5.49.1",
37
- "@tramvai/experiments": "5.49.1",
37
+ "@tramvai/tokens-render": "5.53.74",
38
38
  "@types/loadable__server": "^5.12.6",
39
39
  "node-fetch": "^2.6.1"
40
40
  },
41
41
  "peerDependencies": {
42
- "@tinkoff/dippy": "0.11.4",
43
- "@tinkoff/utils": "^2.1.2",
42
+ "@tinkoff/dippy": "0.11.5",
44
43
  "@tinkoff/react-hooks": "0.4.2",
45
- "@tramvai/cli": "5.49.1",
46
- "@tramvai/core": "5.49.1",
47
- "@tramvai/module-common": "5.49.1",
48
- "@tramvai/state": "5.49.1",
49
- "@tramvai/test-helpers": "5.49.1",
50
- "@tramvai/tokens-common": "5.49.1",
51
- "@tramvai/tokens-router": "5.49.1",
52
- "@tramvai/tokens-server-private": "5.49.1",
53
- "express": "^4.17.1",
44
+ "@tinkoff/utils": "^2.1.2",
45
+ "@tramvai/cli": "5.53.74",
46
+ "@tramvai/core": "5.53.74",
47
+ "@tramvai/module-common": "5.53.74",
48
+ "@tramvai/state": "5.53.74",
49
+ "@tramvai/test-helpers": "5.53.74",
50
+ "@tramvai/tokens-common": "5.53.74",
51
+ "@tramvai/tokens-router": "5.53.74",
52
+ "@tramvai/tokens-server-private": "5.53.74",
53
+ "express": "^4.21.2",
54
54
  "react": ">=16.14.0",
55
55
  "react-dom": ">=16.14.0",
56
56
  "tslib": "^2.4.0"
package/tests.js CHANGED
@@ -23,6 +23,7 @@ require('@tinkoff/utils/object/has');
23
23
  require('@tinkoff/utils/array/last');
24
24
  require('@tramvai/experiments');
25
25
  require('@tinkoff/utils/array/uniq');
26
+ require('node-fetch');
26
27
  require('@tinkoff/utils/array/each');
27
28
  require('@tinkoff/utils/object/path');
28
29
 
@@ -128,7 +129,7 @@ const mapResourcesToSlots = (resources) => resources.reduce((acc, resource) => {
128
129
  }, {});
129
130
  /* eslint-enable sort-class-members/sort-class-members */
130
131
 
131
- const { REACT_RENDER, HEAD_CORE_SCRIPTS, HEAD_DYNAMIC_SCRIPTS, HEAD_META, HEAD_POLYFILLS, HEAD_CORE_STYLES, HEAD_PERFORMANCE, HEAD_ANALYTICS, BODY_START, BODY_END, HEAD_ICONS, BODY_TAIL_ANALYTICS, BODY_TAIL, } = tokensRender.ResourceSlot;
132
+ const { REACT_RENDER, HEAD_CORE_SCRIPTS, HEAD_DYNAMIC_SCRIPTS, HEAD_META, HEAD_POLYFILLS, HEAD_WEBPACK_RUNTIME, HEAD_CORE_STYLES, HEAD_PERFORMANCE, HEAD_ANALYTICS, BODY_START, BODY_END, HEAD_ICONS, BODY_TAIL_ANALYTICS, BODY_TAIL, } = tokensRender.ResourceSlot;
132
133
  const htmlPageSchemaFactory = ({ htmlAttrs, }) => {
133
134
  return [
134
135
  htmlpagebuilder.staticRender('<!DOCTYPE html>'),
@@ -138,6 +139,7 @@ const htmlPageSchemaFactory = ({ htmlAttrs, }) => {
138
139
  htmlpagebuilder.dynamicRender(HEAD_META),
139
140
  htmlpagebuilder.dynamicRender(HEAD_PERFORMANCE),
140
141
  htmlpagebuilder.dynamicRender(HEAD_CORE_STYLES),
142
+ htmlpagebuilder.dynamicRender(HEAD_WEBPACK_RUNTIME),
141
143
  htmlpagebuilder.dynamicRender(HEAD_POLYFILLS),
142
144
  htmlpagebuilder.dynamicRender(HEAD_DYNAMIC_SCRIPTS),
143
145
  htmlpagebuilder.dynamicRender(HEAD_CORE_SCRIPTS),