@athosjs/pro 0.1.4-alpha

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 (94) hide show
  1. package/README.md +518 -0
  2. package/bootstrap.cjs +107 -0
  3. package/bootstrap.cjs.map +1 -0
  4. package/bootstrap.d.ts +8 -0
  5. package/bootstrap.d.ts.map +1 -0
  6. package/bootstrap.js +103 -0
  7. package/bootstrap.js.map +1 -0
  8. package/core/athos-application.cjs +362 -0
  9. package/core/athos-application.cjs.map +1 -0
  10. package/core/athos-application.d.ts +17 -0
  11. package/core/athos-application.d.ts.map +1 -0
  12. package/core/athos-application.js +357 -0
  13. package/core/athos-application.js.map +1 -0
  14. package/core/discovery.cjs +47 -0
  15. package/core/discovery.cjs.map +1 -0
  16. package/core/discovery.d.ts +6 -0
  17. package/core/discovery.d.ts.map +1 -0
  18. package/core/discovery.js +45 -0
  19. package/core/discovery.js.map +1 -0
  20. package/core/i18n.cjs +12 -0
  21. package/core/i18n.cjs.map +1 -0
  22. package/core/i18n.d.ts +4 -0
  23. package/core/i18n.d.ts.map +1 -0
  24. package/core/i18n.js +10 -0
  25. package/core/i18n.js.map +1 -0
  26. package/core/pipeline.cjs +251 -0
  27. package/core/pipeline.cjs.map +1 -0
  28. package/core/pipeline.d.ts +11 -0
  29. package/core/pipeline.d.ts.map +1 -0
  30. package/core/pipeline.js +246 -0
  31. package/core/pipeline.js.map +1 -0
  32. package/core/router-initializer.cjs +158 -0
  33. package/core/router-initializer.cjs.map +1 -0
  34. package/core/router-initializer.d.ts +26 -0
  35. package/core/router-initializer.d.ts.map +1 -0
  36. package/core/router-initializer.js +156 -0
  37. package/core/router-initializer.js.map +1 -0
  38. package/core/scanner.cjs +141 -0
  39. package/core/scanner.cjs.map +1 -0
  40. package/core/scanner.d.ts +7 -0
  41. package/core/scanner.d.ts.map +1 -0
  42. package/core/scanner.js +139 -0
  43. package/core/scanner.js.map +1 -0
  44. package/experimental.cjs +23 -0
  45. package/experimental.cjs.map +1 -0
  46. package/experimental.d.ts +9 -0
  47. package/experimental.d.ts.map +1 -0
  48. package/experimental.js +5 -0
  49. package/experimental.js.map +1 -0
  50. package/functions.cjs +67 -0
  51. package/functions.cjs.map +1 -0
  52. package/functions.d.ts +10 -0
  53. package/functions.d.ts.map +1 -0
  54. package/functions.js +62 -0
  55. package/functions.js.map +1 -0
  56. package/http-profile.cjs +48 -0
  57. package/http-profile.cjs.map +1 -0
  58. package/http-profile.d.ts +6 -0
  59. package/http-profile.d.ts.map +1 -0
  60. package/http-profile.js +44 -0
  61. package/http-profile.js.map +1 -0
  62. package/index.cjs +281 -0
  63. package/index.cjs.map +1 -0
  64. package/index.d.ts +23 -0
  65. package/index.d.ts.map +1 -0
  66. package/index.js +23 -0
  67. package/index.js.map +1 -0
  68. package/observability.cjs +191 -0
  69. package/observability.cjs.map +1 -0
  70. package/observability.d.ts +8 -0
  71. package/observability.d.ts.map +1 -0
  72. package/observability.js +188 -0
  73. package/observability.js.map +1 -0
  74. package/package.json +42 -0
  75. package/policies.cjs +30 -0
  76. package/policies.cjs.map +1 -0
  77. package/policies.d.ts +21 -0
  78. package/policies.d.ts.map +1 -0
  79. package/policies.js +27 -0
  80. package/policies.js.map +1 -0
  81. package/resilience.cjs +280 -0
  82. package/resilience.cjs.map +1 -0
  83. package/resilience.d.ts +6 -0
  84. package/resilience.d.ts.map +1 -0
  85. package/resilience.js +276 -0
  86. package/resilience.js.map +1 -0
  87. package/security.cjs +142 -0
  88. package/security.cjs.map +1 -0
  89. package/security.d.ts +11 -0
  90. package/security.d.ts.map +1 -0
  91. package/security.js +136 -0
  92. package/security.js.map +1 -0
  93. package/types.d.ts +3 -0
  94. package/types.d.ts.map +1 -0
package/security.js ADDED
@@ -0,0 +1,136 @@
1
+ import { getAuthentication, authenticate, attachAuthentication, authenticatedSubject, AUTH_STATE_KEY, authorize } from '@athosjs/auth';
2
+ import { ATHOS_ERROR_CODES, ATHOS_STATE_KEYS } from '@athosjs/constants';
3
+ import { AthosError } from '@athosjs/core';
4
+ import { json } from '@athosjs/http';
5
+
6
+ function createProAuthenticationMiddleware(options) {
7
+ return async (context, next)=>{
8
+ const typedContext = context;
9
+ const existing = getAuthentication(typedContext);
10
+ if (options.skipIfAuthenticated !== false && existing?.authenticated) {
11
+ return next();
12
+ }
13
+ const strategies = typeof options.strategies === "function" ? options.strategies(typedContext) : options.strategies;
14
+ const result = await authenticate(typedContext, strategies, {
15
+ ...options.stopOnFailure === undefined ? {} : {
16
+ stopOnFailure: options.stopOnFailure
17
+ }
18
+ });
19
+ attachAuthentication(typedContext, result);
20
+ if (result.authenticated || !options.required) {
21
+ return next();
22
+ }
23
+ if (options.onUnauthenticated) {
24
+ return options.onUnauthenticated(typedContext, result);
25
+ }
26
+ return createAuthenticationFailureResponse(result);
27
+ };
28
+ }
29
+ function createProAuthorizationMiddleware(options) {
30
+ return async (context, next)=>{
31
+ const typedContext = context;
32
+ const authState = getAuthentication(typedContext);
33
+ let subject;
34
+ try {
35
+ subject = options.getSubject ? options.getSubject(typedContext) : authenticatedSubject(authState ?? {
36
+ authenticated: false,
37
+ identity: undefined,
38
+ attempts: [],
39
+ challenges: []
40
+ });
41
+ } catch (error) {
42
+ if (error instanceof AthosError && error.code === ATHOS_ERROR_CODES.AUTH_UNAUTHENTICATED) {
43
+ typedContext.state.set(AUTH_STATE_KEY, authState);
44
+ if (options.onUnauthenticated) {
45
+ return options.onUnauthenticated(typedContext, error);
46
+ }
47
+ return createAuthenticationFailureResponse({
48
+ attempts: authState?.attempts ?? [],
49
+ challenges: authState?.challenges ?? [],
50
+ ...authState?.failure ? {
51
+ failure: authState.failure
52
+ } : {}
53
+ });
54
+ }
55
+ throw error;
56
+ }
57
+ const decisionInput = {
58
+ subject,
59
+ ...options.getResource ? {
60
+ resource: options.getResource(typedContext)
61
+ } : {},
62
+ ...options.getEnvironment ? {
63
+ context: options.getEnvironment(typedContext)
64
+ } : {}
65
+ };
66
+ const decision = await authorize(options.policy, decisionInput);
67
+ typedContext.state.set(ATHOS_STATE_KEYS.AUTHZ, decision);
68
+ if (decision.allowed) {
69
+ return next();
70
+ }
71
+ if (options.onForbidden) {
72
+ return options.onForbidden(typedContext, decision);
73
+ }
74
+ return createAuthorizationFailureResponse(decision);
75
+ };
76
+ }
77
+ function createAuthenticationFailureResponse(result) {
78
+ const response = json({
79
+ error: "unauthorized",
80
+ authenticated: false,
81
+ ...result.failure ? {
82
+ failure: {
83
+ strategy: result.failure.strategy,
84
+ reason: result.failure.reason,
85
+ reasonCode: result.failure.reasonCode
86
+ }
87
+ } : {},
88
+ challenges: result.challenges
89
+ }, 401);
90
+ const headerValue = formatWwwAuthenticateHeader(result.challenges ?? []);
91
+ if (headerValue) {
92
+ response.headers.set?.("www-authenticate", headerValue);
93
+ }
94
+ return response;
95
+ }
96
+ function createAuthorizationFailureResponse(decision) {
97
+ return json({
98
+ error: "forbidden",
99
+ allowed: false,
100
+ ...decision.policy ? {
101
+ policy: decision.policy
102
+ } : {},
103
+ ...decision.code ? {
104
+ code: decision.code
105
+ } : {},
106
+ ...decision.reason ? {
107
+ reason: decision.reason
108
+ } : {}
109
+ }, 403);
110
+ }
111
+ function formatWwwAuthenticateHeader(challenges) {
112
+ if (challenges.length === 0) {
113
+ return undefined;
114
+ }
115
+ return challenges.map(formatChallengeInstruction).join(", ");
116
+ }
117
+ function formatChallengeInstruction(challenge) {
118
+ const parts = [
119
+ challenge.scheme
120
+ ];
121
+ if (challenge.realm) {
122
+ parts.push(`realm="${escapeHeaderValue(challenge.realm)}"`);
123
+ }
124
+ if (challenge.params) {
125
+ for (const [key, value] of Object.entries(challenge.params)){
126
+ parts.push(`${key}="${escapeHeaderValue(value)}"`);
127
+ }
128
+ }
129
+ return parts.join(" ");
130
+ }
131
+ function escapeHeaderValue(value) {
132
+ return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
133
+ }
134
+
135
+ export { createAuthenticationFailureResponse, createAuthorizationFailureResponse, createProAuthenticationMiddleware, createProAuthorizationMiddleware, formatWwwAuthenticateHeader };
136
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sources":["../../../packages/pro/src/security.ts"],"sourcesContent":["import {\n\tAUTH_STATE_KEY,\n\ttype AuthenticationResult,\n\ttype AuthIdentity,\n\ttype AuthStateCarrier,\n\ttype AuthStrategy,\n\tattachAuthentication,\n\tauthenticate,\n\tauthenticatedSubject,\n\tauthorize,\n\ttype ChallengeInstruction,\n\tgetAuthentication,\n} from \"@athosjs/auth\";\nimport type { AuthorizationContext, AuthorizationDecision, AuthorizationPolicy } from \"@athosjs/authz\";\nimport { ATHOS_ERROR_CODES, ATHOS_STATE_KEYS } from \"@athosjs/constants\";\nimport { AthosError } from \"@athosjs/core\";\nimport { type HttpContext, type HttpMiddleware, type HttpResponse, json } from \"@athosjs/http\";\nimport type { ProAuthenticationMiddlewareOptions, ProAuthorizationMiddlewareOptions } from \"@athosjs/types/pro\";\n\nexport type { ProAuthenticationMiddlewareOptions, ProAuthorizationMiddlewareOptions };\n\nexport function createProAuthenticationMiddleware<\n\tTContext extends HttpContext & AuthStateCarrier,\n\tTIdentity extends AuthIdentity = AuthIdentity,\n>(options: ProAuthenticationMiddlewareOptions<TContext, TIdentity>): HttpMiddleware {\n\treturn async (context, next) => {\n\t\tconst typedContext = context as TContext;\n\t\tconst existing = getAuthentication<TIdentity>(typedContext);\n\n\t\tif (options.skipIfAuthenticated !== false && existing?.authenticated) {\n\t\t\treturn next();\n\t\t}\n\n\t\tconst strategies =\n\t\t\ttypeof options.strategies === \"function\"\n\t\t\t\t? (options.strategies as any)(typedContext)\n\t\t\t\t: (options.strategies as readonly AuthStrategy<TContext, TIdentity>[]);\n\t\tconst result = await authenticate(typedContext, strategies as any, {\n\t\t\t...(options.stopOnFailure === undefined ? {} : { stopOnFailure: options.stopOnFailure }),\n\t\t});\n\n\t\tattachAuthentication(typedContext, result);\n\n\t\tif (result.authenticated || !options.required) {\n\t\t\treturn next();\n\t\t}\n\n\t\tif (options.onUnauthenticated) {\n\t\t\treturn (options.onUnauthenticated as any)(typedContext, result) as any;\n\t\t}\n\n\t\treturn createAuthenticationFailureResponse(result);\n\t};\n}\n\nexport function createProAuthorizationMiddleware<\n\tTContext extends HttpContext & AuthStateCarrier,\n\tTIdentity extends AuthIdentity = AuthIdentity,\n\tTResource = unknown,\n\tTEnvironment = unknown,\n>(options: ProAuthorizationMiddlewareOptions<TContext, TIdentity, TResource, TEnvironment>): HttpMiddleware {\n\treturn async (context, next) => {\n\t\tconst typedContext = context as TContext;\n\t\tconst authState = getAuthentication<TIdentity>(typedContext);\n\n\t\tlet subject: TIdentity;\n\n\t\ttry {\n\t\t\tsubject = options.getSubject\n\t\t\t\t? options.getSubject(typedContext)\n\t\t\t\t: authenticatedSubject<TIdentity>((authState ?? {\n\t\t\t\t\t\tauthenticated: false,\n\t\t\t\t\t\tidentity: undefined as any,\n\t\t\t\t\t\tattempts: [],\n\t\t\t\t\t\tchallenges: [],\n\t\t\t\t\t}) as AuthStateCarrier);\n\t\t} catch (error) {\n\t\t\tif (error instanceof AthosError && error.code === ATHOS_ERROR_CODES.AUTH_UNAUTHENTICATED) {\n\t\t\t\ttypedContext.state.set(AUTH_STATE_KEY, authState);\n\n\t\t\t\tif (options.onUnauthenticated) {\n\t\t\t\t\treturn (options.onUnauthenticated as any)(typedContext, error) as any;\n\t\t\t\t}\n\n\t\t\t\treturn createAuthenticationFailureResponse({\n\t\t\t\t\tauthenticated: false,\n\t\t\t\t\tattempts: authState?.attempts ?? [],\n\t\t\t\t\tchallenges: authState?.challenges ?? [],\n\t\t\t\t\t...(authState?.failure ? { failure: authState.failure } : {}),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\n\t\tconst decisionInput: AuthorizationContext<TIdentity, TResource, TEnvironment> = {\n\t\t\tsubject,\n\t\t\t...(options.getResource ? { resource: options.getResource(typedContext) } : {}),\n\t\t\t...(options.getEnvironment ? { context: options.getEnvironment(typedContext) } : {}),\n\t\t};\n\t\tconst decision = await authorize(\n\t\t\toptions.policy as AuthorizationPolicy<TIdentity, TResource, TEnvironment>,\n\t\t\tdecisionInput,\n\t\t);\n\n\t\ttypedContext.state.set(ATHOS_STATE_KEYS.AUTHZ, decision);\n\n\t\tif (decision.allowed) {\n\t\t\treturn next();\n\t\t}\n\n\t\tif (options.onForbidden) {\n\t\t\treturn (options.onForbidden as any)(typedContext, decision) as any;\n\t\t}\n\n\t\treturn createAuthorizationFailureResponse(decision);\n\t};\n}\n\nexport function createAuthenticationFailureResponse<TIdentity extends AuthIdentity = AuthIdentity>(\n\tresult: AuthenticationResult<TIdentity>,\n): HttpResponse {\n\tconst response = json(\n\t\t{\n\t\t\terror: \"unauthorized\",\n\t\t\tauthenticated: false,\n\t\t\t...(result.failure\n\t\t\t\t? {\n\t\t\t\t\t\tfailure: {\n\t\t\t\t\t\t\tstrategy: result.failure.strategy,\n\t\t\t\t\t\t\treason: result.failure.reason,\n\t\t\t\t\t\t\treasonCode: result.failure.reasonCode,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\tchallenges: result.challenges,\n\t\t},\n\t\t401,\n\t);\n\tconst headerValue = formatWwwAuthenticateHeader(result.challenges ?? []);\n\n\tif (headerValue) {\n\t\t(response.headers as any).set?.(\"www-authenticate\", headerValue);\n\t}\n\n\treturn response;\n}\n\nexport function createAuthorizationFailureResponse(decision: AuthorizationDecision): HttpResponse {\n\treturn json(\n\t\t{\n\t\t\terror: \"forbidden\",\n\t\t\tallowed: false,\n\t\t\t...(decision.policy ? { policy: decision.policy } : {}),\n\t\t\t...(decision.code ? { code: decision.code } : {}),\n\t\t\t...(decision.reason ? { reason: decision.reason } : {}),\n\t\t},\n\t\t403,\n\t);\n}\n\nexport function formatWwwAuthenticateHeader(challenges: readonly ChallengeInstruction[]): string | undefined {\n\tif (challenges.length === 0) {\n\t\treturn undefined;\n\t}\n\n\treturn challenges.map(formatChallengeInstruction).join(\", \");\n}\n\nfunction formatChallengeInstruction(challenge: ChallengeInstruction): string {\n\tconst parts = [challenge.scheme];\n\n\tif (challenge.realm) {\n\t\tparts.push(`realm=\"${escapeHeaderValue(challenge.realm)}\"`);\n\t}\n\n\tif (challenge.params) {\n\t\tfor (const [key, value] of Object.entries(challenge.params)) {\n\t\t\tparts.push(`${key}=\"${escapeHeaderValue(value)}\"`);\n\t\t}\n\t}\n\n\treturn parts.join(\" \");\n}\n\nfunction escapeHeaderValue(value: string): string {\n\treturn value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n}\n"],"names":["createProAuthenticationMiddleware","options","context","next","typedContext","existing","getAuthentication","skipIfAuthenticated","authenticated","strategies","result","authenticate","stopOnFailure","undefined","attachAuthentication","required","onUnauthenticated","createAuthenticationFailureResponse","createProAuthorizationMiddleware","authState","subject","getSubject","authenticatedSubject","identity","attempts","challenges","error","AthosError","code","ATHOS_ERROR_CODES","AUTH_UNAUTHENTICATED","state","set","AUTH_STATE_KEY","failure","decisionInput","getResource","resource","getEnvironment","decision","authorize","policy","ATHOS_STATE_KEYS","AUTHZ","allowed","onForbidden","createAuthorizationFailureResponse","response","json","strategy","reason","reasonCode","headerValue","formatWwwAuthenticateHeader","headers","length","map","formatChallengeInstruction","join","challenge","parts","scheme","realm","push","escapeHeaderValue","params","key","value","Object","entries","replace"],"mappings":"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"}
package/types.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { ProApplicationBuilderOptions, ProApplicationBuilderResult, ProApplicationResult, ProApplicationSetupOptions, ProApplicationSetupResult, ProConfiguredMiddleware, ProHttpApplicationOptions, ProHttpApplicationResult, ProMiddlewareRegistration } from "@athosjs/types/pro";
2
+ export type { ProApplicationBuilderOptions, ProApplicationBuilderResult, ProApplicationResult, ProApplicationSetupOptions, ProApplicationSetupResult, ProConfiguredMiddleware, ProHttpApplicationOptions, ProHttpApplicationResult, ProMiddlewareRegistration, };
3
+ //# sourceMappingURL=types.d.ts.map
package/types.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/pro/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACX,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,GACzB,CAAC"}