@lwrjs/core 0.8.0-alpha.10 → 0.8.0-alpha.12

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.
@@ -37,7 +37,7 @@ var import_asset_registry = __toModule(require("@lwrjs/asset-registry"));
37
37
  var import_view_registry = __toModule(require("@lwrjs/view-registry"));
38
38
  var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
39
39
  var import_config = __toModule(require("@lwrjs/config"));
40
- var import_lwr_app_observer = __toModule(require("./lwr-app-observer.cjs"));
40
+ var import_shared_utils2 = __toModule(require("@lwrjs/shared-utils"));
41
41
  var import_locale_middleware = __toModule(require("./middlewares/locale-middleware.cjs"));
42
42
  var import_api_middleware = __toModule(require("./middlewares/api-middleware.cjs"));
43
43
  var import_ui_middleware = __toModule(require("./middlewares/ui-middleware.cjs"));
@@ -80,7 +80,7 @@ async function initContext(app, server, rawLwrConfig) {
80
80
  const hookProviders = await getServices(rawLwrConfig.hooks, void 0, rawLwrConfig);
81
81
  const {lwrConfig, dataConfig, runtimeConfig} = await (0, import_hooks.runConfigurationsHook)(hookProviders, rawLwrConfig, rawDataConfig, rawRuntimeEnvConfig);
82
82
  const assetTransformers = await getServices(rawLwrConfig.assetTransformers, void 0, rawLwrConfig);
83
- const appObserver = new import_lwr_app_observer.LwrApplicationObserver();
83
+ const appObserver = new import_shared_utils2.LwrApplicationObserver();
84
84
  const appEmitter = appObserver.createLwrEmitter();
85
85
  const compiler = new import_compiler.LwrCompiler();
86
86
  const assetRegistry = new import_asset_registry.LwrAssetRegistry({
@@ -342,7 +342,7 @@ function apiMiddleware(app, context) {
342
342
  const specifier = req.params[0] ? `/${req.params[0]}` : req.originalUrl;
343
343
  const basePathSpecifier = `${basePath}${specifier}`;
344
344
  try {
345
- const assetObj = await context.assetRegistry.getAsset({specifier: basePathSpecifier, signature, type}, runtimeEnvironment);
345
+ const assetObj = await context.assetRegistry.getAsset({specifier: basePathSpecifier, signature, type}, runtimeEnvironment, req.isSiteGeneration());
346
346
  if (immutable) {
347
347
  }
348
348
  if (assetObj.mime) {
@@ -42,7 +42,7 @@ var Hmr = class {
42
42
  }
43
43
  setupHotModuleReload() {
44
44
  const {server} = this;
45
- const wss = new import_ws.default.Server({server});
45
+ const wss = new import_ws.WebSocketServer({server});
46
46
  const connectedClients = new Map();
47
47
  this.connectedClients = connectedClients;
48
48
  wss.on("connection", function connection(ws, req) {
@@ -117,7 +117,7 @@ var SiteGenerator = class {
117
117
  if (resourceType === "route") {
118
118
  await this.handleHtmlResource(url, context, siteConfig, dispatcher);
119
119
  } else if (resourceType === "asset" || resourceType === "resource") {
120
- await this.handleAssetOrResource(url, context, siteConfig);
120
+ await this.handleAssetOrResource(url, context, siteConfig, dispatcher);
121
121
  } else if (resourceType == "mapping") {
122
122
  await this.handleMappingResource(url, context, siteConfig, dispatcher);
123
123
  } else if (resourceType === "js") {
@@ -274,9 +274,16 @@ var SiteGenerator = class {
274
274
  }
275
275
  }
276
276
  }
277
- async handleAssetOrResource(url, context, siteConfig) {
277
+ async handleAssetOrResource(url, context, siteConfig, dispatcher) {
278
+ const metadata = context.fs?.metadata;
278
279
  const fullPath = this.getResourcePathFromUrl(siteConfig, url);
279
280
  await (0, import_stream.writeResponse)(context, fullPath);
281
+ const assetReferences = metadata?.asset?.metadata?.assetReferences || [];
282
+ const dispatchRequests = [];
283
+ for (const ref of assetReferences) {
284
+ dispatchRequests.push(this.dispatchResourceRecursive(ref.override?.uri || ref.url, dispatcher, {resourceType: "asset", asset: metadata?.asset}, siteConfig));
285
+ }
286
+ return Promise.all(dispatchRequests);
280
287
  }
281
288
  getResourcePathFromUrl(siteConfig, url) {
282
289
  const {outputDir} = siteConfig;
package/build/es/index.js CHANGED
@@ -7,7 +7,7 @@ import { LwrAssetRegistry } from '@lwrjs/asset-registry';
7
7
  import { LwrViewRegistry } from '@lwrjs/view-registry';
8
8
  import { LwrServerError, createSingleDiagnosticError, descriptions } from '@lwrjs/diagnostics';
9
9
  import { normalizeConfig, explodeMode } from '@lwrjs/config';
10
- import { LwrApplicationObserver } from './lwr-app-observer.js';
10
+ import { LwrApplicationObserver } from '@lwrjs/shared-utils';
11
11
  import localeMiddleware from './middlewares/locale-middleware.js';
12
12
  import apiMiddleware from './middlewares/api-middleware.js';
13
13
  import uiMiddleware from './middlewares/ui-middleware.js';
@@ -390,7 +390,7 @@ export default function apiMiddleware(app, context) {
390
390
  const specifier = req.params[0] ? `/${req.params[0]}` : req.originalUrl;
391
391
  const basePathSpecifier = `${basePath}${specifier}`;
392
392
  try {
393
- const assetObj = await context.assetRegistry.getAsset({ specifier: basePathSpecifier, signature, type: type }, runtimeEnvironment);
393
+ const assetObj = await context.assetRegistry.getAsset({ specifier: basePathSpecifier, signature, type: type }, runtimeEnvironment, req.isSiteGeneration());
394
394
  if (immutable) {
395
395
  // WIP: ?
396
396
  }
@@ -1,4 +1,4 @@
1
- import WebSocket from 'ws';
1
+ import { WebSocketServer } from 'ws';
2
2
  import { getCacheKeyFromJson } from '@lwrjs/shared-utils';
3
3
  import { getRequestProperties } from './utils.js';
4
4
  let hmr;
@@ -14,7 +14,7 @@ class Hmr {
14
14
  }
15
15
  setupHotModuleReload() {
16
16
  const { server } = this;
17
- const wss = new WebSocket.Server({ server });
17
+ const wss = new WebSocketServer({ server });
18
18
  const connectedClients = new Map();
19
19
  this.connectedClients = connectedClients;
20
20
  wss.on('connection', function connection(ws, req) {
@@ -129,7 +129,7 @@ export default class SiteGenerator {
129
129
  // -- Process Assets (css, images, ...) && Resources (lwr-loader-shim ...)
130
130
  }
131
131
  else if (resourceType === 'asset' || resourceType === 'resource') {
132
- await this.handleAssetOrResource(url, context, siteConfig);
132
+ await this.handleAssetOrResource(url, context, siteConfig, dispatcher);
133
133
  // -- Import Metadata Mappings
134
134
  }
135
135
  else if (resourceType == 'mapping') {
@@ -394,9 +394,17 @@ export default class SiteGenerator {
394
394
  * @param context - Response Context
395
395
  * @param siteConfig - Global metadata about the site
396
396
  */
397
- async handleAssetOrResource(url, context, siteConfig) {
397
+ async handleAssetOrResource(url, context, siteConfig, dispatcher) {
398
+ const metadata = context.fs?.metadata;
398
399
  const fullPath = this.getResourcePathFromUrl(siteConfig, url);
399
400
  await writeResponse(context, fullPath);
401
+ // Call and referenced assets...
402
+ const assetReferences = metadata?.asset?.metadata?.assetReferences || [];
403
+ const dispatchRequests = [];
404
+ for (const ref of assetReferences) {
405
+ dispatchRequests.push(this.dispatchResourceRecursive(ref.override?.uri || ref.url, dispatcher, { resourceType: 'asset', asset: metadata?.asset }, siteConfig));
406
+ }
407
+ return Promise.all(dispatchRequests);
400
408
  }
401
409
  getResourcePathFromUrl(siteConfig, url) {
402
410
  const { outputDir } = siteConfig;
@@ -8,7 +8,7 @@ export interface RouteResourceOpts extends BaseResourceContextOpts {
8
8
  }
9
9
  export interface AssetResourceOpts extends BaseResourceContextOpts {
10
10
  resourceType: 'asset';
11
- asset: RenderedAssetReference;
11
+ asset?: RenderedAssetReference;
12
12
  }
13
13
  export interface JsResourceOpts extends BaseResourceContextOpts {
14
14
  resourceType: 'js';
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.8.0-alpha.10",
7
+ "version": "0.8.0-alpha.12",
8
8
  "homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
9
9
  "repository": {
10
10
  "type": "git",
@@ -32,45 +32,47 @@
32
32
  "package.cjs"
33
33
  ],
34
34
  "dependencies": {
35
- "@lwrjs/app-service": "0.8.0-alpha.10",
36
- "@lwrjs/asset-registry": "0.8.0-alpha.10",
37
- "@lwrjs/asset-transformer": "0.8.0-alpha.10",
38
- "@lwrjs/base-template-engine": "0.8.0-alpha.10",
39
- "@lwrjs/base-view-provider": "0.8.0-alpha.10",
40
- "@lwrjs/base-view-transformer": "0.8.0-alpha.10",
41
- "@lwrjs/client-modules": "0.8.0-alpha.10",
42
- "@lwrjs/compiler": "0.8.0-alpha.10",
43
- "@lwrjs/config": "0.8.0-alpha.10",
44
- "@lwrjs/diagnostics": "0.8.0-alpha.10",
45
- "@lwrjs/fs-asset-provider": "0.8.0-alpha.10",
46
- "@lwrjs/html-view-provider": "0.8.0-alpha.10",
47
- "@lwrjs/loader": "0.8.0-alpha.10",
48
- "@lwrjs/lwc-module-provider": "0.8.0-alpha.10",
49
- "@lwrjs/lwc-ssr": "0.8.0-alpha.10",
50
- "@lwrjs/markdown-view-provider": "0.8.0-alpha.10",
51
- "@lwrjs/module-bundler": "0.8.0-alpha.10",
52
- "@lwrjs/module-registry": "0.8.0-alpha.10",
53
- "@lwrjs/npm-module-provider": "0.8.0-alpha.10",
54
- "@lwrjs/nunjucks-view-provider": "0.8.0-alpha.10",
55
- "@lwrjs/o11y": "0.8.0-alpha.10",
56
- "@lwrjs/resource-registry": "0.8.0-alpha.10",
57
- "@lwrjs/router": "0.8.0-alpha.10",
58
- "@lwrjs/server": "0.8.0-alpha.10",
59
- "@lwrjs/shared-utils": "0.8.0-alpha.10",
60
- "@lwrjs/view-registry": "0.8.0-alpha.10",
35
+ "@lwrjs/app-service": "0.8.0-alpha.12",
36
+ "@lwrjs/asset-registry": "0.8.0-alpha.12",
37
+ "@lwrjs/asset-transformer": "0.8.0-alpha.12",
38
+ "@lwrjs/base-template-engine": "0.8.0-alpha.12",
39
+ "@lwrjs/base-view-provider": "0.8.0-alpha.12",
40
+ "@lwrjs/base-view-transformer": "0.8.0-alpha.12",
41
+ "@lwrjs/client-modules": "0.8.0-alpha.12",
42
+ "@lwrjs/compiler": "0.8.0-alpha.12",
43
+ "@lwrjs/config": "0.8.0-alpha.12",
44
+ "@lwrjs/diagnostics": "0.8.0-alpha.12",
45
+ "@lwrjs/fs-asset-provider": "0.8.0-alpha.12",
46
+ "@lwrjs/html-view-provider": "0.8.0-alpha.12",
47
+ "@lwrjs/loader": "0.8.0-alpha.12",
48
+ "@lwrjs/lwc-module-provider": "0.8.0-alpha.12",
49
+ "@lwrjs/lwc-ssr": "0.8.0-alpha.12",
50
+ "@lwrjs/markdown-view-provider": "0.8.0-alpha.12",
51
+ "@lwrjs/module-bundler": "0.8.0-alpha.12",
52
+ "@lwrjs/module-registry": "0.8.0-alpha.12",
53
+ "@lwrjs/npm-module-provider": "0.8.0-alpha.12",
54
+ "@lwrjs/nunjucks-view-provider": "0.8.0-alpha.12",
55
+ "@lwrjs/o11y": "0.8.0-alpha.12",
56
+ "@lwrjs/resource-registry": "0.8.0-alpha.12",
57
+ "@lwrjs/router": "0.8.0-alpha.12",
58
+ "@lwrjs/server": "0.8.0-alpha.12",
59
+ "@lwrjs/shared-utils": "0.8.0-alpha.12",
60
+ "@lwrjs/view-registry": "0.8.0-alpha.12",
61
61
  "fs-extra": "^10.1.0",
62
62
  "ms": "^2.1.3",
63
63
  "path-to-regexp": "^6.2.0",
64
- "qs": "^6.9.4"
64
+ "qs": "^6.9.4",
65
+ "ws": "^8.8.1"
65
66
  },
66
67
  "devDependencies": {
67
- "@lwrjs/types": "0.8.0-alpha.10"
68
+ "@lwrjs/types": "0.8.0-alpha.12",
69
+ "@types/ws": "^8.5.3"
68
70
  },
69
71
  "peerDependencies": {
70
- "lwc": ">= 1.x <= 2.x"
72
+ "lwc": "2.x"
71
73
  },
72
74
  "engines": {
73
75
  "node": ">=14.15.4 <19"
74
76
  },
75
- "gitHead": "55922351f484d77784d86ef7b03ebe788fa3e12c"
77
+ "gitHead": "eef0342738457f04590e760a0b501e4d78d93416"
76
78
  }
@@ -1,82 +0,0 @@
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/lwr-app-observer.ts
25
- __markAsModule(exports);
26
- __export(exports, {
27
- LwrApplicationObserver: () => LwrApplicationObserver
28
- });
29
- var import_events = __toModule(require("events"));
30
- var MODULE_DEF_CHANGED_EVENT = "module_definition_changed";
31
- var MODULE_SOURCE_CHANGED_EVENT = "module_source_changed";
32
- var VIEW_SOURCE_CHANGED_EVENT = "view_source_changed";
33
- var ASSET_SOURCE_CHANGED_EVENT = "asset_source_changed";
34
- var LwrEmitter = class {
35
- constructor(observer) {
36
- this.observer = observer;
37
- }
38
- notifyAssetSourceChanged(payload) {
39
- this.observer.emit(ASSET_SOURCE_CHANGED_EVENT, {
40
- eventType: ASSET_SOURCE_CHANGED_EVENT,
41
- payload
42
- });
43
- }
44
- notifyViewSourceChanged(payload) {
45
- this.observer.emit(VIEW_SOURCE_CHANGED_EVENT, {
46
- eventType: VIEW_SOURCE_CHANGED_EVENT,
47
- payload
48
- });
49
- }
50
- notifyModuleDefinitionChanged(payload) {
51
- this.observer.emit(MODULE_DEF_CHANGED_EVENT, {
52
- eventType: MODULE_DEF_CHANGED_EVENT,
53
- payload
54
- });
55
- }
56
- notifyModuleSourceChanged(payload) {
57
- this.observer.emit(MODULE_SOURCE_CHANGED_EVENT, {
58
- eventType: MODULE_SOURCE_CHANGED_EVENT,
59
- payload
60
- });
61
- }
62
- };
63
- var LwrApplicationObserver = class extends import_events.EventEmitter {
64
- constructor() {
65
- super();
66
- }
67
- onModuleDefinitionChange(listener) {
68
- this.on(MODULE_DEF_CHANGED_EVENT, listener);
69
- }
70
- onModuleSourceChange(listener) {
71
- this.on(MODULE_SOURCE_CHANGED_EVENT, listener);
72
- }
73
- onViewSourceChange(listener) {
74
- this.on(VIEW_SOURCE_CHANGED_EVENT, listener);
75
- }
76
- onAssetSourceChange(listener) {
77
- this.on(ASSET_SOURCE_CHANGED_EVENT, listener);
78
- }
79
- createLwrEmitter() {
80
- return new LwrEmitter(this);
81
- }
82
- };
@@ -1,21 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { ModuleCompiled, LwrAppEmitter, LwrAppObserver, ModuleDefinitionChangedEvent, ModuleSourceChangedEvent, CompiledView, AssetSource, AssetSourceChangedEvent, ViewSourceChangedEvent } from '@lwrjs/types';
4
- declare class LwrEmitter implements LwrAppEmitter {
5
- observer: LwrApplicationObserver;
6
- constructor(observer: LwrApplicationObserver);
7
- notifyAssetSourceChanged(payload: AssetSource): void;
8
- notifyViewSourceChanged(payload: CompiledView): void;
9
- notifyModuleDefinitionChanged(payload: ModuleCompiled): void;
10
- notifyModuleSourceChanged(payload: ModuleCompiled): void;
11
- }
12
- export declare class LwrApplicationObserver extends EventEmitter implements LwrAppObserver {
13
- constructor();
14
- onModuleDefinitionChange(listener: (event: ModuleDefinitionChangedEvent) => void): void;
15
- onModuleSourceChange(listener: (event: ModuleSourceChangedEvent) => void): void;
16
- onViewSourceChange(listener: (event: ViewSourceChangedEvent) => void): void;
17
- onAssetSourceChange(listener: (event: AssetSourceChangedEvent) => void): void;
18
- createLwrEmitter(): LwrEmitter;
19
- }
20
- export {};
21
- //# sourceMappingURL=lwr-app-observer.d.ts.map
@@ -1,55 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- const MODULE_DEF_CHANGED_EVENT = 'module_definition_changed';
3
- const MODULE_SOURCE_CHANGED_EVENT = 'module_source_changed';
4
- const VIEW_SOURCE_CHANGED_EVENT = 'view_source_changed';
5
- const ASSET_SOURCE_CHANGED_EVENT = 'asset_source_changed';
6
- class LwrEmitter {
7
- constructor(observer) {
8
- this.observer = observer;
9
- }
10
- notifyAssetSourceChanged(payload) {
11
- this.observer.emit(ASSET_SOURCE_CHANGED_EVENT, {
12
- eventType: ASSET_SOURCE_CHANGED_EVENT,
13
- payload,
14
- });
15
- }
16
- notifyViewSourceChanged(payload) {
17
- this.observer.emit(VIEW_SOURCE_CHANGED_EVENT, {
18
- eventType: VIEW_SOURCE_CHANGED_EVENT,
19
- payload,
20
- });
21
- }
22
- notifyModuleDefinitionChanged(payload) {
23
- this.observer.emit(MODULE_DEF_CHANGED_EVENT, {
24
- eventType: MODULE_DEF_CHANGED_EVENT,
25
- payload,
26
- });
27
- }
28
- notifyModuleSourceChanged(payload) {
29
- this.observer.emit(MODULE_SOURCE_CHANGED_EVENT, {
30
- eventType: MODULE_SOURCE_CHANGED_EVENT,
31
- payload,
32
- });
33
- }
34
- }
35
- export class LwrApplicationObserver extends EventEmitter {
36
- constructor() {
37
- super();
38
- }
39
- onModuleDefinitionChange(listener) {
40
- this.on(MODULE_DEF_CHANGED_EVENT, listener);
41
- }
42
- onModuleSourceChange(listener) {
43
- this.on(MODULE_SOURCE_CHANGED_EVENT, listener);
44
- }
45
- onViewSourceChange(listener) {
46
- this.on(VIEW_SOURCE_CHANGED_EVENT, listener);
47
- }
48
- onAssetSourceChange(listener) {
49
- this.on(ASSET_SOURCE_CHANGED_EVENT, listener);
50
- }
51
- createLwrEmitter() {
52
- return new LwrEmitter(this);
53
- }
54
- }
55
- //# sourceMappingURL=lwr-app-observer.js.map