@feasibleone/blong-login 0.0.1 → 1.0.5

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/browser.d.ts +3 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +15 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/gateway/login/login.oidc.getConfiguration.d.ts +3 -0
  7. package/dist/gateway/login/login.oidc.getConfiguration.d.ts.map +1 -0
  8. package/dist/gateway/login/login.oidc.getConfiguration.js +10 -0
  9. package/dist/gateway/login/login.oidc.getConfiguration.js.map +1 -0
  10. package/dist/gateway/login/login.oidc.getKeys.d.ts +3 -0
  11. package/dist/gateway/login/login.oidc.getKeys.d.ts.map +1 -0
  12. package/dist/gateway/login/login.oidc.getKeys.js +10 -0
  13. package/dist/gateway/login/login.oidc.getKeys.js.map +1 -0
  14. package/dist/gateway/login/login.token.create.d.ts +3 -0
  15. package/dist/gateway/login/login.token.create.d.ts.map +1 -0
  16. package/dist/gateway/login/login.token.create.js +12 -0
  17. package/dist/gateway/login/login.token.create.js.map +1 -0
  18. package/dist/orchestrator/login/loginOidcGetConfiguration.d.ts +4 -0
  19. package/dist/orchestrator/login/loginOidcGetConfiguration.d.ts.map +1 -0
  20. package/dist/orchestrator/login/loginOidcGetConfiguration.js +21 -0
  21. package/dist/orchestrator/login/loginOidcGetConfiguration.js.map +1 -0
  22. package/dist/orchestrator/login/loginOidcGetKeys.d.ts +3 -0
  23. package/dist/orchestrator/login/loginOidcGetKeys.d.ts.map +1 -0
  24. package/dist/orchestrator/login/loginOidcGetKeys.js +5 -0
  25. package/dist/orchestrator/login/loginOidcGetKeys.js.map +1 -0
  26. package/dist/orchestrator/login/loginTokenCreate.d.ts +4 -0
  27. package/dist/orchestrator/login/loginTokenCreate.d.ts.map +1 -0
  28. package/dist/orchestrator/login/loginTokenCreate.js +14 -0
  29. package/dist/orchestrator/login/loginTokenCreate.js.map +1 -0
  30. package/dist/orchestrator/login/refresh.d.ts +13 -0
  31. package/dist/orchestrator/login/refresh.d.ts.map +1 -0
  32. package/dist/orchestrator/login/refresh.js +14 -0
  33. package/dist/orchestrator/login/refresh.js.map +1 -0
  34. package/dist/orchestrator/login/token.d.ts +16 -0
  35. package/dist/orchestrator/login/token.d.ts.map +1 -0
  36. package/dist/orchestrator/login/token.js +57 -0
  37. package/dist/orchestrator/login/token.js.map +1 -0
  38. package/dist/orchestrator/loginDispatch.d.ts +3 -0
  39. package/dist/orchestrator/loginDispatch.d.ts.map +1 -0
  40. package/dist/orchestrator/loginDispatch.js +5 -0
  41. package/dist/orchestrator/loginDispatch.js.map +1 -0
  42. package/dist/server.d.ts +37 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +84 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/test/test/testUserAdminLogin.d.ts +3 -0
  47. package/dist/test/test/testUserAdminLogin.d.ts.map +1 -0
  48. package/dist/test/test/testUserAdminLogin.js +12 -0
  49. package/dist/test/test/testUserAdminLogin.js.map +1 -0
  50. package/package.json +14 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,49 @@
1
+ # Changelog
2
+
3
+ ## [1.0.5](https://github.com/feasibleone/blong/compare/blong-login-v1.0.4...blong-login-v1.0.5) (2026-01-25)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * update keywords in package.json files for consistency ([3a391a7](https://github.com/feasibleone/blong/commit/3a391a740e4e9d33a0f0c23aa9be9d8f59013bf8))
9
+
10
+ ## [1.0.4](https://github.com/feasibleone/blong/compare/blong-login-v1.0.3...blong-login-v1.0.4) (2026-01-25)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * update repository URLs in package.json files for consistency ([a1856ea](https://github.com/feasibleone/blong/commit/a1856ea8d9ef44495a8776e72b18b81a7e692e7f))
16
+
17
+ ## [1.0.3](https://github.com/feasibleone/blong/compare/blong-login-v1.0.2...blong-login-v1.0.3) (2026-01-25)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * add repository field to package.json files for consistency ([0d881d5](https://github.com/feasibleone/blong/commit/0d881d58fbaf52a03c6a4e89e50901c3440c56f6))
23
+
24
+ ## [1.0.2](https://github.com/feasibleone/blong/compare/blong-login-v1.0.1...blong-login-v1.0.2) (2026-01-25)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * add descriptions to package.json files for clarity ([36dd517](https://github.com/feasibleone/blong/commit/36dd517dd2caee4e25ecbb4ef2a3be5e126d125b))
30
+
31
+ ## [1.0.1](https://github.com/feasibleone/blong/compare/blong-login-v1.0.0...blong-login-v1.0.1) (2026-01-25)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * update ci-publish script to include --provenance flag in package.json ([6580bd3](https://github.com/feasibleone/blong/commit/6580bd38dca27f55b730c062fe9756892d56dd37))
37
+ * update package.json to correctly define peerDependencies and remove unnecessary dependencies ([eb55a88](https://github.com/feasibleone/blong/commit/eb55a88b4883f4d4feef014dfe0537c8e6b4a90e))
38
+
39
+ ## 1.0.0 (2026-01-25)
40
+
41
+
42
+ ### Features
43
+
44
+ * update dependencies across multiple packages ([03269a5](https://github.com/feasibleone/blong/commit/03269a57405c53a3d6f16f7531f82cde2a31c5cc))
45
+
46
+
47
+ ### Bug Fixes
48
+
49
+ * prepare for publishing ([6c4e8b1](https://github.com/feasibleone/blong/commit/6c4e8b1da59f5c79ddda19708276d746af6a64ca))
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@feasibleone/blong").SolutionFactory<import("@sinclair/typebox").TObject<{}>>;
2
+ export default _default;
3
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../browser.ts"],"names":[],"mappings":";AAEA,wBAYI"}
@@ -0,0 +1,15 @@
1
+ import { realm } from '@feasibleone/blong';
2
+ export default realm(blong => ({
3
+ url: import.meta.url,
4
+ validation: blong.type.Object({}),
5
+ children: ['./test'],
6
+ config: {
7
+ default: {},
8
+ dev: {},
9
+ microservice: {},
10
+ integration: {
11
+ test: true,
12
+ },
13
+ },
14
+ }));
15
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAEzC,eAAe,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;IACpB,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,MAAM,EAAE;QACJ,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,EAAE;QACP,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE;YACT,IAAI,EAAE,IAAI;SACb;KACJ;CACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: (blong: import("@feasibleone/blong").IValidationProxy) => Record<string, (() => import("@feasibleone/blong").GatewaySchema) | import("@sinclair/typebox").TSchema> | (() => import("@feasibleone/blong").GatewaySchema) | (() => import("@feasibleone/blong").GatewaySchema)[];
2
+ export default _default;
3
+ //# sourceMappingURL=login.oidc.getConfiguration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.oidc.getConfiguration.d.ts","sourceRoot":"","sources":["../../../gateway/login/login.oidc.getConfiguration.ts"],"names":[],"mappings":";AAEA,wBAOG"}
@@ -0,0 +1,10 @@
1
+ import { validation } from '@feasibleone/blong';
2
+ export default validation(proxy => function loginOidcGetConfiguration() {
3
+ return {
4
+ security: true,
5
+ method: 'GET',
6
+ path: '/.well-known/openid-configuration',
7
+ auth: false
8
+ };
9
+ });
10
+ //# sourceMappingURL=login.oidc.getConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.oidc.getConfiguration.js","sourceRoot":"","sources":["../../../gateway/login/login.oidc.getConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAe,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,yBAAyB;IACjE,OAAO;QACH,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,KAAK;KACd,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: (blong: import("@feasibleone/blong").IValidationProxy) => Record<string, (() => import("@feasibleone/blong").GatewaySchema) | import("@sinclair/typebox").TSchema> | (() => import("@feasibleone/blong").GatewaySchema) | (() => import("@feasibleone/blong").GatewaySchema)[];
2
+ export default _default;
3
+ //# sourceMappingURL=login.oidc.getKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.oidc.getKeys.d.ts","sourceRoot":"","sources":["../../../gateway/login/login.oidc.getKeys.ts"],"names":[],"mappings":";AAEA,wBAOG"}
@@ -0,0 +1,10 @@
1
+ import { validation } from '@feasibleone/blong';
2
+ export default validation(proxy => function loginOidcGetKeys() {
3
+ return {
4
+ security: true,
5
+ method: 'GET',
6
+ path: '/jwks/:kid?',
7
+ auth: false
8
+ };
9
+ });
10
+ //# sourceMappingURL=login.oidc.getKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.oidc.getKeys.js","sourceRoot":"","sources":["../../../gateway/login/login.oidc.getKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,eAAe,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,gBAAgB;IACxD,OAAO;QACH,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,KAAK;KACd,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: (blong: import("@feasibleone/blong").IValidationProxy) => Record<string, (() => import("@feasibleone/blong").GatewaySchema) | import("@sinclair/typebox").TSchema> | (() => import("@feasibleone/blong").GatewaySchema) | (() => import("@feasibleone/blong").GatewaySchema)[];
2
+ export default _default;
3
+ //# sourceMappingURL=login.token.create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.token.create.d.ts","sourceRoot":"","sources":["../../../gateway/login/login.token.create.ts"],"names":[],"mappings":";AAEA,wBAYE"}
@@ -0,0 +1,12 @@
1
+ import { validation } from '@feasibleone/blong';
2
+ export default validation(({ lib: { type } }) => function loginTokenCreate() {
3
+ return {
4
+ auth: 'login',
5
+ params: type.Object({
6
+ username: type.String(),
7
+ password: type.String(),
8
+ }),
9
+ result: type.Object({}, { additionalProperties: true }),
10
+ };
11
+ });
12
+ //# sourceMappingURL=login.token.create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.token.create.js","sourceRoot":"","sources":["../../../gateway/login/login.token.create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAE9C,eAAe,UAAU,CACrB,CAAC,EAAC,GAAG,EAAE,EAAC,IAAI,EAAC,EAAC,EAAE,EAAE,CACd,SAAS,gBAAgB;IACrB,OAAO;QACH,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;YACvB,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;SAC1B,CAAC;QACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAC,oBAAoB,EAAE,IAAI,EAAC,CAAC;KACxD,CAAC;AACN,CAAC,CACR,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IMeta } from '@feasibleone/blong';
2
+ declare const _default: object | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>) | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>)[];
3
+ export default _default;
4
+ //# sourceMappingURL=loginOidcGetConfiguration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginOidcGetConfiguration.d.ts","sourceRoot":"","sources":["../../../orchestrator/login/loginOidcGetConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAU,MAAM,oBAAoB,CAAC;;AAElD,wBAuBE"}
@@ -0,0 +1,21 @@
1
+ import { handler } from '@feasibleone/blong';
2
+ export default handler(() => function loginOidcGetConfiguration(params, { httpRequest: { url: urlRequest, headers } }) {
3
+ const url = new URL(urlRequest);
4
+ if (headers['x-forwarded-host']) {
5
+ url.port = ''; // WTF WHATWG!
6
+ url.host = headers['x-forwarded-host'];
7
+ if (headers['x-forwarded-proto'])
8
+ url.protocol = headers['x-forwarded-proto'];
9
+ }
10
+ return {
11
+ issuer: 'ut-login',
12
+ // eslint-disable-next-line @typescript-eslint/naming-convention
13
+ id_token_signing_alg_values_supported: ['RS256'],
14
+ // eslint-disable-next-line @typescript-eslint/naming-convention
15
+ code_challenge_methods_supported: ['S256'],
16
+ authorization_endpoint: new URL('../form', url.href).href,
17
+ token_endpoint: new URL('../token', url.href).href,
18
+ jwks_uri: new URL('../jwks', url.href).href,
19
+ };
20
+ });
21
+ //# sourceMappingURL=loginOidcGetConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginOidcGetConfiguration.js","sourceRoot":"","sources":["../../../orchestrator/login/loginOidcGetConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAElD,eAAe,OAAO,CAClB,GAAG,EAAE,CACD,SAAS,yBAAyB,CAC9B,MAAe,EACf,EAAC,WAAW,EAAE,EAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAC,EAAQ;IAEhD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,cAAc;QAC7B,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,mBAAmB,CAAC;YAAE,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClF,CAAC;IACD,OAAO;QACH,MAAM,EAAE,UAAU;QAClB,gEAAgE;QAChE,qCAAqC,EAAE,CAAC,OAAO,CAAC;QAChD,gEAAgE;QAChE,gCAAgC,EAAE,CAAC,MAAM,CAAC;QAC1C,sBAAsB,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI;QACzD,cAAc,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI;QAClD,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI;KAC9C,CAAC;AACN,CAAC,CACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: object | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>) | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>)[];
2
+ export default _default;
3
+ //# sourceMappingURL=loginOidcGetKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginOidcGetKeys.d.ts","sourceRoot":"","sources":["../../../orchestrator/login/loginOidcGetKeys.ts"],"names":[],"mappings":";AAEA,wBAMI"}
@@ -0,0 +1,5 @@
1
+ import { handler } from '@feasibleone/blong';
2
+ export default handler(({ lib: { jwks } }) => ({
3
+ loginOidcGetKeys: jwks
4
+ }));
5
+ //# sourceMappingURL=loginOidcGetKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginOidcGetKeys.js","sourceRoot":"","sources":["../../../orchestrator/login/loginOidcGetKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,eAAe,OAAO,CAAC,CAAC,EACpB,GAAG,EAAE,EACD,IAAI,EACP,EACJ,EAAE,EAAE,CAAC,CAAC;IACH,gBAAgB,EAAE,IAAI;CACzB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IMeta } from '@feasibleone/blong';
2
+ declare const _default: object | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>) | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>)[];
3
+ export default _default;
4
+ //# sourceMappingURL=loginTokenCreate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginTokenCreate.d.ts","sourceRoot":"","sources":["../../../orchestrator/login/loginTokenCreate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAU,MAAM,oBAAoB,CAAC;;AAElD,wBAiBE"}
@@ -0,0 +1,14 @@
1
+ import { handler } from '@feasibleone/blong';
2
+ export default handler(({ lib: { token } }) => function loginTokenCreate({ username, password }, { auth: { mlek, mlsk } = {} }) {
3
+ return token({
4
+ clientId: username,
5
+ actorId: 0,
6
+ sessionId: 'session',
7
+ language: 'en',
8
+ refresh: '',
9
+ permissionMap: '',
10
+ mlek,
11
+ mlsk,
12
+ });
13
+ });
14
+ //# sourceMappingURL=loginTokenCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginTokenCreate.js","sourceRoot":"","sources":["../../../orchestrator/login/loginTokenCreate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAElD,eAAe,OAAO,CAClB,CAAC,EAAC,GAAG,EAAE,EAAC,KAAK,EAAC,EAAC,EAAE,EAAE,CACf,SAAS,gBAAgB,CACrB,EAAC,QAAQ,EAAE,QAAQ,EAAuC,EAC1D,EAAC,IAAI,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,EAAE,EAAQ;IAEhC,OAAO,KAAK,CAAC;QACT,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,EAAE;QACjB,IAAI;QACJ,IAAI;KACP,CAAC,CAAC;AACP,CAAC,CACR,CAAC"}
@@ -0,0 +1,13 @@
1
+ declare const _default: object | ((blong: import("@feasibleone/blong").IHandlerProxy<{
2
+ keys: {
3
+ refresh: string;
4
+ refreshCbc: unknown;
5
+ };
6
+ }>) => Record<string, <T>(...params: unknown[]) => T> | (<T>(...params: unknown[]) => T)) | ((blong: import("@feasibleone/blong").IHandlerProxy<{
7
+ keys: {
8
+ refresh: string;
9
+ refreshCbc: unknown;
10
+ };
11
+ }>) => Record<string, <T>(...params: unknown[]) => T> | (<T>(...params: unknown[]) => T))[];
12
+ export default _default;
13
+ //# sourceMappingURL=refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../orchestrator/login/refresh.ts"],"names":[],"mappings":";UAG8B;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC;;UAAtC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC;;AAApE,wBAmBI"}
@@ -0,0 +1,14 @@
1
+ import cbc from 'ut-function.cbc';
2
+ import { library } from '@feasibleone/blong';
3
+ export default library(({ config: { keys: { refresh, refreshCbc = cbc(refresh) } }, handler: { errorLoginRefreshTokenExpired } }) => ({
4
+ writeRefresh(params) {
5
+ return refreshCbc.encrypt(JSON.stringify({ ...params, expire: Date.now() + params.refresh * 1000 })).toString('base64');
6
+ },
7
+ readRefresh(token) {
8
+ const result = JSON.parse(refreshCbc.decrypt(Buffer.from(token, 'base64')));
9
+ if (result.expire <= Date.now())
10
+ throw errorLoginRefreshTokenExpired();
11
+ return result;
12
+ }
13
+ }));
14
+ //# sourceMappingURL=refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../orchestrator/login/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,eAAe,OAAO,CAAiD,CAAC,EACpE,MAAM,EAAE,EACJ,IAAI,EAAE,EACF,OAAO,EACP,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,EAC5B,EACJ,EACD,OAAO,EAAE,EACL,6BAA6B,EAChC,EACJ,EAAE,EAAE,CAAC,CAAC;IACH,YAAY,CAAC,MAAyB;QAClC,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1H,CAAC;IACD,WAAW,CAAC,KAAa;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,6BAA6B,EAAE,CAAC;QACvE,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type JWK } from 'jose';
2
+ declare const _default: object | ((blong: import("@feasibleone/blong").IHandlerProxy<{
3
+ keys: {
4
+ access: JWK;
5
+ id: JWK;
6
+ };
7
+ expire: Record<string, string>;
8
+ }>) => Record<string, <T>(...params: unknown[]) => T> | (<T>(...params: unknown[]) => T)) | ((blong: import("@feasibleone/blong").IHandlerProxy<{
9
+ keys: {
10
+ access: JWK;
11
+ id: JWK;
12
+ };
13
+ expire: Record<string, string>;
14
+ }>) => Record<string, <T>(...params: unknown[]) => T> | (<T>(...params: unknown[]) => T))[];
15
+ export default _default;
16
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../orchestrator/login/token.ts"],"names":[],"mappings":"AACA,OAAO,EAAgE,KAAK,GAAG,EAAC,MAAM,MAAM,CAAC;;UAGnF;QACF,MAAM,EAAE,GAAG,CAAC;QACZ,EAAE,EAAE,GAAG,CAAC;KACX;YACO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;UAJxB;QACF,MAAM,EAAE,GAAG,CAAC;QACZ,EAAE,EAAE,GAAG,CAAC;KACX;YACO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;AALlC,wBA+EE"}
@@ -0,0 +1,57 @@
1
+ import { library } from '@feasibleone/blong';
2
+ import { SignJWT, calculateJwkThumbprint, createLocalJWKSet, importJWK } from 'jose';
3
+ export default library(async ({ config: { keys: { access, id }, expire, }, lib: { writeRefresh }, gateway, }) => {
4
+ const alg = access.alg || 'EdDSA';
5
+ const kid = access.kid || (await calculateJwkThumbprint(access));
6
+ const keyAccessToken = await importJWK(access, alg);
7
+ const jwks = {
8
+ keys: [access, id].filter(Boolean).map(({ d, p, q, dp, dq, qi, ...pub }) => pub),
9
+ };
10
+ const keyStore = createLocalJWKSet(jwks);
11
+ const { public: keys } = gateway.config();
12
+ return {
13
+ async jwks(header = {}, token) {
14
+ return Object.keys(header).length ? keyStore(header, token) : jwks;
15
+ },
16
+ async token({ clientId, actorId, sessionId, permissionMap, mlek, mlsk, refresh, ...rest }) {
17
+ if (!refresh || refresh > expire.refresh)
18
+ refresh = expire.refresh;
19
+ refresh = expire.never || refresh;
20
+ const access = expire.never || (expire.access > refresh ? refresh : expire.access);
21
+ return {
22
+ encrypt: keys.encrypt,
23
+ sign: keys.sign,
24
+ token_type: 'Bearer',
25
+ scope: 'openid',
26
+ access_token: await new SignJWT({
27
+ ...rest,
28
+ typ: 'Bearer',
29
+ ses: sessionId,
30
+ per: permissionMap,
31
+ ...(mlek && { enc: mlek }),
32
+ ...(mlsk && { sig: mlsk }),
33
+ })
34
+ .setProtectedHeader({ alg, kid })
35
+ .setIssuedAt()
36
+ .setSubject(String(actorId))
37
+ .setIssuer('ut-login')
38
+ .setAudience('ut-bus')
39
+ .setExpirationTime(access + 's')
40
+ .sign(keyAccessToken),
41
+ expires_in: access,
42
+ refresh_token: writeRefresh({
43
+ actorId,
44
+ sessionId,
45
+ clientId,
46
+ mlsk,
47
+ mlek,
48
+ refresh,
49
+ ...rest,
50
+ }),
51
+ // eslint-disable-next-line @typescript-eslint/naming-convention
52
+ refresh_token_expires_in: refresh,
53
+ };
54
+ },
55
+ };
56
+ });
57
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../orchestrator/login/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,SAAS,EAAW,MAAM,MAAM,CAAC;AAE7F,eAAe,OAAO,CAOlB,KAAK,EAAE,EACH,MAAM,EAAE,EACJ,IAAI,EAAE,EAAC,MAAM,EAAE,EAAE,EAAC,EAClB,MAAM,GACT,EACD,GAAG,EAAE,EAAC,YAAY,EAAC,EACnB,OAAO,GACV,EAAE,EAAE;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG;QACT,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC;KACjF,CAAC;IACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACxC,OAAO;QACH,KAAK,CAAC,IAAI,CACN,SAAyC,EAAE,EAC3C,KAAqC;YAErC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EACe;YACtB,IAAI,CAAC,OAAO,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO;gBAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACnE,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnF,OAAO;gBACH,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,QAAQ;gBACpB,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,MAAM,IAAI,OAAO,CAAC;oBAC5B,GAAG,IAAI;oBACP,GAAG,EAAE,QAAQ;oBACb,GAAG,EAAE,SAAS;oBACd,GAAG,EAAE,aAAa;oBAClB,GAAG,CAAC,IAAI,IAAI,EAAC,GAAG,EAAE,IAAI,EAAC,CAAC;oBACxB,GAAG,CAAC,IAAI,IAAI,EAAC,GAAG,EAAE,IAAI,EAAC,CAAC;iBAC3B,CAAC;qBACG,kBAAkB,CAAC,EAAC,GAAG,EAAE,GAAG,EAAC,CAAC;qBAC9B,WAAW,EAAE;qBACb,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;qBAC3B,SAAS,CAAC,UAAU,CAAC;qBACrB,WAAW,CAAC,QAAQ,CAAC;qBACrB,iBAAiB,CAAC,MAAM,GAAG,GAAG,CAAC;qBAC/B,IAAI,CAAC,cAAc,CAAC;gBACzB,UAAU,EAAE,MAAM;gBAClB,aAAa,EAAE,YAAY,CAAC;oBACxB,OAAO;oBACP,SAAS;oBACT,QAAQ;oBACR,IAAI;oBACJ,IAAI;oBACJ,OAAO;oBACP,GAAG,IAAI;iBACV,CAAC;gBACF,gEAAgE;gBAChE,wBAAwB,EAAE,OAAO;aACpC,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC,CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@feasibleone/blong").IAdapterFactory<unknown>;
2
+ export default _default;
3
+ //# sourceMappingURL=loginDispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginDispatch.d.ts","sourceRoot":"","sources":["../../orchestrator/loginDispatch.ts"],"names":[],"mappings":";AAEA,wBAEI"}
@@ -0,0 +1,5 @@
1
+ import { orchestrator } from '@feasibleone/blong';
2
+ export default orchestrator(() => ({
3
+ extends: 'orchestrator.dispatch',
4
+ }));
5
+ //# sourceMappingURL=loginDispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginDispatch.js","sourceRoot":"","sources":["../../orchestrator/loginDispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,eAAe,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/B,OAAO,EAAE,uBAAuB;CACnC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ declare const _default: import("@feasibleone/blong").SolutionFactory<import("@sinclair/typebox").TObject<{
2
+ login: import("@sinclair/typebox").TObject<{
3
+ expire: import("@sinclair/typebox").TObject<{
4
+ code: import("@sinclair/typebox").TNumber;
5
+ access: import("@sinclair/typebox").TNumber;
6
+ cookie: import("@sinclair/typebox").TNumber;
7
+ refresh: import("@sinclair/typebox").TNumber;
8
+ nonce: import("@sinclair/typebox").TNumber;
9
+ }>;
10
+ cookie: import("@sinclair/typebox").TObject<{
11
+ encoding: import("@sinclair/typebox").TString;
12
+ isSecure: import("@sinclair/typebox").TBoolean;
13
+ isHttpOnly: import("@sinclair/typebox").TBoolean;
14
+ clearInvalid: import("@sinclair/typebox").TBoolean;
15
+ strictHeader: import("@sinclair/typebox").TBoolean;
16
+ }>;
17
+ keys: import("@sinclair/typebox").TObject<{
18
+ refresh: import("@sinclair/typebox").TString;
19
+ access: import("@sinclair/typebox").TObject<{
20
+ crv: import("@sinclair/typebox").TString;
21
+ x: import("@sinclair/typebox").TString;
22
+ d: import("@sinclair/typebox").TString;
23
+ kty: import("@sinclair/typebox").TString;
24
+ kid: import("@sinclair/typebox").TString;
25
+ use: import("@sinclair/typebox").TString;
26
+ alg: import("@sinclair/typebox").TString;
27
+ }>;
28
+ }>;
29
+ }>;
30
+ loginDispatch: import("@sinclair/typebox").TObject<{
31
+ namespace: import("@sinclair/typebox").TString;
32
+ imports: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
33
+ validations: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
34
+ }>;
35
+ }>>;
36
+ export default _default;
37
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAiFI"}
package/dist/server.js ADDED
@@ -0,0 +1,84 @@
1
+ import { realm } from '@feasibleone/blong';
2
+ export default realm(blong => ({
3
+ url: import.meta.url,
4
+ validation: blong.type.Object({
5
+ login: blong.type.Object({
6
+ expire: blong.type.Object({
7
+ code: blong.type.Number(),
8
+ access: blong.type.Number(),
9
+ cookie: blong.type.Number(),
10
+ refresh: blong.type.Number(),
11
+ nonce: blong.type.Number(),
12
+ }),
13
+ cookie: blong.type.Object({
14
+ encoding: blong.type.String(),
15
+ isSecure: blong.type.Boolean(),
16
+ isHttpOnly: blong.type.Boolean(),
17
+ clearInvalid: blong.type.Boolean(),
18
+ strictHeader: blong.type.Boolean(),
19
+ }),
20
+ keys: blong.type.Object({
21
+ refresh: blong.type.String(),
22
+ access: blong.type.Object({
23
+ crv: blong.type.String(),
24
+ x: blong.type.String(),
25
+ d: blong.type.String(),
26
+ kty: blong.type.String(),
27
+ kid: blong.type.String(),
28
+ use: blong.type.String(),
29
+ alg: blong.type.String(),
30
+ }),
31
+ }),
32
+ }),
33
+ loginDispatch: blong.type.Object({
34
+ namespace: blong.type.String(),
35
+ imports: blong.type.Array(blong.type.String()),
36
+ validations: blong.type.Array(blong.type.String()),
37
+ }),
38
+ }),
39
+ children: ['./orchestrator', './gateway'],
40
+ config: {
41
+ default: {
42
+ login: {
43
+ expire: {
44
+ code: 60, // 1 minute
45
+ access: 15 * 60, // 15 minutes
46
+ cookie: 8 * 60 * 60, // 8 hours
47
+ refresh: 8 * 60 * 60, // 8 hours
48
+ nonce: 15 * 60, // 15 minute
49
+ },
50
+ cookie: {
51
+ encoding: 'none',
52
+ isSecure: true,
53
+ isHttpOnly: true,
54
+ clearInvalid: false,
55
+ strictHeader: true,
56
+ },
57
+ keys: {
58
+ refresh: 'b1226b7ed6c6e5aded611ffb55a26a18154fb2263c8c2ea0974dd63e8e11919b',
59
+ access: {
60
+ crv: 'Ed25519',
61
+ x: 'hhcGW1iHk_YWlNYDxn7P4PGV1N6mPjghBge4O7zterQ',
62
+ d: 'KGpSfEzpbelEdQStQBlYmHPkHrG4cEcRx_yJZkRc_qY',
63
+ kty: 'OKP',
64
+ kid: 'kMfX1WoDc9dWVRugwGh9sSL956JS7yB8jE1ylo71Z-M',
65
+ use: 'sig',
66
+ alg: 'EdDSA',
67
+ },
68
+ },
69
+ },
70
+ loginDispatch: {
71
+ namespace: 'login',
72
+ imports: ['login.login'],
73
+ validations: ['login.login.validation'],
74
+ },
75
+ },
76
+ dev: {},
77
+ microservice: {
78
+ orchestrator: true,
79
+ gateway: true,
80
+ },
81
+ integration: {},
82
+ },
83
+ }));
84
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const _default: object | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>) | ((blong: import("@feasibleone/blong").IHandlerProxy<Record<string, unknown>>) => (<T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T) | import("@feasibleone/blong").IAdapterFactory | Record<string, <T>(this: ReturnType<import("@feasibleone/blong").IAdapterFactory>, params: unknown, $meta: import("@feasibleone/blong").IMeta, context?: import("@feasibleone/blong").IContext) => Promise<T> | T>)[];
2
+ export default _default;
3
+ //# sourceMappingURL=testUserAdminLogin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUserAdminLogin.d.ts","sourceRoot":"","sources":["../../../test/test/testUserAdminLogin.ts"],"names":[],"mappings":";AAEA,wBAaI"}
@@ -0,0 +1,12 @@
1
+ import { handler } from '@feasibleone/blong';
2
+ export default handler(({ lib: { rename } }) => ({
3
+ testUserAdminLogin: ({ name = 'login' }) => rename([
4
+ function createAdmin() {
5
+ return { username: 'sa', password: '123' };
6
+ },
7
+ function loginAdmin() {
8
+ return { accessToken: 'xxx' };
9
+ },
10
+ ], name),
11
+ }));
12
+ //# sourceMappingURL=testUserAdminLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUserAdminLogin.js","sourceRoot":"","sources":["../../../test/test/testUserAdminLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAE3C,eAAe,OAAO,CAAC,CAAC,EAAC,GAAG,EAAE,EAAC,MAAM,EAAC,EAAC,EAAE,EAAE,CAAC,CAAC;IACzC,kBAAkB,EAAE,CAAC,EAAC,IAAI,GAAG,OAAO,EAAC,EAAE,EAAE,CACrC,MAAM,CACF;QACI,SAAS,WAAW;YAChB,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QAC7C,CAAC;QACD,SAAS,UAAU;YACf,OAAO,EAAC,WAAW,EAAE,KAAK,EAAC,CAAC;QAChC,CAAC;KACJ,EACD,IAAI,CACP;CACR,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,5 +1,14 @@
1
1
  {
2
2
  "name": "@feasibleone/blong-login",
3
+ "description": "Login and authentication utilities for the Blong framework",
4
+ "keywords": [
5
+ "blong",
6
+ "rad",
7
+ "framework"
8
+ ],
9
+ "repository": {
10
+ "url": "git+https://github.com/feasibleone/blong.git"
11
+ },
3
12
  "scripts": {
4
13
  "build": "heft build --clean",
5
14
  "ci-publish": "npm publish --access public --provenance"
@@ -9,14 +18,17 @@
9
18
  "/browser.js": "./dist/browser.js"
10
19
  },
11
20
  "type": "module",
12
- "version": "0.0.1",
21
+ "version": "1.0.5",
13
22
  "dependencies": {
14
- "@feasibleone/blong": "workspace:^1.0.0",
15
23
  "@sinclair/typebox": "^0.33.7",
16
24
  "ut-function.cbc": "^1.1.6",
17
25
  "jose": "^5.7.0"
18
26
  },
27
+ "peerDependencies": {
28
+ "@feasibleone/blong": "^1.0.0"
29
+ },
19
30
  "devDependencies": {
31
+ "@feasibleone/blong": "workspace:^1.0.0",
20
32
  "@rushstack/eslint-config": "^4.0.1",
21
33
  "@rushstack/heft": "^1.1.7",
22
34
  "@rushstack/heft-lint-plugin": "^1.1.10",