@omnigraph/soap 0.105.12-alpha-20250120193117-c5311d507645783d8618c8de8c5167777be753d7 → 0.105.12-alpha-20250121010420-ca4d2092383ebce3108fea2d720cf912768168d9

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/cjs/SOAPLoader.js CHANGED
@@ -47,6 +47,9 @@ const soapDirective = new graphql_1.GraphQLDirective({
47
47
  soapHeaders: {
48
48
  type: SOAPHeadersInput,
49
49
  },
50
+ soapAction: {
51
+ type: graphql_1.GraphQLString,
52
+ },
50
53
  },
51
54
  });
52
55
  const QUERY_PREFIXES = [
@@ -352,12 +355,39 @@ class SOAPLoader {
352
355
  throw new Error(`Namespace alias: ${messageNamespaceAlias} is undefined!`);
353
356
  }
354
357
  const { type, elementName } = this.getOutputTypeForMessage(this.getNamespaceMessageMap(messageNamespace).get(messageName));
358
+ const bindingOperationObject = bindingObj.operation.find(operation => operation.attributes.name === operationName);
355
359
  const soapAnnotations = {
356
360
  elementName,
357
361
  bindingNamespace,
358
- endpoint: this.endpoint || portObj.address[0].attributes.location,
362
+ endpoint: this.endpoint,
359
363
  subgraph: this.subgraphName,
360
364
  };
365
+ if (!soapAnnotations.endpoint && portObj.address) {
366
+ for (const address of portObj.address) {
367
+ if (address.attributes) {
368
+ for (const attributeName in address.attributes) {
369
+ const value = address.attributes[attributeName];
370
+ if (value && attributeName.toLowerCase().endsWith('location')) {
371
+ soapAnnotations.endpoint = value;
372
+ break;
373
+ }
374
+ }
375
+ }
376
+ }
377
+ }
378
+ if (bindingOperationObject?.operation) {
379
+ for (const bindingOperationObjectElem of bindingOperationObject.operation) {
380
+ if (bindingOperationObjectElem.attributes) {
381
+ for (const attributeName in bindingOperationObjectElem.attributes) {
382
+ const value = bindingOperationObjectElem.attributes[attributeName];
383
+ if (value && attributeName.toLowerCase().endsWith('action')) {
384
+ soapAnnotations.soapAction = value;
385
+ break;
386
+ }
387
+ }
388
+ }
389
+ }
390
+ }
361
391
  if (this.bodyAlias) {
362
392
  soapAnnotations.bodyAlias = this.bodyAlias;
363
393
  }
package/esm/SOAPLoader.js CHANGED
@@ -44,6 +44,9 @@ const soapDirective = new GraphQLDirective({
44
44
  soapHeaders: {
45
45
  type: SOAPHeadersInput,
46
46
  },
47
+ soapAction: {
48
+ type: GraphQLString,
49
+ },
47
50
  },
48
51
  });
49
52
  const QUERY_PREFIXES = [
@@ -349,12 +352,39 @@ export class SOAPLoader {
349
352
  throw new Error(`Namespace alias: ${messageNamespaceAlias} is undefined!`);
350
353
  }
351
354
  const { type, elementName } = this.getOutputTypeForMessage(this.getNamespaceMessageMap(messageNamespace).get(messageName));
355
+ const bindingOperationObject = bindingObj.operation.find(operation => operation.attributes.name === operationName);
352
356
  const soapAnnotations = {
353
357
  elementName,
354
358
  bindingNamespace,
355
- endpoint: this.endpoint || portObj.address[0].attributes.location,
359
+ endpoint: this.endpoint,
356
360
  subgraph: this.subgraphName,
357
361
  };
362
+ if (!soapAnnotations.endpoint && portObj.address) {
363
+ for (const address of portObj.address) {
364
+ if (address.attributes) {
365
+ for (const attributeName in address.attributes) {
366
+ const value = address.attributes[attributeName];
367
+ if (value && attributeName.toLowerCase().endsWith('location')) {
368
+ soapAnnotations.endpoint = value;
369
+ break;
370
+ }
371
+ }
372
+ }
373
+ }
374
+ }
375
+ if (bindingOperationObject?.operation) {
376
+ for (const bindingOperationObjectElem of bindingOperationObject.operation) {
377
+ if (bindingOperationObjectElem.attributes) {
378
+ for (const attributeName in bindingOperationObjectElem.attributes) {
379
+ const value = bindingOperationObjectElem.attributes[attributeName];
380
+ if (value && attributeName.toLowerCase().endsWith('action')) {
381
+ soapAnnotations.soapAction = value;
382
+ break;
383
+ }
384
+ }
385
+ }
386
+ }
387
+ }
358
388
  if (this.bodyAlias) {
359
389
  soapAnnotations.bodyAlias = this.bodyAlias;
360
390
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnigraph/soap",
3
- "version": "0.105.12-alpha-20250120193117-c5311d507645783d8618c8de8c5167777be753d7",
3
+ "version": "0.105.12-alpha-20250121010420-ca4d2092383ebce3108fea2d720cf912768168d9",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "graphql": "*"
@@ -9,9 +9,9 @@
9
9
  "@graphql-mesh/cross-helpers": "^0.4.9",
10
10
  "@graphql-mesh/string-interpolation": "^0.5.7",
11
11
  "@graphql-mesh/transport-common": "^0.7.25",
12
- "@graphql-mesh/transport-soap": "0.8.12-alpha-20250120193117-c5311d507645783d8618c8de8c5167777be753d7",
13
- "@graphql-mesh/types": "0.103.12-alpha-20250120193117-c5311d507645783d8618c8de8c5167777be753d7",
14
- "@graphql-mesh/utils": "0.103.12-alpha-20250120193117-c5311d507645783d8618c8de8c5167777be753d7",
12
+ "@graphql-mesh/transport-soap": "0.8.12-alpha-20250121010420-ca4d2092383ebce3108fea2d720cf912768168d9",
13
+ "@graphql-mesh/types": "0.103.12-alpha-20250121010420-ca4d2092383ebce3108fea2d720cf912768168d9",
14
+ "@graphql-mesh/utils": "0.103.12-alpha-20250121010420-ca4d2092383ebce3108fea2d720cf912768168d9",
15
15
  "@graphql-tools/utils": "^10.6.0",
16
16
  "@whatwg-node/fetch": "^0.10.0",
17
17
  "fast-xml-parser": "^4.5.0",
@@ -5,6 +5,7 @@ export interface SoapAnnotations {
5
5
  bindingNamespace: string;
6
6
  endpoint: string;
7
7
  bodyAlias?: string;
8
+ soapAction?: string;
8
9
  soapHeaders?: {
9
10
  alias?: string;
10
11
  namespace: string;
@@ -5,6 +5,7 @@ export interface SoapAnnotations {
5
5
  bindingNamespace: string;
6
6
  endpoint: string;
7
7
  bodyAlias?: string;
8
+ soapAction?: string;
8
9
  soapHeaders?: {
9
10
  alias?: string;
10
11
  namespace: string;