@pikku/core 0.6.22 → 0.6.24

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 (54) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/channel/channel-handler.js +1 -1
  3. package/dist/channel/channel-runner.d.ts +1 -1
  4. package/dist/channel/channel-runner.js +1 -1
  5. package/dist/channel/local/local-channel-runner.js +5 -5
  6. package/dist/channel/serverless/serverless-channel-runner.js +4 -4
  7. package/dist/http/http-route-runner.js +9 -14
  8. package/dist/http/pikku-fetch-http-request.d.ts +1 -0
  9. package/dist/http/pikku-fetch-http-request.js +64 -8
  10. package/dist/http/pikku-fetch-http-response.d.ts +2 -1
  11. package/dist/http/pikku-fetch-http-response.js +5 -1
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.js +1 -0
  14. package/dist/middleware/auth-apikey.js +2 -2
  15. package/dist/middleware/auth-bearer.js +2 -2
  16. package/dist/middleware/auth-cookie.d.ts +7 -3
  17. package/dist/middleware/auth-cookie.js +34 -17
  18. package/dist/middleware-runner.d.ts +3 -3
  19. package/dist/middleware-runner.js +2 -2
  20. package/dist/services/jwt-service.d.ts +2 -1
  21. package/dist/services/local-secrets.d.ts +2 -2
  22. package/dist/services/local-secrets.js +5 -5
  23. package/dist/services/user-session-service.d.ts +2 -0
  24. package/dist/services/user-session-service.js +3 -0
  25. package/dist/time-utils.d.ts +12 -0
  26. package/dist/time-utils.js +18 -0
  27. package/dist/types/core.types.d.ts +5 -5
  28. package/dist/types/functions.types.d.ts +1 -1
  29. package/lcov.info +1694 -967
  30. package/package.json +1 -1
  31. package/src/channel/channel-handler.ts +1 -1
  32. package/src/channel/channel-runner.ts +3 -3
  33. package/src/channel/local/local-channel-runner.test.ts +0 -2
  34. package/src/channel/local/local-channel-runner.ts +5 -5
  35. package/src/channel/serverless/serverless-channel-runner.ts +4 -7
  36. package/src/http/http-route-runner.test.ts +1 -1
  37. package/src/http/http-route-runner.ts +23 -20
  38. package/src/http/pikku-fetch-http-request.test.ts +237 -0
  39. package/src/http/pikku-fetch-http-request.ts +64 -8
  40. package/src/http/pikku-fetch-http-response.test.ts +82 -0
  41. package/src/http/pikku-fetch-http-response.ts +16 -2
  42. package/src/index.ts +1 -1
  43. package/src/middleware/auth-apikey.ts +2 -2
  44. package/src/middleware/auth-bearer.ts +2 -2
  45. package/src/middleware/auth-cookie.ts +51 -21
  46. package/src/middleware-runner.ts +3 -3
  47. package/src/services/jwt-service.ts +6 -1
  48. package/src/services/local-secrets.ts +3 -3
  49. package/src/services/user-session-service.ts +4 -0
  50. package/src/time-utils.test.ts +56 -0
  51. package/src/time-utils.ts +32 -0
  52. package/src/types/core.types.ts +5 -5
  53. package/src/types/functions.types.ts +1 -1
  54. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,18 @@
1
+ const multipliers = {
2
+ second: 1,
3
+ minute: 60,
4
+ hour: 60 * 60,
5
+ day: 60 * 60 * 24,
6
+ week: 60 * 60 * 24 * 7,
7
+ year: Math.round(365.25 * 60 * 60 * 24),
8
+ };
9
+ export const getRelativeTimeOffset = ({ value, unit, }) => {
10
+ return Math.round(value * multipliers[unit]) * 1000; // convert to milliseconds
11
+ };
12
+ /**
13
+ * Returns a Unix timestamp (in seconds) offset from now by the given duration.
14
+ * e.g. value = -1 and unit = 'day' => 1 day ago => now - 86400 seconds
15
+ */
16
+ export const getRelativeTimeOffsetFromNow = (relativeTime) => {
17
+ return new Date(Date.now() + getRelativeTimeOffset(relativeTime));
18
+ };
@@ -52,17 +52,17 @@ export interface CoreSingletonServices<Config extends CoreConfig = CoreConfig> {
52
52
  /** JWT Service */
53
53
  jwt?: JWTService;
54
54
  /** The schema library used to validate data */
55
- schemaService?: SchemaService;
55
+ schema?: SchemaService;
56
56
  /** The core configuration for the application. */
57
57
  config: Config;
58
58
  /** The logger used by the application. */
59
59
  logger: Logger;
60
60
  /** The variable service to be used */
61
- variablesService: VariablesService;
61
+ variables: VariablesService;
62
62
  /** The subscription service that is passed to streams */
63
63
  eventHub?: EventHubService<unknown>;
64
64
  /** SecretServce */
65
- secretService?: SecretService;
65
+ secrets?: SecretService;
66
66
  }
67
67
  /**
68
68
  * Represents different forms of interaction within Pikku and the outside world.
@@ -74,7 +74,7 @@ export interface PikkuInteraction {
74
74
  * A function that can wrap an interaction and be called before or after
75
75
  */
76
76
  export type PikkuMiddleware<SingletonServices extends CoreSingletonServices = CoreSingletonServices, UserSession extends CoreUserSession = CoreUserSession> = (services: SingletonServices & {
77
- userSessionService: UserSessionService<UserSession>;
77
+ userSession: UserSessionService<UserSession>;
78
78
  }, interactions: PikkuInteraction, next: () => Promise<void>) => Promise<void>;
79
79
  /**
80
80
  * Represents the core services used by Pikku, including singleton services and the request/response interaction.
@@ -94,7 +94,7 @@ export type CreateSessionServices<SingletonServices extends CoreSingletonService
94
94
  /**
95
95
  * Defines a function type for creating config.
96
96
  */
97
- export type CreateConfig<Config extends CoreConfig> = (variablesService?: VariablesService) => Promise<Config>;
97
+ export type CreateConfig<Config extends CoreConfig> = (variables?: VariablesService) => Promise<Config>;
98
98
  /**
99
99
  * Represents the documentation for a route, including summary, description, tags, and errors.
100
100
  */
@@ -21,7 +21,7 @@ export type CoreAPIFunction<In, Out, Services extends CoreSingletonServices = Co
21
21
  */
22
22
  export type CoreAPIFunctionSessionless<In, Out, Services extends CoreSingletonServices = CoreServices & {
23
23
  channel?: PikkuChannel<unknown, Out>;
24
- }, Session extends CoreUserSession = CoreUserSession, Channel extends boolean = false> = (services: Services, data: In, session: Session) => Channel extends true ? Promise<Out> | Promise<void> : Promise<Out>;
24
+ }, Session extends CoreUserSession = CoreUserSession, Channel extends boolean = false> = (services: Services, data: In, session?: Session) => Channel extends true ? Promise<Out> | Promise<void> : Promise<Out>;
25
25
  /**
26
26
  * Represents a function that checks permissions for a given API operation.
27
27
  *