@things-factory/edge-client 10.0.0-beta.92 → 10.0.0-y.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.
@@ -58,7 +58,7 @@ tslib_1.__decorate([
58
58
  if (!domain) {
59
59
  throw new Error('domain required');
60
60
  }
61
- if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {
61
+ if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {
62
62
  throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
63
63
  }
64
64
  const appliance = user.reference &&
@@ -102,7 +102,7 @@ tslib_1.__decorate([
102
102
  if (!domain) {
103
103
  throw new Error('domain required');
104
104
  }
105
- if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {
105
+ if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {
106
106
  throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
107
107
  }
108
108
  const appliance = user.reference &&
@@ -140,7 +140,7 @@ tslib_1.__decorate([
140
140
  if (!domain) {
141
141
  throw new Error('domain required');
142
142
  }
143
- if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {
143
+ if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {
144
144
  throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
145
145
  }
146
146
  const appliance = user.reference &&
@@ -178,7 +178,7 @@ tslib_1.__decorate([
178
178
  if (!domain) {
179
179
  throw new Error('domain required');
180
180
  }
181
- if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {
181
+ if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {
182
182
  throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
183
183
  }
184
184
  const appliance = user.reference &&
@@ -1 +1 @@
1
- {"version":3,"file":"edge-client-subscription.js","sourceRoot":"","sources":["../../../server/service/appliance/edge-client-subscription.ts"],"names":[],"mappings":";;;;AAAA,+CAA2C;AAC3C,+CAAgE;AAEhE,iDAAqE;AACrE,yDAA2D;AAC3D,uEAAsF;AAEtF,yDAAgE;AAGzD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAuDjC,eAAe,CAAS,OAAqB;QAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC9B,OAAO;gBACL,GAAG,UAAU;gBACb,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;aAC1C,CAAA;QACH,CAAC,CAAQ,CAAA;IACX,CAAC;IA8CD,kBAAkB,CAAS,OAAqB;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC9B,OAAO;gBACL,GAAG,UAAU;gBACb,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;aAC1C,CAAA;QACH,CAAC,CAAQ,CAAA;IACX,CAAC;IA8CD,qBAAqB,CAAS,OAAqB;QACjD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC9B,OAAO;gBACL,GAAG,UAAU;gBACb,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;aAC1C,CAAA;QACH,CAAC,CAAQ,CAAA;IACX,CAAC;IA8CD,OAAO,CAAS,OAAuB;QACrC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QACrC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAE5D,OAAO;YACL,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE;gBACJ,IAAI;gBACJ,IAAI;gBACJ,WAAW;gBACX,UAAU;gBACV,MAAM,EAAE,MAAM,IAAI,EAAE;aACrB;YACD,OAAO;SACR,CAAA;IACH,CAAC;CACF,CAAA;AAtOY,wDAAsB;AAuDjC;IAtDC,IAAA,2BAAY,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6BAAU,CAAC,EAAE;QAClC,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;YACtE,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;gBACd,CAAC,MAAM,IAAA,qBAAa,EAAC,qBAAS,CAAC,CAAC,OAAO,CAAC;oBACtC,KAAK,EAAE;wBACL,EAAE,EAAE,IAAI,CAAC,SAAS;qBACnB;iBACF,CAAC,CAAC,CAAA;YAEL,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACxC,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,oCAAiB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAC/F,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CACvC,CAAA;gBAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,cAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAA;gBACjD,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,EACpC,IAAA,qBAAM,EAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;gBACrC,MAAM,WAAW,GAAG,OAAO,CAAA;gBAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;gBAEjC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;oBAC/E,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACe,mBAAA,IAAA,mBAAI,GAAE,CAAA;;;;6DAOtB;AA8CD;IA5CC,IAAA,2BAAY,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6BAAU,CAAC,EAAE;QAClC,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;YACtE,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;gBACd,CAAC,MAAM,IAAA,qBAAa,EAAC,qBAAS,CAAC,CAAC,OAAO,CAAC;oBACtC,KAAK,EAAE;wBACL,EAAE,EAAE,IAAI,CAAC,SAAS;qBACnB;iBACF,CAAC,CAAC,CAAA;YAEL,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACxC,CAAC;YAED,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,EACvC,IAAA,qBAAM,EAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;gBACrC,MAAM,WAAW,GAAG,OAAO,CAAA;gBAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;gBAEjC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;oBAC/E,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACkB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;;;gEAOzB;AA8CD;IA5CC,IAAA,2BAAY,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6BAAU,CAAC,EAAE;QAClC,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;YACtE,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;gBACd,CAAC,MAAM,IAAA,qBAAa,EAAC,qBAAS,CAAC,CAAC,OAAO,CAAC;oBACtC,KAAK,EAAE;wBACL,EAAE,EAAE,IAAI,CAAC,SAAS;qBACnB;iBACF,CAAC,CAAC,CAAA;YAEL,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACxC,CAAC;YAED,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAC1C,IAAA,qBAAM,EAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;gBACrC,MAAM,WAAW,GAAG,OAAO,CAAA;gBAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;gBAEjC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;oBAC/E,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACqB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;;;mEAO5B;AA8CD;IA5CC,IAAA,2BAAY,EAAC;QACZ,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;YAEtE,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6BAA6B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YACjF,CAAC;YAED,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;gBACd,CAAC,MAAM,IAAA,qBAAa,EAAC,qBAAS,CAAC,CAAC,OAAO,CAAC;oBACtC,KAAK,EAAE;wBACL,EAAE,EAAE,IAAI,CAAC,SAAS;qBACnB;iBACF,CAAC,CAAC,CAAA;YAEL,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACxC,CAAC;YACD,OAAO,IAAA,mBAAI,EACT,cAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAC5B,IAAA,qBAAM,EAAC,KAAK,EAAE,OAAyD,EAAE,EAAE;gBACzE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAA;gBAE7C,IAAI,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,IAAI,oCAAiB,CAAC,iCAAiC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;gBAExG,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IACO,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAU,iCAAc;4CAAG,iCAAc;qDAevD;iCArOU,sBAAsB;IADlC,IAAA,uBAAQ,EAAC,qBAAS,CAAC;GACP,sBAAsB,CAsOlC","sourcesContent":["import { filter, pipe } from 'graphql-yoga'\nimport { Resolver, Subscription, Root, Arg } from 'type-graphql'\n\nimport { pubsub, getRepository, Domain } from '@things-factory/shell'\nimport { Appliance, User } from '@things-factory/auth-base'\nimport { ConnectionManager, Connection, Step } from '@things-factory/integration-base'\n\nimport { EdgeContext, RunTaskPayload } from './edge-client-type'\n\n@Resolver(Appliance)\nexport class EdgeClientSubscription {\n @Subscription(type => [Connection], {\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n\n process.nextTick(async () => {\n const connections = Object.values(ConnectionManager.getConnectionInstanceEntities(domain)).filter(\n ({ edgeId }) => edgeId == appliance.id\n )\n\n if (connections.length > 0) {\n pubsub.publish('sync-connections', connections)\n }\n })\n\n return pipe(\n pubsub.subscribe('sync-connections'),\n filter(async (payload: Connection[]) => {\n const connections = payload\n const { edgeId } = connections[0]\n\n if (connections.find(connection => connection.domain?.subdomain !== subdomain)) {\n return false\n }\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n syncConnections(@Root() payload: Connection[]): Connection[] {\n return payload.map(connection => {\n return {\n ...connection,\n params: JSON.stringify(connection.params)\n }\n }) as any\n }\n\n @Subscription(type => [Connection], {\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n\n return pipe(\n pubsub.subscribe('connect-connections'),\n filter(async (payload: Connection[]) => {\n const connections = payload\n const { edgeId } = connections[0]\n\n if (connections.find(connection => connection.domain?.subdomain !== subdomain)) {\n return false\n }\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n connectConnections(@Root() payload: Connection[]): Connection[] {\n return payload.map(connection => {\n return {\n ...connection,\n params: JSON.stringify(connection.params)\n }\n }) as any\n }\n\n @Subscription(type => [Connection], {\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n\n return pipe(\n pubsub.subscribe('disconnect-connections'),\n filter(async (payload: Connection[]) => {\n const connections = payload\n const { edgeId } = connections[0]\n\n if (connections.find(connection => connection.domain?.subdomain !== subdomain)) {\n return false\n }\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n disconnectConnections(@Root() payload: Connection[]): Connection[] {\n return payload.map(connection => {\n return {\n ...connection,\n params: JSON.stringify(connection.params)\n }\n }) as any\n }\n\n @Subscription({\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const subdomain = domain?.subdomain\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !process.superUserGranted(domain, user)) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n return pipe(\n pubsub.subscribe('run-task'),\n filter(async (payload: { id: string; step: Step; context: EdgeContext }) => {\n const { domainId, connection } = payload.step\n\n if (domainId !== domain.id) {\n return false\n }\n\n const { edgeId } = connection && ConnectionManager.getConnectionInstanceEntityByName(domain, connection)\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n runTask(@Root() payload: RunTaskPayload): RunTaskPayload {\n const { id, step, context } = payload\n const { name, task, description, connection, params } = step\n\n return {\n id, // requestId\n step: {\n name,\n task,\n description,\n connection,\n params: params || {}\n },\n context\n }\n }\n}\n"]}
1
+ {"version":3,"file":"edge-client-subscription.js","sourceRoot":"","sources":["../../../server/service/appliance/edge-client-subscription.ts"],"names":[],"mappings":"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","sourcesContent":["import { filter, pipe } from 'graphql-yoga'\nimport { Resolver, Subscription, Root, Arg } from 'type-graphql'\n\nimport { pubsub, getRepository, Domain } from '@things-factory/shell'\nimport { Appliance, User } from '@things-factory/auth-base'\nimport { ConnectionManager, Connection, Step } from '@things-factory/integration-base'\n\nimport { EdgeContext, RunTaskPayload } from './edge-client-type'\n\n@Resolver(Appliance)\nexport class EdgeClientSubscription {\n @Subscription(type => [Connection], {\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n\n process.nextTick(async () => {\n const connections = Object.values(ConnectionManager.getConnectionInstanceEntities(domain)).filter(\n ({ edgeId }) => edgeId == appliance.id\n )\n\n if (connections.length > 0) {\n pubsub.publish('sync-connections', connections)\n }\n })\n\n return pipe(\n pubsub.subscribe('sync-connections'),\n filter(async (payload: Connection[]) => {\n const connections = payload\n const { edgeId } = connections[0]\n\n if (connections.find(connection => connection.domain?.subdomain !== subdomain)) {\n return false\n }\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n syncConnections(@Root() payload: Connection[]): Connection[] {\n return payload.map(connection => {\n return {\n ...connection,\n params: JSON.stringify(connection.params)\n }\n }) as any\n }\n\n @Subscription(type => [Connection], {\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n\n return pipe(\n pubsub.subscribe('connect-connections'),\n filter(async (payload: Connection[]) => {\n const connections = payload\n const { edgeId } = connections[0]\n\n if (connections.find(connection => connection.domain?.subdomain !== subdomain)) {\n return false\n }\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n connectConnections(@Root() payload: Connection[]): Connection[] {\n return payload.map(connection => {\n return {\n ...connection,\n params: JSON.stringify(connection.params)\n }\n }) as any\n }\n\n @Subscription(type => [Connection], {\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const subdomain = domain?.subdomain\n\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n\n return pipe(\n pubsub.subscribe('disconnect-connections'),\n filter(async (payload: Connection[]) => {\n const connections = payload\n const { edgeId } = connections[0]\n\n if (connections.find(connection => connection.domain?.subdomain !== subdomain)) {\n return false\n }\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n disconnectConnections(@Root() payload: Connection[]): Connection[] {\n return payload.map(connection => {\n return {\n ...connection,\n params: JSON.stringify(connection.params)\n }\n }) as any\n }\n\n @Subscription({\n subscribe: async ({ args, context, info }) => {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const subdomain = domain?.subdomain\n if (!domain) {\n throw new Error('domain required')\n }\n\n if (!user.domains?.find(d => d.subdomain === subdomain) && !(await process.superUserGranted(domain, user))) {\n throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`)\n }\n\n const appliance =\n user.reference &&\n (await getRepository(Appliance).findOne({\n where: {\n id: user.reference\n }\n }))\n\n if (!appliance) {\n throw new Error('Appliance not found')\n }\n return pipe(\n pubsub.subscribe('run-task'),\n filter(async (payload: { id: string; step: Step; context: EdgeContext }) => {\n const { domainId, connection } = payload.step\n\n if (domainId !== domain.id) {\n return false\n }\n\n const { edgeId } = connection && ConnectionManager.getConnectionInstanceEntityByName(domain, connection)\n\n if (!edgeId || appliance?.id !== edgeId) {\n return false\n }\n\n return true\n })\n )\n }\n })\n runTask(@Root() payload: RunTaskPayload): RunTaskPayload {\n const { id, step, context } = payload\n const { name, task, description, connection, params } = step\n\n return {\n id, // requestId\n step: {\n name,\n task,\n description,\n connection,\n params: params || {}\n },\n context\n }\n }\n}\n"]}