@thirdweb-dev/service-utils 0.2.0-nightly-b96a2282-20230714183405 → 0.2.0-nightly-fd0650dc-20230714210005

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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('../../dist/index-ded83ecc.cjs.dev.js');
5
+ var index = require('../../dist/index-e63ba474.cjs.dev.js');
6
6
  var services = require('../../dist/services-a3f36057.cjs.dev.js');
7
7
 
8
8
  const DEFAULT_CACHE_TTL_SECONDS = 60;
@@ -93,7 +93,8 @@ async function extractAuthorizationData(authInput) {
93
93
  clientId,
94
94
  origin,
95
95
  bundleId,
96
- secretKeyHash
96
+ secretKeyHash,
97
+ targetAddress: authInput.targetAddress
97
98
  };
98
99
  }
99
100
  async function hashSecretKey(secretKey) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('../../dist/index-bc2b86a5.cjs.prod.js');
5
+ var index = require('../../dist/index-b1597fc7.cjs.prod.js');
6
6
  var services = require('../../dist/services-9e185105.cjs.prod.js');
7
7
 
8
8
  const DEFAULT_CACHE_TTL_SECONDS = 60;
@@ -93,7 +93,8 @@ async function extractAuthorizationData(authInput) {
93
93
  clientId,
94
94
  origin,
95
95
  bundleId,
96
- secretKeyHash
96
+ secretKeyHash,
97
+ targetAddress: authInput.targetAddress
97
98
  };
98
99
  }
99
100
  async function hashSecretKey(secretKey) {
@@ -1,4 +1,4 @@
1
- import { a as authorize } from '../../dist/index-1125bae0.esm.js';
1
+ import { a as authorize } from '../../dist/index-bcedf9fe.esm.js';
2
2
  export { b as SERVICES, S as SERVICE_DEFINITIONS, a as SERVICE_NAMES, g as getServiceByName } from '../../dist/services-86283509.esm.js';
3
3
 
4
4
  const DEFAULT_CACHE_TTL_SECONDS = 60;
@@ -89,7 +89,8 @@ async function extractAuthorizationData(authInput) {
89
89
  clientId,
90
90
  origin,
91
91
  bundleId,
92
- secretKeyHash
92
+ secretKeyHash,
93
+ targetAddress: authInput.targetAddress
93
94
  };
94
95
  }
95
96
  async function hashSecretKey(secretKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../src/cf-worker","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAkB,iBAAiB,EAAE,uBAAoB;AAGrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mCAAgC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAsB;AAEnD,oCAAiC;AAEjC,KAAK,mBAAmB,GAAG,iBAAiB,GAAG;IAC7C,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,gBAAgB,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,KAAK,SAAS,GAAG,aAAa,GAAG;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,wBAAsB,eAAe,CACnC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAmED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,mBAIpD;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,UAEpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"../../../../src/cf-worker","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAkB,iBAAiB,EAAE,uBAAoB;AAGrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mCAAgC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAsB;AAEnD,oCAAiC;AAEjC,KAAK,mBAAmB,GAAG,iBAAiB,GAAG;IAC7C,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,gBAAgB,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,KAAK,SAAS,GAAG,aAAa,GAAG;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,wBAAsB,eAAe,CACnC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAoED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,mBAIpD;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,UAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"../../../../src/core","sources":["api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAmB;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,WAAW,CAAC,CAkBtB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"../../../../src/core","sources":["api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAmB;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
@@ -6,7 +6,7 @@ export type AuthorizationInput = {
6
6
  origin: string | null;
7
7
  bundleId: string | null;
8
8
  secretKeyHash: string | null;
9
- targetAddress?: string;
9
+ targetAddress?: string | string[];
10
10
  };
11
11
  type CacheOptions = {
12
12
  get: (clientId: string) => Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/core/authorize","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EAElB,kBAAe;AAGhB,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtE,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AASF,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAoH9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"../../../../../src/core/authorize","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EAElB,kBAAe;AAGhB,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtE,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AASF,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,iBAAiB,EAChC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAoH9B"}
@@ -1,5 +1,5 @@
1
1
  export type CoreAuthInput = {
2
2
  clientId?: string;
3
- targetAddress?: string;
3
+ targetAddress?: string | string[];
4
4
  };
5
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"../../../../src/core","sources":["types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"../../../../src/core","sources":["types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../../src/node","sources":["index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,WAAW,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mCAA0B;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAoB;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mCAAgC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAsB;AAEnD,oCAAiC;AAEjC,KAAK,iBAAiB,GAAG,iBAAiB,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;IACtC,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,wBAAsB,aAAa,CACjC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAsB9B;AAaD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,kBAAkB,CA+DpB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,UAE9C;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,UAEpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"../../../../src/node","sources":["index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,WAAW,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mCAA0B;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAoB;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mCAAgC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAsB;AAEnD,oCAAiC;AAEjC,KAAK,iBAAiB,GAAG,iBAAiB,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;IACtC,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AAEF,wBAAsB,aAAa,CACjC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAsB9B;AAaD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,kBAAkB,CAwEpB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,UAE9C;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,UAEpE"}
@@ -6,10 +6,8 @@ async function fetchKeyMetadataFromApi(clientId, config) {
6
6
  serviceScope,
7
7
  serviceApiKey
8
8
  } = config;
9
- const url = new URL(`${apiUrl}/v1/keys/use`);
10
- url.searchParams.set("clientId", clientId);
11
- url.searchParams.set("scope", serviceScope);
12
- const response = await fetch(url.href, {
9
+ const url = `${apiUrl}/v1/keys/use?clientId=${clientId}&scope=${serviceScope}`;
10
+ const response = await fetch(url, {
13
11
  method: "GET",
14
12
  headers: {
15
13
  "x-service-api-key": serviceApiKey,
@@ -114,8 +112,6 @@ function authorizeService(apiKeyMetadata, serviceConfig, authorizationPayload) {
114
112
  const {
115
113
  services
116
114
  } = apiKeyMetadata;
117
- // const { serviceTargetAddresses, serviceAction } = validations;
118
-
119
115
  // validate services
120
116
  const service = services.find(srv => srv.name === serviceConfig.serviceScope);
121
117
  if (!service) {
@@ -143,11 +139,12 @@ function authorizeService(apiKeyMetadata, serviceConfig, authorizationPayload) {
143
139
  // validate service target addresses
144
140
  // the service has to pass in the target address for this to be validated
145
141
  if (authorizationPayload?.targetAddress) {
146
- const isTargetAddressAllowed = service.targetAddresses.includes(authorizationPayload.targetAddress);
147
- if (!isTargetAddressAllowed) {
142
+ const checkedAddresses = Array.isArray(authorizationPayload.targetAddress) ? authorizationPayload.targetAddress : [authorizationPayload.targetAddress];
143
+ const allAllowed = service.targetAddresses.includes("*");
144
+ if (!allAllowed && checkedAddresses.some(ta => !service.targetAddresses.includes(ta))) {
148
145
  return {
149
146
  authorized: false,
150
- errorMessage: `The service "${serviceConfig.serviceScope}" target address "${authorizationPayload.targetAddress}" is not authorized for this key.`,
147
+ errorMessage: `The service "${serviceConfig.serviceScope}" target address is not authorized for this key.`,
151
148
  errorCode: "SERVICE_TARGET_ADDRESS_UNAUTHORIZED",
152
149
  status: 403
153
150
  };
@@ -4,10 +4,8 @@ async function fetchKeyMetadataFromApi(clientId, config) {
4
4
  serviceScope,
5
5
  serviceApiKey
6
6
  } = config;
7
- const url = new URL(`${apiUrl}/v1/keys/use`);
8
- url.searchParams.set("clientId", clientId);
9
- url.searchParams.set("scope", serviceScope);
10
- const response = await fetch(url.href, {
7
+ const url = `${apiUrl}/v1/keys/use?clientId=${clientId}&scope=${serviceScope}`;
8
+ const response = await fetch(url, {
11
9
  method: "GET",
12
10
  headers: {
13
11
  "x-service-api-key": serviceApiKey,
@@ -112,8 +110,6 @@ function authorizeService(apiKeyMetadata, serviceConfig, authorizationPayload) {
112
110
  const {
113
111
  services
114
112
  } = apiKeyMetadata;
115
- // const { serviceTargetAddresses, serviceAction } = validations;
116
-
117
113
  // validate services
118
114
  const service = services.find(srv => srv.name === serviceConfig.serviceScope);
119
115
  if (!service) {
@@ -141,11 +137,12 @@ function authorizeService(apiKeyMetadata, serviceConfig, authorizationPayload) {
141
137
  // validate service target addresses
142
138
  // the service has to pass in the target address for this to be validated
143
139
  if (authorizationPayload?.targetAddress) {
144
- const isTargetAddressAllowed = service.targetAddresses.includes(authorizationPayload.targetAddress);
145
- if (!isTargetAddressAllowed) {
140
+ const checkedAddresses = Array.isArray(authorizationPayload.targetAddress) ? authorizationPayload.targetAddress : [authorizationPayload.targetAddress];
141
+ const allAllowed = service.targetAddresses.includes("*");
142
+ if (!allAllowed && checkedAddresses.some(ta => !service.targetAddresses.includes(ta))) {
146
143
  return {
147
144
  authorized: false,
148
- errorMessage: `The service "${serviceConfig.serviceScope}" target address "${authorizationPayload.targetAddress}" is not authorized for this key.`,
145
+ errorMessage: `The service "${serviceConfig.serviceScope}" target address is not authorized for this key.`,
149
146
  errorCode: "SERVICE_TARGET_ADDRESS_UNAUTHORIZED",
150
147
  status: 403
151
148
  };
@@ -6,10 +6,8 @@ async function fetchKeyMetadataFromApi(clientId, config) {
6
6
  serviceScope,
7
7
  serviceApiKey
8
8
  } = config;
9
- const url = new URL(`${apiUrl}/v1/keys/use`);
10
- url.searchParams.set("clientId", clientId);
11
- url.searchParams.set("scope", serviceScope);
12
- const response = await fetch(url.href, {
9
+ const url = `${apiUrl}/v1/keys/use?clientId=${clientId}&scope=${serviceScope}`;
10
+ const response = await fetch(url, {
13
11
  method: "GET",
14
12
  headers: {
15
13
  "x-service-api-key": serviceApiKey,
@@ -114,8 +112,6 @@ function authorizeService(apiKeyMetadata, serviceConfig, authorizationPayload) {
114
112
  const {
115
113
  services
116
114
  } = apiKeyMetadata;
117
- // const { serviceTargetAddresses, serviceAction } = validations;
118
-
119
115
  // validate services
120
116
  const service = services.find(srv => srv.name === serviceConfig.serviceScope);
121
117
  if (!service) {
@@ -143,11 +139,12 @@ function authorizeService(apiKeyMetadata, serviceConfig, authorizationPayload) {
143
139
  // validate service target addresses
144
140
  // the service has to pass in the target address for this to be validated
145
141
  if (authorizationPayload?.targetAddress) {
146
- const isTargetAddressAllowed = service.targetAddresses.includes(authorizationPayload.targetAddress);
147
- if (!isTargetAddressAllowed) {
142
+ const checkedAddresses = Array.isArray(authorizationPayload.targetAddress) ? authorizationPayload.targetAddress : [authorizationPayload.targetAddress];
143
+ const allAllowed = service.targetAddresses.includes("*");
144
+ if (!allAllowed && checkedAddresses.some(ta => !service.targetAddresses.includes(ta))) {
148
145
  return {
149
146
  authorized: false,
150
- errorMessage: `The service "${serviceConfig.serviceScope}" target address "${authorizationPayload.targetAddress}" is not authorized for this key.`,
147
+ errorMessage: `The service "${serviceConfig.serviceScope}" target address is not authorized for this key.`,
151
148
  errorCode: "SERVICE_TARGET_ADDRESS_UNAUTHORIZED",
152
149
  status: 403
153
150
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var node_crypto = require('node:crypto');
6
- var index = require('../../dist/index-ded83ecc.cjs.dev.js');
6
+ var index = require('../../dist/index-e63ba474.cjs.dev.js');
7
7
  var services = require('../../dist/services-a3f36057.cjs.dev.js');
8
8
 
9
9
  async function authorizeNode(authInput, serviceConfig) {
@@ -36,10 +36,13 @@ function getHeader(headers, headerName) {
36
36
  return header ?? null;
37
37
  }
38
38
  function extractAuthorizationData(authInput) {
39
- if (!authInput.req.url) {
40
- throw new Error("no req.url in authInput.req");
39
+ let requestUrl;
40
+ try {
41
+ requestUrl = new URL(authInput.req.url || "", `http://${authInput.req.headers.host}`);
42
+ } catch (error) {
43
+ console.log("** Node URL Error **", error);
44
+ throw error;
41
45
  }
42
- const requestUrl = new URL(authInput.req.url, authInput.req.headers.host);
43
46
  const headers = authInput.req.headers;
44
47
  const secretKey = getHeader(headers, "x-secret-key");
45
48
  // prefer clientId that is explicitly passed in
@@ -93,7 +96,8 @@ function extractAuthorizationData(authInput) {
93
96
  secretKey,
94
97
  clientId,
95
98
  origin,
96
- bundleId
99
+ bundleId,
100
+ targetAddress: authInput.targetAddress
97
101
  };
98
102
  }
99
103
  function hashSecretKey(secretKey) {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var node_crypto = require('node:crypto');
6
- var index = require('../../dist/index-bc2b86a5.cjs.prod.js');
6
+ var index = require('../../dist/index-b1597fc7.cjs.prod.js');
7
7
  var services = require('../../dist/services-9e185105.cjs.prod.js');
8
8
 
9
9
  async function authorizeNode(authInput, serviceConfig) {
@@ -36,10 +36,13 @@ function getHeader(headers, headerName) {
36
36
  return header ?? null;
37
37
  }
38
38
  function extractAuthorizationData(authInput) {
39
- if (!authInput.req.url) {
40
- throw new Error("no req.url in authInput.req");
39
+ let requestUrl;
40
+ try {
41
+ requestUrl = new URL(authInput.req.url || "", `http://${authInput.req.headers.host}`);
42
+ } catch (error) {
43
+ console.log("** Node URL Error **", error);
44
+ throw error;
41
45
  }
42
- const requestUrl = new URL(authInput.req.url, authInput.req.headers.host);
43
46
  const headers = authInput.req.headers;
44
47
  const secretKey = getHeader(headers, "x-secret-key");
45
48
  // prefer clientId that is explicitly passed in
@@ -93,7 +96,8 @@ function extractAuthorizationData(authInput) {
93
96
  secretKey,
94
97
  clientId,
95
98
  origin,
96
- bundleId
99
+ bundleId,
100
+ targetAddress: authInput.targetAddress
97
101
  };
98
102
  }
99
103
  function hashSecretKey(secretKey) {
@@ -1,5 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { a as authorize } from '../../dist/index-1125bae0.esm.js';
2
+ import { a as authorize } from '../../dist/index-bcedf9fe.esm.js';
3
3
  export { b as SERVICES, S as SERVICE_DEFINITIONS, a as SERVICE_NAMES, g as getServiceByName } from '../../dist/services-86283509.esm.js';
4
4
 
5
5
  async function authorizeNode(authInput, serviceConfig) {
@@ -32,10 +32,13 @@ function getHeader(headers, headerName) {
32
32
  return header ?? null;
33
33
  }
34
34
  function extractAuthorizationData(authInput) {
35
- if (!authInput.req.url) {
36
- throw new Error("no req.url in authInput.req");
35
+ let requestUrl;
36
+ try {
37
+ requestUrl = new URL(authInput.req.url || "", `http://${authInput.req.headers.host}`);
38
+ } catch (error) {
39
+ console.log("** Node URL Error **", error);
40
+ throw error;
37
41
  }
38
- const requestUrl = new URL(authInput.req.url, authInput.req.headers.host);
39
42
  const headers = authInput.req.headers;
40
43
  const secretKey = getHeader(headers, "x-secret-key");
41
44
  // prefer clientId that is explicitly passed in
@@ -89,7 +92,8 @@ function extractAuthorizationData(authInput) {
89
92
  secretKey,
90
93
  clientId,
91
94
  origin,
92
- bundleId
95
+ bundleId,
96
+ targetAddress: authInput.targetAddress
93
97
  };
94
98
  }
95
99
  function hashSecretKey(secretKey) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thirdweb-dev/service-utils",
3
- "version": "0.2.0-nightly-b96a2282-20230714183405",
3
+ "version": "0.2.0-nightly-fd0650dc-20230714210005",
4
4
  "main": "dist/thirdweb-dev-service-utils.cjs.js",
5
5
  "module": "dist/thirdweb-dev-service-utils.esm.js",
6
6
  "exports": {