@streamlayer/sdk-web-api 0.6.0 → 0.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamlayer/sdk-web-api",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./src/index.d.ts",
@@ -18,7 +18,7 @@ export const $retrieveEventId = ($providerStreamId, transport)=>{
18
18
  const res = await client.retrieveEventId({
19
19
  id
20
20
  });
21
- return res.data?.id || '';
21
+ return (res.data?.id) || '';
22
22
  }
23
23
  });
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/sdk-web-api/src/grpc/queries/event.ts"],"sourcesContent":["import { nanoquery } from '@nanostores/query'\nimport { ReadableAtom } from 'nanostores'\nimport { Events } from '@streamlayer/sl-eslib/sports/events/events_connect'\nimport { Client } from '@streamlayer/sl-eslib/sdkSettings/client/client_connect'\n\nimport { Transport } from '../transport'\n\nexport { $user } from './user'\n\nconst [createFetcherStore] = nanoquery()\n\nexport const $retrieveEventId = (\n $providerStreamId: ReadableAtom<string>,\n transport: Transport\n) => {\n const { client, queryKey } = transport.createPromiseClient(Events, { method: 'retrieveEventId', params: [$providerStreamId] })\n\n return createFetcherStore(queryKey, {\n fetcher: async (_: string, __: string, id: string) => {\n if (!id) {\n return ''\n }\n\n const res = await client.retrieveEventId({\n id,\n })\n\n return res.data?.id as unknown as string || ''\n },\n })\n}\n\nexport const $streamSettings = (\n slStreamId: string,\n transport: Transport\n) => {\n const { client, queryKey } = transport.createPromiseClient(Client, { method: 'getStream', params: [slStreamId] })\n\n return createFetcherStore(queryKey, {\n fetcher: async (_: string, __: string, id: string) => {\n const res = await client.getStream({\n id,\n })\n\n return res.data?.attributes\n },\n })\n}\n"],"names":["nanoquery","Events","Client","$user","createFetcherStore","$retrieveEventId","$providerStreamId","transport","client","queryKey","createPromiseClient","method","params","fetcher","_","__","id","res","retrieveEventId","data","$streamSettings","slStreamId","getStream","attributes"],"mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAE7C,SAASC,MAAM,QAAQ,qDAAoD;AAC3E,SAASC,MAAM,QAAQ,0DAAyD;AAIhF,SAASC,KAAK,QAAQ,SAAQ;AAE9B,MAAM,CAACC,mBAAmB,GAAGJ;AAE7B,OAAO,MAAMK,mBAAmB,CAC9BC,mBACAC;IAEA,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE,GAAGF,UAAUG,mBAAmB,CAACT,QAAQ;QAAEU,QAAQ;QAAmBC,QAAQ;YAACN;SAAkB;IAAC;IAE5H,OAAOF,mBAAmBK,UAAU;QAClCI,SAAS,OAAOC,GAAWC,IAAYC;YACrC,IAAI,CAACA,IAAI;gBACP,OAAO;YACT;YAEA,MAAMC,MAAM,MAAMT,OAAOU,eAAe,CAAC;gBACvCF;YACF;YAEA,OAAOC,IAAIE,IAAI,EAAEH,MAA2B;QAC9C;IACF;AACF,EAAC;AAED,OAAO,MAAMI,kBAAkB,CAC7BC,YACAd;IAEA,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE,GAAGF,UAAUG,mBAAmB,CAACR,QAAQ;QAAES,QAAQ;QAAaC,QAAQ;YAACS;SAAW;IAAC;IAE/G,OAAOjB,mBAAmBK,UAAU;QAClCI,SAAS,OAAOC,GAAWC,IAAYC;YACrC,MAAMC,MAAM,MAAMT,OAAOc,SAAS,CAAC;gBACjCN;YACF;YAEA,OAAOC,IAAIE,IAAI,EAAEI;QACnB;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../../../packages/sdk-web-api/src/grpc/queries/event.ts"],"sourcesContent":["import { nanoquery } from '@nanostores/query'\nimport { ReadableAtom } from 'nanostores'\nimport { Events } from '@streamlayer/sl-eslib/sports/events/events_connect'\nimport { Client } from '@streamlayer/sl-eslib/sdkSettings/client/client_connect'\n\nimport { Transport } from '../transport'\n\nexport { $user } from './user'\n\nconst [createFetcherStore] = nanoquery()\n\nexport const $retrieveEventId = ($providerStreamId: ReadableAtom<string>, transport: Transport) => {\n const { client, queryKey } = transport.createPromiseClient(Events, {\n method: 'retrieveEventId',\n params: [$providerStreamId],\n })\n\n return createFetcherStore(queryKey, {\n fetcher: async (_: string, __: string, id: string) => {\n if (!id) {\n return ''\n }\n\n const res = await client.retrieveEventId({\n id,\n })\n\n return (res.data?.id as unknown as string) || ''\n },\n })\n}\n\nexport const $streamSettings = (slStreamId: string, transport: Transport) => {\n const { client, queryKey } = transport.createPromiseClient(Client, { method: 'getStream', params: [slStreamId] })\n\n return createFetcherStore(queryKey, {\n fetcher: async (_: string, __: string, id: string) => {\n const res = await client.getStream({\n id,\n })\n\n return res.data?.attributes\n },\n })\n}\n"],"names":["nanoquery","Events","Client","$user","createFetcherStore","$retrieveEventId","$providerStreamId","transport","client","queryKey","createPromiseClient","method","params","fetcher","_","__","id","res","retrieveEventId","data","$streamSettings","slStreamId","getStream","attributes"],"mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAE7C,SAASC,MAAM,QAAQ,qDAAoD;AAC3E,SAASC,MAAM,QAAQ,0DAAyD;AAIhF,SAASC,KAAK,QAAQ,SAAQ;AAE9B,MAAM,CAACC,mBAAmB,GAAGJ;AAE7B,OAAO,MAAMK,mBAAmB,CAACC,mBAAyCC;IACxE,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE,GAAGF,UAAUG,mBAAmB,CAACT,QAAQ;QACjEU,QAAQ;QACRC,QAAQ;YAACN;SAAkB;IAC7B;IAEA,OAAOF,mBAAmBK,UAAU;QAClCI,SAAS,OAAOC,GAAWC,IAAYC;YACrC,IAAI,CAACA,IAAI;gBACP,OAAO;YACT;YAEA,MAAMC,MAAM,MAAMT,OAAOU,eAAe,CAAC;gBACvCF;YACF;YAEA,OAAO,CAACC,IAAIE,IAAI,EAAEH,EAAuB,KAAK;QAChD;IACF;AACF,EAAC;AAED,OAAO,MAAMI,kBAAkB,CAACC,YAAoBd;IAClD,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE,GAAGF,UAAUG,mBAAmB,CAACR,QAAQ;QAAES,QAAQ;QAAaC,QAAQ;YAACS;SAAW;IAAC;IAE/G,OAAOjB,mBAAmBK,UAAU;QAClCI,SAAS,OAAOC,GAAWC,IAAYC;YACrC,MAAMC,MAAM,MAAMT,OAAOc,SAAS,CAAC;gBACjCN;YACF;YAEA,OAAOC,IAAIE,IAAI,EAAEI;QACnB;IACF;AACF,EAAC"}
@@ -1,8 +1,8 @@
1
- import { ApiStore, createSingleStore } from "@streamlayer/sdk-web-interfaces";
2
- import { Events } from "@streamlayer/sl-eslib/streamlayer/sports/events/events_connect";
1
+ import { ApiStore, createSingleStore } from '@streamlayer/sdk-web-interfaces';
2
+ import { Events } from '@streamlayer/sl-eslib/streamlayer/sports/events/events_connect';
3
3
  import { MockTransport } from '../transport';
4
4
  import { $retrieveEventId } from './event';
5
- describe("Simple requests test", ()=>{
5
+ describe('Simple requests test', ()=>{
6
6
  const ctx = {
7
7
  providerStreamId: createSingleStore('')
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/sdk-web-api/src/grpc/queries/queries.test.ts"],"sourcesContent":["import { ApiStore, createSingleStore } from \"@streamlayer/sdk-web-interfaces\";\n\nimport { Events } from \"@streamlayer/sl-eslib/streamlayer/sports/events/events_connect\";\n\nimport { MockTransport } from '../transport';\n\nimport { $retrieveEventId } from './event';\n\ndescribe(\"Simple requests test\", () => {\n const ctx: {\n providerStreamId: ReturnType<typeof createSingleStore<string>>\n api?: ApiStore<ReturnType<typeof $retrieveEventId>>\n transport?: MockTransport\n } = {\n providerStreamId: createSingleStore(''),\n };\n\n beforeAll(() => {\n const mock = ({ service }) => {\n service(Events, {\n retrieveEventId: () => ({ data: { id: 123 } })\n });\n }\n\n ctx.transport = new MockTransport(mock)\n\n ctx.api = new ApiStore($retrieveEventId(ctx.providerStreamId, ctx.transport));\n ctx.api.listen(() => {});\n });\n\n afterAll(() => {\n ctx.api.off();\n });\n\n it('returns empty sl event id if provider id not defined', async () => {\n const emptyEvent = await ctx.api.getValue();\n\n expect(emptyEvent).toEqual('')\n });\n\n it('returns sl event id if provider id defined', async () => {\n ctx.providerStreamId.set('demo:event');\n const resolvedEvent = await ctx.api.getValue()\n\n expect(resolvedEvent).toEqual('123')\n });\n});\n"],"names":["ApiStore","createSingleStore","Events","MockTransport","$retrieveEventId","describe","ctx","providerStreamId","beforeAll","mock","service","retrieveEventId","data","id","transport","api","listen","afterAll","off","it","emptyEvent","getValue","expect","toEqual","set","resolvedEvent"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,iBAAiB,QAAQ,kCAAkC;AAE9E,SAASC,MAAM,QAAQ,iEAAiE;AAExF,SAASC,aAAa,QAAQ,eAAe;AAE7C,SAASC,gBAAgB,QAAQ,UAAU;AAE3CC,SAAS,wBAAwB;IAC/B,MAAMC,MAIF;QACFC,kBAAkBN,kBAAkB;IACtC;IAEAO,UAAU;QACR,MAAMC,OAAO,CAAC,EAAEC,OAAO,EAAE;YACvBA,QAAQR,QAAQ;gBACdS,iBAAiB,IAAO,CAAA;wBAAEC,MAAM;4BAAEC,IAAI;wBAAI;oBAAE,CAAA;YAC9C;QACF;QAEAP,IAAIQ,SAAS,GAAG,IAAIX,cAAcM;QAElCH,IAAIS,GAAG,GAAG,IAAIf,SAASI,iBAAiBE,IAAIC,gBAAgB,EAAED,IAAIQ,SAAS;QAC3ER,IAAIS,GAAG,CAACC,MAAM,CAAC,KAAO;IACxB;IAEAC,SAAS;QACPX,IAAIS,GAAG,CAACG,GAAG;IACb;IAEAC,GAAG,wDAAwD;QACzD,MAAMC,aAAa,MAAMd,IAAIS,GAAG,CAACM,QAAQ;QAEzCC,OAAOF,YAAYG,OAAO,CAAC;IAC7B;IAEAJ,GAAG,8CAA8C;QAC/Cb,IAAIC,gBAAgB,CAACiB,GAAG,CAAC;QACzB,MAAMC,gBAAgB,MAAMnB,IAAIS,GAAG,CAACM,QAAQ;QAE5CC,OAAOG,eAAeF,OAAO,CAAC;IAChC;AACF"}
1
+ {"version":3,"sources":["../../../../../../packages/sdk-web-api/src/grpc/queries/queries.test.ts"],"sourcesContent":["import { ApiStore, createSingleStore } from '@streamlayer/sdk-web-interfaces'\n\nimport { Events } from '@streamlayer/sl-eslib/streamlayer/sports/events/events_connect'\n\nimport { MockTransport } from '../transport'\n\nimport { $retrieveEventId } from './event'\n\ndescribe('Simple requests test', () => {\n const ctx: {\n providerStreamId: ReturnType<typeof createSingleStore<string>>\n api?: ApiStore<ReturnType<typeof $retrieveEventId>>\n transport?: MockTransport\n } = {\n providerStreamId: createSingleStore(''),\n }\n\n beforeAll(() => {\n const mock = ({ service }) => {\n service(Events, {\n retrieveEventId: () => ({ data: { id: 123 } }),\n })\n }\n\n ctx.transport = new MockTransport(mock)\n\n ctx.api = new ApiStore($retrieveEventId(ctx.providerStreamId, ctx.transport))\n ctx.api.listen(() => {})\n })\n\n afterAll(() => {\n ctx.api.off()\n })\n\n it('returns empty sl event id if provider id not defined', async () => {\n const emptyEvent = await ctx.api.getValue()\n\n expect(emptyEvent).toEqual('')\n })\n\n it('returns sl event id if provider id defined', async () => {\n ctx.providerStreamId.set('demo:event')\n const resolvedEvent = await ctx.api.getValue()\n\n expect(resolvedEvent).toEqual('123')\n })\n})\n"],"names":["ApiStore","createSingleStore","Events","MockTransport","$retrieveEventId","describe","ctx","providerStreamId","beforeAll","mock","service","retrieveEventId","data","id","transport","api","listen","afterAll","off","it","emptyEvent","getValue","expect","toEqual","set","resolvedEvent"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,iBAAiB,QAAQ,kCAAiC;AAE7E,SAASC,MAAM,QAAQ,iEAAgE;AAEvF,SAASC,aAAa,QAAQ,eAAc;AAE5C,SAASC,gBAAgB,QAAQ,UAAS;AAE1CC,SAAS,wBAAwB;IAC/B,MAAMC,MAIF;QACFC,kBAAkBN,kBAAkB;IACtC;IAEAO,UAAU;QACR,MAAMC,OAAO,CAAC,EAAEC,OAAO,EAAE;YACvBA,QAAQR,QAAQ;gBACdS,iBAAiB,IAAO,CAAA;wBAAEC,MAAM;4BAAEC,IAAI;wBAAI;oBAAE,CAAA;YAC9C;QACF;QAEAP,IAAIQ,SAAS,GAAG,IAAIX,cAAcM;QAElCH,IAAIS,GAAG,GAAG,IAAIf,SAASI,iBAAiBE,IAAIC,gBAAgB,EAAED,IAAIQ,SAAS;QAC3ER,IAAIS,GAAG,CAACC,MAAM,CAAC,KAAO;IACxB;IAEAC,SAAS;QACPX,IAAIS,GAAG,CAACG,GAAG;IACb;IAEAC,GAAG,wDAAwD;QACzD,MAAMC,aAAa,MAAMd,IAAIS,GAAG,CAACM,QAAQ;QAEzCC,OAAOF,YAAYG,OAAO,CAAC;IAC7B;IAEAJ,GAAG,8CAA8C;QAC/Cb,IAAIC,gBAAgB,CAACiB,GAAG,CAAC;QACzB,MAAMC,gBAAgB,MAAMnB,IAAIS,GAAG,CAACM,QAAQ;QAE5CC,OAAOG,eAAeF,OAAO,CAAC;IAChC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/sdk-web-api/src/grpc/queries/user.ts"],"sourcesContent":["import { nanoquery } from '@nanostores/query'\nimport { ReadableAtom } from 'nanostores'\nimport { Users } from '@streamlayer/sl-eslib/users/users_connect'\nimport { Client } from '@streamlayer/sl-eslib/sdkSettings/client/client_connect'\n\nimport { Transport } from '../transport'\n\nconst [createFetcherStore] = nanoquery()\n\n// user query\n// cache user\n// invalidate token\n// login\n// save token\n// called on update user key\nexport const $user = (\n $userKey: ReadableAtom<string>, // user key from host\n $userToken: ReadableAtom<string>, // sl user token\n transport: Transport\n) => {\n const { queryKey, client } = transport.createPromiseClient(Users, { method: 'bypassAuth', params: [$userKey] })\n\n return createFetcherStore(queryKey, {\n fetcher: async (_, __, userKey: string) => {\n // if user token exist, try to validate and refresh user data\n // otherwise clear invalid login token\n // and relogin\n if ($userToken.get()) {\n try {\n const response = await client.me({})\n\n return {\n ...response,\n meta: {\n jwt: $userToken.get(),\n },\n }\n } catch (err) {\n console.log('invalid token, relogin...')\n }\n }\n\n return client.bypassAuth({\n userKey,\n schema: 'streamlayer',\n })\n },\n })\n}\n\nexport const $userSettings = (\n $userToken: ReadableAtom<string>, // sl user token\n transport: Transport\n) => {\n const { client, queryKey } = transport.createPromiseClient(Client, { method: 'get', params: [$userToken] })\n\n return createFetcherStore(queryKey, {\n fetcher: async () => {\n const data = await client.get({})\n\n return data.data?.attributes\n },\n })\n}\n"],"names":["nanoquery","Users","Client","createFetcherStore","$user","$userKey","$userToken","transport","queryKey","client","createPromiseClient","method","params","fetcher","_","__","userKey","get","response","me","meta","jwt","err","console","log","bypassAuth","schema","$userSettings","data","attributes"],"mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAE7C,SAASC,KAAK,QAAQ,4CAA2C;AACjE,SAASC,MAAM,QAAQ,0DAAyD;AAIhF,MAAM,CAACC,mBAAmB,GAAGH;AAE7B,aAAa;AACb,aAAa;AACb,mBAAmB;AACnB,QAAQ;AACR,aAAa;AACb,4BAA4B;AAC5B,OAAO,MAAMI,QAAQ,CACnBC,UACAC,YACAC;IAEA,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGF,UAAUG,mBAAmB,CAACT,OAAO;QAAEU,QAAQ;QAAcC,QAAQ;YAACP;SAAS;IAAC;IAE7G,OAAOF,mBAAmBK,UAAU;QAClCK,SAAS,OAAOC,GAAGC,IAAIC;YACrB,6DAA6D;YAC7D,sCAAsC;YACtC,cAAc;YACd,IAAIV,WAAWW,GAAG,IAAI;gBACpB,IAAI;oBACF,MAAMC,WAAW,MAAMT,OAAOU,EAAE,CAAC,CAAC;oBAElC,OAAO;wBACL,GAAGD,QAAQ;wBACXE,MAAM;4BACJC,KAAKf,WAAWW,GAAG;wBACrB;oBACF;gBACF,EAAE,OAAOK,KAAK;oBACZC,QAAQC,GAAG,CAAC;gBACd;YACF;YAEA,OAAOf,OAAOgB,UAAU,CAAC;gBACvBT;gBACAU,QAAQ;YACV;QACF;IACF;AACF,EAAC;AAED,OAAO,MAAMC,gBAAgB,CAC3BrB,YACAC;IAEA,MAAM,EAAEE,MAAM,EAAED,QAAQ,EAAE,GAAGD,UAAUG,mBAAmB,CAACR,QAAQ;QAAES,QAAQ;QAAOC,QAAQ;YAACN;SAAW;IAAC;IAEzG,OAAOH,mBAAmBK,UAAU;QAClCK,SAAS;YACP,MAAMe,OAAO,MAAMnB,OAAOQ,GAAG,CAAC,CAAC;YAE/B,OAAOW,KAAKA,IAAI,EAAEC;QACpB;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../../../packages/sdk-web-api/src/grpc/queries/user.ts"],"sourcesContent":["import { nanoquery } from '@nanostores/query'\nimport { ReadableAtom } from 'nanostores'\nimport { Users } from '@streamlayer/sl-eslib/users/users_connect'\nimport { Client } from '@streamlayer/sl-eslib/sdkSettings/client/client_connect'\n\nimport { Transport } from '../transport'\n\nconst [createFetcherStore] = nanoquery()\n\n// user query\n// cache user\n// invalidate token\n// login\n// save token\n// called on update user key\nexport const $user = (\n $userKey: ReadableAtom<string>, // user key from host\n $userToken: ReadableAtom<string>, // sl user token\n transport: Transport,\n) => {\n const { queryKey, client } = transport.createPromiseClient(Users, { method: 'bypassAuth', params: [$userKey] })\n\n return createFetcherStore(queryKey, {\n fetcher: async (_, __, userKey: string) => {\n // if user token exist, try to validate and refresh user data\n // otherwise clear invalid login token\n // and relogin\n if ($userToken.get()) {\n try {\n const response = await client.me({})\n\n return {\n ...response,\n meta: {\n jwt: $userToken.get(),\n },\n }\n } catch (err) {\n console.log('invalid token, relogin...')\n }\n }\n\n return client.bypassAuth({\n userKey,\n schema: 'streamlayer',\n })\n },\n })\n}\n\nexport const $userSettings = (\n $userToken: ReadableAtom<string>, // sl user token\n transport: Transport,\n) => {\n const { client, queryKey } = transport.createPromiseClient(Client, { method: 'get', params: [$userToken] })\n\n return createFetcherStore(queryKey, {\n fetcher: async () => {\n const data = await client.get({})\n\n return data.data?.attributes\n },\n })\n}\n"],"names":["nanoquery","Users","Client","createFetcherStore","$user","$userKey","$userToken","transport","queryKey","client","createPromiseClient","method","params","fetcher","_","__","userKey","get","response","me","meta","jwt","err","console","log","bypassAuth","schema","$userSettings","data","attributes"],"mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAE7C,SAASC,KAAK,QAAQ,4CAA2C;AACjE,SAASC,MAAM,QAAQ,0DAAyD;AAIhF,MAAM,CAACC,mBAAmB,GAAGH;AAE7B,aAAa;AACb,aAAa;AACb,mBAAmB;AACnB,QAAQ;AACR,aAAa;AACb,4BAA4B;AAC5B,OAAO,MAAMI,QAAQ,CACnBC,UACAC,YACAC;IAEA,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGF,UAAUG,mBAAmB,CAACT,OAAO;QAAEU,QAAQ;QAAcC,QAAQ;YAACP;SAAS;IAAC;IAE7G,OAAOF,mBAAmBK,UAAU;QAClCK,SAAS,OAAOC,GAAGC,IAAIC;YACrB,6DAA6D;YAC7D,sCAAsC;YACtC,cAAc;YACd,IAAIV,WAAWW,GAAG,IAAI;gBACpB,IAAI;oBACF,MAAMC,WAAW,MAAMT,OAAOU,EAAE,CAAC,CAAC;oBAElC,OAAO;wBACL,GAAGD,QAAQ;wBACXE,MAAM;4BACJC,KAAKf,WAAWW,GAAG;wBACrB;oBACF;gBACF,EAAE,OAAOK,KAAK;oBACZC,QAAQC,GAAG,CAAC;gBACd;YACF;YAEA,OAAOf,OAAOgB,UAAU,CAAC;gBACvBT;gBACAU,QAAQ;YACV;QACF;IACF;AACF,EAAC;AAED,OAAO,MAAMC,gBAAgB,CAC3BrB,YACAC;IAEA,MAAM,EAAEE,MAAM,EAAED,QAAQ,EAAE,GAAGD,UAAUG,mBAAmB,CAACR,QAAQ;QAAES,QAAQ;QAAOC,QAAQ;YAACN;SAAW;IAAC;IAEzG,OAAOH,mBAAmBK,UAAU;QAClCK,SAAS;YACP,MAAMe,OAAO,MAAMnB,OAAOQ,GAAG,CAAC,CAAC;YAE/B,OAAOW,KAAKA,IAAI,EAAEC;QACpB;IACF;AACF,EAAC"}
@@ -1,4 +1,4 @@
1
- import { createRouterTransport, ConnectRouter } from "@connectrpc/connect";
1
+ import { createRouterTransport, ConnectRouter } from '@connectrpc/connect';
2
2
  import { Interceptor, PromiseClient, UnaryRequest, StreamRequest } from '@bufbuild/connect';
3
3
  import type { ServiceType } from '@bufbuild/protobuf';
4
4
  import { createGrpcWebTransport } from '@bufbuild/connect-web';
@@ -1,5 +1,5 @@
1
1
  import { MapStore, createMapStore } from '@streamlayer/sdk-web-interfaces';
2
- import { createRouterTransport } from "@connectrpc/connect";
2
+ import { createRouterTransport } from '@connectrpc/connect';
3
3
  import { createPromiseClient } from '@bufbuild/connect';
4
4
  import { createGrpcWebTransport } from '@bufbuild/connect-web';
5
5
  const initialStore = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/sdk-web-api/src/grpc/transport.ts"],"sourcesContent":["import { MapStore, createMapStore } from '@streamlayer/sdk-web-interfaces'\n\nimport { createRouterTransport, ConnectRouter } from \"@connectrpc/connect\";\nimport { Interceptor, createPromiseClient, PromiseClient, UnaryRequest, StreamRequest } from '@bufbuild/connect'\nimport type { ServiceType } from '@bufbuild/protobuf'\nimport { createGrpcWebTransport } from '@bufbuild/connect-web'\nimport type { KeyInput } from '@nanostores/query'\n\ntype KnownHeaders = {\n authorization?: string\n sdk?: string\n} & Record<string, string>\n\nconst initialStore: KnownHeaders = {\n sdk: process.env.SDK_KEY,\n}\n\nexport type GrpcTransport = Transport['transport']\n\ntype ReservedHeaders = 'sdk' | 'authorization'\ntype ExcludeReservedHeaders<T> = ReservedHeaders extends T\n ? never\n : T & T extends ReservedHeaders\n ? never\n : T\n\ndeclare global {\n interface Window {\n __GRPC_DEVTOOLS_EXTENSION__?: () => import('@bufbuild/connect').Interceptor\n }\n}\n\n/**\n * transport wrapper, initialize grpc transport, store headers and connect interceptors\n */\nexport class Transport {\n public readonly transport: ReturnType<typeof createGrpcWebTransport>\n protected interceptors: Interceptor[] = []\n private readonly $headers: MapStore<KnownHeaders>\n private clients: Map<keyof ServiceType['methods'], PromiseClient<ServiceType>>\n\n constructor() {\n this.$headers = new MapStore<KnownHeaders>(createMapStore(initialStore))\n this.initInterceptors()\n this.clients = new Map()\n\n this.transport = createGrpcWebTransport({\n baseUrl: process.env.GRPC_HOST,\n interceptors: this.interceptors,\n useBinaryFormat: true,\n })\n }\n\n registerInterceptor = (interceptor: Interceptor) => {\n this.interceptors.push(interceptor)\n }\n\n removeInterceptor = (interceptor: Interceptor) => {\n this.interceptors = this.interceptors.filter(i => i !== interceptor)\n }\n\n getClient = <T extends ServiceType>(service: T): PromiseClient<T> => {\n const serviceName = service.typeName\n\n if (this.clients.has(serviceName)) {\n return this.clients.get(serviceName) as PromiseClient<T>\n }\n\n const client = createPromiseClient(service, this.transport)\n\n this.clients.set(serviceName, client)\n\n return client\n }\n\n createPromiseClient = <T extends ServiceType>(service: T, { params = [], method }: { params?: KeyInput, method: keyof T['methods'] }) => {\n const client = this.getClient(service)\n\n const methodName = service.methods[method].name\n const queryKey = [\n service.typeName,\n methodName.charAt(0).toLowerCase() + methodName.slice(1),\n ...(Array.isArray(params) ? params : [params])\n ]\n\n return { client, queryKey }\n }\n\n setSdkKey = (sdkKey: string) => {\n this.$headers.setValue('sdk', sdkKey)\n }\n\n setAuth = (token: string) => {\n this.$headers.setValue('authorization', token)\n }\n\n setHeader = <T extends keyof KnownHeaders = string>(\n name: ExcludeReservedHeaders<T>,\n value: string\n ) => this.$headers.setValue<string>(name, value)\n\n getHeader = (name: keyof KnownHeaders) => this.$headers.getValue(name)\n\n getHeaders = () => this.$headers.getValues()\n\n initInterceptors = () => {\n if (this.interceptors.length !== 0) {\n return\n }\n\n const auth: Interceptor = (next) => async (req) => {\n const headers = this.$headers.getValues()\n\n for (const header in headers) {\n req.header.set(header, headers[header])\n }\n try {\n return await next(req)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log({ err }, 'catch err') // logout and something like this\n\n throw err\n }\n }\n\n this.interceptors.push(auth)\n\n if (window.__GRPC_DEVTOOLS_EXTENSION__) {\n this.interceptors.push(window.__GRPC_DEVTOOLS_EXTENSION__())\n } else {\n window.addEventListener('grpc_devtools_loaded', () => {\n if (window.__GRPC_DEVTOOLS_EXTENSION__) {\n this.interceptors.push(window.__GRPC_DEVTOOLS_EXTENSION__())\n }\n })\n }\n }\n}\n\nexport class MockTransport extends Transport {\n declare public transport: ReturnType<typeof createRouterTransport>\n public calls: Array<UnaryRequest | StreamRequest>\n\n constructor(transport: (router: ConnectRouter) => void) {\n super()\n\n this.calls = []\n this.interceptors.push((next) => (req) => {\n this.calls.push(req)\n\n return next(req)\n })\n this.transport = createRouterTransport(transport, {\n transport: {\n interceptors: this.interceptors,\n }\n })\n }\n}\n"],"names":["MapStore","createMapStore","createRouterTransport","createPromiseClient","createGrpcWebTransport","initialStore","sdk","process","env","SDK_KEY","Transport","constructor","interceptors","registerInterceptor","interceptor","push","removeInterceptor","filter","i","getClient","service","serviceName","typeName","clients","has","get","client","transport","set","params","method","methodName","methods","name","queryKey","charAt","toLowerCase","slice","Array","isArray","setSdkKey","sdkKey","$headers","setValue","setAuth","token","setHeader","value","getHeader","getValue","getHeaders","getValues","initInterceptors","length","auth","next","req","headers","header","err","console","log","window","__GRPC_DEVTOOLS_EXTENSION__","addEventListener","Map","baseUrl","GRPC_HOST","useBinaryFormat","MockTransport","calls"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../packages/sdk-web-api/src/grpc/transport.ts"],"sourcesContent":["import { MapStore, createMapStore } from '@streamlayer/sdk-web-interfaces'\n\nimport { createRouterTransport, ConnectRouter } from '@connectrpc/connect'\nimport { Interceptor, createPromiseClient, PromiseClient, UnaryRequest, StreamRequest } from '@bufbuild/connect'\nimport type { ServiceType } from '@bufbuild/protobuf'\nimport { createGrpcWebTransport } from '@bufbuild/connect-web'\nimport type { KeyInput } from '@nanostores/query'\n\ntype KnownHeaders = {\n authorization?: string\n sdk?: string\n} & Record<string, string>\n\nconst initialStore: KnownHeaders = {\n sdk: process.env.SDK_KEY,\n}\n\nexport type GrpcTransport = Transport['transport']\n\ntype ReservedHeaders = 'sdk' | 'authorization'\ntype ExcludeReservedHeaders<T> = ReservedHeaders extends T ? never : T & T extends ReservedHeaders ? never : T\n\ndeclare global {\n interface Window {\n __GRPC_DEVTOOLS_EXTENSION__?: () => import('@bufbuild/connect').Interceptor\n }\n}\n\n/**\n * transport wrapper, initialize grpc transport, store headers and connect interceptors\n */\nexport class Transport {\n public readonly transport: ReturnType<typeof createGrpcWebTransport>\n protected interceptors: Interceptor[] = []\n private readonly $headers: MapStore<KnownHeaders>\n private clients: Map<keyof ServiceType['methods'], PromiseClient<ServiceType>>\n\n constructor() {\n this.$headers = new MapStore<KnownHeaders>(createMapStore(initialStore))\n this.initInterceptors()\n this.clients = new Map()\n\n this.transport = createGrpcWebTransport({\n baseUrl: process.env.GRPC_HOST,\n interceptors: this.interceptors,\n useBinaryFormat: true,\n })\n }\n\n registerInterceptor = (interceptor: Interceptor) => {\n this.interceptors.push(interceptor)\n }\n\n removeInterceptor = (interceptor: Interceptor) => {\n this.interceptors = this.interceptors.filter((i) => i !== interceptor)\n }\n\n getClient = <T extends ServiceType>(service: T): PromiseClient<T> => {\n const serviceName = service.typeName\n\n if (this.clients.has(serviceName)) {\n return this.clients.get(serviceName) as PromiseClient<T>\n }\n\n const client = createPromiseClient(service, this.transport)\n\n this.clients.set(serviceName, client)\n\n return client\n }\n\n createPromiseClient = <T extends ServiceType>(\n service: T,\n { params = [], method }: { params?: KeyInput; method: keyof T['methods'] },\n ) => {\n const client = this.getClient(service)\n\n const methodName = service.methods[method].name\n const queryKey = [\n service.typeName,\n methodName.charAt(0).toLowerCase() + methodName.slice(1),\n ...(Array.isArray(params) ? params : [params]),\n ]\n\n return { client, queryKey }\n }\n\n setSdkKey = (sdkKey: string) => {\n this.$headers.setValue('sdk', sdkKey)\n }\n\n setAuth = (token: string) => {\n this.$headers.setValue('authorization', token)\n }\n\n setHeader = <T extends keyof KnownHeaders = string>(name: ExcludeReservedHeaders<T>, value: string) =>\n this.$headers.setValue<string>(name, value)\n\n getHeader = (name: keyof KnownHeaders) => this.$headers.getValue(name)\n\n getHeaders = () => this.$headers.getValues()\n\n initInterceptors = () => {\n if (this.interceptors.length !== 0) {\n return\n }\n\n const auth: Interceptor = (next) => async (req) => {\n const headers = this.$headers.getValues()\n\n for (const header in headers) {\n req.header.set(header, headers[header])\n }\n try {\n return await next(req)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log({ err }, 'catch err') // logout and something like this\n\n throw err\n }\n }\n\n this.interceptors.push(auth)\n\n if (window.__GRPC_DEVTOOLS_EXTENSION__) {\n this.interceptors.push(window.__GRPC_DEVTOOLS_EXTENSION__())\n } else {\n window.addEventListener('grpc_devtools_loaded', () => {\n if (window.__GRPC_DEVTOOLS_EXTENSION__) {\n this.interceptors.push(window.__GRPC_DEVTOOLS_EXTENSION__())\n }\n })\n }\n }\n}\n\nexport class MockTransport extends Transport {\n public declare transport: ReturnType<typeof createRouterTransport>\n public calls: Array<UnaryRequest | StreamRequest>\n\n constructor(transport: (router: ConnectRouter) => void) {\n super()\n\n this.calls = []\n this.interceptors.push((next) => (req) => {\n this.calls.push(req)\n\n return next(req)\n })\n this.transport = createRouterTransport(transport, {\n transport: {\n interceptors: this.interceptors,\n },\n })\n }\n}\n"],"names":["MapStore","createMapStore","createRouterTransport","createPromiseClient","createGrpcWebTransport","initialStore","sdk","process","env","SDK_KEY","Transport","constructor","interceptors","registerInterceptor","interceptor","push","removeInterceptor","filter","i","getClient","service","serviceName","typeName","clients","has","get","client","transport","set","params","method","methodName","methods","name","queryKey","charAt","toLowerCase","slice","Array","isArray","setSdkKey","sdkKey","$headers","setValue","setAuth","token","setHeader","value","getHeader","getValue","getHeaders","getValues","initInterceptors","length","auth","next","req","headers","header","err","console","log","window","__GRPC_DEVTOOLS_EXTENSION__","addEventListener","Map","baseUrl","GRPC_HOST","useBinaryFormat","MockTransport","calls"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/sdk-web-api/src/grpc/transport.test.ts"],"sourcesContent":["import { Health } from '@streamlayer/sl-eslib/grpc/health/v1/health_connect'\n\nimport { MockTransport } from './transport';\n\ndescribe.skip('Transport', () => {\n let transport: MockTransport;\n\n beforeAll(() => {\n const mock = ({ service }) => {\n service(Health, {\n check: () => ({ status: 1 })\n });\n }\n\n transport = new MockTransport(mock);\n });\n\n it('should initialize with default values', () => {\n expect(transport).toBeDefined();\n expect(transport.transport).toBeDefined();\n });\n\n it('should set SDK key', () => {\n const sdkKey = 'new-sdk-key';\n\n transport.setSdkKey(sdkKey);\n const headers = transport.getHeaders();\n\n expect(headers.sdk).toEqual(sdkKey);\n });\n\n it('should set authorization token', () => {\n const authToken = 'my-auth-token';\n\n transport.setAuth(authToken);\n const headers = transport.getHeaders();\n\n expect(headers.authorization).toEqual(authToken);\n });\n\n it('should set custom header', () => {\n const headerName = 'custom-header';\n const headerValue = 'custom-value';\n\n transport.setHeader(headerName, headerValue);\n const headers = transport.getHeaders();\n\n expect(headers[headerName]).toEqual(headerValue);\n });\n\n it('should get a specific header', () => {\n const headerName = 'custom-header';\n const headerValue = 'custom-value';\n\n transport.setHeader(headerName, headerValue);\n const retrievedValue = transport.getHeader(headerName);\n\n expect(retrievedValue).toEqual(headerValue);\n });\n\n it('should add/remove an interceptor', () => {\n const interceptor = (req) => req;\n\n transport.registerInterceptor(interceptor);\n expect(transport['interceptors']).toContain(interceptor)\n\n transport.removeInterceptor(interceptor);\n expect(transport['interceptors']).not.toContain(interceptor);\n });\n\n it('should create and cache promise client', () => {\n const { client, queryKey } = transport.createPromiseClient(Health, { method: 'check' })\n\n expect(client).toBeDefined()\n expect(client.check).toBeDefined()\n expect(queryKey).toBeDefined()\n\n const { client: newClient, queryKey: newQueryKey } = transport.createPromiseClient(Health, { method: 'check' })\n\n expect(client === newClient)\n expect(queryKey !== newQueryKey)\n })\n\n it('should use all headers from store', async () => {\n const { client } = transport.createPromiseClient(Health, { method: 'check' })\n\n const res = await client.check({})\n\n expect(res?.status)\n expect(res.status).toEqual(1)\n\n const lastCall = transport.calls.pop();\n const headers = transport.getHeaders();\n\n expect(lastCall)\n\n for (const header in headers) {\n expect(lastCall.header.get(header)).toEqual(headers[header])\n }\n });\n});\n"],"names":["Health","MockTransport","describe","skip","transport","beforeAll","mock","service","check","status","it","expect","toBeDefined","sdkKey","setSdkKey","headers","getHeaders","sdk","toEqual","authToken","setAuth","authorization","headerName","headerValue","setHeader","retrievedValue","getHeader","interceptor","req","registerInterceptor","toContain","removeInterceptor","not","client","queryKey","createPromiseClient","method","newClient","newQueryKey","res","lastCall","calls","pop","header","get"],"mappings":"AAAA,SAASA,MAAM,QAAQ,sDAAqD;AAE5E,SAASC,aAAa,QAAQ,cAAc;AAE5CC,SAASC,IAAI,CAAC,aAAa;IACzB,IAAIC;IAEJC,UAAU;QACR,MAAMC,OAAO,CAAC,EAAEC,OAAO,EAAE;YACvBA,QAAQP,QAAQ;gBACdQ,OAAO,IAAO,CAAA;wBAAEC,QAAQ;oBAAE,CAAA;YAC5B;QACF;QAEAL,YAAY,IAAIH,cAAcK;IAChC;IAEAI,GAAG,yCAAyC;QAC1CC,OAAOP,WAAWQ,WAAW;QAC7BD,OAAOP,UAAUA,SAAS,EAAEQ,WAAW;IACzC;IAEAF,GAAG,sBAAsB;QACvB,MAAMG,SAAS;QAEfT,UAAUU,SAAS,CAACD;QACpB,MAAME,UAAUX,UAAUY,UAAU;QAEpCL,OAAOI,QAAQE,GAAG,EAAEC,OAAO,CAACL;IAC9B;IAEAH,GAAG,kCAAkC;QACnC,MAAMS,YAAY;QAElBf,UAAUgB,OAAO,CAACD;QAClB,MAAMJ,UAAUX,UAAUY,UAAU;QAEpCL,OAAOI,QAAQM,aAAa,EAAEH,OAAO,CAACC;IACxC;IAEAT,GAAG,4BAA4B;QAC7B,MAAMY,aAAa;QACnB,MAAMC,cAAc;QAEpBnB,UAAUoB,SAAS,CAACF,YAAYC;QAChC,MAAMR,UAAUX,UAAUY,UAAU;QAEpCL,OAAOI,OAAO,CAACO,WAAW,EAAEJ,OAAO,CAACK;IACtC;IAEAb,GAAG,gCAAgC;QACjC,MAAMY,aAAa;QACnB,MAAMC,cAAc;QAEpBnB,UAAUoB,SAAS,CAACF,YAAYC;QAChC,MAAME,iBAAiBrB,UAAUsB,SAAS,CAACJ;QAE3CX,OAAOc,gBAAgBP,OAAO,CAACK;IACjC;IAEAb,GAAG,oCAAoC;QACrC,MAAMiB,cAAc,CAACC,MAAQA;QAE7BxB,UAAUyB,mBAAmB,CAACF;QAC9BhB,OAAOP,SAAS,CAAC,eAAe,EAAE0B,SAAS,CAACH;QAE5CvB,UAAU2B,iBAAiB,CAACJ;QAC5BhB,OAAOP,SAAS,CAAC,eAAe,EAAE4B,GAAG,CAACF,SAAS,CAACH;IAClD;IAEAjB,GAAG,0CAA0C;QAC3C,MAAM,EAAEuB,MAAM,EAAEC,QAAQ,EAAE,GAAG9B,UAAU+B,mBAAmB,CAACnC,QAAQ;YAAEoC,QAAQ;QAAQ;QAErFzB,OAAOsB,QAAQrB,WAAW;QAC1BD,OAAOsB,OAAOzB,KAAK,EAAEI,WAAW;QAChCD,OAAOuB,UAAUtB,WAAW;QAE5B,MAAM,EAAEqB,QAAQI,SAAS,EAAEH,UAAUI,WAAW,EAAE,GAAGlC,UAAU+B,mBAAmB,CAACnC,QAAQ;YAAEoC,QAAQ;QAAQ;QAE7GzB,OAAOsB,WAAWI;QAClB1B,OAAOuB,aAAaI;IACtB;IAEA5B,GAAG,qCAAqC;QACtC,MAAM,EAAEuB,MAAM,EAAE,GAAG7B,UAAU+B,mBAAmB,CAACnC,QAAQ;YAAEoC,QAAQ;QAAQ;QAE3E,MAAMG,MAAM,MAAMN,OAAOzB,KAAK,CAAC,CAAC;QAEhCG,OAAO4B,KAAK9B;QACZE,OAAO4B,IAAI9B,MAAM,EAAES,OAAO,CAAC;QAE3B,MAAMsB,WAAWpC,UAAUqC,KAAK,CAACC,GAAG;QACpC,MAAM3B,UAAUX,UAAUY,UAAU;QAEpCL,OAAO6B;QAEP,IAAK,MAAMG,UAAU5B,QAAS;YAC5BJ,OAAO6B,SAASG,MAAM,CAACC,GAAG,CAACD,SAASzB,OAAO,CAACH,OAAO,CAAC4B,OAAO;QAC7D;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../../packages/sdk-web-api/src/grpc/transport.test.ts"],"sourcesContent":["import { Health } from '@streamlayer/sl-eslib/grpc/health/v1/health_connect'\n\nimport { MockTransport } from './transport'\n\ndescribe.skip('Transport', () => {\n let transport: MockTransport\n\n beforeAll(() => {\n const mock = ({ service }) => {\n service(Health, {\n check: () => ({ status: 1 }),\n })\n }\n\n transport = new MockTransport(mock)\n })\n\n it('should initialize with default values', () => {\n expect(transport).toBeDefined()\n expect(transport.transport).toBeDefined()\n })\n\n it('should set SDK key', () => {\n const sdkKey = 'new-sdk-key'\n\n transport.setSdkKey(sdkKey)\n const headers = transport.getHeaders()\n\n expect(headers.sdk).toEqual(sdkKey)\n })\n\n it('should set authorization token', () => {\n const authToken = 'my-auth-token'\n\n transport.setAuth(authToken)\n const headers = transport.getHeaders()\n\n expect(headers.authorization).toEqual(authToken)\n })\n\n it('should set custom header', () => {\n const headerName = 'custom-header'\n const headerValue = 'custom-value'\n\n transport.setHeader(headerName, headerValue)\n const headers = transport.getHeaders()\n\n expect(headers[headerName]).toEqual(headerValue)\n })\n\n it('should get a specific header', () => {\n const headerName = 'custom-header'\n const headerValue = 'custom-value'\n\n transport.setHeader(headerName, headerValue)\n const retrievedValue = transport.getHeader(headerName)\n\n expect(retrievedValue).toEqual(headerValue)\n })\n\n it('should add/remove an interceptor', () => {\n const interceptor = (req) => req\n\n transport.registerInterceptor(interceptor)\n expect(transport['interceptors']).toContain(interceptor)\n\n transport.removeInterceptor(interceptor)\n expect(transport['interceptors']).not.toContain(interceptor)\n })\n\n it('should create and cache promise client', () => {\n const { client, queryKey } = transport.createPromiseClient(Health, { method: 'check' })\n\n expect(client).toBeDefined()\n expect(client.check).toBeDefined()\n expect(queryKey).toBeDefined()\n\n const { client: newClient, queryKey: newQueryKey } = transport.createPromiseClient(Health, { method: 'check' })\n\n expect(client === newClient)\n expect(queryKey !== newQueryKey)\n })\n\n it('should use all headers from store', async () => {\n const { client } = transport.createPromiseClient(Health, { method: 'check' })\n\n const res = await client.check({})\n\n expect(res?.status)\n expect(res.status).toEqual(1)\n\n const lastCall = transport.calls.pop()\n const headers = transport.getHeaders()\n\n expect(lastCall)\n\n for (const header in headers) {\n expect(lastCall.header.get(header)).toEqual(headers[header])\n }\n })\n})\n"],"names":["Health","MockTransport","describe","skip","transport","beforeAll","mock","service","check","status","it","expect","toBeDefined","sdkKey","setSdkKey","headers","getHeaders","sdk","toEqual","authToken","setAuth","authorization","headerName","headerValue","setHeader","retrievedValue","getHeader","interceptor","req","registerInterceptor","toContain","removeInterceptor","not","client","queryKey","createPromiseClient","method","newClient","newQueryKey","res","lastCall","calls","pop","header","get"],"mappings":"AAAA,SAASA,MAAM,QAAQ,sDAAqD;AAE5E,SAASC,aAAa,QAAQ,cAAa;AAE3CC,SAASC,IAAI,CAAC,aAAa;IACzB,IAAIC;IAEJC,UAAU;QACR,MAAMC,OAAO,CAAC,EAAEC,OAAO,EAAE;YACvBA,QAAQP,QAAQ;gBACdQ,OAAO,IAAO,CAAA;wBAAEC,QAAQ;oBAAE,CAAA;YAC5B;QACF;QAEAL,YAAY,IAAIH,cAAcK;IAChC;IAEAI,GAAG,yCAAyC;QAC1CC,OAAOP,WAAWQ,WAAW;QAC7BD,OAAOP,UAAUA,SAAS,EAAEQ,WAAW;IACzC;IAEAF,GAAG,sBAAsB;QACvB,MAAMG,SAAS;QAEfT,UAAUU,SAAS,CAACD;QACpB,MAAME,UAAUX,UAAUY,UAAU;QAEpCL,OAAOI,QAAQE,GAAG,EAAEC,OAAO,CAACL;IAC9B;IAEAH,GAAG,kCAAkC;QACnC,MAAMS,YAAY;QAElBf,UAAUgB,OAAO,CAACD;QAClB,MAAMJ,UAAUX,UAAUY,UAAU;QAEpCL,OAAOI,QAAQM,aAAa,EAAEH,OAAO,CAACC;IACxC;IAEAT,GAAG,4BAA4B;QAC7B,MAAMY,aAAa;QACnB,MAAMC,cAAc;QAEpBnB,UAAUoB,SAAS,CAACF,YAAYC;QAChC,MAAMR,UAAUX,UAAUY,UAAU;QAEpCL,OAAOI,OAAO,CAACO,WAAW,EAAEJ,OAAO,CAACK;IACtC;IAEAb,GAAG,gCAAgC;QACjC,MAAMY,aAAa;QACnB,MAAMC,cAAc;QAEpBnB,UAAUoB,SAAS,CAACF,YAAYC;QAChC,MAAME,iBAAiBrB,UAAUsB,SAAS,CAACJ;QAE3CX,OAAOc,gBAAgBP,OAAO,CAACK;IACjC;IAEAb,GAAG,oCAAoC;QACrC,MAAMiB,cAAc,CAACC,MAAQA;QAE7BxB,UAAUyB,mBAAmB,CAACF;QAC9BhB,OAAOP,SAAS,CAAC,eAAe,EAAE0B,SAAS,CAACH;QAE5CvB,UAAU2B,iBAAiB,CAACJ;QAC5BhB,OAAOP,SAAS,CAAC,eAAe,EAAE4B,GAAG,CAACF,SAAS,CAACH;IAClD;IAEAjB,GAAG,0CAA0C;QAC3C,MAAM,EAAEuB,MAAM,EAAEC,QAAQ,EAAE,GAAG9B,UAAU+B,mBAAmB,CAACnC,QAAQ;YAAEoC,QAAQ;QAAQ;QAErFzB,OAAOsB,QAAQrB,WAAW;QAC1BD,OAAOsB,OAAOzB,KAAK,EAAEI,WAAW;QAChCD,OAAOuB,UAAUtB,WAAW;QAE5B,MAAM,EAAEqB,QAAQI,SAAS,EAAEH,UAAUI,WAAW,EAAE,GAAGlC,UAAU+B,mBAAmB,CAACnC,QAAQ;YAAEoC,QAAQ;QAAQ;QAE7GzB,OAAOsB,WAAWI;QAClB1B,OAAOuB,aAAaI;IACtB;IAEA5B,GAAG,qCAAqC;QACtC,MAAM,EAAEuB,MAAM,EAAE,GAAG7B,UAAU+B,mBAAmB,CAACnC,QAAQ;YAAEoC,QAAQ;QAAQ;QAE3E,MAAMG,MAAM,MAAMN,OAAOzB,KAAK,CAAC,CAAC;QAEhCG,OAAO4B,KAAK9B;QACZE,OAAO4B,IAAI9B,MAAM,EAAES,OAAO,CAAC;QAE3B,MAAMsB,WAAWpC,UAAUqC,KAAK,CAACC,GAAG;QACpC,MAAM3B,UAAUX,UAAUY,UAAU;QAEpCL,OAAO6B;QAEP,IAAK,MAAMG,UAAU5B,QAAS;YAC5BJ,OAAO6B,SAASG,MAAM,CAACC,GAAG,CAACD,SAASzB,OAAO,CAACH,OAAO,CAAC4B,OAAO;QAC7D;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../packages/sdk-web-api/src/index.test.ts"],"sourcesContent":["describe('My Test Suite', () => {\n it('should pass this test', () => {\n expect(true)\n });\n});\n"],"names":["describe","it","expect"],"mappings":"AAAAA,SAAS,iBAAiB;IACxBC,GAAG,yBAAyB;QAC1BC,OAAO;IACT;AACF"}
1
+ {"version":3,"sources":["../../../../packages/sdk-web-api/src/index.test.ts"],"sourcesContent":["describe('My Test Suite', () => {\n it('should pass this test', () => {\n expect(true)\n })\n})\n"],"names":["describe","it","expect"],"mappings":"AAAAA,SAAS,iBAAiB;IACxBC,GAAG,yBAAyB;QAC1BC,OAAO;IACT;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/sdk-web-api/src/utils/grpc-stub.ts"],"sourcesContent":["import { Transport as BufTransport, UnaryResponse } from '@bufbuild/connect'\nimport type { AnyMessage, Message } from \"@bufbuild/protobuf\"\n\nimport { Transport } from '..'\n\ntype Unary = BufTransport['unary']\n\nexport class GrpcStub {\n public readonly transport: Transport\n private stubs: Map<string, Record<string, unknown>>\n\n constructor() {\n this.transport = new Transport()\n this.stubs = new Map()\n\n const stubbedUnary: Unary = <I extends Message<I> = AnyMessage, O extends Message<O> = AnyMessage>(\n service,\n method,\n signal,\n timeoutMs,\n header,\n input,\n ) => {\n const key = `${service.typeName}${method.name}`.toLowerCase()\n\n console.log('grpc unary', { key, input })\n\n for (const [stubKey, stubValue] of this.stubs) {\n if (stubKey === key) {\n return { message: stubValue } as unknown as Promise<UnaryResponse<I, O>>\n }\n }\n\n throw new Error(JSON.stringify({ message: 'not stubbed correctly', service, method, signal, timeoutMs, header, input }))\n }\n\n this.transport.transport.unary = stubbedUnary\n }\n\n stub = (method: string, response: Record<string, unknown>) => {\n this.stubs.set(method.toLowerCase(), response)\n }\n}\n"],"names":["Transport","GrpcStub","constructor","stub","method","response","stubs","set","toLowerCase","transport","Map","stubbedUnary","service","signal","timeoutMs","header","input","key","typeName","name","console","log","stubKey","stubValue","message","Error","JSON","stringify","unary"],"mappings":"AAGA,SAASA,SAAS,QAAQ,KAAI;AAI9B,OAAO,MAAMC;IAIXC,aAAc;aA4BdC,OAAO,CAACC,QAAgBC;YACtB,IAAI,CAACC,KAAK,CAACC,GAAG,CAACH,OAAOI,WAAW,IAAIH;QACvC;QA7BE,IAAI,CAACI,SAAS,GAAG,IAAIT;QACrB,IAAI,CAACM,KAAK,GAAG,IAAII;QAEjB,MAAMC,eAAsB,CAC1BC,SACAR,QACAS,QACAC,WACAC,QACAC;YAEA,MAAMC,MAAM,CAAC,EAAEL,QAAQM,QAAQ,CAAC,EAAEd,OAAOe,IAAI,CAAC,CAAC,CAACX,WAAW;YAE3DY,QAAQC,GAAG,CAAC,cAAc;gBAAEJ;gBAAKD;YAAM;YAEvC,KAAK,MAAM,CAACM,SAASC,UAAU,IAAI,IAAI,CAACjB,KAAK,CAAE;gBAC7C,IAAIgB,YAAYL,KAAK;oBACnB,OAAO;wBAAEO,SAASD;oBAAU;gBAC9B;YACF;YAEA,MAAM,IAAIE,MAAMC,KAAKC,SAAS,CAAC;gBAAEH,SAAS;gBAAyBZ;gBAASR;gBAAQS;gBAAQC;gBAAWC;gBAAQC;YAAM;QACvH;QAEA,IAAI,CAACP,SAAS,CAACA,SAAS,CAACmB,KAAK,GAAGjB;IACnC;AAKF"}
1
+ {"version":3,"sources":["../../../../../packages/sdk-web-api/src/utils/grpc-stub.ts"],"sourcesContent":["import { Transport as BufTransport, UnaryResponse } from '@bufbuild/connect'\nimport type { AnyMessage, Message } from '@bufbuild/protobuf'\n\nimport { Transport } from '..'\n\ntype Unary = BufTransport['unary']\n\nexport class GrpcStub {\n public readonly transport: Transport\n private stubs: Map<string, Record<string, unknown>>\n\n constructor() {\n this.transport = new Transport()\n this.stubs = new Map()\n\n const stubbedUnary: Unary = <I extends Message<I> = AnyMessage, O extends Message<O> = AnyMessage>(\n service,\n method,\n signal,\n timeoutMs,\n header,\n input,\n ) => {\n const key = `${service.typeName}${method.name}`.toLowerCase()\n\n console.log('grpc unary', { key, input })\n\n for (const [stubKey, stubValue] of this.stubs) {\n if (stubKey === key) {\n return { message: stubValue } as unknown as Promise<UnaryResponse<I, O>>\n }\n }\n\n throw new Error(\n JSON.stringify({ message: 'not stubbed correctly', service, method, signal, timeoutMs, header, input }),\n )\n }\n\n this.transport.transport.unary = stubbedUnary\n }\n\n stub = (method: string, response: Record<string, unknown>) => {\n this.stubs.set(method.toLowerCase(), response)\n }\n}\n"],"names":["Transport","GrpcStub","constructor","stub","method","response","stubs","set","toLowerCase","transport","Map","stubbedUnary","service","signal","timeoutMs","header","input","key","typeName","name","console","log","stubKey","stubValue","message","Error","JSON","stringify","unary"],"mappings":"AAGA,SAASA,SAAS,QAAQ,KAAI;AAI9B,OAAO,MAAMC;IAIXC,aAAc;aA8BdC,OAAO,CAACC,QAAgBC;YACtB,IAAI,CAACC,KAAK,CAACC,GAAG,CAACH,OAAOI,WAAW,IAAIH;QACvC;QA/BE,IAAI,CAACI,SAAS,GAAG,IAAIT;QACrB,IAAI,CAACM,KAAK,GAAG,IAAII;QAEjB,MAAMC,eAAsB,CAC1BC,SACAR,QACAS,QACAC,WACAC,QACAC;YAEA,MAAMC,MAAM,CAAC,EAAEL,QAAQM,QAAQ,CAAC,EAAEd,OAAOe,IAAI,CAAC,CAAC,CAACX,WAAW;YAE3DY,QAAQC,GAAG,CAAC,cAAc;gBAAEJ;gBAAKD;YAAM;YAEvC,KAAK,MAAM,CAACM,SAASC,UAAU,IAAI,IAAI,CAACjB,KAAK,CAAE;gBAC7C,IAAIgB,YAAYL,KAAK;oBACnB,OAAO;wBAAEO,SAASD;oBAAU;gBAC9B;YACF;YAEA,MAAM,IAAIE,MACRC,KAAKC,SAAS,CAAC;gBAAEH,SAAS;gBAAyBZ;gBAASR;gBAAQS;gBAAQC;gBAAWC;gBAAQC;YAAM;QAEzG;QAEA,IAAI,CAACP,SAAS,CAACA,SAAS,CAACmB,KAAK,GAAGjB;IACnC;AAKF"}