@boxyhq/saml-jackson 0.3.4-beta.321 → 0.3.4-beta.325

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.
@@ -43,9 +43,9 @@ class APIController {
43
43
  this.configStore = configStore;
44
44
  }
45
45
  _validateIdPConfig(body) {
46
- const { rawMetadata, defaultRedirectUrl, redirectUrl, tenant, product } = body;
47
- if (!rawMetadata) {
48
- throw new error_1.JacksonError('Please provide rawMetadata', 400);
46
+ const { encodedRawMetadata, rawMetadata, defaultRedirectUrl, redirectUrl, tenant, product } = body;
47
+ if (!rawMetadata && !encodedRawMetadata) {
48
+ throw new error_1.JacksonError('Please provide rawMetadata or encodedRawMetadata', 400);
49
49
  }
50
50
  if (!defaultRedirectUrl) {
51
51
  throw new error_1.JacksonError('Please provide a defaultRedirectUrl', 400);
@@ -62,9 +62,13 @@ class APIController {
62
62
  }
63
63
  config(body) {
64
64
  return __awaiter(this, void 0, void 0, function* () {
65
- const { rawMetadata, defaultRedirectUrl, redirectUrl, tenant, product } = body;
65
+ const { encodedRawMetadata, rawMetadata, defaultRedirectUrl, redirectUrl, tenant, product } = body;
66
66
  this._validateIdPConfig(body);
67
- const idpMetadata = yield saml_1.default.parseMetadataAsync(rawMetadata);
67
+ let metaData = rawMetadata;
68
+ if (encodedRawMetadata) {
69
+ metaData = Buffer.from(encodedRawMetadata, 'base64').toString();
70
+ }
71
+ const idpMetadata = yield saml_1.default.parseMetadataAsync(metaData);
68
72
  // extract provider
69
73
  let providerName = extractHostName(idpMetadata.entityID);
70
74
  if (!providerName) {
@@ -39,9 +39,10 @@ const readConfig = (preLoadedConfig) => __awaiter(void 0, void 0, void 0, functi
39
39
  for (const idx in files) {
40
40
  const file = files[idx];
41
41
  if (file.endsWith('.js')) {
42
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
42
43
  const config = require(path.join(preLoadedConfig, file));
43
44
  const rawMetadata = yield fs.promises.readFile(path.join(preLoadedConfig, path.parse(file).name + '.xml'), 'utf8');
44
- config.rawMetadata = rawMetadata;
45
+ config.encodedRawMetadata = Buffer.from(rawMetadata, 'utf8').toString('base64');
45
46
  configs.push(config);
46
47
  }
47
48
  }
package/dist/typings.d.ts CHANGED
@@ -3,7 +3,8 @@ export declare type IdPConfig = {
3
3
  redirectUrl: string;
4
4
  tenant: string;
5
5
  product: string;
6
- rawMetadata: string;
6
+ rawMetadata?: string;
7
+ encodedRawMetadata?: string;
7
8
  };
8
9
  export interface OAuth {
9
10
  client_id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boxyhq/saml-jackson",
3
- "version": "0.3.4-beta.321",
3
+ "version": "0.3.4-beta.325",
4
4
  "description": "SAML 2.0 service",
5
5
  "keywords": [
6
6
  "SAML 2.0"