@vue-storefront/nuxt 3.1.0 → 4.0.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.
package/dist/module.json CHANGED
@@ -4,5 +4,5 @@
4
4
  "compatibility": {
5
5
  "nuxt": "^3.0.0"
6
6
  },
7
- "version": "3.1.0"
7
+ "version": "4.0.0"
8
8
  }
package/dist/module.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { defineNuxtModule, createResolver, addTypeTemplate, addImports, addTemplate, addPluginTemplate, addImportsSources } from '@nuxt/kit';
2
2
  import { genInlineTypeImport } from 'knitwork';
3
+ import { defu } from 'defu';
3
4
 
4
5
  const module = defineNuxtModule({
5
6
  meta: {
@@ -22,6 +23,10 @@ const module = defineNuxtModule({
22
23
  const projectRootResolver = createResolver(projectLayer.config.rootDir);
23
24
  const buildDirResolver = createResolver(nuxt.options.buildDir);
24
25
  const localResolver = createResolver(import.meta.url);
26
+ nuxt.options.runtimeConfig.public.vsf = defu(
27
+ nuxt.options.runtimeConfig.public?.vsf,
28
+ options
29
+ );
25
30
  nuxt.options.app.head.meta = [
26
31
  ...nuxt.options.app.head.meta ?? [],
27
32
  {
@@ -46,6 +51,11 @@ export type SdkConfig = ${genInlineTypeImport(
46
51
  as: "composeMiddlewareUrl",
47
52
  from: localResolver.resolve("./runtime/utils/composeMiddlewareUrl")
48
53
  });
54
+ addImports({
55
+ name: "getDefaults",
56
+ as: "getDefaults",
57
+ from: localResolver.resolve("./runtime/utils/defaults")
58
+ });
49
59
  addTemplate({
50
60
  src: localResolver.resolve("./runtime/useSdk.template"),
51
61
  filename: "useSdk.ts",
@@ -1,5 +1,5 @@
1
1
  import { buildModule, middlewareModule } from "@vue-storefront/sdk";
2
- import { composeMiddlewareUrl, useNuxtApp, useRequestHeaders } from "#imports";
2
+ import { composeMiddlewareUrl, useNuxtApp, useRequestHeaders, getDefaults } from "#imports";
3
3
  import { SdkModuleOptions } from "./vsfModule";
4
4
 
5
5
  type InjectedContext = {
@@ -12,6 +12,11 @@ type InjectedContext = {
12
12
  */
13
13
  getCookieHeader: () => Record<string, string>;
14
14
  getRequestHeaders: () => Record<string, string>;
15
+ defaults: ReturnType<typeof getDefaults>;
16
+ config: {
17
+ middlewareUrl: string;
18
+ defaults: ReturnType<typeof getDefaults>;
19
+ };
15
20
  };
16
21
 
17
22
  type Config<TConfig> = (context: InjectedContext) => TConfig;
@@ -30,7 +35,7 @@ const moduleConfig: SdkModuleOptions = <%= options.moduleConfig %>;
30
35
  * ContentfulModuleType,
31
36
  * } from "@vsf-enterprise/contentful-sdk";
32
37
  * import type { UnifiedApiEndpoints } from "../storefront-middleware/types";
33
- *
38
+ *
34
39
  * export default defineSdkConfig(
35
40
  * ({ buildModule, middlewareModule, middlewareUrl, getCookieHeader }) => ({
36
41
  * unified: buildModule(middlewareModule<UnifiedApiEndpoints>, {
@@ -48,15 +53,10 @@ export function defineSdkConfig<TConfig>(config: Config<TConfig>) {
48
53
  return () => {
49
54
  const nuxtApp = useNuxtApp()
50
55
  const runtimeConfig = useRuntimeConfig();
51
- const { middleware, multistore } = runtimeConfig.public;
52
- const resolvedOptions = {
53
- middleware: middleware ?? moduleConfig.middleware,
54
- multistore: multistore ?? moduleConfig.multistore,
55
- }
56
56
 
57
57
  const requestHeaders = useRequestHeaders(["x-forwarded-host", "host"]);
58
58
  const middlewareUrl = composeMiddlewareUrl({
59
- options: resolvedOptions,
59
+ options: runtimeConfig.public.vsf,
60
60
  headers: requestHeaders,
61
61
  });
62
62
 
@@ -66,9 +66,14 @@ export function defineSdkConfig<TConfig>(config: Config<TConfig>) {
66
66
  return config({
67
67
  buildModule,
68
68
  middlewareModule,
69
- middlewareUrl,
70
69
  getCookieHeader,
71
- getRequestHeaders
70
+ getRequestHeaders,
71
+ defaults: getDefaults(),
72
+ middlewareUrl,
73
+ config: {
74
+ defaults: getDefaults(),
75
+ middlewareUrl,
76
+ }
72
77
  });
73
78
  }
74
79
  }
@@ -0,0 +1,32 @@
1
+ export declare function getDefaults(): {
2
+ readonly unifiedCommerce: {
3
+ readonly middlewareModule: {
4
+ readonly defaultMethodsRequestConfig: {
5
+ readonly getCategories: {
6
+ readonly method: "GET";
7
+ };
8
+ readonly getProductDetails: {
9
+ readonly method: "GET";
10
+ };
11
+ readonly getProductReviews: {
12
+ readonly method: "GET";
13
+ };
14
+ readonly getProducts: {
15
+ readonly method: "GET";
16
+ };
17
+ readonly searchProducts: {
18
+ readonly method: "GET";
19
+ };
20
+ };
21
+ };
22
+ };
23
+ readonly unifiedCms: {
24
+ readonly middlewareModule: {
25
+ readonly defaultMethodsRequestConfig: {
26
+ readonly getEntries: {
27
+ readonly method: "GET";
28
+ };
29
+ };
30
+ };
31
+ };
32
+ };
@@ -0,0 +1,4 @@
1
+ import { contextConfig } from "@storefront/shared";
2
+ export function getDefaults() {
3
+ return contextConfig;
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-storefront/nuxt",
3
- "version": "3.1.0",
3
+ "version": "4.0.0",
4
4
  "description": "Vue Storefront dedicated features for Nuxt",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -20,18 +20,19 @@
20
20
  "build": "nuxt-module-build build && yarn build:app",
21
21
  "build:app": "cd __tests__/app && yarn build",
22
22
  "dev": "cd __tests__/app && yarn dev",
23
- "dev:middleware": "cd ../../shared/src/__tests__/middleware && yarn dev",
23
+ "dev:middleware": "cd ../shared/src/__tests__/middleware && yarn dev",
24
24
  "lint": "eslint --ext .vue,.js,.ts .",
25
- "test": "start-server-and-test dev:middleware localhost:4000/test_integration/getSuccess dev localhost:3000/ssr \"yarn test:e2e\"",
26
- "test:e2e": "cd ../../shared/ && yarn test:e2e",
25
+ "test:e2e:run": "start-server-and-test dev:middleware localhost:4000/test_integration/getSuccess dev localhost:3000/ssr \"yarn test:e2e\"",
26
+ "test:e2e": "cd ../shared/ && yarn test:e2e",
27
27
  "test:watch": "vitest watch",
28
28
  "prepare": "nuxi prepare"
29
29
  },
30
30
  "dependencies": {
31
31
  "@nuxt/kit": "^3.7.4",
32
32
  "@nuxt/schema": "^3.7.4",
33
- "@vue-storefront/sdk": "^1.4.0",
34
- "knitwork": "^1.0.0"
33
+ "@vue-storefront/sdk": "^3.1.0",
34
+ "knitwork": "^1.0.0",
35
+ "defu": "^6.0.0"
35
36
  },
36
37
  "devDependencies": {
37
38
  "@types/node": "^18.11.17",
package/CHANGELOG.md DELETED
@@ -1,54 +0,0 @@
1
- # Change log
2
-
3
- ## 3.1.0
4
-
5
- - **[ADDED]** `middlewareModule` to `defineSdkConfig` params.
6
-
7
- ```diff [sdk.config.ts]
8
- - import { UnifiedApiExtension } from "storefront-middleware/types"
9
- + import { UnifiedEndpoints } from "storefront-middleware/types"
10
-
11
- export default defineSdkConfig(
12
- - ({ buildModule, middlewareUrl, getRequestHeaders }) => ({
13
- - commerce: buildModule(unifiedModule<UnifiedApiExtension>, {
14
- - apiUrl: `${middlewareUrl}/commerce`,
15
- - requestOptions: { headers: getRequestHeaders },
16
- + ({ buildModule, middlewareModule, middlewareUrl, getRequestHeaders }) => ({
17
- + commerce: buildModule(middlewareModule<UnifiedEndpoints>, {
18
- + apiUrl: `${middlewareUrl}/commerce`,
19
- + defaultRequestConfig: { headers: getRequestHeaders() },
20
- }),
21
- })
22
- );
23
- ```
24
-
25
- - **[CHANGED]** deprecate `getCookieHeader`, use `getRequestHeaders` instead
26
-
27
- ```diff [sdk.config.ts]
28
- export default defineSdkConfig(
29
- - ({ buildModule, middlewareModule, middlewareUrl, getCookieHeader }) => ({
30
- + ({ buildModule, middlewareModule, middlewareUrl, getRequestHeaders }) => ({
31
- commerce: buildModule(middlewareModule<UnifiedEndpoints>, {
32
- apiUrl: `${middlewareUrl}/commerce`,
33
- - defaultRequestConfig: { headers: getCookieHeader() }, // Only cookie header is included.
34
- + defaultRequestConfig: { headers: getRequestHeaders() }, // All headers are included.
35
- }),
36
- })
37
- );
38
- ```
39
-
40
- ## 3.0.3
41
-
42
- - **[CHANGED]** `@nuxt/kit` locked `3.7.4` version to `@nuxt/kit@^3.7.4`
43
-
44
- ## 3.0.2
45
-
46
- - **[FIXED]** Multi-store URL calculation, now working correctly in the browser.
47
-
48
- ## 3.0.1
49
-
50
- - **[CHANGED]** Set `@vue-storefront/sdk` as a dependency instead of a peer dependency
51
-
52
- ## 3.0.0
53
-
54
- - **[BREAKING]** Rewritten from scratch. Now the package exports a Nuxt module which allows to initialize the Vue Storefront SDK.