@lwrjs/static 0.13.0-alpha.15 → 0.13.0-alpha.17

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.
@@ -79,6 +79,7 @@ var StaticBundleProvider = class {
79
79
  version: resolvedVersion,
80
80
  specifier,
81
81
  config: this.bundleConfig,
82
+ integrity: metadata.integrity ?? (0, import_shared_utils.createIntegrityHash)(code),
82
83
  bundleRecord: {
83
84
  includedModules,
84
85
  imports,
@@ -41,22 +41,19 @@ var StaticResourceProvider = class {
41
41
  this.siteRootDir = context.siteMetadata.getSiteRootDir();
42
42
  this.siteMetadata = context.siteMetadata;
43
43
  }
44
- async getResource(resourceIdentity, runtimeEnvironment) {
44
+ async getResource(resourceIdentity, runtimeEnvironment, runtimeParams) {
45
45
  const {debug} = runtimeEnvironment;
46
- const metadata = this.siteMetadata.getSiteResourcesDecisionTree().find((0, import_site_metadata.getSiteResourceId)(resourceIdentity));
47
- const debugMetadata = this.siteMetadata.getSiteResourcesDecisionTree().find((0, import_site_metadata.getSiteResourceId)(resourceIdentity), true);
48
- if (!metadata) {
46
+ const {ignoreDebug} = runtimeParams;
47
+ const resourceMetadata = this.siteMetadata.getSiteResourcesDecisionTree().find((0, import_site_metadata.getSiteResourceId)(resourceIdentity), debug && !ignoreDebug);
48
+ if (!resourceMetadata) {
49
49
  import_diagnostics.logger.warn({
50
50
  label: `${this.name}`,
51
51
  message: `Did not find requested specifier ${resourceIdentity.specifier}`
52
52
  });
53
53
  return void 0;
54
54
  }
55
- const resourcePath = import_path.default.join(this.siteRootDir, metadata.path);
56
- const debugResourcePath = debugMetadata ? import_path.default.join(this.siteRootDir, debugMetadata.path) : void 0;
57
- const isLambda = (0, import_shared_utils.isLambdaEnv)();
58
- const useDebug = debug && !isLambda && debugResourcePath;
59
- const type = metadata.mimeType || (0, import_shared_utils.mimeLookup)(resourcePath) || "application/javascript";
55
+ const resourcePath = import_path.default.join(this.siteRootDir, resourceMetadata.path);
56
+ const type = resourceMetadata.mimeType || (0, import_shared_utils.mimeLookup)(resourcePath) || "application/javascript";
60
57
  return {
61
58
  type,
62
59
  stream: () => {
@@ -64,15 +61,12 @@ var StaticResourceProvider = class {
64
61
  label: `${this.name}`,
65
62
  message: `Resource read from lambda ${resourceIdentity.specifier}`
66
63
  });
67
- if (useDebug) {
68
- return import_fs_extra.default.createReadStream(debugResourcePath);
69
- } else {
70
- return import_fs_extra.default.createReadStream(resourcePath);
71
- }
64
+ return import_fs_extra.default.createReadStream(resourcePath);
72
65
  },
73
- src: useDebug ? debugResourcePath : resourcePath,
74
- inline: metadata.inline,
75
- entry: import_path.default.resolve(useDebug ? debugResourcePath : resourcePath)
66
+ src: resourcePath,
67
+ inline: resourceMetadata.inline,
68
+ integrity: resourceMetadata.integrity,
69
+ entry: import_path.default.resolve(resourcePath)
76
70
  };
77
71
  }
78
72
  };
@@ -1,5 +1,5 @@
1
1
  import { logger } from '@lwrjs/diagnostics';
2
- import { VERSION_SIGIL, explodeSpecifier, getSpecifier, isLambdaEnv } from '@lwrjs/shared-utils';
2
+ import { VERSION_SIGIL, createIntegrityHash, explodeSpecifier, getSpecifier, isLambdaEnv, } from '@lwrjs/shared-utils';
3
3
  import path from 'path';
4
4
  import fs from 'fs-extra';
5
5
  import { getSiteBundleId, parseSiteId, resolveStaticBundleVersion } from '../site-metadata.js';
@@ -51,6 +51,7 @@ export default class StaticBundleProvider {
51
51
  version: resolvedVersion,
52
52
  specifier: specifier,
53
53
  config: this.bundleConfig,
54
+ integrity: metadata.integrity ?? createIntegrityHash(code),
54
55
  bundleRecord: {
55
56
  // TODO we need to solve include modules for fingerprints support
56
57
  includedModules,
@@ -1,10 +1,10 @@
1
- import type { BootstrapRuntimeEnvironment, ProviderContext, ResourceDefinition, ResourceIdentifier, ResourceProvider } from '@lwrjs/types';
1
+ import type { BootstrapRuntimeEnvironment, ProviderContext, ResourceDefinition, ResourceIdentifier, ResourceProvider, RuntimeParams } from '@lwrjs/types';
2
2
  export default class StaticResourceProvider implements ResourceProvider {
3
3
  name: string;
4
4
  siteRootDir: string;
5
5
  siteMetadata: import("@lwrjs/types").SiteMetadata;
6
6
  resourceRegistry: import("@lwrjs/types").PublicResourceRegistry;
7
7
  constructor(_config: {}, context: ProviderContext);
8
- getResource<Identifier extends ResourceIdentifier, RuntimeEnvironment extends BootstrapRuntimeEnvironment>(resourceIdentity: Identifier, runtimeEnvironment: RuntimeEnvironment): Promise<ResourceDefinition | undefined>;
8
+ getResource<Identifier extends ResourceIdentifier, RuntimeEnvironment extends BootstrapRuntimeEnvironment>(resourceIdentity: Identifier, runtimeEnvironment: RuntimeEnvironment, runtimeParams: RuntimeParams): Promise<ResourceDefinition | undefined>;
9
9
  }
10
10
  //# sourceMappingURL=static-resource-provider.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { logger } from '@lwrjs/diagnostics';
2
- import { isLambdaEnv, mimeLookup } from '@lwrjs/shared-utils';
2
+ import { mimeLookup } from '@lwrjs/shared-utils';
3
3
  import path from 'path';
4
4
  import fs from 'fs-extra';
5
5
  import { getSiteResourceId } from '../site-metadata.js';
@@ -13,49 +13,40 @@ export default class StaticResourceProvider {
13
13
  this.siteRootDir = context.siteMetadata.getSiteRootDir();
14
14
  this.siteMetadata = context.siteMetadata;
15
15
  }
16
- async getResource(resourceIdentity, runtimeEnvironment) {
16
+ async getResource(resourceIdentity, runtimeEnvironment, runtimeParams) {
17
17
  const { debug } = runtimeEnvironment;
18
- const metadata = this.siteMetadata
18
+ // HACK: this code is tricky because resource IDs are different between prod vs debug ("lwr-loader-shim.bundle.min.js" vs "lwr-loader-shim.bundle.js").
19
+ // 1. In debug mode on Lambda (during SSR), we need to ignore runtimeEnvironment.debug because we will always ask for the prod version (lwr-loader-shim.bundle.min.js)
20
+ // 2. But when we generate the view, we can't ignore runtimeEnvironment.debug because we need the debug version of the loader shim (lwr-loader-shim.bundle.js)
21
+ const { ignoreDebug } = runtimeParams;
22
+ const resourceMetadata = this.siteMetadata
19
23
  .getSiteResourcesDecisionTree()
20
- .find(getSiteResourceId(resourceIdentity));
21
- const debugMetadata = this.siteMetadata
22
- .getSiteResourcesDecisionTree()
23
- .find(getSiteResourceId(resourceIdentity), true);
24
- if (!metadata) {
24
+ .find(getSiteResourceId(resourceIdentity), debug && !ignoreDebug);
25
+ if (!resourceMetadata) {
25
26
  logger.warn({
26
27
  label: `${this.name}`,
27
28
  message: `Did not find requested specifier ${resourceIdentity.specifier}`,
28
29
  });
29
30
  return undefined;
30
31
  }
31
- const resourcePath = path.join(this.siteRootDir, metadata.path);
32
- const debugResourcePath = debugMetadata ? path.join(this.siteRootDir, debugMetadata.path) : undefined;
33
- const isLambda = isLambdaEnv();
34
- const useDebug = debug && !isLambda && debugResourcePath;
32
+ const resourcePath = path.join(this.siteRootDir, resourceMetadata.path);
35
33
  // Figure out mime type
36
- const type = metadata.mimeType || mimeLookup(resourcePath) || 'application/javascript';
34
+ const type = resourceMetadata.mimeType ||
35
+ mimeLookup(resourcePath) ||
36
+ 'application/javascript';
37
37
  return {
38
38
  type,
39
- // Have to make the loader shim code available for SSR
40
39
  stream: () => {
41
40
  logger.debug({
42
41
  label: `${this.name}`,
43
42
  message: `Resource read from lambda ${resourceIdentity.specifier}`,
44
43
  });
45
- if (useDebug) {
46
- // use the debug resource if:
47
- // - debug mode is ON
48
- // - isLambda is false
49
- // - the debug version of the resource exists
50
- return fs.createReadStream(debugResourcePath);
51
- }
52
- else {
53
- return fs.createReadStream(resourcePath);
54
- }
44
+ return fs.createReadStream(resourcePath);
55
45
  },
56
- src: useDebug ? debugResourcePath : resourcePath,
57
- inline: metadata.inline,
58
- entry: path.resolve(useDebug ? debugResourcePath : resourcePath),
46
+ src: resourcePath,
47
+ inline: resourceMetadata.inline,
48
+ integrity: resourceMetadata.integrity,
49
+ entry: path.resolve(resourcePath),
59
50
  };
60
51
  }
61
52
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.13.0-alpha.15",
7
+ "version": "0.13.0-alpha.17",
8
8
  "homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
9
9
  "repository": {
10
10
  "type": "git",
@@ -52,11 +52,11 @@
52
52
  "build/**/*.d.ts"
53
53
  ],
54
54
  "dependencies": {
55
- "@lwrjs/diagnostics": "0.13.0-alpha.15",
56
- "@lwrjs/shared-utils": "0.13.0-alpha.15"
55
+ "@lwrjs/diagnostics": "0.13.0-alpha.17",
56
+ "@lwrjs/shared-utils": "0.13.0-alpha.17"
57
57
  },
58
58
  "devDependencies": {
59
- "@lwrjs/types": "0.13.0-alpha.15",
59
+ "@lwrjs/types": "0.13.0-alpha.17",
60
60
  "@types/express": "^4.17.21",
61
61
  "jest": "^26.6.3",
62
62
  "jest-express": "^1.12.0",
@@ -69,5 +69,5 @@
69
69
  "volta": {
70
70
  "extends": "../../../package.json"
71
71
  },
72
- "gitHead": "d5eab85249493caf8766c4bc400b11d9c0a9909e"
72
+ "gitHead": "03f98478f36c91075d244431f91d02be0cd5d4bd"
73
73
  }