@groundbrick/express-adapter 0.1.2 → 0.1.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.
@@ -0,0 +1,43 @@
1
+ import type { Response, CookieOptions } from 'express';
2
+ export interface AuthCookieConfig {
3
+ /** Cookie domain (e.g., '.agendapet.local') */
4
+ domain?: string;
5
+ /** Whether running in production */
6
+ isProduction: boolean;
7
+ /** JWT expiration in milliseconds (for maxAge when setting cookies) */
8
+ maxAgeMs?: number;
9
+ }
10
+ /**
11
+ * Creates the full set of cookie options for auth cookies.
12
+ * These options MUST be consistent between set and clear operations.
13
+ */
14
+ export declare function createAuthCookieOptions(config: AuthCookieConfig): CookieOptions;
15
+ /**
16
+ * Creates an auth cookie helper for Express responses.
17
+ * Centralizes all auth cookie operations with consistent options.
18
+ */
19
+ export declare function createAuthCookieHelper(baseConfig: Omit<AuthCookieConfig, 'maxAgeMs'>): {
20
+ /**
21
+ * Set the auth cookie with proper options
22
+ */
23
+ set(res: Response, token: string, maxAgeMs: number): void;
24
+ /**
25
+ * Clear the auth cookie with matching options
26
+ * CRITICAL: Options must match set() exactly!
27
+ */
28
+ clear(res: Response): void;
29
+ /**
30
+ * Get the cookie options for manual use
31
+ */
32
+ getOptions(maxAgeMs?: number): CookieOptions;
33
+ };
34
+ /**
35
+ * Parse JWT expiration string to milliseconds.
36
+ * Supports formats like '12h', '7d', '30m'.
37
+ */
38
+ export declare function parseJwtExpiration(expiresIn?: string): number;
39
+ /**
40
+ * Parse JWT expiration string to seconds (for SvelteKit cookies).
41
+ */
42
+ export declare function parseJwtExpirationSeconds(expiresIn?: string): number;
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cookies/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAMvD,MAAM,WAAW,gBAAgB;IAC7B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAc/E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAI7E;;OAEG;aACM,QAAQ,SAAS,MAAM,YAAY,MAAM,GAAG,IAAI;IAQzD;;;OAGG;eACQ,QAAQ,GAAG,IAAI;IAK1B;;OAEG;0BACmB,MAAM,GAAG,aAAa;EAOnD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,MAAc,GAAG,MAAM,CAWpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,GAAE,MAAc,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,78 @@
1
+ // ============================================================================
2
+ // COOKIE UTILITIES
3
+ // ============================================================================
4
+ /**
5
+ * Creates the full set of cookie options for auth cookies.
6
+ * These options MUST be consistent between set and clear operations.
7
+ */
8
+ export function createAuthCookieOptions(config) {
9
+ const options = {
10
+ path: '/',
11
+ domain: config.domain,
12
+ httpOnly: true,
13
+ secure: config.isProduction,
14
+ sameSite: config.isProduction ? 'strict' : 'lax'
15
+ };
16
+ if (config.maxAgeMs !== undefined) {
17
+ options.maxAge = config.maxAgeMs;
18
+ }
19
+ return options;
20
+ }
21
+ /**
22
+ * Creates an auth cookie helper for Express responses.
23
+ * Centralizes all auth cookie operations with consistent options.
24
+ */
25
+ export function createAuthCookieHelper(baseConfig) {
26
+ const tokenKey = 'auth_token';
27
+ return {
28
+ /**
29
+ * Set the auth cookie with proper options
30
+ */
31
+ set(res, token, maxAgeMs) {
32
+ const options = createAuthCookieOptions({
33
+ ...baseConfig,
34
+ maxAgeMs
35
+ });
36
+ res.cookie(tokenKey, token, options);
37
+ },
38
+ /**
39
+ * Clear the auth cookie with matching options
40
+ * CRITICAL: Options must match set() exactly!
41
+ */
42
+ clear(res) {
43
+ const options = createAuthCookieOptions(baseConfig);
44
+ res.clearCookie(tokenKey, options);
45
+ },
46
+ /**
47
+ * Get the cookie options for manual use
48
+ */
49
+ getOptions(maxAgeMs) {
50
+ return createAuthCookieOptions({
51
+ ...baseConfig,
52
+ maxAgeMs
53
+ });
54
+ }
55
+ };
56
+ }
57
+ /**
58
+ * Parse JWT expiration string to milliseconds.
59
+ * Supports formats like '12h', '7d', '30m'.
60
+ */
61
+ export function parseJwtExpiration(expiresIn = '12h') {
62
+ const unit = expiresIn.slice(-1);
63
+ const num = parseInt(expiresIn.slice(0, -1));
64
+ switch (unit) {
65
+ case 'h': return num * 60 * 60 * 1000; // hours to ms
66
+ case 'd': return num * 24 * 60 * 60 * 1000; // days to ms
67
+ case 'm': return num * 60 * 1000; // minutes to ms
68
+ case 's': return num * 1000; // seconds to ms
69
+ default: return parseInt(expiresIn) * 60 * 60 * 1000; // default to hours
70
+ }
71
+ }
72
+ /**
73
+ * Parse JWT expiration string to seconds (for SvelteKit cookies).
74
+ */
75
+ export function parseJwtExpirationSeconds(expiresIn = '12h') {
76
+ return Math.floor(parseJwtExpiration(expiresIn) / 1000);
77
+ }
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cookies/index.ts"],"names":[],"mappings":"AAeA,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAwB;IAC5D,MAAM,OAAO,GAAkB;QAC3B,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;KACnD,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAA8C;IACjF,MAAM,QAAQ,GAAG,YAAY,CAAC;IAE9B,OAAO;QACH;;WAEG;QACH,GAAG,CAAC,GAAa,EAAE,KAAa,EAAE,QAAgB;YAC9C,MAAM,OAAO,GAAG,uBAAuB,CAAC;gBACpC,GAAG,UAAU;gBACb,QAAQ;aACX,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,GAAa;YACf,MAAM,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACpD,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QAED;;WAEG;QACH,UAAU,CAAC,QAAiB;YACxB,OAAO,uBAAuB,CAAC;gBAC3B,GAAG,UAAU;gBACb,QAAQ;aACX,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB,KAAK;IACxD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,cAAc;QACrD,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACzD,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,gBAAgB;QAClD,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,gBAAgB;QAC7C,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB;IAC7E,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAoB,KAAK;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AAC5D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,4 +6,5 @@ export { ResponseFormatter } from './middleware/ResponseFormatter.js';
6
6
  export { JwtMiddleware } from './middleware/JwtMiddleware.js';
7
7
  export type * from './types/index.js';
8
8
  export { ResponseHelper, ValidationHelper, PaginationHelper, RequestHelper, SecurityHelper } from './utils/index.js';
9
+ export * from './cookies/index.js';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,mBAAmB,kBAAkB,CAAC;AAGtC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACf,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,mBAAmB,kBAAkB,CAAC;AAGtC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACf,MAAM,kBAAkB,CAAC;AAG1B,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -8,4 +8,6 @@ export { ResponseFormatter } from './middleware/ResponseFormatter.js';
8
8
  export { JwtMiddleware } from './middleware/JwtMiddleware.js';
9
9
  // Utility helpers
10
10
  export { ResponseHelper, ValidationHelper, PaginationHelper, RequestHelper, SecurityHelper } from './utils/index.js';
11
+ // Cookie utilities
12
+ export * from './cookies/index.js';
11
13
  //# 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":"AACA,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,aAAa;AACb,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAK9D,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACf,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,aAAa;AACb,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAK9D,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,cAAc,oBAAoB,CAAC"}
@@ -10,7 +10,9 @@ export interface JwtMiddlewareConfig {
10
10
  }
11
11
  export interface JwtPayload {
12
12
  userId: number;
13
- email: string;
13
+ email?: string;
14
+ role?: string;
15
+ permissions?: string[];
14
16
  roles?: string[];
15
17
  [key: string]: unknown;
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../src/types/Auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../src/types/Auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -20,6 +20,8 @@ export interface ExpressConfig {
20
20
  bodyParser?: {
21
21
  json?: {
22
22
  limit?: string;
23
+ /** Verify function called before parsing - can be used to store raw body for webhook signatures */
24
+ verify?: (req: any, res: any, buf: Buffer, encoding: string) => void;
23
25
  };
24
26
  urlencoded?: {
25
27
  limit?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressConfig.d.ts","sourceRoot":"","sources":["../../src/types/ExpressConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;QACtI,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE;YACL,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,UAAU,CAAC,EAAE;YACX,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,CAAC;CACH"}
1
+ {"version":3,"file":"ExpressConfig.d.ts","sourceRoot":"","sources":["../../src/types/ExpressConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;QACtI,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE;YACL,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,mGAAmG;YACnG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;SACtE,CAAC;QACF,UAAU,CAAC,EAAE;YACX,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groundbrick/express-adapter",
3
- "version": "0.1.2",
3
+ "version": "0.1.5",
4
4
  "description": "Express.js integration adapter with middleware, controllers, and error handling",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,9 +42,9 @@
42
42
  "directory": "packages/express-adapter"
43
43
  },
44
44
  "dependencies": {
45
- "@groundbrick/db-core": "workspace:*",
46
- "@groundbrick/logger": "workspace:*",
47
- "@groundbrick/service-base": "workspace:*",
45
+ "@groundbrick/db-core": "^0.1.3",
46
+ "@groundbrick/logger": "^0.3.1",
47
+ "@groundbrick/service-base": "^0.1.3",
48
48
  "@types/ms": "^2.1.0"
49
49
  },
50
50
  "peerDependencies": {