@osaas/client-web 0.3.7 → 0.4.0

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 ADDED
@@ -0,0 +1,40 @@
1
+ import { Context } from '@osaas/client-core';
2
+ type Claims = {
3
+ [key: string]: string | number;
4
+ };
5
+ interface CatOptions {
6
+ signingKey: string;
7
+ instanceName?: string;
8
+ }
9
+ /**
10
+ * Generate a Common Access Token (CTA-5007) using Andersnas Nodecat open webservice
11
+ *
12
+ * @memberof module:@osaas/client-web
13
+ * @async
14
+ * @param {Context} ctx - Eyevinn OSC context
15
+ * @param {Claims} claims - Claims to be included in the token
16
+ * @param {CatOptions} opts - Service options
17
+ * @returns {Promise<string>} - The generated token
18
+ *
19
+ * @example
20
+ * import { Context } from '@osaas/client-core';
21
+ * import { generateCommonAccessToken } from '@osaas/client-web';
22
+ *
23
+ * const ctx = new Context();
24
+ * const token = await generateCommonAccessToken(
25
+ * ctx,
26
+ * {
27
+ * iss: 'eyevinn',
28
+ * sub: 'jonas'
29
+ * },
30
+ * {
31
+ * signingKey:
32
+ * '403697de87af64611c1d32a05dab0fe1fcb715a86ab435f1ec99192d79569388'
33
+ * }
34
+ * );
35
+ * console.log(token);
36
+ * // 2D3RhEOhAQWhBFBha2FtYWlfa2V5X2hzMjU2WB2kAWdleWV2aW5uAmVqb25hcwYaZ9TH9QUaZ9TH9Vgg40JB9G77k5RWOlayUSLDl7oFVnnyb4aHYc1qls148WY
37
+ */
38
+ export declare function generateCommonAccessToken(ctx: Context, claims: Claims, opts: CatOptions): Promise<string>;
39
+ export {};
40
+ //# sourceMappingURL=cat.d.ts.map
@@ -0,0 +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"}
package/lib/cat.js ADDED
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateCommonAccessToken = void 0;
4
+ const client_core_1 = require("@osaas/client-core");
5
+ const client_services_1 = require("@osaas/client-services");
6
+ /**
7
+ * Generate a Common Access Token (CTA-5007) using Andersnas Nodecat open webservice
8
+ *
9
+ * @memberof module:@osaas/client-web
10
+ * @async
11
+ * @param {Context} ctx - Eyevinn OSC context
12
+ * @param {Claims} claims - Claims to be included in the token
13
+ * @param {CatOptions} opts - Service options
14
+ * @returns {Promise<string>} - The generated token
15
+ *
16
+ * @example
17
+ * import { Context } from '@osaas/client-core';
18
+ * import { generateCommonAccessToken } from '@osaas/client-web';
19
+ *
20
+ * const ctx = new Context();
21
+ * const token = await generateCommonAccessToken(
22
+ * ctx,
23
+ * {
24
+ * iss: 'eyevinn',
25
+ * sub: 'jonas'
26
+ * },
27
+ * {
28
+ * signingKey:
29
+ * '403697de87af64611c1d32a05dab0fe1fcb715a86ab435f1ec99192d79569388'
30
+ * }
31
+ * );
32
+ * console.log(token);
33
+ * // 2D3RhEOhAQWhBFBha2FtYWlfa2V5X2hzMjU2WB2kAWdleWV2aW5uAmVqb25hcwYaZ9TH9QUaZ9TH9Vgg40JB9G77k5RWOlayUSLDl7oFVnnyb4aHYc1qls148WY
34
+ */
35
+ async function generateCommonAccessToken(ctx, claims, opts) {
36
+ const instanceName = opts.instanceName || 'default';
37
+ let instance = await (0, client_services_1.getAndersnasNodecatInstance)(ctx, instanceName);
38
+ if (!instance) {
39
+ const config = {
40
+ name: instanceName,
41
+ SigningKey: opts.signingKey
42
+ };
43
+ instance = await (0, client_services_1.createAndersnasNodecatInstance)(ctx, config);
44
+ await (0, client_core_1.waitForInstanceReady)('andersnas-nodecat', instanceName, ctx);
45
+ }
46
+ const sat = await ctx.getServiceAccessToken('andersnas-nodecat');
47
+ const apiUrl = new URL('/generateToken', instance.url);
48
+ const response = await fetch(apiUrl, {
49
+ method: 'POST',
50
+ headers: {
51
+ Authorization: `Bearer ${sat}`,
52
+ 'Content-Type': 'application/json'
53
+ },
54
+ body: JSON.stringify(claims)
55
+ });
56
+ if (!response.ok) {
57
+ throw new Error(`Failed to generate token: ${response.statusText}`);
58
+ }
59
+ const token = await response.text();
60
+ return token;
61
+ }
62
+ exports.generateCommonAccessToken = generateCommonAccessToken;
63
+ //# sourceMappingURL=cat.js.map
package/lib/cat.js.map ADDED
@@ -0,0 +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"}
package/lib/index.d.ts CHANGED
@@ -1,4 +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
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"}
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"}
package/lib/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  /** @module @osaas/client-web */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createCloudfrontDistribution = exports.publish = void 0;
4
+ 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
+ var cat_1 = require("./cat");
10
+ Object.defineProperty(exports, "generateCommonAccessToken", { enumerable: true, get: function () { return cat_1.generateCommonAccessToken; } });
9
11
  //# 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"}
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"}
package/lib/util.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const delay: (ms: number) => Promise<unknown>;
2
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,OAAQ,MAAM,qBAA8C,CAAC"}
package/lib/util.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.delay = void 0;
4
+ const delay = (ms) => new Promise((res) => setTimeout(res, ms));
5
+ exports.delay = delay;
6
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAAO,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAAlE,QAAA,KAAK,SAA6D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osaas/client-web",
3
- "version": "0.3.7",
3
+ "version": "0.4.0",
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",
@@ -27,7 +27,7 @@
27
27
  "dependencies": {
28
28
  "@aws-sdk/client-cloudfront": "^3.730.0",
29
29
  "@osaas/client-core": "^0.15.1",
30
- "@osaas/client-services": "^0.10.0",
30
+ "@osaas/client-services": "^0.10.1",
31
31
  "chalk": "4.1.2",
32
32
  "mime": "^3.0.0",
33
33
  "minio": "^8.0.2"
@@ -35,5 +35,5 @@
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
- "gitHead": "b8f1735b11176f069e983c2bff2449269beb410d"
38
+ "gitHead": "e218804b34b175b86dcea1bb46f1d47e8e429120"
39
39
  }