@osaas/client-web 0.4.0 → 0.5.1

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/lib/cat.d.ts CHANGED
@@ -6,6 +6,13 @@ interface CatOptions {
6
6
  signingKey: string;
7
7
  instanceName?: string;
8
8
  }
9
+ /**
10
+ * Cat options
11
+ * @typedef CatOptions
12
+ * @type object
13
+ * @property {string} signingKey - The signing key to use
14
+ * @property {string} [instanceName] - The instance name to use (default: 'default')
15
+ */
9
16
  /**
10
17
  * Generate a Common Access Token (CTA-5007) using Andersnas Nodecat open webservice
11
18
  *
@@ -36,5 +43,34 @@ interface CatOptions {
36
43
  * // 2D3RhEOhAQWhBFBha2FtYWlfa2V5X2hzMjU2WB2kAWdleWV2aW5uAmVqb25hcwYaZ9TH9QUaZ9TH9Vgg40JB9G77k5RWOlayUSLDl7oFVnnyb4aHYc1qls148WY
37
44
  */
38
45
  export declare function generateCommonAccessToken(ctx: Context, claims: Claims, opts: CatOptions): Promise<string>;
46
+ /**
47
+ * Validate a Common Access Token (CTA-5007) using Andersnas Nodecat open webservice
48
+ *
49
+ * @memberof module:@osaas/client-web
50
+ * @async
51
+ * @param {Context} ctx - Eyevinn OSC context
52
+ * @param {string} token - A Common Access Token
53
+ * @param {CatOptions} opts - Service options
54
+ * @returns - The status and payload of the token
55
+ *
56
+ * @example
57
+ * import { Context } from '@osaas/client-core';
58
+ * import { validateCommonAccessToken } from '@osaas/client-web';
59
+ * const ctx = new Context();
60
+ * const result = await validateCommonAccessToken(
61
+ * ctx,
62
+ * '2D3RhEOhAQWhBFBha2FtYWlfa2V5X2hzMjU2WB2kAWdleWV2aW5uAmVqb25hcwYaZ9TH9QUaZ9TH9Vgg40JB9G77k5RWOlayUSLDl7oFVnnyb4aHYc1qls148WY',
63
+ * {
64
+ * signingKey:
65
+ * '403697de87af64611c1d32a05dab0fe1fcb715a86ab435f1ec99192d79569388'
66
+ * }
67
+ * );
68
+ * console.log(result.status);
69
+ * console.log(result.payload);
70
+ */
71
+ export declare function validateCommonAccessToken(ctx: Context, token: string, opts: CatOptions): Promise<{
72
+ status: string;
73
+ payload: Claims;
74
+ }>;
39
75
  export {};
40
76
  //# sourceMappingURL=cat.d.ts.map
package/lib/cat.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cat.d.ts","sourceRoot":"","sources":["../src/cat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,MAAM,oBAAoB,CAAC;AAOnE,KAAK,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEjD,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,mBA4BjB"}
1
+ {"version":3,"file":"cat.d.ts","sourceRoot":"","sources":["../src/cat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,MAAM,oBAAoB,CAAC;AAOnE,KAAK,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEjD,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,mBA4BjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B9C"}
package/lib/cat.js CHANGED
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateCommonAccessToken = void 0;
3
+ exports.validateCommonAccessToken = exports.generateCommonAccessToken = void 0;
4
4
  const client_core_1 = require("@osaas/client-core");
5
5
  const client_services_1 = require("@osaas/client-services");
6
+ /**
7
+ * Cat options
8
+ * @typedef CatOptions
9
+ * @type object
10
+ * @property {string} signingKey - The signing key to use
11
+ * @property {string} [instanceName] - The instance name to use (default: 'default')
12
+ */
6
13
  /**
7
14
  * Generate a Common Access Token (CTA-5007) using Andersnas Nodecat open webservice
8
15
  *
@@ -60,4 +67,57 @@ async function generateCommonAccessToken(ctx, claims, opts) {
60
67
  return token;
61
68
  }
62
69
  exports.generateCommonAccessToken = generateCommonAccessToken;
70
+ /**
71
+ * Validate a Common Access Token (CTA-5007) using Andersnas Nodecat open webservice
72
+ *
73
+ * @memberof module:@osaas/client-web
74
+ * @async
75
+ * @param {Context} ctx - Eyevinn OSC context
76
+ * @param {string} token - A Common Access Token
77
+ * @param {CatOptions} opts - Service options
78
+ * @returns - The status and payload of the token
79
+ *
80
+ * @example
81
+ * import { Context } from '@osaas/client-core';
82
+ * import { validateCommonAccessToken } from '@osaas/client-web';
83
+ * const ctx = new Context();
84
+ * const result = await validateCommonAccessToken(
85
+ * ctx,
86
+ * '2D3RhEOhAQWhBFBha2FtYWlfa2V5X2hzMjU2WB2kAWdleWV2aW5uAmVqb25hcwYaZ9TH9QUaZ9TH9Vgg40JB9G77k5RWOlayUSLDl7oFVnnyb4aHYc1qls148WY',
87
+ * {
88
+ * signingKey:
89
+ * '403697de87af64611c1d32a05dab0fe1fcb715a86ab435f1ec99192d79569388'
90
+ * }
91
+ * );
92
+ * console.log(result.status);
93
+ * console.log(result.payload);
94
+ */
95
+ async function validateCommonAccessToken(ctx, token, opts) {
96
+ const instanceName = opts.instanceName || 'default';
97
+ let instance = await (0, client_services_1.getAndersnasNodecatInstance)(ctx, instanceName);
98
+ if (!instance) {
99
+ const config = {
100
+ name: instanceName,
101
+ SigningKey: opts.signingKey
102
+ };
103
+ instance = await (0, client_services_1.createAndersnasNodecatInstance)(ctx, config);
104
+ await (0, client_core_1.waitForInstanceReady)('andersnas-nodecat', instanceName, ctx);
105
+ }
106
+ const sat = await ctx.getServiceAccessToken('andersnas-nodecat');
107
+ const apiUrl = new URL('/validateToken', instance.url);
108
+ const response = await fetch(apiUrl, {
109
+ method: 'POST',
110
+ headers: {
111
+ Authorization: `Bearer ${sat}`,
112
+ 'Content-Type': 'application/json'
113
+ },
114
+ body: JSON.stringify({ token })
115
+ });
116
+ if (!response.ok) {
117
+ throw new Error(`Failed to validate token: ${response.statusText}`);
118
+ }
119
+ const result = (await response.json());
120
+ return result;
121
+ }
122
+ exports.validateCommonAccessToken = validateCommonAccessToken;
63
123
  //# sourceMappingURL=cat.js.map
package/lib/cat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cat.js","sourceRoot":"","sources":["../src/cat.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,4DAIgC;AAShC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACI,KAAK,UAAU,yBAAyB,CAC7C,GAAY,EACZ,MAAc,EACd,IAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;IACpD,IAAI,QAAQ,GAAG,MAAM,IAAA,6CAA2B,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,MAAM,GAA2B;YACrC,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,QAAQ,GAAG,MAAM,IAAA,gDAA8B,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,IAAA,kCAAoB,EAAC,mBAAmB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;KACpE;IAED,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,GAAG,EAAE;YAC9B,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;KACrE;IACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AA/BD,8DA+BC"}
1
+ {"version":3,"file":"cat.js","sourceRoot":"","sources":["../src/cat.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,4DAIgC;AAShC;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACI,KAAK,UAAU,yBAAyB,CAC7C,GAAY,EACZ,MAAc,EACd,IAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;IACpD,IAAI,QAAQ,GAAG,MAAM,IAAA,6CAA2B,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,MAAM,GAA2B;YACrC,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,QAAQ,GAAG,MAAM,IAAA,gDAA8B,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,IAAA,kCAAoB,EAAC,mBAAmB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;KACpE;IAED,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,GAAG,EAAE;YAC9B,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;KACrE;IACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AA/BD,8DA+BC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACI,KAAK,UAAU,yBAAyB,CAC7C,GAAY,EACZ,KAAa,EACb,IAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;IACpD,IAAI,QAAQ,GAAG,MAAM,IAAA,6CAA2B,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,MAAM,GAA2B;YACrC,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,QAAQ,GAAG,MAAM,IAAA,gDAA8B,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,IAAA,kCAAoB,EAAC,mBAAmB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;KACpE;IACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,GAAG,EAAE;YAC9B,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;KACrE;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwC,CAAC;IAC9E,OAAO,MAAM,CAAC;AAChB,CAAC;AA9BD,8DA8BC"}
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /** @module @osaas/client-web */
2
2
  export { publish } from './publish';
3
3
  export { createCloudfrontDistribution } from './cdn';
4
- export { generateCommonAccessToken } from './cat';
4
+ export { generateCommonAccessToken, validateCommonAccessToken } from './cat';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC"}
package/lib/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  /** @module @osaas/client-web */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.generateCommonAccessToken = exports.createCloudfrontDistribution = exports.publish = void 0;
4
+ exports.validateCommonAccessToken = exports.generateCommonAccessToken = exports.createCloudfrontDistribution = exports.publish = void 0;
5
5
  var publish_1 = require("./publish");
6
6
  Object.defineProperty(exports, "publish", { enumerable: true, get: function () { return publish_1.publish; } });
7
7
  var cdn_1 = require("./cdn");
8
8
  Object.defineProperty(exports, "createCloudfrontDistribution", { enumerable: true, get: function () { return cdn_1.createCloudfrontDistribution; } });
9
9
  var cat_1 = require("./cat");
10
10
  Object.defineProperty(exports, "generateCommonAccessToken", { enumerable: true, get: function () { return cat_1.generateCommonAccessToken; } });
11
+ Object.defineProperty(exports, "validateCommonAccessToken", { enumerable: true, get: function () { return cat_1.validateCommonAccessToken; } });
11
12
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAEhC,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,6BAAqD;AAA5C,mHAAA,4BAA4B,OAAA;AACrC,6BAAkD;AAAzC,gHAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAEhC,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,6BAAqD;AAA5C,mHAAA,4BAA4B,OAAA;AACrC,6BAA6E;AAApE,gHAAA,yBAAyB,OAAA;AAAE,gHAAA,yBAAyB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osaas/client-web",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Open Source Cloud Client SDK web library",
5
5
  "author": "Eyevinn Open Source Cloud <osc@eyevinn.se>",
6
6
  "homepage": "https://www.osaas.io",
@@ -35,5 +35,5 @@
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
- "gitHead": "e218804b34b175b86dcea1bb46f1d47e8e429120"
38
+ "gitHead": "3b8577e1b1ad7c6c3cbe176ae8d23a3aa291601e"
39
39
  }