@easecation/iam-client 1.2.0 → 1.2.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.
@@ -0,0 +1,20 @@
1
+ import { IamClient } from './IamClient';
2
+ import type { IamClientConfig } from './types';
3
+ export interface IamEnvFactoryOptions {
4
+ env?: NodeJS.ProcessEnv;
5
+ allowLegacyNexaEnv?: boolean;
6
+ defaultIamBaseUrl?: string;
7
+ defaultIamFrontendUrl?: string;
8
+ }
9
+ export interface ResolvedIamEnvConfig extends IamClientConfig {
10
+ iamFrontendUrl: string;
11
+ }
12
+ export declare function createIamClient(config: IamClientConfig): IamClient;
13
+ export declare function resolveIamEnvConfig(options?: IamEnvFactoryOptions): ResolvedIamEnvConfig;
14
+ export declare function createIamClientFromEnv(options?: IamEnvFactoryOptions): IamClient;
15
+ export declare function createIamToolkit(client: IamClient): {
16
+ iamAuth: (requiredPermissions?: string[]) => (req: import("express").Request, res: import("express").Response, next: import("express").NextFunction) => Promise<void>;
17
+ apiKeyAuth: (options?: import("./types").ApiKeyMiddlewareOptions) => (req: import("express").Request, res: import("express").Response, next: import("express").NextFunction) => Promise<void>;
18
+ appSessionAuth: (options?: import("./types").AppSessionMiddlewareOptions) => (req: import("express").Request, res: import("express").Response, next: import("express").NextFunction) => Promise<void>;
19
+ };
20
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAElE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,oBAAoB,CA2B5F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,oBAAyB,GAAG,SAAS,CAQpF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS;;;;EAMjD"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createIamClient = createIamClient;
4
+ exports.resolveIamEnvConfig = resolveIamEnvConfig;
5
+ exports.createIamClientFromEnv = createIamClientFromEnv;
6
+ exports.createIamToolkit = createIamToolkit;
7
+ const IamClient_1 = require("./IamClient");
8
+ const middleware_1 = require("./middleware");
9
+ function createIamClient(config) {
10
+ return new IamClient_1.IamClient(config);
11
+ }
12
+ function resolveIamEnvConfig(options = {}) {
13
+ const { env = process.env, allowLegacyNexaEnv = true, defaultIamBaseUrl = 'https://iamapi.easecation.net', defaultIamFrontendUrl = 'https://iam.easecation.net', } = options;
14
+ const clientId = allowLegacyNexaEnv
15
+ ? (env.IAM_CLIENT_ID || env.NEXA_APP_ID || '')
16
+ : (env.IAM_CLIENT_ID || '');
17
+ const clientSecret = allowLegacyNexaEnv
18
+ ? (env.IAM_CLIENT_SECRET || env.NEXA_APP_SECRET || '')
19
+ : (env.IAM_CLIENT_SECRET || '');
20
+ const permissionCacheTtlSeconds = Number.parseInt(env.IAM_PERMISSION_CACHE_TTL || '300', 10);
21
+ const permissionCacheTtlMs = Number.isFinite(permissionCacheTtlSeconds) && permissionCacheTtlSeconds > 0
22
+ ? permissionCacheTtlSeconds * 1000
23
+ : 300 * 1000;
24
+ return {
25
+ iamBaseUrl: env.IAM_BASE_URL || defaultIamBaseUrl,
26
+ iamFrontendUrl: env.IAM_FRONTEND_URL || defaultIamFrontendUrl,
27
+ clientId,
28
+ clientSecret,
29
+ permissionCacheTtlMs,
30
+ };
31
+ }
32
+ function createIamClientFromEnv(options = {}) {
33
+ const resolved = resolveIamEnvConfig(options);
34
+ return createIamClient({
35
+ iamBaseUrl: resolved.iamBaseUrl,
36
+ clientId: resolved.clientId,
37
+ clientSecret: resolved.clientSecret,
38
+ permissionCacheTtlMs: resolved.permissionCacheTtlMs,
39
+ });
40
+ }
41
+ function createIamToolkit(client) {
42
+ return {
43
+ iamAuth: (0, middleware_1.createIamAuthMiddleware)(client),
44
+ apiKeyAuth: (0, middleware_1.createApiKeyMiddleware)(client),
45
+ appSessionAuth: (0, middleware_1.createAppSessionMiddleware)(client),
46
+ };
47
+ }
48
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;AAeA,0CAEC;AAED,kDA2BC;AAED,wDAQC;AAED,4CAMC;AAhED,2CAAwC;AACxC,6CAA2G;AAc3G,SAAgB,eAAe,CAAC,MAAuB;IACrD,OAAO,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,mBAAmB,CAAC,UAAgC,EAAE;IACpE,MAAM,EACJ,GAAG,GAAG,OAAO,CAAC,GAAG,EACjB,kBAAkB,GAAG,IAAI,EACzB,iBAAiB,GAAG,+BAA+B,EACnD,qBAAqB,GAAG,4BAA4B,GACrD,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAG,kBAAkB;QACjC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC9B,MAAM,YAAY,GAAG,kBAAkB;QACrC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAElC,MAAM,yBAAyB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,yBAAyB,GAAG,CAAC;QACtG,CAAC,CAAC,yBAAyB,GAAG,IAAI;QAClC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;IAEf,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,YAAY,IAAI,iBAAiB;QACjD,cAAc,EAAE,GAAG,CAAC,gBAAgB,IAAI,qBAAqB;QAC7D,QAAQ;QACR,YAAY;QACZ,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAAgC,EAAE;IACvE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,eAAe,CAAC;QACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;KACpD,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAiB;IAChD,OAAO;QACL,OAAO,EAAE,IAAA,oCAAuB,EAAC,MAAM,CAAC;QACxC,UAAU,EAAE,IAAA,mCAAsB,EAAC,MAAM,CAAC;QAC1C,cAAc,EAAE,IAAA,uCAA0B,EAAC,MAAM,CAAC;KACnD,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export { IamClient } from './IamClient';
2
2
  export { createIamAuthMiddleware, createApiKeyMiddleware, createAppSessionMiddleware } from './middleware';
3
3
  export type { IamRequest, ApiKeyAuthRequest, AppSessionAuthRequest } from './middleware';
4
+ export { createIamClient, resolveIamEnvConfig, createIamClientFromEnv, createIamToolkit } from './factory';
5
+ export type { IamEnvFactoryOptions, ResolvedIamEnvConfig } from './factory';
4
6
  export { ApiKeyRotationHelper } from './ApiKeyRotationHelper';
5
7
  export type { RotationHelperConfig, CreateKeyOptions } from './ApiKeyRotationHelper';
6
8
  export type { IamClientConfig, IamApiResponse, AppTokenData, OAuthTokenData, VerifyTokenData, RefreshTokenData, RevokeTokenData, JwkData, JwksData, UserProfileData, UserPermissionsData, UserBootstrapData, HrBootstrapData, DecodedAccessToken, IamAuthRequest, ApiKeyOwnerType, ApiKeyStatus, ApiKeyVerifyData, CachedApiKeyResult, ApiKeyVerifyRequest, ApiKeyData, ApiKeyCreatedData, ApiKeyRequest, ApiKeyMiddlewareOptions, CachedAppSessionVerifyResult, AppSessionRequest, AppSessionMiddlewareOptions, } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC3G,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrF,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EAEd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC3G,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC3G,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrF,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,cAAc,EAEd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiKeyRotationHelper = exports.createAppSessionMiddleware = exports.createApiKeyMiddleware = exports.createIamAuthMiddleware = exports.IamClient = void 0;
3
+ exports.ApiKeyRotationHelper = exports.createIamToolkit = exports.createIamClientFromEnv = exports.resolveIamEnvConfig = exports.createIamClient = exports.createAppSessionMiddleware = exports.createApiKeyMiddleware = exports.createIamAuthMiddleware = exports.IamClient = void 0;
4
4
  var IamClient_1 = require("./IamClient");
5
5
  Object.defineProperty(exports, "IamClient", { enumerable: true, get: function () { return IamClient_1.IamClient; } });
6
6
  var middleware_1 = require("./middleware");
7
7
  Object.defineProperty(exports, "createIamAuthMiddleware", { enumerable: true, get: function () { return middleware_1.createIamAuthMiddleware; } });
8
8
  Object.defineProperty(exports, "createApiKeyMiddleware", { enumerable: true, get: function () { return middleware_1.createApiKeyMiddleware; } });
9
9
  Object.defineProperty(exports, "createAppSessionMiddleware", { enumerable: true, get: function () { return middleware_1.createAppSessionMiddleware; } });
10
+ var factory_1 = require("./factory");
11
+ Object.defineProperty(exports, "createIamClient", { enumerable: true, get: function () { return factory_1.createIamClient; } });
12
+ Object.defineProperty(exports, "resolveIamEnvConfig", { enumerable: true, get: function () { return factory_1.resolveIamEnvConfig; } });
13
+ Object.defineProperty(exports, "createIamClientFromEnv", { enumerable: true, get: function () { return factory_1.createIamClientFromEnv; } });
14
+ Object.defineProperty(exports, "createIamToolkit", { enumerable: true, get: function () { return factory_1.createIamToolkit; } });
10
15
  var ApiKeyRotationHelper_1 = require("./ApiKeyRotationHelper");
11
16
  Object.defineProperty(exports, "ApiKeyRotationHelper", { enumerable: true, get: function () { return ApiKeyRotationHelper_1.ApiKeyRotationHelper; } });
12
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,2CAA2G;AAAlG,qHAAA,uBAAuB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AAEpF,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,2CAA2G;AAAlG,qHAAA,uBAAuB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AAEpF,qCAA2G;AAAlG,0GAAA,eAAe,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAEvF,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easecation/iam-client",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "IAM V2 client library for EaseCation services",
5
5
  "license": "UNLICENSED",
6
6
  "main": "dist/index.js",