@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 ADDED
@@ -0,0 +1,6 @@
1
+ # react
2
+
3
+ This library was generatedwith [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+ Run `nx test react` to execute the unit tests via [Jest](https://jestjs.io).
@@ -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/main.tsx
31
- var main_exports = {};
32
- __export(main_exports, {
30
+ // packages/react/src/index.tsx
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
33
  StreamLayerProvider: () => StreamLayerProvider,
34
34
  StreamLayerSDKReact: () => StreamLayerSDKReact,
35
- useSDK: () => useSDK,
36
- useStreamLayer: () => useStreamLayer
35
+ useStreamLayer: () => useStreamLayer,
36
+ useStreamLayerApp: () => useStreamLayerApp
37
37
  });
38
- module.exports = __toCommonJS(main_exports);
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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443"
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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443"
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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443"
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" }, disabled: true, onClick: anonymousLogin, children: "anonymous login" })
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?.average
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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443",
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) => async (req) => {
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
- try {
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", 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/useStreamLayer.ts
3036
+ // packages/react/src/app/useStreamLayerApp.ts
3030
3037
  var import_react14 = require("react");
3031
3038
  window.instance = null;
3032
- var useStreamLayer = (sdkKey, plugins) => {
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 = useStreamLayer(sdkKey, plugins);
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 useSDK = () => {
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
- useSDK,
3110
- useStreamLayer
3117
+ useStreamLayer,
3118
+ useStreamLayerApp
3111
3119
  });
@@ -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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443"
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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443"
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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443"
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" }, disabled: true, onClick: anonymousLogin, children: "anonymous login" })
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?.average
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: process.env.NX_GRPC_HOST || "https://grpc-web.next.streamlayer.io:443",
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) => async (req) => {
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
- try {
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", 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/useStreamLayer.ts
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 useStreamLayer = (sdkKey, plugins) => {
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 = useStreamLayer(sdkKey, plugins);
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 useSDK = () => {
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
- useSDK,
3080
- useStreamLayer
3087
+ useStreamLayer,
3088
+ useStreamLayerApp
3081
3089
  };
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const useStreamLayer: () => import("@streamlayer/sdk-web-interfaces").StreamLayerSDK | undefined;
3
+ export declare const StreamLayerSDKReact: React.FC;
@@ -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;
@@ -0,0 +1,3 @@
1
+ export { StreamLayerProvider } from './app/provider';
2
+ export { StreamLayerSDKReact, useStreamLayer } from './app/app';
3
+ export { useStreamLayerApp } from './app/useStreamLayerApp';
package/package.json CHANGED
@@ -1,22 +1,20 @@
1
1
  {
2
2
  "name": "@streamlayer/react",
3
- "version": "0.2.11",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "author": "Renat Berezovsky (gh:BrRenat)",
6
- "main": "./main.cjs",
6
+ "main": "./index.cjs",
7
7
  "exports": {
8
8
  ".": {
9
- "module": "./main.js",
10
- "require": "./main.cjs",
11
- "types": "./types/src/main.d.ts"
9
+ "module": "./index.js",
10
+ "require": "./index.cjs",
11
+ "types": "./types/src/index.d.ts"
12
12
  }
13
13
  },
14
14
  "files": [
15
- "main.js",
16
- "main.cjs",
17
- "src/app",
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
+ }