@things-factory/shell 10.1.34 → 10.1.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/service/subscription-data/data-resolver.js +2 -3
- package/dist-server/service/subscription-data/data-resolver.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/index.d.ts +1 -0
- package/dist-server/utils/index.js +1 -0
- package/dist-server/utils/index.js.map +1 -1
- package/dist-server/utils/subscribe-auth.d.ts +14 -0
- package/dist-server/utils/subscribe-auth.js +35 -0
- package/dist-server/utils/subscribe-auth.js.map +1 -0
- package/package.json +2 -2
- package/tests/popup-buttons-class-shrinks.test.ts +15 -12
- package/tests/subscribe-auth.test.ts +57 -0
- package/tests/theme-file-names.test.ts +6 -10
- package/translations/en.json +4 -1
- package/translations/ja.json +4 -1
- package/translations/ko.json +4 -1
- package/translations/ms.json +4 -1
- package/translations/zh.json +3 -1
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const graphql_yoga_1 = require("graphql-yoga");
|
|
6
6
|
const type_graphql_1 = require("type-graphql");
|
|
7
7
|
const pubsub_js_1 = require("../../pubsub.js");
|
|
8
|
+
const subscribe_auth_js_1 = require("../../utils/subscribe-auth.js");
|
|
8
9
|
const data_types_js_1 = require("./data-types.js");
|
|
9
10
|
/* 이 Resolver는 @things-factory/integration-base 에서 Overide 된다. (state-register를 사용하기 위해서) */
|
|
10
11
|
let DataResolver = class DataResolver {
|
|
@@ -25,9 +26,7 @@ tslib_1.__decorate([
|
|
|
25
26
|
throw new Error('domain and tag required');
|
|
26
27
|
}
|
|
27
28
|
//@ts-ignore
|
|
28
|
-
|
|
29
|
-
throw new Error(`domain(${subdomain}) is not working for user(${user.email}).`);
|
|
30
|
-
}
|
|
29
|
+
await (0, subscribe_auth_js_1.assertDomainSubscribeAllowed)(domain, user, (d, u) => process.superUserGranted(d, u));
|
|
31
30
|
return (0, graphql_yoga_1.pipe)(pubsub_js_1.pubsub.subscribe('data'), (0, graphql_yoga_1.filter)((payload) => {
|
|
32
31
|
const { domain: pdomain, tag: ptag, data } = payload.data;
|
|
33
32
|
return tag === ptag && subdomain === pdomain?.subdomain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-resolver.js","sourceRoot":"","sources":["../../../server/service/subscription-data/data-resolver.ts"],"names":[],"mappings":";;;;AAAA,+CAA2C;AAC3C,+CAAgE;AAEhE,+CAAwC;AACxC,mDAAsC;AAEtC,4FAA4F;AAErF,IAAM,YAAY,GAAlB,MAAM,YAAY;
|
|
1
|
+
{"version":3,"file":"data-resolver.js","sourceRoot":"","sources":["../../../server/service/subscription-data/data-resolver.ts"],"names":[],"mappings":";;;;AAAA,+CAA2C;AAC3C,+CAAgE;AAEhE,+CAAwC;AACxC,qEAA4E;AAC5E,mDAAsC;AAEtC,4FAA4F;AAErF,IAAM,YAAY,GAAlB,MAAM,YAAY;IAyBvB,IAAI,CACM,OAAuB,EACuE,GAAW;QAEjH,qDAAqD;QACrD,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAC5C,CAAC;CACF,CAAA;AAhCY,oCAAY;AAyBvB;IAxBC,IAAA,2BAAY,EAAC;QACZ,WAAW,EACT,+JAA+J;QACjK,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACtC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YACpB,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;YAEnC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAC5C,CAAC;YAED,YAAY;YACZ,MAAM,IAAA,gDAA4B,EAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAE1F,OAAO,IAAA,mBAAI,EACT,kBAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EACxB,IAAA,qBAAM,EAAC,CAAC,OAAuB,EAAE,EAAE;gBACjC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAA;gBACzD,OAAO,GAAG,KAAK,IAAI,IAAI,SAAS,KAAK,OAAO,EAAE,SAAS,CAAA;YACzD,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAC;IAEC,mBAAA,IAAA,mBAAI,GAAE,CAAA;IACN,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,EAAE,WAAW,EAAE,uEAAuE,EAAE,CAAC,CAAA;;;4CACpG,oBAAI;wCAGN;uBA/BU,YAAY;IADxB,IAAA,uBAAQ,GAAE;GACE,YAAY,CAgCxB","sourcesContent":["import { filter, pipe } from 'graphql-yoga'\nimport { Arg, Resolver, Root, Subscription } from 'type-graphql'\n\nimport { pubsub } from '../../pubsub.js'\nimport { assertDomainSubscribeAllowed } from '../../utils/subscribe-auth.js'\nimport { Data } from './data-types.js'\n\n/* 이 Resolver는 @things-factory/integration-base 에서 Overide 된다. (state-register를 사용하기 위해서) */\n@Resolver()\nexport class DataResolver {\n @Subscription({\n description:\n 'Subscribes to real-time data updates for a specific tag within the current domain. Only users belonging to the domain or superusers are allowed to subscribe.',\n subscribe: async ({ args, context, info }) => {\n const { domain, user } = context.state\n const { tag } = args\n const subdomain = domain?.subdomain\n\n if (!domain || !tag) {\n throw new Error('domain and tag required')\n }\n\n //@ts-ignore\n await assertDomainSubscribeAllowed(domain, user, (d, u) => process.superUserGranted(d, u))\n\n return pipe(\n pubsub.subscribe('data'),\n filter((payload: { data: Data }) => {\n const { domain: pdomain, tag: ptag, data } = payload.data\n return tag === ptag && subdomain === pdomain?.subdomain\n })\n )\n }\n })\n data(\n @Root() payload: { data: Data },\n @Arg('tag', { description: 'The tag used to filter and identify the data stream for subscription.' }) tag: string\n ): Data {\n // 전달 시점에 발행 타임스탬프(ts)를 무조건 스탬프 (클라이언트 데이터 지연 모니터링용).\n return { ...payload.data, ts: Date.now() }\n }\n}\n"]}
|