@streamlayer/react 0.2.11 → 0.3.1
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/README.md +6 -0
- package/{main.cjs → lib/index.cjs} +48 -40
- package/{main.js → lib/index.js} +42 -34
- package/lib/types/src/app/app.d.ts +3 -0
- package/lib/types/src/app/provider.d.ts +20 -0
- package/lib/types/src/app/useStreamLayerApp.d.ts +7 -0
- package/lib/types/src/index.d.ts +3 -0
- package/package.json +9 -11
package/README.md
ADDED
|
@@ -27,15 +27,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
|
-
// packages/react/src/
|
|
31
|
-
var
|
|
32
|
-
__export(
|
|
30
|
+
// packages/react/src/index.tsx
|
|
31
|
+
var src_exports = {};
|
|
32
|
+
__export(src_exports, {
|
|
33
33
|
StreamLayerProvider: () => StreamLayerProvider,
|
|
34
34
|
StreamLayerSDKReact: () => StreamLayerSDKReact,
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
useStreamLayer: () => useStreamLayer,
|
|
36
|
+
useStreamLayerApp: () => useStreamLayerApp
|
|
37
37
|
});
|
|
38
|
-
module.exports = __toCommonJS(
|
|
38
|
+
module.exports = __toCommonJS(src_exports);
|
|
39
39
|
|
|
40
40
|
// node_modules/.pnpm/@esbuild-plugins+node-globals-polyfill@0.2.3_esbuild@0.19.5/node_modules/@esbuild-plugins/node-globals-polyfill/process.js
|
|
41
41
|
function defaultSetTimout() {
|
|
@@ -350,25 +350,25 @@ var import_react_digit_input = __toESM(require("react-digit-input"), 1);
|
|
|
350
350
|
var import_connect_web = require("@bufbuild/connect-web");
|
|
351
351
|
var import_connect = require("@connectrpc/connect");
|
|
352
352
|
var import_users_connect = require("@streamlayer/sl-eslib/users/users_connect");
|
|
353
|
-
var requestLoginCode = async (phone) => {
|
|
353
|
+
var requestLoginCode = async (host, phone) => {
|
|
354
354
|
const transport2 = (0, import_connect_web.createGrpcWebTransport)({
|
|
355
|
-
baseUrl:
|
|
355
|
+
baseUrl: host
|
|
356
356
|
});
|
|
357
357
|
const userClient = (0, import_connect.createPromiseClient)(import_users_connect.Users, transport2);
|
|
358
358
|
await userClient.requestPassword({ id: phone });
|
|
359
359
|
return true;
|
|
360
360
|
};
|
|
361
|
-
var register = async (phone) => {
|
|
361
|
+
var register = async (host, phone) => {
|
|
362
362
|
const transport2 = (0, import_connect_web.createGrpcWebTransport)({
|
|
363
|
-
baseUrl:
|
|
363
|
+
baseUrl: host
|
|
364
364
|
});
|
|
365
365
|
const userClient = (0, import_connect.createPromiseClient)(import_users_connect.Users, transport2);
|
|
366
366
|
await userClient.register({ id: phone });
|
|
367
367
|
return true;
|
|
368
368
|
};
|
|
369
|
-
var login = async (phone, code) => {
|
|
369
|
+
var login = async (host, phone, code) => {
|
|
370
370
|
const transport2 = (0, import_connect_web.createGrpcWebTransport)({
|
|
371
|
-
baseUrl:
|
|
371
|
+
baseUrl: host
|
|
372
372
|
});
|
|
373
373
|
const userClient = (0, import_connect.createPromiseClient)(import_users_connect.Users, transport2);
|
|
374
374
|
const res = await userClient.login({ id: phone, password: code });
|
|
@@ -521,7 +521,7 @@ var Digits = import_styled3.default.div`
|
|
|
521
521
|
|
|
522
522
|
// packages/react-ui/src/lib/gamification/login/index.tsx
|
|
523
523
|
var import_jsx_runtime3 = require("@emotion/react/jsx-runtime");
|
|
524
|
-
var Login = ({ login: login2, anonymousLogin }) => {
|
|
524
|
+
var Login = ({ login: login2, anonymousLogin, host }) => {
|
|
525
525
|
const [phoneInput, setPhoneInput] = (0, import_react3.useState)("");
|
|
526
526
|
const [phone, setPhone] = (0, import_react3.useState)("");
|
|
527
527
|
const [code, setCode] = (0, import_react3.useState)("");
|
|
@@ -536,9 +536,9 @@ var Login = ({ login: login2, anonymousLogin }) => {
|
|
|
536
536
|
try {
|
|
537
537
|
const parsed = phoneInput.replaceAll("+", "");
|
|
538
538
|
try {
|
|
539
|
-
await requestLoginCode(parsed);
|
|
539
|
+
await requestLoginCode(host, parsed);
|
|
540
540
|
} catch (err) {
|
|
541
|
-
await register(parsed);
|
|
541
|
+
await register(host, parsed);
|
|
542
542
|
}
|
|
543
543
|
setPhone(parsed);
|
|
544
544
|
} catch (err) {
|
|
@@ -549,7 +549,7 @@ var Login = ({ login: login2, anonymousLogin }) => {
|
|
|
549
549
|
e.preventDefault();
|
|
550
550
|
if (phone && code) {
|
|
551
551
|
try {
|
|
552
|
-
const token = await login(phone, code);
|
|
552
|
+
const token = await login(host, phone, code);
|
|
553
553
|
if (token && login2) {
|
|
554
554
|
await login2(token);
|
|
555
555
|
} else {
|
|
@@ -568,7 +568,7 @@ var Login = ({ login: login2, anonymousLogin }) => {
|
|
|
568
568
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FormInputContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_phone_number_input.default, { value: phoneInput, onChange: (val) => setPhoneInput(`${val}`) }) }),
|
|
569
569
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FormSubmit, { disabled: !(0, import_react_phone_number_input.isValidPhoneNumber)(phoneInput), type: "submit", children: "request code" })
|
|
570
570
|
] }),
|
|
571
|
-
anonymousLogin && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FormSubmit, { style: { display: "block", margin: "auto" },
|
|
571
|
+
anonymousLogin && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FormSubmit, { style: { display: "block", margin: "auto" }, onClick: anonymousLogin, children: "anonymous login" })
|
|
572
572
|
] }),
|
|
573
573
|
phone && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Form, { onSubmit: loginByCode, children: [
|
|
574
574
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FormTitle, { children: "Enter Verification Code" }),
|
|
@@ -1317,7 +1317,7 @@ var UserSummary = ({ store: store2 }) => {
|
|
|
1317
1317
|
winStreak: user.summary.streak,
|
|
1318
1318
|
correct: user.summary.correct,
|
|
1319
1319
|
incorrect: user.summary.incorrect,
|
|
1320
|
-
successRate: user.percentage?.
|
|
1320
|
+
successRate: user.percentage?.correct
|
|
1321
1321
|
}
|
|
1322
1322
|
);
|
|
1323
1323
|
};
|
|
@@ -1681,13 +1681,20 @@ var LoginComponent = ({ sdk }) => {
|
|
|
1681
1681
|
throw err;
|
|
1682
1682
|
}
|
|
1683
1683
|
};
|
|
1684
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Login, { login: login2, anonymousLogin: sdk.anonymousAuthorization });
|
|
1684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Login, { login: login2, anonymousLogin: sdk.anonymousAuthorization, host: sdk.host });
|
|
1685
1685
|
};
|
|
1686
1686
|
|
|
1687
1687
|
// packages/react-ui/src/lib/demo/index.tsx
|
|
1688
1688
|
var import_jsx_runtime21 = require("@emotion/react/jsx-runtime");
|
|
1689
1689
|
var Demo = ({ sdk }) => {
|
|
1690
|
+
const organization = (0, import_react12.useStore)(sdk.organizationStore());
|
|
1690
1691
|
const user = (0, import_react12.useStore)(sdk.getUserStore());
|
|
1692
|
+
if (organization.loading) {
|
|
1693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children: "authentificating..." });
|
|
1694
|
+
}
|
|
1695
|
+
if (!organization.data) {
|
|
1696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children: "wrong sdk key..." });
|
|
1697
|
+
}
|
|
1691
1698
|
if (user.loading) {
|
|
1692
1699
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children: "authentificating..." });
|
|
1693
1700
|
}
|
|
@@ -2175,12 +2182,14 @@ var Transport = class {
|
|
|
2175
2182
|
};
|
|
2176
2183
|
transport;
|
|
2177
2184
|
nanoquery;
|
|
2185
|
+
host;
|
|
2178
2186
|
interceptors = [];
|
|
2179
2187
|
$headers;
|
|
2180
2188
|
clients;
|
|
2181
2189
|
callbackClients;
|
|
2182
2190
|
subscriptions;
|
|
2183
|
-
constructor() {
|
|
2191
|
+
constructor(host) {
|
|
2192
|
+
this.host = host;
|
|
2184
2193
|
this.$headers = new MapStore(
|
|
2185
2194
|
createMapStore({
|
|
2186
2195
|
["sl-device-id"]: process.env.NX_DEVICE_ID || "sdk-web-dev"
|
|
@@ -2194,7 +2203,7 @@ var Transport = class {
|
|
|
2194
2203
|
const [createFetcherStore, createMutatorStore, utils] = (0, import_query.nanoquery)();
|
|
2195
2204
|
this.nanoquery = { createFetcherStore, createMutatorStore, utils };
|
|
2196
2205
|
this.transport = (0, import_connect_web2.createGrpcWebTransport)({
|
|
2197
|
-
baseUrl:
|
|
2206
|
+
baseUrl: host,
|
|
2198
2207
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2199
2208
|
// @ts-ignore
|
|
2200
2209
|
interceptors: this.interceptors,
|
|
@@ -2278,17 +2287,12 @@ var Transport = class {
|
|
|
2278
2287
|
if (this.interceptors.length !== 0) {
|
|
2279
2288
|
return;
|
|
2280
2289
|
}
|
|
2281
|
-
const auth = (next) =>
|
|
2290
|
+
const auth = (next) => (req) => {
|
|
2282
2291
|
const headers = this.$headers.getValues();
|
|
2283
2292
|
for (const header in headers) {
|
|
2284
2293
|
req.header.set(header, headers[header]);
|
|
2285
2294
|
}
|
|
2286
|
-
|
|
2287
|
-
return await next(req);
|
|
2288
|
-
} catch (err) {
|
|
2289
|
-
console.log({ err, req }, "catch err");
|
|
2290
|
-
throw err;
|
|
2291
|
-
}
|
|
2295
|
+
return next(req);
|
|
2292
2296
|
};
|
|
2293
2297
|
this.interceptors.push(auth);
|
|
2294
2298
|
this.interceptors.push(__GRPC_DEVTOOLS_EXTENSION__());
|
|
@@ -2418,7 +2422,8 @@ var $organizationAdvertising = ($enabled, transport2) => {
|
|
|
2418
2422
|
|
|
2419
2423
|
// packages/sdk-web-api/src/index.ts
|
|
2420
2424
|
var transport = (instance, opts, done) => {
|
|
2421
|
-
instance.transport = new Transport();
|
|
2425
|
+
instance.transport = new Transport(opts.host);
|
|
2426
|
+
instance.sdk.host = instance.transport.host;
|
|
2422
2427
|
instance.transport.setSdkKey(opts.sdkKey);
|
|
2423
2428
|
done();
|
|
2424
2429
|
};
|
|
@@ -2850,6 +2855,7 @@ var store = (instance, opts, done) => {
|
|
|
2850
2855
|
instance.store = new CoreStore(instance.transport);
|
|
2851
2856
|
instance.stores = instance.store.getValues();
|
|
2852
2857
|
instance.sdk.sdkStore = instance.store.getStore();
|
|
2858
|
+
instance.sdk.organizationStore = () => instance.stores.organizationSettings.getStore();
|
|
2853
2859
|
instance.storeSubscribe = () => {
|
|
2854
2860
|
const processSettings = (source, settings) => {
|
|
2855
2861
|
if (!settings?.overlays)
|
|
@@ -2957,7 +2963,7 @@ var bypass = async (instance, opts, done) => {
|
|
|
2957
2963
|
}
|
|
2958
2964
|
instance.sdk.authorizationBypass = async (schema, userKey) => {
|
|
2959
2965
|
await instance.auth.login(schema, userKey);
|
|
2960
|
-
localStorage.setItem("sl-user-schema",
|
|
2966
|
+
localStorage.setItem("sl-user-schema", "streamlayer:streamlayer");
|
|
2961
2967
|
};
|
|
2962
2968
|
instance.sdk.logout = () => {
|
|
2963
2969
|
instance.auth.logout();
|
|
@@ -3005,10 +3011,11 @@ var notifications = (instance, opts, done) => {
|
|
|
3005
3011
|
};
|
|
3006
3012
|
|
|
3007
3013
|
// packages/sdk-web/src/index.ts
|
|
3008
|
-
function StreamLayer(sdkKey) {
|
|
3014
|
+
function StreamLayer(sdkKey, production = true) {
|
|
3015
|
+
const host = production ? "https://grpc-web.streamlayer.io:443" : "https://grpc-web.next.streamlayer.io:443";
|
|
3009
3016
|
const streamLayer = (0, import_avvio.default)(/* @__PURE__ */ Object.create(null), { autostart: false });
|
|
3010
3017
|
streamLayer.use(core);
|
|
3011
|
-
streamLayer.use(transport, { sdkKey });
|
|
3018
|
+
streamLayer.use(transport, { sdkKey, host });
|
|
3012
3019
|
streamLayer.use(store);
|
|
3013
3020
|
streamLayer.use(bypass);
|
|
3014
3021
|
streamLayer.use(features);
|
|
@@ -3026,17 +3033,17 @@ function StreamLayer(sdkKey) {
|
|
|
3026
3033
|
return streamLayer;
|
|
3027
3034
|
}
|
|
3028
3035
|
|
|
3029
|
-
// packages/react/src/app/
|
|
3036
|
+
// packages/react/src/app/useStreamLayerApp.ts
|
|
3030
3037
|
var import_react14 = require("react");
|
|
3031
3038
|
window.instance = null;
|
|
3032
|
-
var
|
|
3039
|
+
var useStreamLayerApp = (sdkKey, plugins, production) => {
|
|
3033
3040
|
const [sdk, setSdk] = (0, import_react14.useState)(null);
|
|
3034
3041
|
(0, import_react14.useEffect)(() => {
|
|
3035
3042
|
let ignore = false;
|
|
3036
3043
|
if (!sdkKey) {
|
|
3037
3044
|
throw new Error("sdk key should be provided");
|
|
3038
3045
|
}
|
|
3039
|
-
const instance = StreamLayer(sdkKey);
|
|
3046
|
+
const instance = StreamLayer(sdkKey, production);
|
|
3040
3047
|
if (plugins) {
|
|
3041
3048
|
for (const plugin of plugins) {
|
|
3042
3049
|
instance.use(plugin);
|
|
@@ -3070,9 +3077,10 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
3070
3077
|
var StreamLayerProvider = ({
|
|
3071
3078
|
sdkKey,
|
|
3072
3079
|
plugins,
|
|
3073
|
-
children
|
|
3080
|
+
children,
|
|
3081
|
+
production = true
|
|
3074
3082
|
}) => {
|
|
3075
|
-
const streamLayer =
|
|
3083
|
+
const streamLayer = useStreamLayerApp(sdkKey, plugins, production);
|
|
3076
3084
|
const value = (0, import_react15.useMemo)(() => {
|
|
3077
3085
|
if (!streamLayer) {
|
|
3078
3086
|
return { status: 1 /* CONNECTED */ };
|
|
@@ -3085,7 +3093,7 @@ var StreamLayerProvider = ({
|
|
|
3085
3093
|
// packages/react/src/app/app.tsx
|
|
3086
3094
|
var import_react16 = require("react");
|
|
3087
3095
|
var import_jsx_runtime24 = require("@emotion/react/jsx-runtime");
|
|
3088
|
-
var
|
|
3096
|
+
var useStreamLayer = () => {
|
|
3089
3097
|
const { sdk } = (0, import_react16.useContext)(StreamLayerContext3);
|
|
3090
3098
|
return sdk;
|
|
3091
3099
|
};
|
|
@@ -3106,6 +3114,6 @@ var StreamLayerSDKReact = () => {
|
|
|
3106
3114
|
0 && (module.exports = {
|
|
3107
3115
|
StreamLayerProvider,
|
|
3108
3116
|
StreamLayerSDKReact,
|
|
3109
|
-
|
|
3110
|
-
|
|
3117
|
+
useStreamLayer,
|
|
3118
|
+
useStreamLayerApp
|
|
3111
3119
|
});
|
package/{main.js → lib/index.js}
RENAMED
|
@@ -317,25 +317,25 @@ import useDigitInput from "react-digit-input";
|
|
|
317
317
|
import { createGrpcWebTransport } from "@bufbuild/connect-web";
|
|
318
318
|
import { createPromiseClient } from "@connectrpc/connect";
|
|
319
319
|
import { Users } from "@streamlayer/sl-eslib/users/users_connect";
|
|
320
|
-
var requestLoginCode = async (phone) => {
|
|
320
|
+
var requestLoginCode = async (host, phone) => {
|
|
321
321
|
const transport2 = createGrpcWebTransport({
|
|
322
|
-
baseUrl:
|
|
322
|
+
baseUrl: host
|
|
323
323
|
});
|
|
324
324
|
const userClient = createPromiseClient(Users, transport2);
|
|
325
325
|
await userClient.requestPassword({ id: phone });
|
|
326
326
|
return true;
|
|
327
327
|
};
|
|
328
|
-
var register = async (phone) => {
|
|
328
|
+
var register = async (host, phone) => {
|
|
329
329
|
const transport2 = createGrpcWebTransport({
|
|
330
|
-
baseUrl:
|
|
330
|
+
baseUrl: host
|
|
331
331
|
});
|
|
332
332
|
const userClient = createPromiseClient(Users, transport2);
|
|
333
333
|
await userClient.register({ id: phone });
|
|
334
334
|
return true;
|
|
335
335
|
};
|
|
336
|
-
var login = async (phone, code) => {
|
|
336
|
+
var login = async (host, phone, code) => {
|
|
337
337
|
const transport2 = createGrpcWebTransport({
|
|
338
|
-
baseUrl:
|
|
338
|
+
baseUrl: host
|
|
339
339
|
});
|
|
340
340
|
const userClient = createPromiseClient(Users, transport2);
|
|
341
341
|
const res = await userClient.login({ id: phone, password: code });
|
|
@@ -488,7 +488,7 @@ var Digits = styled3.div`
|
|
|
488
488
|
|
|
489
489
|
// packages/react-ui/src/lib/gamification/login/index.tsx
|
|
490
490
|
import { jsx as jsx3, jsxs as jsxs2 } from "@emotion/react/jsx-runtime";
|
|
491
|
-
var Login = ({ login: login2, anonymousLogin }) => {
|
|
491
|
+
var Login = ({ login: login2, anonymousLogin, host }) => {
|
|
492
492
|
const [phoneInput, setPhoneInput] = useState("");
|
|
493
493
|
const [phone, setPhone] = useState("");
|
|
494
494
|
const [code, setCode] = useState("");
|
|
@@ -503,9 +503,9 @@ var Login = ({ login: login2, anonymousLogin }) => {
|
|
|
503
503
|
try {
|
|
504
504
|
const parsed = phoneInput.replaceAll("+", "");
|
|
505
505
|
try {
|
|
506
|
-
await requestLoginCode(parsed);
|
|
506
|
+
await requestLoginCode(host, parsed);
|
|
507
507
|
} catch (err) {
|
|
508
|
-
await register(parsed);
|
|
508
|
+
await register(host, parsed);
|
|
509
509
|
}
|
|
510
510
|
setPhone(parsed);
|
|
511
511
|
} catch (err) {
|
|
@@ -516,7 +516,7 @@ var Login = ({ login: login2, anonymousLogin }) => {
|
|
|
516
516
|
e.preventDefault();
|
|
517
517
|
if (phone && code) {
|
|
518
518
|
try {
|
|
519
|
-
const token = await login(phone, code);
|
|
519
|
+
const token = await login(host, phone, code);
|
|
520
520
|
if (token && login2) {
|
|
521
521
|
await login2(token);
|
|
522
522
|
} else {
|
|
@@ -535,7 +535,7 @@ var Login = ({ login: login2, anonymousLogin }) => {
|
|
|
535
535
|
/* @__PURE__ */ jsx3(FormInputContainer, { children: /* @__PURE__ */ jsx3(PhoneInput, { value: phoneInput, onChange: (val) => setPhoneInput(`${val}`) }) }),
|
|
536
536
|
/* @__PURE__ */ jsx3(FormSubmit, { disabled: !isValidPhoneNumber(phoneInput), type: "submit", children: "request code" })
|
|
537
537
|
] }),
|
|
538
|
-
anonymousLogin && /* @__PURE__ */ jsx3(FormSubmit, { style: { display: "block", margin: "auto" },
|
|
538
|
+
anonymousLogin && /* @__PURE__ */ jsx3(FormSubmit, { style: { display: "block", margin: "auto" }, onClick: anonymousLogin, children: "anonymous login" })
|
|
539
539
|
] }),
|
|
540
540
|
phone && /* @__PURE__ */ jsxs2(Form, { onSubmit: loginByCode, children: [
|
|
541
541
|
/* @__PURE__ */ jsx3(FormTitle, { children: "Enter Verification Code" }),
|
|
@@ -1284,7 +1284,7 @@ var UserSummary = ({ store: store2 }) => {
|
|
|
1284
1284
|
winStreak: user.summary.streak,
|
|
1285
1285
|
correct: user.summary.correct,
|
|
1286
1286
|
incorrect: user.summary.incorrect,
|
|
1287
|
-
successRate: user.percentage?.
|
|
1287
|
+
successRate: user.percentage?.correct
|
|
1288
1288
|
}
|
|
1289
1289
|
);
|
|
1290
1290
|
};
|
|
@@ -1648,13 +1648,20 @@ var LoginComponent = ({ sdk }) => {
|
|
|
1648
1648
|
throw err;
|
|
1649
1649
|
}
|
|
1650
1650
|
};
|
|
1651
|
-
return /* @__PURE__ */ jsx20(Login, { login: login2, anonymousLogin: sdk.anonymousAuthorization });
|
|
1651
|
+
return /* @__PURE__ */ jsx20(Login, { login: login2, anonymousLogin: sdk.anonymousAuthorization, host: sdk.host });
|
|
1652
1652
|
};
|
|
1653
1653
|
|
|
1654
1654
|
// packages/react-ui/src/lib/demo/index.tsx
|
|
1655
1655
|
import { jsx as jsx21 } from "@emotion/react/jsx-runtime";
|
|
1656
1656
|
var Demo = ({ sdk }) => {
|
|
1657
|
+
const organization = useStore6(sdk.organizationStore());
|
|
1657
1658
|
const user = useStore6(sdk.getUserStore());
|
|
1659
|
+
if (organization.loading) {
|
|
1660
|
+
return /* @__PURE__ */ jsx21("div", { children: "authentificating..." });
|
|
1661
|
+
}
|
|
1662
|
+
if (!organization.data) {
|
|
1663
|
+
return /* @__PURE__ */ jsx21("div", { children: "wrong sdk key..." });
|
|
1664
|
+
}
|
|
1658
1665
|
if (user.loading) {
|
|
1659
1666
|
return /* @__PURE__ */ jsx21("div", { children: "authentificating..." });
|
|
1660
1667
|
}
|
|
@@ -2146,12 +2153,14 @@ var Transport = class {
|
|
|
2146
2153
|
};
|
|
2147
2154
|
transport;
|
|
2148
2155
|
nanoquery;
|
|
2156
|
+
host;
|
|
2149
2157
|
interceptors = [];
|
|
2150
2158
|
$headers;
|
|
2151
2159
|
clients;
|
|
2152
2160
|
callbackClients;
|
|
2153
2161
|
subscriptions;
|
|
2154
|
-
constructor() {
|
|
2162
|
+
constructor(host) {
|
|
2163
|
+
this.host = host;
|
|
2155
2164
|
this.$headers = new MapStore(
|
|
2156
2165
|
createMapStore({
|
|
2157
2166
|
["sl-device-id"]: process.env.NX_DEVICE_ID || "sdk-web-dev"
|
|
@@ -2165,7 +2174,7 @@ var Transport = class {
|
|
|
2165
2174
|
const [createFetcherStore, createMutatorStore, utils] = nanoquery();
|
|
2166
2175
|
this.nanoquery = { createFetcherStore, createMutatorStore, utils };
|
|
2167
2176
|
this.transport = createGrpcWebTransport2({
|
|
2168
|
-
baseUrl:
|
|
2177
|
+
baseUrl: host,
|
|
2169
2178
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2170
2179
|
// @ts-ignore
|
|
2171
2180
|
interceptors: this.interceptors,
|
|
@@ -2249,17 +2258,12 @@ var Transport = class {
|
|
|
2249
2258
|
if (this.interceptors.length !== 0) {
|
|
2250
2259
|
return;
|
|
2251
2260
|
}
|
|
2252
|
-
const auth = (next) =>
|
|
2261
|
+
const auth = (next) => (req) => {
|
|
2253
2262
|
const headers = this.$headers.getValues();
|
|
2254
2263
|
for (const header in headers) {
|
|
2255
2264
|
req.header.set(header, headers[header]);
|
|
2256
2265
|
}
|
|
2257
|
-
|
|
2258
|
-
return await next(req);
|
|
2259
|
-
} catch (err) {
|
|
2260
|
-
console.log({ err, req }, "catch err");
|
|
2261
|
-
throw err;
|
|
2262
|
-
}
|
|
2266
|
+
return next(req);
|
|
2263
2267
|
};
|
|
2264
2268
|
this.interceptors.push(auth);
|
|
2265
2269
|
this.interceptors.push(__GRPC_DEVTOOLS_EXTENSION__());
|
|
@@ -2389,7 +2393,8 @@ var $organizationAdvertising = ($enabled, transport2) => {
|
|
|
2389
2393
|
|
|
2390
2394
|
// packages/sdk-web-api/src/index.ts
|
|
2391
2395
|
var transport = (instance, opts, done) => {
|
|
2392
|
-
instance.transport = new Transport();
|
|
2396
|
+
instance.transport = new Transport(opts.host);
|
|
2397
|
+
instance.sdk.host = instance.transport.host;
|
|
2393
2398
|
instance.transport.setSdkKey(opts.sdkKey);
|
|
2394
2399
|
done();
|
|
2395
2400
|
};
|
|
@@ -2821,6 +2826,7 @@ var store = (instance, opts, done) => {
|
|
|
2821
2826
|
instance.store = new CoreStore(instance.transport);
|
|
2822
2827
|
instance.stores = instance.store.getValues();
|
|
2823
2828
|
instance.sdk.sdkStore = instance.store.getStore();
|
|
2829
|
+
instance.sdk.organizationStore = () => instance.stores.organizationSettings.getStore();
|
|
2824
2830
|
instance.storeSubscribe = () => {
|
|
2825
2831
|
const processSettings = (source, settings) => {
|
|
2826
2832
|
if (!settings?.overlays)
|
|
@@ -2928,7 +2934,7 @@ var bypass = async (instance, opts, done) => {
|
|
|
2928
2934
|
}
|
|
2929
2935
|
instance.sdk.authorizationBypass = async (schema, userKey) => {
|
|
2930
2936
|
await instance.auth.login(schema, userKey);
|
|
2931
|
-
localStorage.setItem("sl-user-schema",
|
|
2937
|
+
localStorage.setItem("sl-user-schema", "streamlayer:streamlayer");
|
|
2932
2938
|
};
|
|
2933
2939
|
instance.sdk.logout = () => {
|
|
2934
2940
|
instance.auth.logout();
|
|
@@ -2976,10 +2982,11 @@ var notifications = (instance, opts, done) => {
|
|
|
2976
2982
|
};
|
|
2977
2983
|
|
|
2978
2984
|
// packages/sdk-web/src/index.ts
|
|
2979
|
-
function StreamLayer(sdkKey) {
|
|
2985
|
+
function StreamLayer(sdkKey, production = true) {
|
|
2986
|
+
const host = production ? "https://grpc-web.streamlayer.io:443" : "https://grpc-web.next.streamlayer.io:443";
|
|
2980
2987
|
const streamLayer = avvio(/* @__PURE__ */ Object.create(null), { autostart: false });
|
|
2981
2988
|
streamLayer.use(core);
|
|
2982
|
-
streamLayer.use(transport, { sdkKey });
|
|
2989
|
+
streamLayer.use(transport, { sdkKey, host });
|
|
2983
2990
|
streamLayer.use(store);
|
|
2984
2991
|
streamLayer.use(bypass);
|
|
2985
2992
|
streamLayer.use(features);
|
|
@@ -2997,17 +3004,17 @@ function StreamLayer(sdkKey) {
|
|
|
2997
3004
|
return streamLayer;
|
|
2998
3005
|
}
|
|
2999
3006
|
|
|
3000
|
-
// packages/react/src/app/
|
|
3007
|
+
// packages/react/src/app/useStreamLayerApp.ts
|
|
3001
3008
|
import { useState as useState5, useEffect as useEffect4 } from "react";
|
|
3002
3009
|
window.instance = null;
|
|
3003
|
-
var
|
|
3010
|
+
var useStreamLayerApp = (sdkKey, plugins, production) => {
|
|
3004
3011
|
const [sdk, setSdk] = useState5(null);
|
|
3005
3012
|
useEffect4(() => {
|
|
3006
3013
|
let ignore = false;
|
|
3007
3014
|
if (!sdkKey) {
|
|
3008
3015
|
throw new Error("sdk key should be provided");
|
|
3009
3016
|
}
|
|
3010
|
-
const instance = StreamLayer(sdkKey);
|
|
3017
|
+
const instance = StreamLayer(sdkKey, production);
|
|
3011
3018
|
if (plugins) {
|
|
3012
3019
|
for (const plugin of plugins) {
|
|
3013
3020
|
instance.use(plugin);
|
|
@@ -3041,9 +3048,10 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
3041
3048
|
var StreamLayerProvider = ({
|
|
3042
3049
|
sdkKey,
|
|
3043
3050
|
plugins,
|
|
3044
|
-
children
|
|
3051
|
+
children,
|
|
3052
|
+
production = true
|
|
3045
3053
|
}) => {
|
|
3046
|
-
const streamLayer =
|
|
3054
|
+
const streamLayer = useStreamLayerApp(sdkKey, plugins, production);
|
|
3047
3055
|
const value = useMemo2(() => {
|
|
3048
3056
|
if (!streamLayer) {
|
|
3049
3057
|
return { status: 1 /* CONNECTED */ };
|
|
@@ -3056,7 +3064,7 @@ var StreamLayerProvider = ({
|
|
|
3056
3064
|
// packages/react/src/app/app.tsx
|
|
3057
3065
|
import { useContext } from "react";
|
|
3058
3066
|
import { jsx as jsx24 } from "@emotion/react/jsx-runtime";
|
|
3059
|
-
var
|
|
3067
|
+
var useStreamLayer = () => {
|
|
3060
3068
|
const { sdk } = useContext(StreamLayerContext3);
|
|
3061
3069
|
return sdk;
|
|
3062
3070
|
};
|
|
@@ -3076,6 +3084,6 @@ var StreamLayerSDKReact = () => {
|
|
|
3076
3084
|
export {
|
|
3077
3085
|
StreamLayerProvider,
|
|
3078
3086
|
StreamLayerSDKReact,
|
|
3079
|
-
|
|
3080
|
-
|
|
3087
|
+
useStreamLayer,
|
|
3088
|
+
useStreamLayerApp
|
|
3081
3089
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { StreamLayerSDK, StreamLayerPlugin } from '@streamlayer/sdk-web-interfaces';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare enum StreamLayerStatus {
|
|
4
|
+
UNSET = 0,
|
|
5
|
+
CONNECTED = 1,
|
|
6
|
+
READY = 2
|
|
7
|
+
}
|
|
8
|
+
export declare const StreamLayerContext: React.Context<{
|
|
9
|
+
status: StreamLayerStatus;
|
|
10
|
+
sdk?: StreamLayerSDK | undefined;
|
|
11
|
+
}>;
|
|
12
|
+
type StreamLayerProps = {
|
|
13
|
+
sdkKey: string;
|
|
14
|
+
plugins?: Set<StreamLayerPlugin>;
|
|
15
|
+
production?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare const StreamLayerProvider: React.FC<StreamLayerProps & {
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
}>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StreamLayerSDK, StreamLayerPlugin } from '@streamlayer/sdk-web-interfaces';
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
instance: any;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export declare const useStreamLayerApp: (sdkKey: string, plugins?: Set<StreamLayerPlugin>, production?: boolean) => StreamLayerSDK | null;
|
package/package.json
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamlayer/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Renat Berezovsky (gh:BrRenat)",
|
|
6
|
-
"main": "./
|
|
6
|
+
"main": "./index.cjs",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
|
-
"module": "./
|
|
10
|
-
"require": "./
|
|
11
|
-
"types": "./types/src/
|
|
9
|
+
"module": "./index.js",
|
|
10
|
+
"require": "./index.cjs",
|
|
11
|
+
"types": "./types/src/index.d.ts"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"src/main.d.ts",
|
|
19
|
-
"package.json"
|
|
15
|
+
"lib",
|
|
16
|
+
"!lib/package.json",
|
|
17
|
+
"!lib/types/package.json"
|
|
20
18
|
],
|
|
21
19
|
"peerDependencies": {
|
|
22
20
|
"@emotion/react": "11.11.1",
|
|
@@ -54,4 +52,4 @@
|
|
|
54
52
|
"react-router-dom": "6.16.0",
|
|
55
53
|
"url-loader": "^4.1.1"
|
|
56
54
|
}
|
|
57
|
-
}
|
|
55
|
+
}
|