@lwrjs/core 0.9.0-alpha.2 → 0.9.0-alpha.20

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 (77) hide show
  1. package/build/cjs/context/provider.cjs +84 -0
  2. package/build/cjs/context/server.cjs +75 -0
  3. package/build/cjs/index.cjs +69 -153
  4. package/build/cjs/middleware/asset-middleware.cjs +56 -0
  5. package/build/cjs/middleware/bundle-middleware.cjs +113 -0
  6. package/build/cjs/{middlewares → middleware}/hmr-middleware.cjs +4 -4
  7. package/build/cjs/{middlewares → middleware}/locale-middleware.cjs +2 -2
  8. package/build/cjs/middleware/mapping-middleware.cjs +61 -0
  9. package/build/cjs/middleware/module-middleware.cjs +88 -0
  10. package/build/cjs/middleware/redirects/unsigned-module-redirect.cjs +37 -0
  11. package/build/cjs/middleware/resource-middleware.cjs +64 -0
  12. package/build/cjs/{context/services.cjs → middleware/utils/error-handling.cjs} +28 -15
  13. package/build/cjs/middleware/utils/identity.cjs +93 -0
  14. package/build/cjs/{context/hooks.cjs → middleware/utils/metadata.cjs} +17 -26
  15. package/build/cjs/{middlewares/utils.cjs → middleware/utils/request.cjs} +17 -16
  16. package/build/cjs/middleware/view-middleware.cjs +151 -0
  17. package/build/cjs/middleware.cjs +43 -0
  18. package/build/cjs/tools/server-warmup.cjs +2 -9
  19. package/build/cjs/tools/static-generation.cjs +127 -49
  20. package/build/es/context/provider.d.ts +3 -0
  21. package/build/es/context/provider.js +39 -0
  22. package/build/es/context/server.d.ts +3 -0
  23. package/build/es/context/server.js +49 -0
  24. package/build/es/index.d.ts +4 -2
  25. package/build/es/index.js +89 -150
  26. package/build/es/middleware/asset-middleware.d.ts +3 -0
  27. package/build/es/middleware/asset-middleware.js +26 -0
  28. package/build/es/middleware/bundle-middleware.d.ts +3 -0
  29. package/build/es/middleware/bundle-middleware.js +88 -0
  30. package/build/es/middleware/hmr-middleware.d.ts +5 -0
  31. package/build/es/{middlewares → middleware}/hmr-middleware.js +2 -2
  32. package/build/es/middleware/locale-middleware.d.ts +3 -0
  33. package/build/es/{middlewares → middleware}/locale-middleware.js +2 -1
  34. package/build/es/middleware/mapping-middleware.d.ts +3 -0
  35. package/build/es/middleware/mapping-middleware.js +34 -0
  36. package/build/es/middleware/module-middleware.d.ts +3 -0
  37. package/build/es/middleware/module-middleware.js +64 -0
  38. package/build/es/middleware/redirects/unsigned-module-redirect.d.ts +6 -0
  39. package/build/es/middleware/redirects/unsigned-module-redirect.js +25 -0
  40. package/build/es/middleware/resource-middleware.d.ts +3 -0
  41. package/build/es/middleware/resource-middleware.js +37 -0
  42. package/build/es/middleware/utils/error-handling.d.ts +3 -0
  43. package/build/es/middleware/utils/error-handling.js +32 -0
  44. package/build/es/middleware/utils/identity.d.ts +6 -0
  45. package/build/es/middleware/utils/identity.js +64 -0
  46. package/build/es/middleware/utils/metadata.d.ts +3 -0
  47. package/build/es/middleware/utils/metadata.js +24 -0
  48. package/build/es/middleware/utils/request.d.ts +15 -0
  49. package/build/es/{middlewares/utils.js → middleware/utils/request.js} +15 -23
  50. package/build/es/middleware/view-middleware.d.ts +3 -0
  51. package/build/es/middleware/view-middleware.js +136 -0
  52. package/build/es/middleware.d.ts +9 -0
  53. package/build/es/middleware.js +13 -0
  54. package/build/es/tools/server-warmup.js +3 -10
  55. package/build/es/tools/static-generation.d.ts +8 -1
  56. package/build/es/tools/static-generation.js +155 -62
  57. package/build/es/tools/types.d.ts +3 -2
  58. package/package.json +36 -32
  59. package/build/cjs/context/global-data.cjs +0 -54
  60. package/build/cjs/middlewares/api-middleware.cjs +0 -359
  61. package/build/cjs/middlewares/base-middleware.cjs +0 -15
  62. package/build/cjs/middlewares/ui-middleware.cjs +0 -183
  63. package/build/es/context/global-data.d.ts +0 -3
  64. package/build/es/context/global-data.js +0 -29
  65. package/build/es/context/hooks.d.ts +0 -9
  66. package/build/es/context/hooks.js +0 -36
  67. package/build/es/context/services.d.ts +0 -8
  68. package/build/es/context/services.js +0 -17
  69. package/build/es/middlewares/api-middleware.d.ts +0 -3
  70. package/build/es/middlewares/api-middleware.js +0 -410
  71. package/build/es/middlewares/base-middleware.d.ts +0 -3
  72. package/build/es/middlewares/base-middleware.js +0 -4
  73. package/build/es/middlewares/hmr-middleware.d.ts +0 -5
  74. package/build/es/middlewares/locale-middleware.d.ts +0 -3
  75. package/build/es/middlewares/ui-middleware.d.ts +0 -3
  76. package/build/es/middlewares/ui-middleware.js +0 -186
  77. package/build/es/middlewares/utils.d.ts +0 -22
@@ -0,0 +1,84 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __exportStar = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+
24
+ // packages/@lwrjs/core/src/context/provider.ts
25
+ __markAsModule(exports);
26
+ __export(exports, {
27
+ createProviderContext: () => createProviderContext
28
+ });
29
+ var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
30
+ function createProviderContext(serverContext) {
31
+ const {
32
+ cacheDir,
33
+ lwc: {modules = []},
34
+ routes,
35
+ errorRoutes,
36
+ rootDir,
37
+ contentDir,
38
+ layoutsDir,
39
+ locker,
40
+ amdLoader,
41
+ esmLoader,
42
+ environment,
43
+ basePath,
44
+ bundleConfig
45
+ } = serverContext.appConfig;
46
+ const {onModuleDefinitionChange, onModuleSourceChange} = serverContext.appObserver;
47
+ const {
48
+ notifyModuleDefinitionChanged,
49
+ notifyModuleSourceChanged,
50
+ notifyViewSourceChanged,
51
+ notifyAssetSourceChanged
52
+ } = serverContext.appEmitter;
53
+ return {
54
+ appObserver: (0, import_shared_utils.deepFreeze)({onModuleDefinitionChange, onModuleSourceChange}),
55
+ appEmitter: {
56
+ notifyModuleDefinitionChanged: (payload) => notifyModuleDefinitionChanged.call(serverContext.appEmitter, payload),
57
+ notifyModuleSourceChanged: (payload) => notifyModuleSourceChanged.call(serverContext.appEmitter, payload),
58
+ notifyViewSourceChanged: (payload) => notifyViewSourceChanged.call(serverContext.appEmitter, payload),
59
+ notifyAssetSourceChanged: (payload) => notifyAssetSourceChanged.call(serverContext.appEmitter, payload)
60
+ },
61
+ moduleRegistry: serverContext.moduleRegistry.getPublicApi(),
62
+ moduleBundler: serverContext.moduleBundler.getPublicApi(),
63
+ resourceRegistry: serverContext.resourceRegistry.getPublicApi(),
64
+ viewRegistry: serverContext.viewRegistry.getPublicApi(),
65
+ assetRegistry: serverContext.assetRegistry.getPublicApi(),
66
+ config: (0, import_shared_utils.deepFreeze)({
67
+ cacheDir,
68
+ modules,
69
+ routes,
70
+ errorRoutes,
71
+ rootDir,
72
+ basePath,
73
+ contentDir,
74
+ layoutsDir,
75
+ locker,
76
+ amdLoader,
77
+ esmLoader,
78
+ environment,
79
+ bundleConfig
80
+ }),
81
+ runtimeEnvironment: (0, import_shared_utils.deepFreeze)(serverContext.runtimeEnvironment),
82
+ watcherFactory: serverContext.watcherFactory
83
+ };
84
+ }
@@ -0,0 +1,75 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __exportStar = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+
24
+ // packages/@lwrjs/core/src/context/server.ts
25
+ __markAsModule(exports);
26
+ __export(exports, {
27
+ createServerContext: () => createServerContext
28
+ });
29
+ var import_asset_registry = __toModule(require("@lwrjs/asset-registry"));
30
+ var import_module_bundler = __toModule(require("@lwrjs/module-bundler"));
31
+ var import_module_registry = __toModule(require("@lwrjs/module-registry"));
32
+ var import_resource_registry = __toModule(require("@lwrjs/resource-registry"));
33
+ var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
34
+ var import_view_registry = __toModule(require("@lwrjs/view-registry"));
35
+ var import_fs_watch = __toModule(require("@lwrjs/shared-utils/fs-watch"));
36
+ function createServerContext(appConfig, runtimeEnvironment, globalData) {
37
+ const appObserver = new import_shared_utils.LwrApplicationObserver();
38
+ const appEmitter = appObserver.createLwrEmitter();
39
+ const assetRegistry = new import_asset_registry.LwrAssetRegistry({
40
+ appObserver,
41
+ appEmitter,
42
+ runtimeEnvironment
43
+ }, appConfig);
44
+ const moduleRegistry = new import_module_registry.LwrModuleRegistry({
45
+ appObserver,
46
+ appEmitter,
47
+ runtimeEnvironment
48
+ }, appConfig);
49
+ const moduleBundler = new import_module_bundler.LwrModuleBundler({moduleRegistry, appObserver}, appConfig);
50
+ const resourceRegistry = new import_resource_registry.LwrResourceRegistry();
51
+ const viewRegistry = new import_view_registry.LwrViewRegistry({
52
+ moduleRegistry,
53
+ moduleBundler,
54
+ resourceRegistry,
55
+ assetRegistry,
56
+ appObserver,
57
+ appEmitter,
58
+ globalData,
59
+ runtimeEnvironment
60
+ }, appConfig);
61
+ const watcherFactory = new import_fs_watch.WatcherFactoryImpl();
62
+ return {
63
+ appObserver,
64
+ appEmitter,
65
+ moduleRegistry,
66
+ moduleBundler,
67
+ resourceRegistry,
68
+ assetRegistry,
69
+ viewRegistry,
70
+ watcherFactory,
71
+ appConfig,
72
+ runtimeEnvironment,
73
+ routeHandlers: {}
74
+ };
75
+ }
@@ -29,184 +29,99 @@ __export(exports, {
29
29
  generateStaticSite: () => generateStaticSite
30
30
  });
31
31
  var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
32
- var import_compiler = __toModule(require("@lwrjs/compiler"));
33
- var import_module_bundler = __toModule(require("@lwrjs/module-bundler"));
34
- var import_module_registry = __toModule(require("@lwrjs/module-registry"));
35
- var import_resource_registry = __toModule(require("@lwrjs/resource-registry"));
36
- var import_asset_registry = __toModule(require("@lwrjs/asset-registry"));
37
- var import_view_registry = __toModule(require("@lwrjs/view-registry"));
32
+ var import_server = __toModule(require("@lwrjs/server"));
38
33
  var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
39
34
  var import_config = __toModule(require("@lwrjs/config"));
40
- var import_shared_utils2 = __toModule(require("@lwrjs/shared-utils"));
41
- var import_locale_middleware = __toModule(require("./middlewares/locale-middleware.cjs"));
42
- var import_api_middleware = __toModule(require("./middlewares/api-middleware.cjs"));
43
- var import_ui_middleware = __toModule(require("./middlewares/ui-middleware.cjs"));
44
- var import_hmr_middleware = __toModule(require("./middlewares/hmr-middleware.cjs"));
45
- var import_global_data = __toModule(require("./context/global-data.cjs"));
46
- var import_hooks = __toModule(require("./context/hooks.cjs"));
47
- var import_base_middleware = __toModule(require("./middlewares/base-middleware.cjs"));
48
- var import_server = __toModule(require("@lwrjs/server"));
49
- var import_services = __toModule(require("./context/services.cjs"));
35
+ var import_modules = __toModule(require("@lwrjs/config/modules"));
50
36
  var import_static_generation = __toModule(require("./tools/static-generation.cjs"));
51
37
  var import_server_warmup = __toModule(require("./tools/server-warmup.cjs"));
52
- async function getServices(services, providerContext, lwrConfig) {
53
- return Promise.all(services.map(async (serviceEntry) => {
54
- const [serviceName, serviceConfig = {}] = Array.isArray(serviceEntry) ? serviceEntry : [serviceEntry];
55
- const ServiceCtor = await (0, import_services.getServiceModule)(serviceName, lwrConfig);
56
- return new ServiceCtor(serviceConfig, providerContext);
57
- }));
58
- }
59
- function initMiddlewares(app, server, serverContext) {
60
- (0, import_base_middleware.default)(app, serverContext);
61
- (0, import_locale_middleware.default)(app, serverContext);
62
- (0, import_api_middleware.default)(app, serverContext);
63
- (0, import_ui_middleware.default)(app, serverContext);
38
+ var import_server2 = __toModule(require("./context/server.cjs"));
39
+ var import_provider = __toModule(require("./context/provider.cjs"));
40
+ var import_locale_middleware = __toModule(require("./middleware/locale-middleware.cjs"));
41
+ var import_module_middleware = __toModule(require("./middleware/module-middleware.cjs"));
42
+ var import_bundle_middleware = __toModule(require("./middleware/bundle-middleware.cjs"));
43
+ var import_mapping_middleware = __toModule(require("./middleware/mapping-middleware.cjs"));
44
+ var import_asset_middleware = __toModule(require("./middleware/asset-middleware.cjs"));
45
+ var import_view_middleware = __toModule(require("./middleware/view-middleware.cjs"));
46
+ var import_resource_middleware = __toModule(require("./middleware/resource-middleware.cjs"));
47
+ var import_hmr_middleware = __toModule(require("./middleware/hmr-middleware.cjs"));
48
+ function initMiddleware(app, server, serverContext) {
49
+ app.useCompression();
50
+ (0, import_locale_middleware.localeMiddleware)(app, serverContext);
51
+ (0, import_module_middleware.moduleMiddleware)(app, serverContext);
52
+ (0, import_bundle_middleware.bundleMiddleware)(app, serverContext);
53
+ (0, import_mapping_middleware.mappingMiddleware)(app, serverContext);
54
+ (0, import_asset_middleware.assetMiddleware)(app, serverContext);
55
+ (0, import_resource_middleware.resourceMiddleware)(app, serverContext);
56
+ (0, import_view_middleware.viewMiddleware)(app, serverContext);
57
+ app.initRoutes();
64
58
  if (serverContext.runtimeEnvironment.hmrEnabled) {
65
- (0, import_hmr_middleware.default)(server, serverContext);
59
+ (0, import_hmr_middleware.hmrMiddleware)(server, serverContext);
66
60
  }
67
61
  }
68
- async function initContext(app, server, rawLwrConfig) {
69
- const {apiVersion, basePath, lwrVersion, serverMode, globalDataDir, globalData} = rawLwrConfig;
70
- const rawDataConfig = (0, import_global_data.getGlobalData)(globalDataDir, globalData);
71
- const rawRuntimeEnvConfig = {
72
- ...(0, import_config.explodeMode)(serverMode),
73
- apiVersion,
74
- basePath,
75
- lwrVersion,
76
- debug: false,
77
- serverMode,
78
- featureFlags: (0, import_shared_utils.getFeatureFlags)()
79
- };
80
- const hookProviders = await getServices(rawLwrConfig.hooks, void 0, rawLwrConfig);
81
- const {lwrConfig, dataConfig, runtimeConfig} = await (0, import_hooks.runConfigurationsHook)(hookProviders, rawLwrConfig, rawDataConfig, rawRuntimeEnvConfig);
82
- const assetTransformers = await getServices(rawLwrConfig.assetTransformers, void 0, rawLwrConfig);
83
- const appObserver = new import_shared_utils2.LwrApplicationObserver();
84
- const appEmitter = appObserver.createLwrEmitter();
85
- const compiler = new import_compiler.LwrCompiler();
86
- const assetRegistry = new import_asset_registry.LwrAssetRegistry({
87
- assetTransformers,
88
- appObserver,
89
- appEmitter,
90
- runtimeEnvironment: runtimeConfig
91
- }, lwrConfig);
92
- const moduleRegistry = new import_module_registry.LwrModuleRegistry({
93
- compiler,
94
- appObserver,
95
- appEmitter,
96
- runtimeEnvironment: runtimeConfig
97
- }, lwrConfig);
98
- const moduleBundler = new import_module_bundler.LwrModuleBundler({compiler, moduleRegistry, appObserver}, lwrConfig);
99
- const resourceRegistry = new import_resource_registry.LwrResourceRegistry();
100
- const viewRegistry = new import_view_registry.LwrViewRegistry({
101
- moduleRegistry,
102
- moduleBundler,
103
- resourceRegistry,
104
- assetRegistry,
105
- appObserver,
106
- appEmitter,
107
- globalData: dataConfig,
108
- runtimeEnvironment: runtimeConfig
109
- }, lwrConfig);
110
- const serverContext = {
111
- compiler,
112
- server,
113
- appObserver,
114
- appEmitter,
115
- moduleRegistry,
116
- moduleBundler,
117
- resourceRegistry,
118
- assetRegistry,
119
- viewRegistry,
120
- appConfig: lwrConfig,
121
- runtimeEnvironment: runtimeConfig
122
- };
123
- const {
124
- cacheDir,
125
- lwc: {modules = []},
126
- routes,
127
- errorRoutes,
128
- rootDir,
129
- contentDir,
130
- layoutsDir,
131
- locker,
132
- amdLoader,
133
- esmLoader,
134
- environment
135
- } = lwrConfig;
136
- const {onModuleDefinitionChange, onModuleSourceChange} = appObserver;
137
- const {
138
- notifyModuleDefinitionChanged,
139
- notifyModuleSourceChanged,
140
- notifyViewSourceChanged,
141
- notifyAssetSourceChanged
142
- } = appEmitter;
143
- const providerContext = {
144
- compiler,
145
- appObserver: (0, import_shared_utils.deepFreeze)({onModuleDefinitionChange, onModuleSourceChange}),
146
- appEmitter: {
147
- notifyModuleDefinitionChanged: (payload) => notifyModuleDefinitionChanged.call(appEmitter, payload),
148
- notifyModuleSourceChanged: (payload) => notifyModuleSourceChanged.call(appEmitter, payload),
149
- notifyViewSourceChanged: (payload) => notifyViewSourceChanged.call(appEmitter, payload),
150
- notifyAssetSourceChanged: (payload) => notifyAssetSourceChanged.call(appEmitter, payload)
151
- },
152
- moduleRegistry: moduleRegistry.getPublicApi(),
153
- moduleBundler,
154
- resourceRegistry: resourceRegistry.getPublicApi(),
155
- viewRegistry: viewRegistry.getPublicApi(),
156
- assetRegistry: assetRegistry.getPublicApi(),
157
- config: (0, import_shared_utils.deepFreeze)({
158
- cacheDir,
159
- modules,
160
- routes,
161
- errorRoutes,
162
- rootDir,
163
- basePath,
164
- contentDir,
165
- layoutsDir,
166
- locker,
167
- amdLoader,
168
- esmLoader,
169
- environment
170
- }),
171
- runtimeEnvironment: (0, import_shared_utils.deepFreeze)(runtimeConfig)
172
- };
173
- const moduleProviders = await getServices(lwrConfig.moduleProviders, providerContext, lwrConfig);
62
+ function createServices(entries, providerContext) {
63
+ return entries.map(([ctor, providerConfig = {}]) => new ctor(providerConfig, providerContext));
64
+ }
65
+ async function initContext(appConfig, runtimeEnvironment, globalData) {
66
+ const hooks = await (0, import_modules.loadHooks)(appConfig);
67
+ if (hooks.length) {
68
+ await (0, import_config.executeConfigHooks)(hooks, appConfig, runtimeEnvironment, globalData);
69
+ (0, import_config.executeStartHooks)(hooks, appConfig);
70
+ }
71
+ const services = await (0, import_modules.loadServices)(appConfig);
72
+ const serverContext = (0, import_server2.createServerContext)(appConfig, runtimeEnvironment, globalData);
73
+ const providerContext = (0, import_provider.createProviderContext)(serverContext);
74
+ const {moduleRegistry, assetRegistry, resourceRegistry, viewRegistry, moduleBundler} = serverContext;
75
+ const moduleProviders = createServices(services.moduleProviders, providerContext);
76
+ const assetProviders = createServices(services.assetProviders, providerContext);
77
+ const assetTransformers = createServices(services.assetTransformers, providerContext);
78
+ const resourceProviders = createServices(services.resourceProviders, providerContext);
79
+ const viewProviders = createServices(services.viewProviders, providerContext);
80
+ const viewTransformers = createServices(services.viewTransformers, providerContext);
81
+ const bundleProviders = createServices(services.bundleProviders, providerContext);
174
82
  moduleRegistry.addModuleProviders(moduleProviders);
175
- const resourceProviders = await getServices(lwrConfig.resourceProviders, providerContext, lwrConfig);
83
+ assetRegistry.addAssetProviders(assetProviders);
84
+ assetRegistry.addAssetTransformers(assetTransformers);
176
85
  resourceRegistry.addResourceProviders(resourceProviders);
177
- const viewProviders = await getServices(lwrConfig.viewProviders, providerContext, lwrConfig);
178
- const viewTransformers = await getServices(rawLwrConfig.viewTransformers, providerContext, rawLwrConfig);
179
86
  viewRegistry.addViewProviders(viewProviders);
180
87
  viewRegistry.addViewTransformers(viewTransformers);
181
- await viewRegistry.initializeViewProviders();
182
- const assetProviders = await getServices(lwrConfig.assetProviders, providerContext, lwrConfig);
183
- assetRegistry.addAssetProviders(assetProviders);
88
+ moduleBundler.addBundleProviders(bundleProviders);
89
+ await serverContext.viewRegistry.initializeViewProviders();
90
+ const routeHandlers = await (0, import_modules.loadRouteHandlers)(appConfig);
91
+ serverContext.routeHandlers = routeHandlers;
184
92
  return serverContext;
185
93
  }
186
94
  var LwrApp = class {
187
- constructor(config) {
95
+ constructor(config = {}) {
188
96
  this.initialized = false;
189
- this.config = (0, import_config.normalizeConfig)(config);
97
+ const {appConfig, runtimeEnvironment, globalData} = (0, import_config.loadConfig)(config);
98
+ this.config = appConfig;
99
+ this.runtimeEnvironment = runtimeEnvironment;
100
+ this.globalData = globalData;
190
101
  const {basePath} = this.config;
191
102
  this.app = (0, import_server.createInternalServer)(this.config.serverType, {basePath});
192
103
  this.server = this.app.createHttpServer();
193
104
  }
194
105
  setConfig(config) {
195
- this.config = (0, import_config.normalizeConfig)(config);
106
+ const {appConfig, runtimeEnvironment, globalData} = (0, import_config.loadConfig)(config);
107
+ this.config = appConfig;
108
+ this.runtimeEnvironment = runtimeEnvironment;
109
+ this.globalData = globalData;
196
110
  }
197
111
  getConfig() {
198
112
  return this.config;
199
113
  }
200
114
  async init() {
201
- if (!this.initialized) {
202
- this.initialized = true;
203
- try {
204
- const context = await initContext(this.app, this.server, this.config);
205
- initMiddlewares(this.app, this.server, context);
206
- } catch (e) {
207
- this.initialized = false;
208
- throw e;
209
- }
115
+ if (this.initialized) {
116
+ return;
117
+ }
118
+ this.initialized = true;
119
+ try {
120
+ const context = await initContext(this.config, this.runtimeEnvironment, this.globalData);
121
+ initMiddleware(this.app, this.server, context);
122
+ } catch (e) {
123
+ this.initialized = false;
124
+ throw e;
210
125
  }
211
126
  }
212
127
  async listen(callback) {
@@ -271,6 +186,7 @@ async function generateStaticSite(config) {
271
186
  await lwrApp.init();
272
187
  const dispatcher = lwrApp.getInternalServer();
273
188
  await new import_static_generation.default().buildStaticApplication(lwrApp.getConfig(), dispatcher);
189
+ return lwrApp.getConfig();
274
190
  }
275
191
  function overrideConfigAsSrc(lwrApp) {
276
192
  if (!(0, import_shared_utils.getFeatureFlags)().LEGACY_LOADER) {
@@ -0,0 +1,56 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __exportStar = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+
24
+ // packages/@lwrjs/core/src/middleware/asset-middleware.ts
25
+ __markAsModule(exports);
26
+ __export(exports, {
27
+ assetMiddleware: () => assetMiddleware
28
+ });
29
+ var import_path = __toModule(require("path"));
30
+ var import_identity = __toModule(require("./utils/identity.cjs"));
31
+ var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
32
+ function createAssetMiddleware(context) {
33
+ const {
34
+ assetRegistry,
35
+ runtimeEnvironment: {basePath}
36
+ } = context;
37
+ return async (req, res) => {
38
+ const {runtimeEnvironment} = req.getRuntimeContext(context.runtimeEnvironment);
39
+ const {assetId, signature} = (0, import_identity.getAssetIdentity)(req);
40
+ if (basePath && !assetId.specifier.startsWith(basePath)) {
41
+ assetId.specifier = import_path.default.join(basePath, assetId.specifier);
42
+ }
43
+ const asset = await assetRegistry.getAsset({...assetId, signature}, runtimeEnvironment, req.isSiteGeneration());
44
+ if (req.isSiteGeneration()) {
45
+ res.setSiteGenerationMetadata({asset});
46
+ }
47
+ if (asset.mime) {
48
+ res.type(asset.mime);
49
+ }
50
+ res.status(200).stream(asset.stream());
51
+ };
52
+ }
53
+ function assetMiddleware(app, context) {
54
+ const paths = context.appConfig.assets.map((a) => a.urlPath + app.getRegexWildcard());
55
+ app.get([...paths, "/:apiVersion/:assetType/:immutable?/s/:signature/" + app.getRegexWildcard()], (0, import_error_handling.handleErrors)(createAssetMiddleware(context)));
56
+ }
@@ -0,0 +1,113 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, {get: all[name], enumerable: true});
11
+ };
12
+ var __exportStar = (target, module2, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module2) => {
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
+ };
23
+
24
+ // packages/@lwrjs/core/src/middleware/bundle-middleware.ts
25
+ __markAsModule(exports);
26
+ __export(exports, {
27
+ bundleMiddleware: () => bundleMiddleware
28
+ });
29
+ var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
30
+ var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
31
+ var import_request = __toModule(require("./utils/request.cjs"));
32
+ var import_identity = __toModule(require("./utils/identity.cjs"));
33
+ var import_metadata = __toModule(require("./utils/metadata.cjs"));
34
+ var import_unsigned_module_redirect = __toModule(require("./redirects/unsigned-module-redirect.cjs"));
35
+ var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
36
+ function createBundleMiddleware(context) {
37
+ const {moduleRegistry, moduleBundler} = context;
38
+ const unsignedBundleRedirect = (0, import_unsigned_module_redirect.createUnsignedBundleRedirect)(moduleBundler);
39
+ return async (req, res) => {
40
+ if (!req.validateEnvironmentRequest(context.appConfig)) {
41
+ res.status(400);
42
+ res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
43
+ return;
44
+ }
45
+ if (!req.validateJsonRequest()) {
46
+ res.status(400);
47
+ res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_JSON().message);
48
+ return;
49
+ }
50
+ const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
51
+ const importer = req.query.importer ? await (0, import_request.getRequestImporter)(req, moduleRegistry) : void 0;
52
+ const {moduleId, signature} = (0, import_identity.getModuleIdentity)(req, importer);
53
+ if (moduleId.importer || !signature) {
54
+ await unsignedBundleRedirect(req, res, moduleId, runtimeEnvironment, runtimeParams);
55
+ return;
56
+ }
57
+ const sourceMapUrl = req.path.replace("/bundle/", "/sourcemaps/bundle/");
58
+ const bundleDefinition = await moduleBundler.getModuleBundle(moduleId, {...runtimeEnvironment, bundle: true, sourceMapUrl}, runtimeParams);
59
+ if (req.isSiteGeneration()) {
60
+ res.setSiteGenerationMetadata({
61
+ moduleDefinition: bundleDefinition,
62
+ resolvedUris: await (0, import_metadata.normalizeResolvedUris)(bundleDefinition, runtimeEnvironment, runtimeParams, moduleBundler, moduleRegistry)
63
+ });
64
+ }
65
+ if (signature !== import_shared_utils.LATEST_SIGNATURE) {
66
+ res.setHeader("Cache-control", "public, max-age=31536000, immutable");
67
+ }
68
+ res.status(200).type("application/javascript").send(bundleDefinition.code);
69
+ };
70
+ }
71
+ function createSourceMapMiddleware(context) {
72
+ const {moduleBundler} = context;
73
+ return async (req, res) => {
74
+ if (!req.validateEnvironmentRequest(context.appConfig)) {
75
+ res.status(400);
76
+ res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
77
+ return;
78
+ }
79
+ const {runtimeEnvironment} = req.getRuntimeContext(context.runtimeEnvironment);
80
+ const {moduleId, signature} = (0, import_identity.getModuleIdentity)(req);
81
+ const bundleDef = await moduleBundler.getModuleBundle(moduleId, runtimeEnvironment);
82
+ if (signature !== import_shared_utils.LATEST_SIGNATURE) {
83
+ res.setHeader("Cache-control", "public, max-age=31536000, immutable");
84
+ }
85
+ res.status(200).type("application/json").send(bundleDef.map);
86
+ };
87
+ }
88
+ function bundleMiddleware(app, context) {
89
+ app.get([
90
+ `/:apiVersion/bundle/:format/:compat?/l/:locale/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
91
+ `/:apiVersion/bundle/:format/:compat?/l/:locale/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`,
92
+ `/:apiVersion/bundle/:format/:compat?/l/:locale/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
93
+ `/:apiVersion/bundle/:format/:compat?/l/:locale/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`,
94
+ `/:apiVersion/bundle/:format/:compat?/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
95
+ `/:apiVersion/bundle/:format/:compat?/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`,
96
+ `/:apiVersion/bundle/:format/:compat?/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
97
+ `/:apiVersion/bundle/:format/:compat?/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`,
98
+ `/:apiVersion/bundle/:format/:compat?/l/:locale/e/:environment/bi/:bundleSpecifier/module/mi/:specifier`,
99
+ `/:apiVersion/bundle/:format/:compat?/l/:locale/bi/:bundleSpecifier/module/mi/:specifier`,
100
+ `/:apiVersion/bundle/:format/:compat?/e/:environment/bi/:bundleSpecifier/module/mi/:specifier`,
101
+ `/:apiVersion/bundle/:format/:compat?/bi/:bundleSpecifier/module/mi/:specifier`
102
+ ], (0, import_error_handling.handleErrors)(createBundleMiddleware(context)));
103
+ app.get([
104
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/l/:locale/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
105
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/l/:locale/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`,
106
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/l/:locale/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
107
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/l/:locale/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`,
108
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
109
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/e/:environment/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`,
110
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/bi/:bundleSpecifier/module/mi/:specifier/latest/:prettyUrl?`,
111
+ `/:apiVersion/sourcemaps/bundle/:format/:compat?/bi/:bundleSpecifier/module/mi/:specifier/s/:signature/:prettyUrl?`
112
+ ], (0, import_error_handling.handleErrors)(createSourceMapMiddleware(context)));
113
+ }
@@ -21,14 +21,14 @@ var __toModule = (module2) => {
21
21
  return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
22
22
  };
23
23
 
24
- // packages/@lwrjs/core/src/middlewares/hmr-middleware.ts
24
+ // packages/@lwrjs/core/src/middleware/hmr-middleware.ts
25
25
  __markAsModule(exports);
26
26
  __export(exports, {
27
- default: () => hmrMiddleware
27
+ hmrMiddleware: () => hmrMiddleware
28
28
  });
29
29
  var import_ws = __toModule(require("ws"));
30
30
  var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
31
- var import_utils = __toModule(require("./utils.cjs"));
31
+ var import_request = __toModule(require("./utils/request.cjs"));
32
32
  var hmr;
33
33
  var Hmr = class {
34
34
  constructor(server, context) {
@@ -46,7 +46,7 @@ var Hmr = class {
46
46
  const connectedClients = new Map();
47
47
  this.connectedClients = connectedClients;
48
48
  wss.on("connection", function connection(ws, req) {
49
- const request = (0, import_utils.getRequestProperties)("/:apiVersion/hmr/:format/:compat", req);
49
+ const request = (0, import_request.getRequestProperties)("/:apiVersion/hmr/:format/:compat", req);
50
50
  if (request) {
51
51
  const {params, query} = request;
52
52
  const {format, compat} = params;
@@ -5,10 +5,10 @@ var __export = (target, all) => {
5
5
  __defProp(target, name, {get: all[name], enumerable: true});
6
6
  };
7
7
 
8
- // packages/@lwrjs/core/src/middlewares/locale-middleware.ts
8
+ // packages/@lwrjs/core/src/middleware/locale-middleware.ts
9
9
  __markAsModule(exports);
10
10
  __export(exports, {
11
- default: () => localeMiddleware
11
+ localeMiddleware: () => localeMiddleware
12
12
  });
13
13
  function localeMiddleware(app, context) {
14
14
  const {defaultLocale} = context.runtimeEnvironment;