@plasius/api 1.0.1 → 1.0.3

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.
package/CHANGELOG.md CHANGED
@@ -18,6 +18,34 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
18
18
  - **Security**
19
19
  - (placeholder)
20
20
 
21
+ ## [1.0.3] - 2026-02-28
22
+
23
+ - **Added**
24
+ - (placeholder)
25
+
26
+ - **Changed**
27
+ - (placeholder)
28
+
29
+ - **Fixed**
30
+ - (placeholder)
31
+
32
+ - **Security**
33
+ - (placeholder)
34
+
35
+ ## [1.0.2] - 2026-02-28
36
+
37
+ - **Added**
38
+ - Generic session helper utilities (`ensureSession`, `createSessionCookie`, `getSessionIdFromRequest`) compatible with middleware usage.
39
+
40
+ - **Changed**
41
+ - `withSession` middleware now delegates to shared `utils/session` helpers while preserving existing cookie defaults.
42
+
43
+ - **Fixed**
44
+ - (placeholder)
45
+
46
+ - **Security**
47
+ - (placeholder)
48
+
21
49
  ## [1.0.1] - 2026-02-28
22
50
 
23
51
  ### Added
@@ -61,6 +89,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
61
89
 
62
90
  - Initial public release scaffold for `@plasius/api`.
63
91
 
64
- [Unreleased]: https://github.com/Plasius-LTD/api/compare/v1.0.1...HEAD
92
+ [Unreleased]: https://github.com/Plasius-LTD/api/compare/v1.0.3...HEAD
65
93
  [1.0.0]: https://github.com/Plasius-LTD/api/releases/tag/v1.0.0
66
94
  [1.0.1]: https://github.com/Plasius-LTD/api/releases/tag/v1.0.1
95
+ [1.0.2]: https://github.com/Plasius-LTD/api/releases/tag/v1.0.2
96
+ [1.0.3]: https://github.com/Plasius-LTD/api/releases/tag/v1.0.3
package/README.md CHANGED
@@ -15,6 +15,7 @@ Public generic API helper package.
15
15
 
16
16
  - Public helper exports compiled to `dist/**`
17
17
  - Reusable transport-security helper utilities
18
+ - Reusable session helper utilities compatible with `withSession` middleware
18
19
  - Governance/legal materials (`docs/**`, `legal/**`)
19
20
 
20
21
  ## Package Boundary (Public by Design)
@@ -33,6 +34,14 @@ Public generic API helper package.
33
34
  - `shouldEnforceHttps()`
34
35
  - These helpers support strict header policy and HTTPS enforcement behavior for callers.
35
36
 
37
+ ## Session Helper Baseline
38
+
39
+ - Exports helper functions:
40
+ - `ensureSession(request, options?)`
41
+ - `getSessionIdFromRequest(request, cookieName?)`
42
+ - `createSessionCookie(sessionId, options?)`
43
+ - `withSession` middleware is implemented using these helpers and keeps secure defaults (`HttpOnly`, `Secure`, `SameSite=None`, `Path=/`).
44
+
36
45
  ## Install
37
46
 
38
47
  ```bash
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { applyBaselineSecurityHeaders, isHttpsRequest, isInsecureLocalRequest, shouldEnforceHttps, } from "./middleware/transportSecurity.js";
2
2
  export { decodeOAuthReturnToState, parseEncodedState, verifyState, } from "./utils/state.js";
3
3
  export { generatePkceCodeChallenge, generatePkceCodeVerifier, generatePkceCookieId, getPkceCookieName, isValidPkceCodeVerifier, isValidPkceCookieId, } from "./utils/oauth-pkce.js";
4
+ export { DEFAULT_SESSION_COOKIE_NAME, createSessionCookie, ensureSession, getSessionIdFromRequest, } from "./utils/session.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,aAAa,EACb,uBAAuB,GACxB,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidPkceCookieId = exports.isValidPkceCodeVerifier = exports.getPkceCookieName = exports.generatePkceCookieId = exports.generatePkceCodeVerifier = exports.generatePkceCodeChallenge = exports.verifyState = exports.parseEncodedState = exports.decodeOAuthReturnToState = exports.shouldEnforceHttps = exports.isInsecureLocalRequest = exports.isHttpsRequest = exports.applyBaselineSecurityHeaders = void 0;
3
+ exports.getSessionIdFromRequest = exports.ensureSession = exports.createSessionCookie = exports.DEFAULT_SESSION_COOKIE_NAME = exports.isValidPkceCookieId = exports.isValidPkceCodeVerifier = exports.getPkceCookieName = exports.generatePkceCookieId = exports.generatePkceCodeVerifier = exports.generatePkceCodeChallenge = exports.verifyState = exports.parseEncodedState = exports.decodeOAuthReturnToState = exports.shouldEnforceHttps = exports.isInsecureLocalRequest = exports.isHttpsRequest = exports.applyBaselineSecurityHeaders = void 0;
4
4
  var transportSecurity_js_1 = require("./middleware/transportSecurity.js");
5
5
  Object.defineProperty(exports, "applyBaselineSecurityHeaders", { enumerable: true, get: function () { return transportSecurity_js_1.applyBaselineSecurityHeaders; } });
6
6
  Object.defineProperty(exports, "isHttpsRequest", { enumerable: true, get: function () { return transportSecurity_js_1.isHttpsRequest; } });
@@ -17,4 +17,9 @@ Object.defineProperty(exports, "generatePkceCookieId", { enumerable: true, get:
17
17
  Object.defineProperty(exports, "getPkceCookieName", { enumerable: true, get: function () { return oauth_pkce_js_1.getPkceCookieName; } });
18
18
  Object.defineProperty(exports, "isValidPkceCodeVerifier", { enumerable: true, get: function () { return oauth_pkce_js_1.isValidPkceCodeVerifier; } });
19
19
  Object.defineProperty(exports, "isValidPkceCookieId", { enumerable: true, get: function () { return oauth_pkce_js_1.isValidPkceCookieId; } });
20
+ var session_js_1 = require("./utils/session.js");
21
+ Object.defineProperty(exports, "DEFAULT_SESSION_COOKIE_NAME", { enumerable: true, get: function () { return session_js_1.DEFAULT_SESSION_COOKIE_NAME; } });
22
+ Object.defineProperty(exports, "createSessionCookie", { enumerable: true, get: function () { return session_js_1.createSessionCookie; } });
23
+ Object.defineProperty(exports, "ensureSession", { enumerable: true, get: function () { return session_js_1.ensureSession; } });
24
+ Object.defineProperty(exports, "getSessionIdFromRequest", { enumerable: true, get: function () { return session_js_1.getSessionIdFromRequest; } });
20
25
  //# 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,0EAK2C;AAJzC,oIAAA,4BAA4B,OAAA;AAC5B,sHAAA,cAAc,OAAA;AACd,8HAAA,sBAAsB,OAAA;AACtB,0HAAA,kBAAkB,OAAA;AAGpB,6CAI0B;AAHxB,oHAAA,wBAAwB,OAAA;AACxB,6GAAA,iBAAiB,OAAA;AACjB,uGAAA,WAAW,OAAA;AAGb,uDAO+B;AAN7B,0HAAA,yBAAyB,OAAA;AACzB,yHAAA,wBAAwB,OAAA;AACxB,qHAAA,oBAAoB,OAAA;AACpB,kHAAA,iBAAiB,OAAA;AACjB,wHAAA,uBAAuB,OAAA;AACvB,oHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0EAK2C;AAJzC,oIAAA,4BAA4B,OAAA;AAC5B,sHAAA,cAAc,OAAA;AACd,8HAAA,sBAAsB,OAAA;AACtB,0HAAA,kBAAkB,OAAA;AAGpB,6CAI0B;AAHxB,oHAAA,wBAAwB,OAAA;AACxB,6GAAA,iBAAiB,OAAA;AACjB,uGAAA,WAAW,OAAA;AAGb,uDAO+B;AAN7B,0HAAA,yBAAyB,OAAA;AACzB,yHAAA,wBAAwB,OAAA;AACxB,qHAAA,oBAAoB,OAAA;AACpB,kHAAA,iBAAiB,OAAA;AACjB,wHAAA,uBAAuB,OAAA;AACvB,oHAAA,mBAAmB,OAAA;AAGrB,iDAK4B;AAJ1B,yHAAA,2BAA2B,OAAA;AAC3B,iHAAA,mBAAmB,OAAA;AACnB,2GAAA,aAAa,OAAA;AACb,qHAAA,uBAAuB,OAAA"}
@@ -0,0 +1,13 @@
1
+ import { HttpRequest } from "@azure/functions";
2
+ interface CookieOptions {
3
+ httpOnly?: boolean;
4
+ secure?: boolean;
5
+ sameSite?: "Strict" | "Lax" | "None";
6
+ maxAge?: number;
7
+ path?: string;
8
+ domain?: string;
9
+ }
10
+ export declare function setCookie(name: string, value: string, options?: CookieOptions): string;
11
+ export declare function getCookie(request: HttpRequest, name: string): string | undefined;
12
+ export {};
13
+ //# sourceMappingURL=cookies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/utils/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAWR;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAUpB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setCookie = setCookie;
4
+ exports.getCookie = getCookie;
5
+ function setCookie(name, value, options = {}) {
6
+ let cookie = `${name}=${encodeURIComponent(value)}`;
7
+ if (options.maxAge !== undefined)
8
+ cookie += `; Max-Age=${options.maxAge}`;
9
+ if (options.httpOnly)
10
+ cookie += "; HttpOnly";
11
+ if (options.secure)
12
+ cookie += "; Secure";
13
+ if (options.sameSite)
14
+ cookie += `; SameSite=${options.sameSite}`;
15
+ if (options.domain)
16
+ cookie += `; Domain=${options.domain}`;
17
+ cookie += `; Path=${options.path ?? "/"}`;
18
+ return cookie;
19
+ }
20
+ function getCookie(request, name) {
21
+ const cookies = request.headers.get("cookie") || request.headers.get("Cookie");
22
+ if (!cookies)
23
+ return undefined;
24
+ const cookiePairs = cookies.split(";").map((c) => c.trim());
25
+ for (const pair of cookiePairs) {
26
+ const [key, ...vals] = pair.split("=");
27
+ if (key === name)
28
+ return decodeURIComponent(vals.join("="));
29
+ }
30
+ return undefined;
31
+ }
32
+ //# sourceMappingURL=cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/utils/cookies.ts"],"names":[],"mappings":";;AAWA,8BAeC;AAED,8BAaC;AA9BD,SAAgB,SAAS,CACvB,IAAY,EACZ,KAAa,EACb,UAAyB,EAAE;IAE3B,IAAI,MAAM,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAEpD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1E,IAAI,OAAO,CAAC,QAAQ;QAAE,MAAM,IAAI,YAAY,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,UAAU,CAAC;IACzC,IAAI,OAAO,CAAC,QAAQ;QAAE,MAAM,IAAI,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjE,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC;IAC3D,MAAM,IAAI,UAAU,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,SAAS,CACvB,OAAoB,EACpB,IAAY;IAEZ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/E,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Cookie, HttpRequest } from "@azure/functions";
2
+ export declare const DEFAULT_SESSION_COOKIE_NAME = "sessionId";
3
+ export interface SessionCookieOptions {
4
+ domain?: string;
5
+ httpOnly?: boolean;
6
+ maxAge?: number;
7
+ path?: string;
8
+ sameSite?: "Strict" | "Lax" | "None";
9
+ secure?: boolean;
10
+ }
11
+ export interface SessionOptions {
12
+ cookieName?: string;
13
+ cookieOptions?: SessionCookieOptions;
14
+ generateSessionId?: () => string;
15
+ }
16
+ export interface SessionResult {
17
+ cookie?: Cookie;
18
+ cookieName: string;
19
+ isNew: boolean;
20
+ sessionId: string;
21
+ }
22
+ export declare function getSessionIdFromRequest(request: HttpRequest, cookieName?: string): string | undefined;
23
+ export declare function createSessionCookie(sessionId: string, options?: SessionOptions): Cookie;
24
+ export declare function ensureSession(request: HttpRequest, options?: SessionOptions): SessionResult;
25
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI5D,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,WAAW,EACpB,UAAU,GAAE,MAAoC,GAC/C,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,cAAmB,GAC3B,MAAM,CAyBR;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAuBf"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_SESSION_COOKIE_NAME = void 0;
4
+ exports.getSessionIdFromRequest = getSessionIdFromRequest;
5
+ exports.createSessionCookie = createSessionCookie;
6
+ exports.ensureSession = ensureSession;
7
+ const crypto_1 = require("crypto");
8
+ const cookies_js_1 = require("./cookies.js");
9
+ exports.DEFAULT_SESSION_COOKIE_NAME = "sessionId";
10
+ const DEFAULT_SESSION_COOKIE_OPTIONS = {
11
+ httpOnly: true,
12
+ path: "/",
13
+ sameSite: "None",
14
+ secure: true,
15
+ };
16
+ function getSessionIdFromRequest(request, cookieName = exports.DEFAULT_SESSION_COOKIE_NAME) {
17
+ return (0, cookies_js_1.getCookie)(request, cookieName);
18
+ }
19
+ function createSessionCookie(sessionId, options = {}) {
20
+ const cookieName = options.cookieName ?? exports.DEFAULT_SESSION_COOKIE_NAME;
21
+ const cookieOptions = {
22
+ ...DEFAULT_SESSION_COOKIE_OPTIONS,
23
+ ...(options.cookieOptions ?? {}),
24
+ };
25
+ const cookie = {
26
+ name: cookieName,
27
+ value: sessionId,
28
+ path: cookieOptions.path,
29
+ httpOnly: cookieOptions.httpOnly,
30
+ sameSite: cookieOptions.sameSite,
31
+ secure: cookieOptions.secure,
32
+ };
33
+ if (cookieOptions.domain) {
34
+ cookie.domain = cookieOptions.domain;
35
+ }
36
+ if (typeof cookieOptions.maxAge === "number") {
37
+ cookie.maxAge = cookieOptions.maxAge;
38
+ }
39
+ return cookie;
40
+ }
41
+ function ensureSession(request, options = {}) {
42
+ const cookieName = options.cookieName ?? exports.DEFAULT_SESSION_COOKIE_NAME;
43
+ const existingSessionId = getSessionIdFromRequest(request, cookieName);
44
+ if (existingSessionId) {
45
+ return {
46
+ cookieName,
47
+ isNew: false,
48
+ sessionId: existingSessionId,
49
+ };
50
+ }
51
+ const sessionId = (options.generateSessionId ?? crypto_1.randomUUID)();
52
+ if (!sessionId) {
53
+ throw new Error("Session id generator returned an empty value");
54
+ }
55
+ return {
56
+ cookie: createSessionCookie(sessionId, options),
57
+ cookieName,
58
+ isNew: true,
59
+ sessionId,
60
+ };
61
+ }
62
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":";;;AAqCA,0DAKC;AAED,kDA4BC;AAED,sCA0BC;AAnGD,mCAAoC;AACpC,6CAAyC;AAE5B,QAAA,2BAA2B,GAAG,WAAW,CAAC;AAwBvD,MAAM,8BAA8B,GAEhC;IACF,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,SAAgB,uBAAuB,CACrC,OAAoB,EACpB,aAAqB,mCAA2B;IAEhD,OAAO,IAAA,sBAAS,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,mBAAmB,CACjC,SAAiB,EACjB,UAA0B,EAAE;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mCAA2B,CAAC;IACrE,MAAM,aAAa,GAAG;QACpB,GAAG,8BAA8B;QACjC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;KACjC,CAAC;IAEF,MAAM,MAAM,GAAW;QACrB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,MAAM,EAAE,aAAa,CAAC,MAAM;KAC7B,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,aAAa,CAC3B,OAAoB,EACpB,UAA0B,EAAE;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mCAA2B,CAAC;IACrE,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEvE,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;YACL,UAAU;YACV,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,iBAAiB;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,mBAAU,CAAC,EAAE,CAAC;IAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;QAC/C,UAAU;QACV,KAAK,EAAE,IAAI;QACX,SAAS;KACV,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasius/api",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Generic public API security and middleware helpers.",
5
5
  "private": false,
6
6
  "main": "./dist/index.js",