@resolveio/server-lib 22.2.15 → 22.2.16

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.
@@ -120,7 +120,7 @@ function loadPublicationMethods(methodManager) {
120
120
  || process.env.PUBLICATION_WORKER_INSTANCE
121
121
  || process.env.WORKER_PUBLICATION_INSTANCE);
122
122
  methodManager.methods({
123
- runPublication: __assign(__assign(__assign({ skipValidation: true, workerTaskWeight: parseInt(process.env.SUBSCRIPTION_WORKER_TASK_WEIGHT || '', 10) || 1, maxConcurrency: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY || '', 10) || undefined, maxConcurrencyPerInstance: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY_PER_INSTANCE || '', 10) || undefined, workerQueue: 'publication' }, (publicationWorkerIndex ? { targetWorkerIndex: publicationWorkerIndex } : {})), (publicationWorkerInstance ? { targetWorkerInstance: publicationWorkerInstance } : {})), { function: function (publication_1) {
123
+ runPublication: __assign(__assign(__assign({ skipValidation: true, bypassSession: true, workerTaskWeight: parseInt(process.env.SUBSCRIPTION_WORKER_TASK_WEIGHT || '', 10) || 1, maxConcurrency: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY || '', 10) || undefined, maxConcurrencyPerInstance: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY_PER_INSTANCE || '', 10) || undefined, workerQueue: 'publication' }, (publicationWorkerIndex ? { targetWorkerIndex: publicationWorkerIndex } : {})), (publicationWorkerInstance ? { targetWorkerInstance: publicationWorkerInstance } : {})), { function: function (publication_1) {
124
124
  return __awaiter(this, arguments, void 0, function (publication, subscriptionData, userId) {
125
125
  var manager, pub, normalizedData, context, valObj, valKeys, rootKeys, i, metadata, execution, _a, response;
126
126
  if (subscriptionData === void 0) { subscriptionData = []; }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/publications.ts"],"names":[],"mappings":"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","file":"publications.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { SubscriptionManager } from '../managers/subscription.manager';\nimport { SubscriptionPubModel } from '../models/subscription.model';\nimport { serializeDependencySnapshot, withDependencyTracking } from '../util/subscription-dependency-context';\n\ninterface PublicationWorkerResponse {\n\t__publicationResponse: true;\n\tpublication: string;\n\tsubscriptionData: any[];\n\tuserSpecific: boolean;\n\tpayload: any;\n\tsnapshot: ReturnType<typeof serializeDependencySnapshot>;\n}\n\nfunction normalizeOptionalString(value: any): string {\n\tif (value === null || value === undefined) {\n\t\treturn '';\n\t}\n\treturn String(value).trim();\n}\n\nfunction resolveSingleWorkerTarget(value: any): string {\n\tconst normalized = normalizeOptionalString(value);\n\tif (!normalized) {\n\t\treturn '';\n\t}\n\tconst parts = normalized.split(',').map(part => part.trim()).filter(Boolean);\n\tif (parts.length !== 1) {\n\t\treturn '';\n\t}\n\treturn parts[0];\n}\n\nfunction normalizeSubscriptionData(subscriptionData: any[]): any[] {\n\tif (!Array.isArray(subscriptionData)) {\n\t\treturn [];\n\t}\n\n\treturn subscriptionData;\n}\n\nfunction resolvePublicationContext(manager: SubscriptionManager) {\n\treturn Object.assign({}, manager, SubscriptionManager.prototype);\n}\n\nfunction getPublication(manager: SubscriptionManager, publication: string): SubscriptionPubModel {\n\tif (!manager || typeof manager.getPublication !== 'function') {\n\t\tthrow new Error(`Subscription manager not available for publication: ${publication}`);\n\t}\n\n\tconst pub = manager.getPublication(publication);\n\tif (!pub) {\n\t\tthrow new Error(`Publication not found: ${publication}`);\n\t}\n\n\treturn pub;\n}\n\nexport function loadPublicationMethods(methodManager) {\n\tconst publicationWorkerIndex = resolveSingleWorkerTarget(\n\t\tprocess.env.SUBSCRIPTION_WORKER_INDEX\n\t\t|| process.env.PUBLICATION_WORKER_INDEX\n\t\t|| process.env.WORKER_PUBLICATION_INDEX\n\t);\n\tconst publicationWorkerInstance = resolveSingleWorkerTarget(\n\t\tprocess.env.SUBSCRIPTION_WORKER_INSTANCE\n\t\t|| process.env.PUBLICATION_WORKER_INSTANCE\n\t\t|| process.env.WORKER_PUBLICATION_INSTANCE\n\t);\n\tmethodManager.methods({\n\t\trunPublication: {\n\t\t\tskipValidation: true,\n\t\t\tworkerTaskWeight: parseInt(process.env.SUBSCRIPTION_WORKER_TASK_WEIGHT || '', 10) || 1,\n\t\t\tmaxConcurrency: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY || '', 10) || undefined,\n\t\t\tmaxConcurrencyPerInstance: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY_PER_INSTANCE || '', 10) || undefined,\n\t\t\tworkerQueue: 'publication',\n\t\t\t...(publicationWorkerIndex ? { targetWorkerIndex: publicationWorkerIndex } : {}),\n\t\t\t...(publicationWorkerInstance ? { targetWorkerInstance: publicationWorkerInstance } : {}),\n\t\t\tfunction: async function(publication: string, subscriptionData: any[] = [], userId?: string) {\n\t\t\t\tif (this.user && this.user !== 'Internal System') {\n\t\t\t\t\tthrow new Error('Unauthorized publication execution');\n\t\t\t\t}\n\n\t\t\t\tconst manager = ResolveIOServer.getMainServer().getSubscriptionManager();\n\t\t\t\tconst pub = getPublication(manager, publication);\n\t\t\t\tconst normalizedData = normalizeSubscriptionData(subscriptionData);\n\t\t\t\tconst context = resolvePublicationContext(manager);\n\n\t\t\t\tif (pub.check && pub.check._schema && (normalizedData.length > 1 || normalizedData[0])) {\n\t\t\t\t\tconst valObj = {};\n\t\t\t\t\tconst valKeys = Object.keys(pub.check._schema);\n\t\t\t\t\tconst rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\tfor (let i = 0; i < normalizedData.length; i++) {\n\t\t\t\t\t\tvalObj[rootKeys[i]] = normalizedData[i];\n\t\t\t\t\t}\n\t\t\t\t\tpub.check.validate(valObj);\n\t\t\t\t}\n\n\t\t\t\tconst metadata = {\n\t\t\t\t\tpublication,\n\t\t\t\t\tsubscriptionData: normalizedData\n\t\t\t\t};\n\n\t\t\t\tconst execution = pub.user_specific\n\t\t\t\t\t? await withDependencyTracking(\n\t\t\t\t\t\t() => pub.function.call(context, userId || '', ...normalizedData),\n\t\t\t\t\t\tObject.assign({}, metadata, { userId })\n\t\t\t\t\t)\n\t\t\t\t\t: await withDependencyTracking(\n\t\t\t\t\t\t() => pub.function.call(context, ...normalizedData),\n\t\t\t\t\t\tmetadata\n\t\t\t\t\t);\n\n\t\t\t\tconst response: PublicationWorkerResponse = {\n\t\t\t\t\t__publicationResponse: true,\n\t\t\t\t\tpublication,\n\t\t\t\t\tsubscriptionData: normalizedData,\n\t\t\t\t\tuserSpecific: !!pub.user_specific,\n\t\t\t\t\tpayload: execution.result,\n\t\t\t\t\tsnapshot: serializeDependencySnapshot(execution.snapshot)\n\t\t\t\t};\n\n\t\t\t\treturn response;\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
1
+ {"version":3,"sources":["../../src/methods/publications.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA,wDAqEC;AA/HD,gEAA0D;AAC1D,yEAAuE;AAEvE,2FAA8G;AAW9G,SAAS,uBAAuB,CAAC,KAAU;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAU;IAC5C,IAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAE,EAAX,CAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAuB;IACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,gBAAgB,CAAC;AACzB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA4B;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,0CAAmB,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,OAA4B,EAAE,WAAmB;IACxE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,8DAAuD,WAAW,CAAE,CAAC,CAAC;IACvF,CAAC;IAED,IAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAA0B,WAAW,CAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAgB,sBAAsB,CAAC,aAAa;IACnD,IAAM,sBAAsB,GAAG,yBAAyB,CACvD,OAAO,CAAC,GAAG,CAAC,yBAAyB;WAClC,OAAO,CAAC,GAAG,CAAC,wBAAwB;WACpC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CACvC,CAAC;IACF,IAAM,yBAAyB,GAAG,yBAAyB,CAC1D,OAAO,CAAC,GAAG,CAAC,4BAA4B;WACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B;WACvC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAC1C,CAAC;IACF,aAAa,CAAC,OAAO,CAAC;QACrB,cAAc,+BACb,cAAc,EAAE,IAAI,EACpB,aAAa,EAAE,IAAI,EACnB,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EACtF,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,SAAS,EAChG,yBAAyB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,SAAS,EACxH,WAAW,EAAE,aAAa,IACvB,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC7E,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACzF,QAAQ,EAAE;oEAAe,WAAmB,EAAE,gBAA4B,EAAE,MAAe;;oBAA7C,iCAAA,EAAA,qBAA4B;;;;gCACzE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oCAClD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gCACvD,CAAC;gCAEK,OAAO,GAAG,sCAAe,CAAC,aAAa,EAAE,CAAC,sBAAsB,EAAE,CAAC;gCACnE,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gCAC3C,cAAc,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;gCAC7D,OAAO,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;gCAEnD,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oCAClF,MAAM,GAAG,EAAE,CAAC;oCACZ,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oCACzC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAC;oCACvD,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wCAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oCACzC,CAAC;oCACD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gCAC5B,CAAC;gCAEK,QAAQ,GAAG;oCAChB,WAAW,aAAA;oCACX,gBAAgB,EAAE,cAAc;iCAChC,CAAC;qCAEgB,GAAG,CAAC,aAAa,EAAjB,wBAAiB;gCAChC,qBAAM,IAAA,wDAAsB,EAC7B;;wCAAM,OAAA,CAAA,KAAA,GAAG,CAAC,QAAQ,CAAA,CAAC,IAAI,0BAAC,OAAO,EAAE,MAAM,IAAI,EAAE,UAAK,cAAc;oCAA1D,CAA2D,EACjE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,QAAA,EAAE,CAAC,CACvC,EAAA;;gCAHC,KAAA,SAGD,CAAA;;oCACC,qBAAM,IAAA,wDAAsB,EAC7B;;oCAAM,OAAA,CAAA,KAAA,GAAG,CAAC,QAAQ,CAAA,CAAC,IAAI,0BAAC,OAAO,UAAK,cAAc;gCAA5C,CAA6C,EACnD,QAAQ,CACR,EAAA;;gCAHC,KAAA,SAGD,CAAA;;;gCARI,SAAS,KAQb;gCAEI,QAAQ,GAA8B;oCAC3C,qBAAqB,EAAE,IAAI;oCAC3B,WAAW,aAAA;oCACX,gBAAgB,EAAE,cAAc;oCAChC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa;oCACjC,OAAO,EAAE,SAAS,CAAC,MAAM;oCACzB,QAAQ,EAAE,IAAA,6DAA2B,EAAC,SAAS,CAAC,QAAQ,CAAC;iCACzD,CAAC;gCAEF,sBAAO,QAAQ,EAAC;;;;aAChB,GACD;KACD,CAAC,CAAC;AACJ,CAAC","file":"publications.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { SubscriptionManager } from '../managers/subscription.manager';\nimport { SubscriptionPubModel } from '../models/subscription.model';\nimport { serializeDependencySnapshot, withDependencyTracking } from '../util/subscription-dependency-context';\n\ninterface PublicationWorkerResponse {\n\t__publicationResponse: true;\n\tpublication: string;\n\tsubscriptionData: any[];\n\tuserSpecific: boolean;\n\tpayload: any;\n\tsnapshot: ReturnType<typeof serializeDependencySnapshot>;\n}\n\nfunction normalizeOptionalString(value: any): string {\n\tif (value === null || value === undefined) {\n\t\treturn '';\n\t}\n\treturn String(value).trim();\n}\n\nfunction resolveSingleWorkerTarget(value: any): string {\n\tconst normalized = normalizeOptionalString(value);\n\tif (!normalized) {\n\t\treturn '';\n\t}\n\tconst parts = normalized.split(',').map(part => part.trim()).filter(Boolean);\n\tif (parts.length !== 1) {\n\t\treturn '';\n\t}\n\treturn parts[0];\n}\n\nfunction normalizeSubscriptionData(subscriptionData: any[]): any[] {\n\tif (!Array.isArray(subscriptionData)) {\n\t\treturn [];\n\t}\n\n\treturn subscriptionData;\n}\n\nfunction resolvePublicationContext(manager: SubscriptionManager) {\n\treturn Object.assign({}, manager, SubscriptionManager.prototype);\n}\n\nfunction getPublication(manager: SubscriptionManager, publication: string): SubscriptionPubModel {\n\tif (!manager || typeof manager.getPublication !== 'function') {\n\t\tthrow new Error(`Subscription manager not available for publication: ${publication}`);\n\t}\n\n\tconst pub = manager.getPublication(publication);\n\tif (!pub) {\n\t\tthrow new Error(`Publication not found: ${publication}`);\n\t}\n\n\treturn pub;\n}\n\nexport function loadPublicationMethods(methodManager) {\n\tconst publicationWorkerIndex = resolveSingleWorkerTarget(\n\t\tprocess.env.SUBSCRIPTION_WORKER_INDEX\n\t\t|| process.env.PUBLICATION_WORKER_INDEX\n\t\t|| process.env.WORKER_PUBLICATION_INDEX\n\t);\n\tconst publicationWorkerInstance = resolveSingleWorkerTarget(\n\t\tprocess.env.SUBSCRIPTION_WORKER_INSTANCE\n\t\t|| process.env.PUBLICATION_WORKER_INSTANCE\n\t\t|| process.env.WORKER_PUBLICATION_INSTANCE\n\t);\n\tmethodManager.methods({\n\t\trunPublication: {\n\t\t\tskipValidation: true,\n\t\t\tbypassSession: true,\n\t\t\tworkerTaskWeight: parseInt(process.env.SUBSCRIPTION_WORKER_TASK_WEIGHT || '', 10) || 1,\n\t\t\tmaxConcurrency: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY || '', 10) || undefined,\n\t\t\tmaxConcurrencyPerInstance: parseInt(process.env.SUBSCRIPTION_WORKER_MAX_CONCURRENCY_PER_INSTANCE || '', 10) || undefined,\n\t\t\tworkerQueue: 'publication',\n\t\t\t...(publicationWorkerIndex ? { targetWorkerIndex: publicationWorkerIndex } : {}),\n\t\t\t...(publicationWorkerInstance ? { targetWorkerInstance: publicationWorkerInstance } : {}),\n\t\t\tfunction: async function(publication: string, subscriptionData: any[] = [], userId?: string) {\n\t\t\t\tif (this.user && this.user !== 'Internal System') {\n\t\t\t\t\tthrow new Error('Unauthorized publication execution');\n\t\t\t\t}\n\n\t\t\t\tconst manager = ResolveIOServer.getMainServer().getSubscriptionManager();\n\t\t\t\tconst pub = getPublication(manager, publication);\n\t\t\t\tconst normalizedData = normalizeSubscriptionData(subscriptionData);\n\t\t\t\tconst context = resolvePublicationContext(manager);\n\n\t\t\t\tif (pub.check && pub.check._schema && (normalizedData.length > 1 || normalizedData[0])) {\n\t\t\t\t\tconst valObj = {};\n\t\t\t\t\tconst valKeys = Object.keys(pub.check._schema);\n\t\t\t\t\tconst rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\tfor (let i = 0; i < normalizedData.length; i++) {\n\t\t\t\t\t\tvalObj[rootKeys[i]] = normalizedData[i];\n\t\t\t\t\t}\n\t\t\t\t\tpub.check.validate(valObj);\n\t\t\t\t}\n\n\t\t\t\tconst metadata = {\n\t\t\t\t\tpublication,\n\t\t\t\t\tsubscriptionData: normalizedData\n\t\t\t\t};\n\n\t\t\t\tconst execution = pub.user_specific\n\t\t\t\t\t? await withDependencyTracking(\n\t\t\t\t\t\t() => pub.function.call(context, userId || '', ...normalizedData),\n\t\t\t\t\t\tObject.assign({}, metadata, { userId })\n\t\t\t\t\t)\n\t\t\t\t\t: await withDependencyTracking(\n\t\t\t\t\t\t() => pub.function.call(context, ...normalizedData),\n\t\t\t\t\t\tmetadata\n\t\t\t\t\t);\n\n\t\t\t\tconst response: PublicationWorkerResponse = {\n\t\t\t\t\t__publicationResponse: true,\n\t\t\t\t\tpublication,\n\t\t\t\t\tsubscriptionData: normalizedData,\n\t\t\t\t\tuserSpecific: !!pub.user_specific,\n\t\t\t\t\tpayload: execution.result,\n\t\t\t\t\tsnapshot: serializeDependencySnapshot(execution.snapshot)\n\t\t\t\t};\n\n\t\t\t\treturn response;\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "22.2.15",
3
+ "version": "22.2.16",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "package": "./build_package.sh",
package/server-app.js CHANGED
@@ -1141,7 +1141,12 @@ var ResolveIOMainServer = /** @class */ (function () {
1141
1141
  }
1142
1142
  return;
1143
1143
  }
1144
- var infoData = info.req.headers['sec-websocket-protocol'].split(/,/);
1144
+ var protocolsHeader = info.req.headers['sec-websocket-protocol'];
1145
+ if (!protocolsHeader || typeof protocolsHeader !== 'string') {
1146
+ cb(false, 401, 'Unauthorized');
1147
+ return;
1148
+ }
1149
+ var infoData = protocolsHeader.split(/,/);
1145
1150
  if (!(0, common_1.isAllowedOrigin)(info.origin, resolveio_server_app_1.ResolveIOServer.getServerConfig())) {
1146
1151
  cb(false, 401, 'Unauthorized');
1147
1152
  }