@vue-storefront/next 7.0.0-next.0 → 7.0.0-next.2
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/{chunk-FWCSY2DS.mjs → chunk-NSPLXZD5.mjs} +48 -1
- package/dist/client.d.mts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/client.js +30 -3
- package/dist/client.mjs +10 -4
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +49 -13
- package/dist/index.mjs +20 -15
- package/dist/{types-D5y1qo72.d.mts → types-FGnrBhjy.d.mts} +42 -10
- package/dist/{types-D5y1qo72.d.ts → types-FGnrBhjy.d.ts} +42 -10
- package/package.json +3 -3
|
@@ -29,9 +29,56 @@ var __objRest = (source, exclude) => {
|
|
|
29
29
|
}
|
|
30
30
|
return target;
|
|
31
31
|
};
|
|
32
|
+
var __async = (__this, __arguments, generator) => {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
var fulfilled = (value) => {
|
|
35
|
+
try {
|
|
36
|
+
step(generator.next(value));
|
|
37
|
+
} catch (e) {
|
|
38
|
+
reject(e);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var rejected = (value) => {
|
|
42
|
+
try {
|
|
43
|
+
step(generator.throw(value));
|
|
44
|
+
} catch (e) {
|
|
45
|
+
reject(e);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
49
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// src/env/constants.ts
|
|
54
|
+
var PUBLIC_ENV_KEY = "__ALOKAI_ENV__";
|
|
55
|
+
|
|
56
|
+
// src/env/env.ts
|
|
57
|
+
function env(key) {
|
|
58
|
+
var _a;
|
|
59
|
+
if (typeof window === "undefined") {
|
|
60
|
+
return process.env[key];
|
|
61
|
+
}
|
|
62
|
+
return (_a = window[PUBLIC_ENV_KEY]) == null ? void 0 : _a[key];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// src/env/get-public-env.ts
|
|
66
|
+
function getPublicEnv() {
|
|
67
|
+
const publicEnv = {};
|
|
68
|
+
for (const key in process.env) {
|
|
69
|
+
if (key.startsWith("NEXT_PUBLIC_")) {
|
|
70
|
+
publicEnv[key] = process.env[key];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return publicEnv;
|
|
74
|
+
}
|
|
32
75
|
|
|
33
76
|
export {
|
|
34
77
|
__spreadValues,
|
|
35
78
|
__spreadProps,
|
|
36
|
-
__objRest
|
|
79
|
+
__objRest,
|
|
80
|
+
__async,
|
|
81
|
+
PUBLIC_ENV_KEY,
|
|
82
|
+
getPublicEnv,
|
|
83
|
+
env
|
|
37
84
|
};
|
package/dist/client.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SDKApi } from '@alokai/connect/sdk';
|
|
2
|
-
import { S as SfContract, C as CreateSdkContextReturn } from './types-
|
|
3
|
-
export { M as Maybe, b as SfState, a as SfStateProps, c as createSfStateProvider } from './types-
|
|
2
|
+
import { S as SfContract, C as CreateSdkContextReturn } from './types-FGnrBhjy.mjs';
|
|
3
|
+
export { M as Maybe, b as SfState, a as SfStateProps, c as createSfStateProvider, e as env } from './types-FGnrBhjy.mjs';
|
|
4
4
|
import 'next/headers';
|
|
5
5
|
import 'react';
|
|
6
6
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SDKApi } from '@alokai/connect/sdk';
|
|
2
|
-
import { S as SfContract, C as CreateSdkContextReturn } from './types-
|
|
3
|
-
export { M as Maybe, b as SfState, a as SfStateProps, c as createSfStateProvider } from './types-
|
|
2
|
+
import { S as SfContract, C as CreateSdkContextReturn } from './types-FGnrBhjy.js';
|
|
3
|
+
export { M as Maybe, b as SfState, a as SfStateProps, c as createSfStateProvider, e as env } from './types-FGnrBhjy.js';
|
|
4
4
|
import 'next/headers';
|
|
5
5
|
import 'react';
|
|
6
6
|
|
package/dist/client.js
CHANGED
|
@@ -61,7 +61,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
61
61
|
var client_exports = {};
|
|
62
62
|
__export(client_exports, {
|
|
63
63
|
createAlokaiContext: () => createAlokaiContext,
|
|
64
|
-
createSfStateProvider: () => createSfStateProvider
|
|
64
|
+
createSfStateProvider: () => createSfStateProvider,
|
|
65
|
+
env: () => env
|
|
65
66
|
});
|
|
66
67
|
module.exports = __toCommonJS(client_exports);
|
|
67
68
|
|
|
@@ -70,6 +71,20 @@ var import_instrumentation_next_component = require("@alokai/instrumentation-nex
|
|
|
70
71
|
var import_script = __toESM(require("next/script"));
|
|
71
72
|
var import_react2 = __toESM(require("react"));
|
|
72
73
|
|
|
74
|
+
// src/env/constants.ts
|
|
75
|
+
var PUBLIC_ENV_KEY = "__ALOKAI_ENV__";
|
|
76
|
+
|
|
77
|
+
// src/env/get-public-env.ts
|
|
78
|
+
function getPublicEnv() {
|
|
79
|
+
const publicEnv = {};
|
|
80
|
+
for (const key in process.env) {
|
|
81
|
+
if (key.startsWith("NEXT_PUBLIC_")) {
|
|
82
|
+
publicEnv[key] = process.env[key];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return publicEnv;
|
|
86
|
+
}
|
|
87
|
+
|
|
73
88
|
// src/state.tsx
|
|
74
89
|
var import_react = __toESM(require("react"));
|
|
75
90
|
var import_zustand = require("zustand");
|
|
@@ -181,7 +196,9 @@ function createAlokaiContext() {
|
|
|
181
196
|
vsfMetaTag.setAttribute("content", "Alokai Storefront");
|
|
182
197
|
document.head.appendChild(vsfMetaTag);
|
|
183
198
|
`;
|
|
184
|
-
|
|
199
|
+
const publicEnv = typeof window === "undefined" ? getPublicEnv() : void 0;
|
|
200
|
+
const envScript = publicEnv ? `window['${PUBLIC_ENV_KEY}'] = ${JSON.stringify(publicEnv)};` : "";
|
|
201
|
+
return /* @__PURE__ */ import_react2.default.createElement(SdkContext.Provider, { value: sdk }, publicEnv && /* @__PURE__ */ import_react2.default.createElement(import_script.default, { id: "alokaiEnv", strategy: "beforeInteractive" }, envScript), /* @__PURE__ */ import_react2.default.createElement(import_script.default, { id: "vsfMetaTag", strategy: "beforeInteractive" }, `
|
|
185
202
|
${metaTagScript}
|
|
186
203
|
`), /* @__PURE__ */ import_react2.default.createElement(import_instrumentation_next_component.AlokaiInstrumentation, null), /* @__PURE__ */ import_react2.default.createElement(SfStateProvider, { initialData }, children));
|
|
187
204
|
}
|
|
@@ -194,8 +211,18 @@ function createAlokaiContext() {
|
|
|
194
211
|
};
|
|
195
212
|
return __spreadValues({ AlokaiProvider, useSdk }, rest);
|
|
196
213
|
}
|
|
214
|
+
|
|
215
|
+
// src/env/env.ts
|
|
216
|
+
function env(key) {
|
|
217
|
+
var _a;
|
|
218
|
+
if (typeof window === "undefined") {
|
|
219
|
+
return process.env[key];
|
|
220
|
+
}
|
|
221
|
+
return (_a = window[PUBLIC_ENV_KEY]) == null ? void 0 : _a[key];
|
|
222
|
+
}
|
|
197
223
|
// Annotate the CommonJS export names for ESM import in node:
|
|
198
224
|
0 && (module.exports = {
|
|
199
225
|
createAlokaiContext,
|
|
200
|
-
createSfStateProvider
|
|
226
|
+
createSfStateProvider,
|
|
227
|
+
env
|
|
201
228
|
});
|
package/dist/client.mjs
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
|
+
PUBLIC_ENV_KEY,
|
|
3
4
|
__objRest,
|
|
4
5
|
__spreadProps,
|
|
5
|
-
__spreadValues
|
|
6
|
-
|
|
6
|
+
__spreadValues,
|
|
7
|
+
env,
|
|
8
|
+
getPublicEnv
|
|
9
|
+
} from "./chunk-NSPLXZD5.mjs";
|
|
7
10
|
|
|
8
11
|
// src/alokai-provider.tsx
|
|
9
12
|
import { AlokaiInstrumentation } from "@alokai/instrumentation-next-component";
|
|
@@ -125,7 +128,9 @@ function createAlokaiContext() {
|
|
|
125
128
|
vsfMetaTag.setAttribute("content", "Alokai Storefront");
|
|
126
129
|
document.head.appendChild(vsfMetaTag);
|
|
127
130
|
`;
|
|
128
|
-
|
|
131
|
+
const publicEnv = typeof window === "undefined" ? getPublicEnv() : void 0;
|
|
132
|
+
const envScript = publicEnv ? `window['${PUBLIC_ENV_KEY}'] = ${JSON.stringify(publicEnv)};` : "";
|
|
133
|
+
return /* @__PURE__ */ React2.createElement(SdkContext.Provider, { value: sdk }, publicEnv && /* @__PURE__ */ React2.createElement(Script, { id: "alokaiEnv", strategy: "beforeInteractive" }, envScript), /* @__PURE__ */ React2.createElement(Script, { id: "vsfMetaTag", strategy: "beforeInteractive" }, `
|
|
129
134
|
${metaTagScript}
|
|
130
135
|
`), /* @__PURE__ */ React2.createElement(AlokaiInstrumentation, null), /* @__PURE__ */ React2.createElement(SfStateProvider, { initialData }, children));
|
|
131
136
|
}
|
|
@@ -140,5 +145,6 @@ function createAlokaiContext() {
|
|
|
140
145
|
}
|
|
141
146
|
export {
|
|
142
147
|
createAlokaiContext,
|
|
143
|
-
createSfStateProvider
|
|
148
|
+
createSfStateProvider,
|
|
149
|
+
env
|
|
144
150
|
};
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { d as CreateSdkOptions, f as Config, g as CreateSdkReturn, I as InjectedContext } from './types-FGnrBhjy.mjs';
|
|
2
|
+
export { e as env } from './types-FGnrBhjy.mjs';
|
|
1
3
|
import * as _alokai_connect_logger from '@alokai/connect/logger';
|
|
2
4
|
import { NextRequest, NextResponse } from 'next/server';
|
|
3
5
|
import { buildModule } from '@alokai/connect/sdk';
|
|
4
6
|
export { defineGetConfigSwitcherHeader } from '@alokai/connect/sdk';
|
|
5
|
-
import { d as CreateSdkOptions, e as Config, f as CreateSdkReturn, I as InjectedContext } from './types-D5y1qo72.mjs';
|
|
6
7
|
import 'next/headers';
|
|
7
8
|
import 'react';
|
|
8
9
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { d as CreateSdkOptions, f as Config, g as CreateSdkReturn, I as InjectedContext } from './types-FGnrBhjy.js';
|
|
2
|
+
export { e as env } from './types-FGnrBhjy.js';
|
|
1
3
|
import * as _alokai_connect_logger from '@alokai/connect/logger';
|
|
2
4
|
import { NextRequest, NextResponse } from 'next/server';
|
|
3
5
|
import { buildModule } from '@alokai/connect/sdk';
|
|
4
6
|
export { defineGetConfigSwitcherHeader } from '@alokai/connect/sdk';
|
|
5
|
-
import { d as CreateSdkOptions, e as Config, f as CreateSdkReturn, I as InjectedContext } from './types-D5y1qo72.js';
|
|
6
7
|
import 'next/headers';
|
|
7
8
|
import 'react';
|
|
8
9
|
|
package/dist/index.js
CHANGED
|
@@ -33,6 +33,26 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
33
33
|
return to;
|
|
34
34
|
};
|
|
35
35
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
36
|
+
var __async = (__this, __arguments, generator) => {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
var fulfilled = (value) => {
|
|
39
|
+
try {
|
|
40
|
+
step(generator.next(value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var rejected = (value) => {
|
|
46
|
+
try {
|
|
47
|
+
step(generator.throw(value));
|
|
48
|
+
} catch (e) {
|
|
49
|
+
reject(e);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
53
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
54
|
+
});
|
|
55
|
+
};
|
|
36
56
|
|
|
37
57
|
// src/index.ts
|
|
38
58
|
var src_exports = {};
|
|
@@ -43,10 +63,23 @@ __export(src_exports, {
|
|
|
43
63
|
defineGetConfigSwitcherHeader: () => import_sdk2.defineGetConfigSwitcherHeader,
|
|
44
64
|
defineSdkConfig: () => defineSdkConfig,
|
|
45
65
|
defineSdkModule: () => defineSdkModule,
|
|
66
|
+
env: () => env,
|
|
46
67
|
resolveSdkOptions: () => resolveSdkOptions
|
|
47
68
|
});
|
|
48
69
|
module.exports = __toCommonJS(src_exports);
|
|
49
70
|
|
|
71
|
+
// src/env/constants.ts
|
|
72
|
+
var PUBLIC_ENV_KEY = "__ALOKAI_ENV__";
|
|
73
|
+
|
|
74
|
+
// src/env/env.ts
|
|
75
|
+
function env(key) {
|
|
76
|
+
var _a;
|
|
77
|
+
if (typeof window === "undefined") {
|
|
78
|
+
return process.env[key];
|
|
79
|
+
}
|
|
80
|
+
return (_a = window[PUBLIC_ENV_KEY]) == null ? void 0 : _a[key];
|
|
81
|
+
}
|
|
82
|
+
|
|
50
83
|
// src/logger/index.ts
|
|
51
84
|
var import_logger = require("@alokai/connect/logger");
|
|
52
85
|
|
|
@@ -132,19 +165,21 @@ function normalizeRequestHeaders(requestHeaders) {
|
|
|
132
165
|
function resolveDynamicContext(context) {
|
|
133
166
|
return __spreadProps(__spreadValues({}, context), {
|
|
134
167
|
getRequestHeaders() {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
Object.
|
|
141
|
-
(
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
168
|
+
return __async(this, null, function* () {
|
|
169
|
+
var _a2;
|
|
170
|
+
const normalizedHeaders = normalizeRequestHeaders(
|
|
171
|
+
yield (_a2 = context.getRequestHeaders) == null ? void 0 : _a2.call(context)
|
|
172
|
+
);
|
|
173
|
+
const requestHeaders = Object.fromEntries(
|
|
174
|
+
Object.entries(normalizedHeaders).filter(
|
|
175
|
+
([key]) => !BLACKLISTED_HEADERS.has(key)
|
|
176
|
+
)
|
|
177
|
+
);
|
|
178
|
+
if (context.getLocale) {
|
|
179
|
+
requestHeaders["x-alokai-locale"] = context.getLocale();
|
|
180
|
+
}
|
|
181
|
+
return requestHeaders;
|
|
182
|
+
});
|
|
148
183
|
}
|
|
149
184
|
});
|
|
150
185
|
}
|
|
@@ -198,5 +233,6 @@ function buildModules(modules) {
|
|
|
198
233
|
defineGetConfigSwitcherHeader,
|
|
199
234
|
defineSdkConfig,
|
|
200
235
|
defineSdkModule,
|
|
236
|
+
env,
|
|
201
237
|
resolveSdkOptions
|
|
202
238
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
+
__async,
|
|
2
3
|
__spreadProps,
|
|
3
|
-
__spreadValues
|
|
4
|
-
|
|
4
|
+
__spreadValues,
|
|
5
|
+
env
|
|
6
|
+
} from "./chunk-NSPLXZD5.mjs";
|
|
5
7
|
|
|
6
8
|
// src/logger/index.ts
|
|
7
9
|
import { LoggerFactory, LoggerType } from "@alokai/connect/logger";
|
|
@@ -88,19 +90,21 @@ function normalizeRequestHeaders(requestHeaders) {
|
|
|
88
90
|
function resolveDynamicContext(context) {
|
|
89
91
|
return __spreadProps(__spreadValues({}, context), {
|
|
90
92
|
getRequestHeaders() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Object.
|
|
97
|
-
(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
93
|
+
return __async(this, null, function* () {
|
|
94
|
+
var _a2;
|
|
95
|
+
const normalizedHeaders = normalizeRequestHeaders(
|
|
96
|
+
yield (_a2 = context.getRequestHeaders) == null ? void 0 : _a2.call(context)
|
|
97
|
+
);
|
|
98
|
+
const requestHeaders = Object.fromEntries(
|
|
99
|
+
Object.entries(normalizedHeaders).filter(
|
|
100
|
+
([key]) => !BLACKLISTED_HEADERS.has(key)
|
|
101
|
+
)
|
|
102
|
+
);
|
|
103
|
+
if (context.getLocale) {
|
|
104
|
+
requestHeaders["x-alokai-locale"] = context.getLocale();
|
|
105
|
+
}
|
|
106
|
+
return requestHeaders;
|
|
107
|
+
});
|
|
104
108
|
}
|
|
105
109
|
});
|
|
106
110
|
}
|
|
@@ -153,5 +157,6 @@ export {
|
|
|
153
157
|
defineGetConfigSwitcherHeader,
|
|
154
158
|
defineSdkConfig,
|
|
155
159
|
defineSdkModule,
|
|
160
|
+
env,
|
|
156
161
|
resolveSdkOptions
|
|
157
162
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SDKApi, buildModule, middlewareModule } from '@alokai/connect/sdk';
|
|
2
|
-
import { cookies
|
|
2
|
+
import { cookies } from 'next/headers';
|
|
3
3
|
import React, { PropsWithChildren, ReactNode } from 'react';
|
|
4
4
|
|
|
5
5
|
type Maybe<TType> = null | TType;
|
|
@@ -107,8 +107,11 @@ interface CreateSdkOptions {
|
|
|
107
107
|
middleware: MiddlewareConfig;
|
|
108
108
|
multistore?: MultistoreConfig;
|
|
109
109
|
}
|
|
110
|
-
type Cookies = ReturnType<typeof cookies
|
|
111
|
-
type
|
|
110
|
+
type Cookies = Awaited<ReturnType<typeof cookies>>;
|
|
111
|
+
type RequestHeaders = {
|
|
112
|
+
cookies: Cookies;
|
|
113
|
+
headers: Headers;
|
|
114
|
+
} | Headers | undefined;
|
|
112
115
|
type GetSdkContext = {
|
|
113
116
|
/**
|
|
114
117
|
* A function that returns the current locale string;
|
|
@@ -117,13 +120,10 @@ type GetSdkContext = {
|
|
|
117
120
|
/**
|
|
118
121
|
* A function that returns the request headers.
|
|
119
122
|
*/
|
|
120
|
-
getRequestHeaders?: () =>
|
|
121
|
-
cookies: Cookies;
|
|
122
|
-
headers: NextHeaders;
|
|
123
|
-
} | NextHeaders;
|
|
123
|
+
getRequestHeaders?: () => Promise<RequestHeaders> | RequestHeaders;
|
|
124
124
|
};
|
|
125
125
|
type DynamicContext = {
|
|
126
|
-
getRequestHeaders: () => Record<string, string | string[]
|
|
126
|
+
getRequestHeaders: () => Promise<Record<string, string | string[]>>;
|
|
127
127
|
};
|
|
128
128
|
type StaticContext = {
|
|
129
129
|
buildModule: typeof buildModule;
|
|
@@ -164,7 +164,7 @@ interface CreateSdkReturn<TConfig extends Record<string, any>> {
|
|
|
164
164
|
*
|
|
165
165
|
* export const getServerSideProps: GetServerSideProps = async ({ req, locale }) => {
|
|
166
166
|
* const sdk = await getSdk({
|
|
167
|
-
* getRequestHeaders: () => req.headers,
|
|
167
|
+
* getRequestHeaders: () => Promise.resolve(req.headers),
|
|
168
168
|
* getLocale: () => locale,
|
|
169
169
|
* });
|
|
170
170
|
* const { products } = await sdk.unified.getProducts();
|
|
@@ -206,4 +206,36 @@ type CreateSdkContextReturn<TSdk extends SDKApi<any>, TSfContract extends SfCont
|
|
|
206
206
|
useSfLocaleState: ReturnType<typeof createSfStateProvider<TSfContract>>["useSfLocaleState"];
|
|
207
207
|
}>;
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
/**
|
|
210
|
+
* Retrieves an environment variable value.
|
|
211
|
+
* On the server side, it reads from process.env.
|
|
212
|
+
* On the client side, it reads from window.__ALOKAI_ENV__ to support runtime environment variables.
|
|
213
|
+
*
|
|
214
|
+
* @param key - The environment variable key (e.g., "NEXT_PUBLIC_API_URL")
|
|
215
|
+
* @returns The environment variable value or undefined if not found
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```tsx
|
|
219
|
+
* import { env } from "@vue-storefront/next/client";
|
|
220
|
+
*
|
|
221
|
+
* const apiUrl = env("NEXT_PUBLIC_API_URL");
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
declare function env(key: string): string | undefined;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Type representing environment variables as key-value pairs
|
|
228
|
+
*/
|
|
229
|
+
interface PublicEnv {
|
|
230
|
+
[key: string]: string | undefined;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Extended window interface to include Alokai environment variables
|
|
234
|
+
*/
|
|
235
|
+
declare global {
|
|
236
|
+
interface Window {
|
|
237
|
+
__ALOKAI_ENV__?: PublicEnv;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export { type CreateSdkContextReturn as C, type InjectedContext as I, type Maybe as M, type SfContract as S, type SfStateProps as a, type SfState as b, createSfStateProvider as c, type CreateSdkOptions as d, env as e, type Config as f, type CreateSdkReturn as g };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SDKApi, buildModule, middlewareModule } from '@alokai/connect/sdk';
|
|
2
|
-
import { cookies
|
|
2
|
+
import { cookies } from 'next/headers';
|
|
3
3
|
import React, { PropsWithChildren, ReactNode } from 'react';
|
|
4
4
|
|
|
5
5
|
type Maybe<TType> = null | TType;
|
|
@@ -107,8 +107,11 @@ interface CreateSdkOptions {
|
|
|
107
107
|
middleware: MiddlewareConfig;
|
|
108
108
|
multistore?: MultistoreConfig;
|
|
109
109
|
}
|
|
110
|
-
type Cookies = ReturnType<typeof cookies
|
|
111
|
-
type
|
|
110
|
+
type Cookies = Awaited<ReturnType<typeof cookies>>;
|
|
111
|
+
type RequestHeaders = {
|
|
112
|
+
cookies: Cookies;
|
|
113
|
+
headers: Headers;
|
|
114
|
+
} | Headers | undefined;
|
|
112
115
|
type GetSdkContext = {
|
|
113
116
|
/**
|
|
114
117
|
* A function that returns the current locale string;
|
|
@@ -117,13 +120,10 @@ type GetSdkContext = {
|
|
|
117
120
|
/**
|
|
118
121
|
* A function that returns the request headers.
|
|
119
122
|
*/
|
|
120
|
-
getRequestHeaders?: () =>
|
|
121
|
-
cookies: Cookies;
|
|
122
|
-
headers: NextHeaders;
|
|
123
|
-
} | NextHeaders;
|
|
123
|
+
getRequestHeaders?: () => Promise<RequestHeaders> | RequestHeaders;
|
|
124
124
|
};
|
|
125
125
|
type DynamicContext = {
|
|
126
|
-
getRequestHeaders: () => Record<string, string | string[]
|
|
126
|
+
getRequestHeaders: () => Promise<Record<string, string | string[]>>;
|
|
127
127
|
};
|
|
128
128
|
type StaticContext = {
|
|
129
129
|
buildModule: typeof buildModule;
|
|
@@ -164,7 +164,7 @@ interface CreateSdkReturn<TConfig extends Record<string, any>> {
|
|
|
164
164
|
*
|
|
165
165
|
* export const getServerSideProps: GetServerSideProps = async ({ req, locale }) => {
|
|
166
166
|
* const sdk = await getSdk({
|
|
167
|
-
* getRequestHeaders: () => req.headers,
|
|
167
|
+
* getRequestHeaders: () => Promise.resolve(req.headers),
|
|
168
168
|
* getLocale: () => locale,
|
|
169
169
|
* });
|
|
170
170
|
* const { products } = await sdk.unified.getProducts();
|
|
@@ -206,4 +206,36 @@ type CreateSdkContextReturn<TSdk extends SDKApi<any>, TSfContract extends SfCont
|
|
|
206
206
|
useSfLocaleState: ReturnType<typeof createSfStateProvider<TSfContract>>["useSfLocaleState"];
|
|
207
207
|
}>;
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
/**
|
|
210
|
+
* Retrieves an environment variable value.
|
|
211
|
+
* On the server side, it reads from process.env.
|
|
212
|
+
* On the client side, it reads from window.__ALOKAI_ENV__ to support runtime environment variables.
|
|
213
|
+
*
|
|
214
|
+
* @param key - The environment variable key (e.g., "NEXT_PUBLIC_API_URL")
|
|
215
|
+
* @returns The environment variable value or undefined if not found
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```tsx
|
|
219
|
+
* import { env } from "@vue-storefront/next/client";
|
|
220
|
+
*
|
|
221
|
+
* const apiUrl = env("NEXT_PUBLIC_API_URL");
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
declare function env(key: string): string | undefined;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Type representing environment variables as key-value pairs
|
|
228
|
+
*/
|
|
229
|
+
interface PublicEnv {
|
|
230
|
+
[key: string]: string | undefined;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Extended window interface to include Alokai environment variables
|
|
234
|
+
*/
|
|
235
|
+
declare global {
|
|
236
|
+
interface Window {
|
|
237
|
+
__ALOKAI_ENV__?: PublicEnv;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export { type CreateSdkContextReturn as C, type InjectedContext as I, type Maybe as M, type SfContract as S, type SfStateProps as a, type SfState as b, createSfStateProvider as c, type CreateSdkOptions as d, env as e, type Config as f, type CreateSdkReturn as g };
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@vue-storefront/next",
|
|
3
3
|
"description": "Alokai dedicated features for Next.js",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "7.0.0-next.
|
|
5
|
+
"version": "7.0.0-next.2",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"zustand": "^4.5.4"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@alokai/connect": "^1.
|
|
34
|
+
"@alokai/connect": "^1.3.0-next.0",
|
|
35
35
|
"@types/react": "18.3.2",
|
|
36
36
|
"@types/react-dom": "18.3.0",
|
|
37
37
|
"eslint": "9.23.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"vitest": "2.1.9"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@alokai/connect": "^1.
|
|
47
|
+
"@alokai/connect": "^1.3.0-next.0",
|
|
48
48
|
"next": "^15.0.0",
|
|
49
49
|
"react": "^19.0.0"
|
|
50
50
|
},
|