at-shared-types 1.2.6 → 1.2.8
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/dist/ai/protocol/ids.d.ts +0 -10
- package/dist/ai/protocol/ids.d.ts.map +1 -1
- package/dist/auth/auth.runtime.d.ts +6 -0
- package/dist/auth/auth.runtime.d.ts.map +1 -0
- package/dist/auth/domain/authSession.d.ts +21 -0
- package/dist/auth/domain/authSession.d.ts.map +1 -0
- package/dist/auth/index.d.ts +16 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/providers/atplatform/atplatform.login.types.d.ts +9 -0
- package/dist/auth/providers/atplatform/atplatform.login.types.d.ts.map +1 -0
- package/dist/auth/providers/atplatform/atplatform.runtime.d.ts +6 -0
- package/dist/auth/providers/atplatform/atplatform.runtime.d.ts.map +1 -0
- package/dist/auth/providers/atplatform/atplatform.token.types.d.ts +9 -0
- package/dist/auth/providers/atplatform/atplatform.token.types.d.ts.map +1 -0
- package/dist/auth/providers/parto/parto.login.types.d.ts +28 -0
- package/dist/auth/providers/parto/parto.login.types.d.ts.map +1 -0
- package/dist/auth/providers/parto/parto.runtime.d.ts +6 -0
- package/dist/auth/providers/parto/parto.runtime.d.ts.map +1 -0
- package/dist/auth/providers/parto/parto.token.types.d.ts +13 -0
- package/dist/auth/providers/parto/parto.token.types.d.ts.map +1 -0
- package/dist/index.cjs +111 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +110 -0
- package/dist/index.mjs.map +1 -1
- package/dist/protocol.cjs +4 -13
- package/dist/protocol.cjs.map +1 -1
- package/dist/protocol.mjs +4 -13
- package/dist/protocol.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,24 +4,14 @@ type Brand<T, B extends string> = T & {
|
|
|
4
4
|
export type ATAICapabilityID = Brand<string, "ATAICapabilityID">;
|
|
5
5
|
export type ATAIPromptID = Brand<string, "ATAIPromptID">;
|
|
6
6
|
export declare const ATAIID: {
|
|
7
|
-
/** Validate & brand an existing capability id (throws if invalid). */
|
|
8
7
|
readonly validateCapability: (id: string) => ATAICapabilityID;
|
|
9
|
-
/** Validate & brand an existing prompt id (throws if invalid). */
|
|
10
8
|
readonly validatePrompt: (id: string) => ATAIPromptID;
|
|
11
|
-
/**
|
|
12
|
-
* Build a capability id from parts (then validates & brands).
|
|
13
|
-
* Format: cap.<app>.<area>.<object>.<verb>
|
|
14
|
-
*/
|
|
15
9
|
readonly makeCapability: (parts: {
|
|
16
10
|
app: string;
|
|
17
11
|
area: string;
|
|
18
12
|
target: string;
|
|
19
13
|
action: string;
|
|
20
14
|
}) => ATAICapabilityID;
|
|
21
|
-
/**
|
|
22
|
-
* Build a prompt id from parts (then validates & brands).
|
|
23
|
-
* Format: prompt.<app>.<area>.<object>.<verb>.v<major>
|
|
24
|
-
*/
|
|
25
15
|
readonly makePrompt: (parts: {
|
|
26
16
|
app: string;
|
|
27
17
|
area: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/ai/protocol/ids.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/ai/protocol/ids.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAuCzD,eAAO,MAAM,MAAM;sCACQ,MAAM,KAAG,gBAAgB;kCAK7B,MAAM,KAAG,YAAY;qCAKlB;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAClB,KAAG,gBAAgB;iCAKF;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,CAAC,EAAE,MAAM,CAAC;KACb,KAAG,YAAY;CAKV,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ATAuthProviderType, ATAuthSessionDTO } from "./domain/authSession";
|
|
2
|
+
export * from "./providers/parto/parto.runtime";
|
|
3
|
+
export * from "./providers/atplatform/atplatform.runtime";
|
|
4
|
+
export declare function mapSessionFromLogin(providerType: ATAuthProviderType, response: unknown): ATAuthSessionDTO;
|
|
5
|
+
export declare function mapSessionFromToken(providerType: ATAuthProviderType, payload: unknown, token: string): ATAuthSessionDTO;
|
|
6
|
+
//# sourceMappingURL=auth.runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.runtime.d.ts","sourceRoot":"","sources":["../../src/auth/auth.runtime.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAkB1D,wBAAgB,mBAAmB,CAC/B,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,OAAO,GAClB,gBAAgB,CAOlB;AAED,wBAAgB,mBAAmB,CAC/B,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,GACd,gBAAgB,CAOlB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const ATAuthProviderTypes: readonly ["parto", "atplatform"];
|
|
2
|
+
export type ATAuthProviderType = typeof ATAuthProviderTypes[number];
|
|
3
|
+
export interface ATAuthUserDTO {
|
|
4
|
+
userID: string;
|
|
5
|
+
username?: string;
|
|
6
|
+
email?: string;
|
|
7
|
+
firstName?: string;
|
|
8
|
+
lastName?: string;
|
|
9
|
+
avatar?: string;
|
|
10
|
+
permissions?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface ATAuthSessionDTO {
|
|
13
|
+
token: string;
|
|
14
|
+
refreshToken?: string;
|
|
15
|
+
expiresAt?: number;
|
|
16
|
+
iss?: string;
|
|
17
|
+
providerType: ATAuthProviderType;
|
|
18
|
+
user: ATAuthUserDTO;
|
|
19
|
+
meta?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=authSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authSession.d.ts","sourceRoot":"","sources":["../../../src/auth/domain/authSession.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,kCAAmC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IAEd,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,YAAY,EAAE,kBAAkB,CAAC;IAEjC,IAAI,EAAE,aAAa,CAAC;IAGpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from "./domain/authSession";
|
|
2
|
+
export * from "./auth.runtime";
|
|
3
|
+
import * as CoreTypes from "./domain/authSession";
|
|
4
|
+
import * as Runtime from "./auth.runtime";
|
|
5
|
+
export declare namespace Types {
|
|
6
|
+
type ATAuthProviderType = CoreTypes.ATAuthProviderType;
|
|
7
|
+
type ATAuthUserDTO = CoreTypes.ATAuthUserDTO;
|
|
8
|
+
type ATAuthSessionDTO = CoreTypes.ATAuthSessionDTO;
|
|
9
|
+
type ATPlatformLoginResponseDTO = import("./providers/atplatform/atplatform.login.types").ATPlatformLoginResponseDTO;
|
|
10
|
+
type ATPlatformAccessTokenPayloadDTO = import("./providers/atplatform/atplatform.token.types").ATPlatformAccessTokenPayloadDTO;
|
|
11
|
+
type PartoUserInfoDTO = import("./providers/parto/parto.login.types").PartoUserInfoDTO;
|
|
12
|
+
type PartoLoginResponseDTO = import("./providers/parto/parto.login.types").PartoLoginResponseDTO;
|
|
13
|
+
type PartoAccessTokenPayloadDTO = import("./providers/parto/parto.token.types").PartoAccessTokenPayloadDTO;
|
|
14
|
+
}
|
|
15
|
+
export { Runtime };
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAG1C,yBAAiB,KAAK,CAAC;IAEnB,KAAY,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;IAC9D,KAAY,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;IACpD,KAAY,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAG1D,KAAY,0BAA0B,GAAG,OAAO,+CAA+C,EAAE,0BAA0B,CAAC;IAC5H,KAAY,+BAA+B,GAAG,OAAO,+CAA+C,EAAE,+BAA+B,CAAC;IAGtI,KAAY,gBAAgB,GAAG,OAAO,qCAAqC,EAAE,gBAAgB,CAAC;IAC9F,KAAY,qBAAqB,GAAG,OAAO,qCAAqC,EAAE,qBAAqB,CAAC;IACxG,KAAY,0BAA0B,GAAG,OAAO,qCAAqC,EAAE,0BAA0B,CAAC;CACrH;AAGD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atplatform.login.types.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/atplatform/atplatform.login.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,MAAM,CAAC;IAEd,aAAa,EAAE,MAAM,CAAC;IAEtB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ATAuthSessionDTO } from "../../domain/authSession";
|
|
2
|
+
import { ATPlatformLoginResponseDTO } from "./atplatform.login.types";
|
|
3
|
+
import { ATPlatformAccessTokenPayloadDTO } from "./atplatform.token.types";
|
|
4
|
+
export declare function mapATPlatformSessionFromLogin(response: ATPlatformLoginResponseDTO): ATAuthSessionDTO;
|
|
5
|
+
export declare function mapATPlatformSessionFromToken(payload: ATPlatformAccessTokenPayloadDTO, token: string): ATAuthSessionDTO;
|
|
6
|
+
//# sourceMappingURL=atplatform.runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atplatform.runtime.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/atplatform/atplatform.runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,wBAAgB,6BAA6B,CACzC,QAAQ,EAAE,0BAA0B,GACrC,gBAAgB,CAYlB;AAED,wBAAgB,6BAA6B,CACzC,OAAO,EAAE,+BAA+B,EACxC,KAAK,EAAE,MAAM,GACd,gBAAgB,CAUlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atplatform.token.types.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/atplatform/atplatform.token.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAE5C,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface PartoUserInfoDTO {
|
|
2
|
+
ID: number;
|
|
3
|
+
userName: string;
|
|
4
|
+
firstName: string;
|
|
5
|
+
lastName: string;
|
|
6
|
+
isAgent: boolean;
|
|
7
|
+
birthdate: string;
|
|
8
|
+
businessTypeID: number;
|
|
9
|
+
companyName: string | null;
|
|
10
|
+
customerID: number | null;
|
|
11
|
+
department: string | null;
|
|
12
|
+
directPhone: string | null;
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
factionsJson: string | null;
|
|
15
|
+
genderId: number;
|
|
16
|
+
internalPhone: string | null;
|
|
17
|
+
loginEnabled: boolean;
|
|
18
|
+
nationalCode: string | null;
|
|
19
|
+
offices: unknown;
|
|
20
|
+
phone: string | null;
|
|
21
|
+
roles: unknown;
|
|
22
|
+
}
|
|
23
|
+
export interface PartoLoginResponseDTO {
|
|
24
|
+
token: string;
|
|
25
|
+
refreshToken: string;
|
|
26
|
+
userInfo: PartoUserInfoDTO;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=parto.login.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parto.login.types.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/parto/parto.login.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,QAAQ,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,cAAc,EAAE,MAAM,CAAC;IAEvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,OAAO,EAAE,OAAO,CAAC;IAEjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,YAAY,EAAE,OAAO,CAAC;IAEtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IAEd,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,gBAAgB,CAAC;CAC9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ATAuthSessionDTO } from "../../domain/authSession";
|
|
2
|
+
import { PartoLoginResponseDTO } from "./parto.login.types";
|
|
3
|
+
import { PartoAccessTokenPayloadDTO } from "./parto.token.types";
|
|
4
|
+
export declare function mapPartoSessionFromLogin(response: PartoLoginResponseDTO): ATAuthSessionDTO;
|
|
5
|
+
export declare function mapPartoSessionFromToken(payload: PartoAccessTokenPayloadDTO, token: string): ATAuthSessionDTO;
|
|
6
|
+
//# sourceMappingURL=parto.runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parto.runtime.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/parto/parto.runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,qBAAqB,GAChC,gBAAgB,CAmBlB;AAED,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,MAAM,GACd,gBAAgB,CAYlB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface PartoAccessTokenPayloadDTO {
|
|
2
|
+
aud: string;
|
|
3
|
+
iss: string;
|
|
4
|
+
sub?: string;
|
|
5
|
+
ID: string;
|
|
6
|
+
CUSTOMERID?: string;
|
|
7
|
+
PERMISSIONS?: string;
|
|
8
|
+
unique_name?: string;
|
|
9
|
+
exp: number;
|
|
10
|
+
iat: number;
|
|
11
|
+
nbf?: number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=parto.token.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parto.token.types.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/parto/parto.token.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACvC,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,EAAE,EAAE,MAAM,CAAC;IAEX,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/index.cjs
CHANGED
|
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
|
+
ATAuth: () => auth_exports,
|
|
23
24
|
ATCasing: () => casing_exports
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(src_exports);
|
|
@@ -76,8 +77,118 @@ function toCamelDeep(value) {
|
|
|
76
77
|
}
|
|
77
78
|
return value;
|
|
78
79
|
}
|
|
80
|
+
|
|
81
|
+
// src/auth/index.ts
|
|
82
|
+
var auth_exports = {};
|
|
83
|
+
__export(auth_exports, {
|
|
84
|
+
ATAuthProviderTypes: () => ATAuthProviderTypes,
|
|
85
|
+
Runtime: () => auth_runtime_exports,
|
|
86
|
+
mapATPlatformSessionFromLogin: () => mapATPlatformSessionFromLogin,
|
|
87
|
+
mapATPlatformSessionFromToken: () => mapATPlatformSessionFromToken,
|
|
88
|
+
mapPartoSessionFromLogin: () => mapPartoSessionFromLogin,
|
|
89
|
+
mapPartoSessionFromToken: () => mapPartoSessionFromToken,
|
|
90
|
+
mapSessionFromLogin: () => mapSessionFromLogin,
|
|
91
|
+
mapSessionFromToken: () => mapSessionFromToken
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// src/auth/domain/authSession.ts
|
|
95
|
+
var ATAuthProviderTypes = ["parto", "atplatform"];
|
|
96
|
+
|
|
97
|
+
// src/auth/auth.runtime.ts
|
|
98
|
+
var auth_runtime_exports = {};
|
|
99
|
+
__export(auth_runtime_exports, {
|
|
100
|
+
mapATPlatformSessionFromLogin: () => mapATPlatformSessionFromLogin,
|
|
101
|
+
mapATPlatformSessionFromToken: () => mapATPlatformSessionFromToken,
|
|
102
|
+
mapPartoSessionFromLogin: () => mapPartoSessionFromLogin,
|
|
103
|
+
mapPartoSessionFromToken: () => mapPartoSessionFromToken,
|
|
104
|
+
mapSessionFromLogin: () => mapSessionFromLogin,
|
|
105
|
+
mapSessionFromToken: () => mapSessionFromToken
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// src/auth/providers/parto/parto.runtime.ts
|
|
109
|
+
function mapPartoSessionFromLogin(response) {
|
|
110
|
+
const user = response.userInfo;
|
|
111
|
+
return {
|
|
112
|
+
token: response.token,
|
|
113
|
+
refreshToken: response.refreshToken,
|
|
114
|
+
providerType: "parto",
|
|
115
|
+
user: {
|
|
116
|
+
userID: String(user.ID),
|
|
117
|
+
username: user.userName,
|
|
118
|
+
firstName: user.firstName,
|
|
119
|
+
lastName: user.lastName
|
|
120
|
+
},
|
|
121
|
+
meta: {
|
|
122
|
+
department: user.department,
|
|
123
|
+
companyName: user.companyName,
|
|
124
|
+
businessTypeID: user.businessTypeID
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function mapPartoSessionFromToken(payload, token) {
|
|
129
|
+
return {
|
|
130
|
+
token,
|
|
131
|
+
expiresAt: payload.exp,
|
|
132
|
+
providerType: "parto",
|
|
133
|
+
iss: payload.iss,
|
|
134
|
+
user: {
|
|
135
|
+
userID: payload.ID,
|
|
136
|
+
username: payload.unique_name,
|
|
137
|
+
permissions: payload.PERMISSIONS?.split(",")
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// src/auth/providers/atplatform/atplatform.runtime.ts
|
|
143
|
+
function mapATPlatformSessionFromLogin(response) {
|
|
144
|
+
return {
|
|
145
|
+
token: response.token,
|
|
146
|
+
refreshToken: response.refresh_token,
|
|
147
|
+
providerType: "atplatform",
|
|
148
|
+
user: {
|
|
149
|
+
userID: String(response.user_id),
|
|
150
|
+
username: response.username,
|
|
151
|
+
firstName: response.first_name,
|
|
152
|
+
lastName: response.last_name
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function mapATPlatformSessionFromToken(payload, token) {
|
|
157
|
+
return {
|
|
158
|
+
token,
|
|
159
|
+
expiresAt: payload.exp,
|
|
160
|
+
iss: payload.iss,
|
|
161
|
+
providerType: "atplatform",
|
|
162
|
+
user: {
|
|
163
|
+
userID: payload.sub
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// src/auth/auth.runtime.ts
|
|
169
|
+
var mapSessionFromLoginByProvider = {
|
|
170
|
+
atplatform: mapATPlatformSessionFromLogin,
|
|
171
|
+
parto: mapPartoSessionFromLogin
|
|
172
|
+
};
|
|
173
|
+
var mapSessionFromTokenByProvider = {
|
|
174
|
+
atplatform: mapATPlatformSessionFromToken,
|
|
175
|
+
parto: mapPartoSessionFromToken
|
|
176
|
+
};
|
|
177
|
+
function mapSessionFromLogin(providerType, response) {
|
|
178
|
+
const mapper = mapSessionFromLoginByProvider[providerType];
|
|
179
|
+
if (!mapper)
|
|
180
|
+
throw new Error(`Unsupported provider type: ${providerType}`);
|
|
181
|
+
return mapper(response);
|
|
182
|
+
}
|
|
183
|
+
function mapSessionFromToken(providerType, payload, token) {
|
|
184
|
+
const mapper = mapSessionFromTokenByProvider[providerType];
|
|
185
|
+
if (!mapper)
|
|
186
|
+
throw new Error(`Unsupported provider type: ${providerType}`);
|
|
187
|
+
return mapper(payload, token);
|
|
188
|
+
}
|
|
79
189
|
// Annotate the CommonJS export names for ESM import in node:
|
|
80
190
|
0 && (module.exports = {
|
|
191
|
+
ATAuth,
|
|
81
192
|
ATCasing
|
|
82
193
|
});
|
|
83
194
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/casing/index.ts","../src/casing/case.types.ts","../src/casing/case.runtime.ts"],"sourcesContent":["export * as ATCasing from \"./casing\";\r\n\r\n","// src/casing/index.ts\r\nexport * from \"./case.types\";\r\nexport * from \"./case.runtime\";\r\n\r\n// (optional) if you still like namespaces, keep them too:\r\nimport * as Types from \"./case.types\";\r\nimport * as Runtime from \"./case.runtime\";\r\nexport { Types, Runtime };\r\n","type FixAcronyms<S extends string> =\r\n S extends `${infer A}ID${infer B}` ? FixAcronyms<`${A}Id${B}`> : S;\r\n\r\nexport type SnakeCase<S extends string> =\r\n S extends `${infer H}${infer T}`\r\n ? T extends Uncapitalize<T>\r\n ? `${Lowercase<H>}${SnakeCase<T>}`\r\n : `${Lowercase<H>}_${SnakeCase<Uncapitalize<T>>}`\r\n : S;\r\n\r\nexport type CamelCase<S extends string> =\r\n S extends `${infer A}_${infer B}`\r\n ? `${A}${Capitalize<CamelCase<B>>}`\r\n : S;\r\n\r\ntype Primitive = string | number | boolean | bigint | symbol | null | undefined;\r\ntype Builtin = Primitive | Date | RegExp | Error;\r\n\r\nexport type DeepSnakeKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepSnakeKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepSnakeKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepSnakeKeys<K>, DeepSnakeKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepSnakeKeys<U>> :\r\n T extends object\r\n ? {\r\n [K in keyof T as K extends string\r\n ? SnakeCase<FixAcronyms<K>>\r\n : K\r\n ]: DeepSnakeKeys<T[K]>\r\n }\r\n : T;\r\n\r\nexport type DeepCamelKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepCamelKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepCamelKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepCamelKeys<K>, DeepCamelKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepCamelKeys<U>> :\r\n T extends object\r\n ? { [K in keyof T as K extends string ? CamelCase<K> : K]: DeepCamelKeys<T[K]> }\r\n : T;\r\n","const CAMEL_TO_SNAKE = /[A-Z]/g;\r\nconst SNAKE_TO_CAMEL = /_([a-z])/g;\r\n\r\n// Normalize common acronyms before snake conversion\r\nconst normalizeAcronyms = (k: string) => k.replace(/ID/g, \"Id\");\r\n\r\nexport const toSnakeKey = (k: string) =>\r\n normalizeAcronyms(k).replace(CAMEL_TO_SNAKE, m => `_${m.toLowerCase()}`);\r\n\r\nexport const toCamelKey = (k: string) =>\r\n k.replace(SNAKE_TO_CAMEL, (_, c) => c.toUpperCase());\r\n\r\nexport function toSnakeDeep<T>(value: T, exceptions = new Set<string>()): any {\r\n if (Array.isArray(value)) return value.map(v => toSnakeDeep(v, exceptions));\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n const nk = exceptions.has(k) ? k : toSnakeKey(k);\r\n out[nk] = toSnakeDeep(v, exceptions);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n\r\nexport function toCamelDeep<T>(value: T): any {\r\n if (Array.isArray(value)) return value.map(toCamelDeep);\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n out[toCamelKey(k)] = toCamelDeep(v);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AAGvB,IAAM,oBAAoB,CAAC,MAAc,EAAE,QAAQ,OAAO,IAAI;AAEvD,IAAM,aAAa,CAAC,MACvB,kBAAkB,CAAC,EAAE,QAAQ,gBAAgB,OAAK,IAAI,EAAE,YAAY,CAAC,EAAE;AAEpE,IAAM,aAAa,CAAC,MACvB,EAAE,QAAQ,gBAAgB,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC;AAEhD,SAAS,YAAe,OAAU,aAAa,oBAAI,IAAY,GAAQ;AAC1E,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,OAAK,YAAY,GAAG,UAAU,CAAC;AAC1E,MAAI,iBAAiB,KAAM,QAAO;AAClC,MAAI,SAAS,OAAO,UAAU,UAAU;AACpC,UAAM,MAA2B,CAAC;AAClC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAY,GAAG;AAC/C,YAAM,KAAK,WAAW,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;AAC/C,UAAI,EAAE,IAAI,YAAY,GAAG,UAAU;AAAA,IACvC;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;AAEO,SAAS,YAAe,OAAe;AAC1C,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,WAAW;AACtD,MAAI,iBAAiB,KAAM,QAAO;AAClC,MAAI,SAAS,OAAO,UAAU,UAAU;AACpC,UAAM,MAA2B,CAAC;AAClC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAY,GAAG;AAC/C,UAAI,WAAW,CAAC,CAAC,IAAI,YAAY,CAAC;AAAA,IACtC;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/casing/index.ts","../src/casing/case.types.ts","../src/casing/case.runtime.ts","../src/auth/index.ts","../src/auth/domain/authSession.ts","../src/auth/auth.runtime.ts","../src/auth/providers/parto/parto.runtime.ts","../src/auth/providers/atplatform/atplatform.runtime.ts"],"sourcesContent":["export * as ATCasing from \"./casing\";\r\nexport * as ATAuth from \"./auth\";","// src/casing/index.ts\r\nexport * from \"./case.types\";\r\nexport * from \"./case.runtime\";\r\n\r\n// (optional) if you still like namespaces, keep them too:\r\nimport * as Types from \"./case.types\";\r\nimport * as Runtime from \"./case.runtime\";\r\nexport { Types, Runtime };\r\n","type FixAcronyms<S extends string> =\r\n S extends `${infer A}ID${infer B}` ? FixAcronyms<`${A}Id${B}`> : S;\r\n\r\nexport type SnakeCase<S extends string> =\r\n S extends `${infer H}${infer T}`\r\n ? T extends Uncapitalize<T>\r\n ? `${Lowercase<H>}${SnakeCase<T>}`\r\n : `${Lowercase<H>}_${SnakeCase<Uncapitalize<T>>}`\r\n : S;\r\n\r\nexport type CamelCase<S extends string> =\r\n S extends `${infer A}_${infer B}`\r\n ? `${A}${Capitalize<CamelCase<B>>}`\r\n : S;\r\n\r\ntype Primitive = string | number | boolean | bigint | symbol | null | undefined;\r\ntype Builtin = Primitive | Date | RegExp | Error;\r\n\r\nexport type DeepSnakeKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepSnakeKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepSnakeKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepSnakeKeys<K>, DeepSnakeKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepSnakeKeys<U>> :\r\n T extends object\r\n ? {\r\n [K in keyof T as K extends string\r\n ? SnakeCase<FixAcronyms<K>>\r\n : K\r\n ]: DeepSnakeKeys<T[K]>\r\n }\r\n : T;\r\n\r\nexport type DeepCamelKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepCamelKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepCamelKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepCamelKeys<K>, DeepCamelKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepCamelKeys<U>> :\r\n T extends object\r\n ? { [K in keyof T as K extends string ? CamelCase<K> : K]: DeepCamelKeys<T[K]> }\r\n : T;\r\n","const CAMEL_TO_SNAKE = /[A-Z]/g;\r\nconst SNAKE_TO_CAMEL = /_([a-z])/g;\r\n\r\n// Normalize common acronyms before snake conversion\r\nconst normalizeAcronyms = (k: string) => k.replace(/ID/g, \"Id\");\r\n\r\nexport const toSnakeKey = (k: string) =>\r\n normalizeAcronyms(k).replace(CAMEL_TO_SNAKE, m => `_${m.toLowerCase()}`);\r\n\r\nexport const toCamelKey = (k: string) =>\r\n k.replace(SNAKE_TO_CAMEL, (_, c) => c.toUpperCase());\r\n\r\nexport function toSnakeDeep<T>(value: T, exceptions = new Set<string>()): any {\r\n if (Array.isArray(value)) return value.map(v => toSnakeDeep(v, exceptions));\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n const nk = exceptions.has(k) ? k : toSnakeKey(k);\r\n out[nk] = toSnakeDeep(v, exceptions);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n\r\nexport function toCamelDeep<T>(value: T): any {\r\n if (Array.isArray(value)) return value.map(toCamelDeep);\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n out[toCamelKey(k)] = toCamelDeep(v);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n","// Export core auth models & runtime functions\r\nexport * from \"./domain/authSession\";\r\nexport * from \"./auth.runtime\";\r\n\r\nimport * as CoreTypes from \"./domain/authSession\";\r\nimport * as Runtime from \"./auth.runtime\";\r\n\r\n// Exported namespace grouping all domain, session, and provider-specific types\r\nexport namespace Types {\r\n // Core session types\r\n export type ATAuthProviderType = CoreTypes.ATAuthProviderType;\r\n export type ATAuthUserDTO = CoreTypes.ATAuthUserDTO;\r\n export type ATAuthSessionDTO = CoreTypes.ATAuthSessionDTO;\r\n\r\n // ATPlatform Types\r\n export type ATPlatformLoginResponseDTO = import(\"./providers/atplatform/atplatform.login.types\").ATPlatformLoginResponseDTO;\r\n export type ATPlatformAccessTokenPayloadDTO = import(\"./providers/atplatform/atplatform.token.types\").ATPlatformAccessTokenPayloadDTO;\r\n\r\n // Parto Types\r\n export type PartoUserInfoDTO = import(\"./providers/parto/parto.login.types\").PartoUserInfoDTO;\r\n export type PartoLoginResponseDTO = import(\"./providers/parto/parto.login.types\").PartoLoginResponseDTO;\r\n export type PartoAccessTokenPayloadDTO = import(\"./providers/parto/parto.token.types\").PartoAccessTokenPayloadDTO;\r\n}\r\n\r\n// Export runtime under a clean namespace\r\nexport { Runtime };\r\n","export const ATAuthProviderTypes = [\"parto\", \"atplatform\"] as const;\r\nexport type ATAuthProviderType = typeof ATAuthProviderTypes[number];\r\n\r\nexport interface ATAuthUserDTO {\r\n userID: string;\r\n\r\n username?: string;\r\n\r\n email?: string;\r\n\r\n firstName?: string;\r\n\r\n lastName?: string;\r\n\r\n avatar?: string;\r\n\r\n permissions?: string[];\r\n}\r\n\r\nexport interface ATAuthSessionDTO {\r\n token: string;\r\n\r\n refreshToken?: string;\r\n\r\n expiresAt?: number;\r\n\r\n iss?: string;\r\n\r\n providerType: ATAuthProviderType;\r\n\r\n user: ATAuthUserDTO;\r\n\r\n //issuer junks \r\n meta?: Record<string, unknown>;\r\n}\r\n","import {\r\n mapPartoSessionFromLogin,\r\n mapPartoSessionFromToken,\r\n} from \"./providers/parto/parto.runtime\";\r\n\r\nimport {\r\n mapATPlatformSessionFromLogin,\r\n mapATPlatformSessionFromToken,\r\n} from \"./providers/atplatform/atplatform.runtime\";\r\n\r\nimport { ATAuthProviderType, ATAuthSessionDTO } from \"./domain/authSession\";\r\n\r\nexport * from \"./providers/parto/parto.runtime\";\r\nexport * from \"./providers/atplatform/atplatform.runtime\";\r\n\r\nconst mapSessionFromLoginByProvider: Record<\r\n ATAuthProviderType,\r\n (response: any) => ATAuthSessionDTO\r\n> = {\r\n atplatform: mapATPlatformSessionFromLogin,\r\n parto: mapPartoSessionFromLogin,\r\n};\r\n\r\nconst mapSessionFromTokenByProvider: Record<\r\n ATAuthProviderType,\r\n (payload: any, token: string) => ATAuthSessionDTO\r\n> = {\r\n atplatform: mapATPlatformSessionFromToken,\r\n parto: mapPartoSessionFromToken,\r\n};\r\n\r\nexport function mapSessionFromLogin(\r\n providerType: ATAuthProviderType,\r\n response: unknown,\r\n): ATAuthSessionDTO {\r\n const mapper = mapSessionFromLoginByProvider[providerType];\r\n\r\n if (!mapper)\r\n throw new Error(`Unsupported provider type: ${providerType}`);\r\n\r\n return mapper(response);\r\n}\r\n\r\nexport function mapSessionFromToken(\r\n providerType: ATAuthProviderType,\r\n payload: unknown,\r\n token: string\r\n): ATAuthSessionDTO {\r\n const mapper = mapSessionFromTokenByProvider[providerType];\r\n\r\n if (!mapper)\r\n throw new Error(`Unsupported provider type: ${providerType}`);\r\n\r\n return mapper(payload, token);\r\n}\r\n\r\n","import { ATAuthSessionDTO } from \"../../domain/authSession\";\r\nimport { PartoLoginResponseDTO } from \"./parto.login.types\";\r\nimport { PartoAccessTokenPayloadDTO } from \"./parto.token.types\";\r\n\r\nexport function mapPartoSessionFromLogin(\r\n response: PartoLoginResponseDTO\r\n): ATAuthSessionDTO {\r\n const user = response.userInfo;\r\n\r\n return {\r\n token: response.token,\r\n refreshToken: response.refreshToken,\r\n providerType: 'parto',\r\n user: {\r\n userID: String(user.ID),\r\n username: user.userName,\r\n firstName: user.firstName,\r\n lastName: user.lastName\r\n },\r\n meta: {\r\n department: user.department,\r\n companyName: user.companyName,\r\n businessTypeID: user.businessTypeID\r\n }\r\n };\r\n}\r\n\r\nexport function mapPartoSessionFromToken(\r\n payload: PartoAccessTokenPayloadDTO,\r\n token: string\r\n): ATAuthSessionDTO {\r\n return {\r\n token,\r\n expiresAt: payload.exp,\r\n providerType: 'parto',\r\n iss: payload.iss,\r\n user: {\r\n userID: payload.ID,\r\n username: payload.unique_name,\r\n permissions: payload.PERMISSIONS?.split(\",\")\r\n }\r\n };\r\n}\r\n","import { ATAuthSessionDTO } from \"../../domain/authSession\";\r\nimport { ATPlatformLoginResponseDTO } from \"./atplatform.login.types\";\r\nimport { ATPlatformAccessTokenPayloadDTO } from \"./atplatform.token.types\";\r\n\r\nexport function mapATPlatformSessionFromLogin(\r\n response: ATPlatformLoginResponseDTO\r\n): ATAuthSessionDTO {\r\n return {\r\n token: response.token,\r\n refreshToken: response.refresh_token,\r\n providerType: 'atplatform',\r\n user: {\r\n userID: String(response.user_id),\r\n username: response.username,\r\n firstName: response.first_name,\r\n lastName: response.last_name\r\n }\r\n };\r\n}\r\n\r\nexport function mapATPlatformSessionFromToken(\r\n payload: ATPlatformAccessTokenPayloadDTO,\r\n token: string\r\n): ATAuthSessionDTO {\r\n return {\r\n token,\r\n expiresAt: payload.exp,\r\n iss: payload.iss,\r\n providerType: 'atplatform',\r\n user: {\r\n userID: payload.sub\r\n }\r\n };\r\n}\r\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -54,7 +54,117 @@ function toCamelDeep(value) {
|
|
|
54
54
|
}
|
|
55
55
|
return value;
|
|
56
56
|
}
|
|
57
|
+
|
|
58
|
+
// src/auth/index.ts
|
|
59
|
+
var auth_exports = {};
|
|
60
|
+
__export(auth_exports, {
|
|
61
|
+
ATAuthProviderTypes: () => ATAuthProviderTypes,
|
|
62
|
+
Runtime: () => auth_runtime_exports,
|
|
63
|
+
mapATPlatformSessionFromLogin: () => mapATPlatformSessionFromLogin,
|
|
64
|
+
mapATPlatformSessionFromToken: () => mapATPlatformSessionFromToken,
|
|
65
|
+
mapPartoSessionFromLogin: () => mapPartoSessionFromLogin,
|
|
66
|
+
mapPartoSessionFromToken: () => mapPartoSessionFromToken,
|
|
67
|
+
mapSessionFromLogin: () => mapSessionFromLogin,
|
|
68
|
+
mapSessionFromToken: () => mapSessionFromToken
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// src/auth/domain/authSession.ts
|
|
72
|
+
var ATAuthProviderTypes = ["parto", "atplatform"];
|
|
73
|
+
|
|
74
|
+
// src/auth/auth.runtime.ts
|
|
75
|
+
var auth_runtime_exports = {};
|
|
76
|
+
__export(auth_runtime_exports, {
|
|
77
|
+
mapATPlatformSessionFromLogin: () => mapATPlatformSessionFromLogin,
|
|
78
|
+
mapATPlatformSessionFromToken: () => mapATPlatformSessionFromToken,
|
|
79
|
+
mapPartoSessionFromLogin: () => mapPartoSessionFromLogin,
|
|
80
|
+
mapPartoSessionFromToken: () => mapPartoSessionFromToken,
|
|
81
|
+
mapSessionFromLogin: () => mapSessionFromLogin,
|
|
82
|
+
mapSessionFromToken: () => mapSessionFromToken
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// src/auth/providers/parto/parto.runtime.ts
|
|
86
|
+
function mapPartoSessionFromLogin(response) {
|
|
87
|
+
const user = response.userInfo;
|
|
88
|
+
return {
|
|
89
|
+
token: response.token,
|
|
90
|
+
refreshToken: response.refreshToken,
|
|
91
|
+
providerType: "parto",
|
|
92
|
+
user: {
|
|
93
|
+
userID: String(user.ID),
|
|
94
|
+
username: user.userName,
|
|
95
|
+
firstName: user.firstName,
|
|
96
|
+
lastName: user.lastName
|
|
97
|
+
},
|
|
98
|
+
meta: {
|
|
99
|
+
department: user.department,
|
|
100
|
+
companyName: user.companyName,
|
|
101
|
+
businessTypeID: user.businessTypeID
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function mapPartoSessionFromToken(payload, token) {
|
|
106
|
+
return {
|
|
107
|
+
token,
|
|
108
|
+
expiresAt: payload.exp,
|
|
109
|
+
providerType: "parto",
|
|
110
|
+
iss: payload.iss,
|
|
111
|
+
user: {
|
|
112
|
+
userID: payload.ID,
|
|
113
|
+
username: payload.unique_name,
|
|
114
|
+
permissions: payload.PERMISSIONS?.split(",")
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// src/auth/providers/atplatform/atplatform.runtime.ts
|
|
120
|
+
function mapATPlatformSessionFromLogin(response) {
|
|
121
|
+
return {
|
|
122
|
+
token: response.token,
|
|
123
|
+
refreshToken: response.refresh_token,
|
|
124
|
+
providerType: "atplatform",
|
|
125
|
+
user: {
|
|
126
|
+
userID: String(response.user_id),
|
|
127
|
+
username: response.username,
|
|
128
|
+
firstName: response.first_name,
|
|
129
|
+
lastName: response.last_name
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function mapATPlatformSessionFromToken(payload, token) {
|
|
134
|
+
return {
|
|
135
|
+
token,
|
|
136
|
+
expiresAt: payload.exp,
|
|
137
|
+
iss: payload.iss,
|
|
138
|
+
providerType: "atplatform",
|
|
139
|
+
user: {
|
|
140
|
+
userID: payload.sub
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// src/auth/auth.runtime.ts
|
|
146
|
+
var mapSessionFromLoginByProvider = {
|
|
147
|
+
atplatform: mapATPlatformSessionFromLogin,
|
|
148
|
+
parto: mapPartoSessionFromLogin
|
|
149
|
+
};
|
|
150
|
+
var mapSessionFromTokenByProvider = {
|
|
151
|
+
atplatform: mapATPlatformSessionFromToken,
|
|
152
|
+
parto: mapPartoSessionFromToken
|
|
153
|
+
};
|
|
154
|
+
function mapSessionFromLogin(providerType, response) {
|
|
155
|
+
const mapper = mapSessionFromLoginByProvider[providerType];
|
|
156
|
+
if (!mapper)
|
|
157
|
+
throw new Error(`Unsupported provider type: ${providerType}`);
|
|
158
|
+
return mapper(response);
|
|
159
|
+
}
|
|
160
|
+
function mapSessionFromToken(providerType, payload, token) {
|
|
161
|
+
const mapper = mapSessionFromTokenByProvider[providerType];
|
|
162
|
+
if (!mapper)
|
|
163
|
+
throw new Error(`Unsupported provider type: ${providerType}`);
|
|
164
|
+
return mapper(payload, token);
|
|
165
|
+
}
|
|
57
166
|
export {
|
|
167
|
+
auth_exports as ATAuth,
|
|
58
168
|
casing_exports as ATCasing
|
|
59
169
|
};
|
|
60
170
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/casing/index.ts","../src/casing/case.types.ts","../src/casing/case.runtime.ts"],"sourcesContent":["// src/casing/index.ts\r\nexport * from \"./case.types\";\r\nexport * from \"./case.runtime\";\r\n\r\n// (optional) if you still like namespaces, keep them too:\r\nimport * as Types from \"./case.types\";\r\nimport * as Runtime from \"./case.runtime\";\r\nexport { Types, Runtime };\r\n","type FixAcronyms<S extends string> =\r\n S extends `${infer A}ID${infer B}` ? FixAcronyms<`${A}Id${B}`> : S;\r\n\r\nexport type SnakeCase<S extends string> =\r\n S extends `${infer H}${infer T}`\r\n ? T extends Uncapitalize<T>\r\n ? `${Lowercase<H>}${SnakeCase<T>}`\r\n : `${Lowercase<H>}_${SnakeCase<Uncapitalize<T>>}`\r\n : S;\r\n\r\nexport type CamelCase<S extends string> =\r\n S extends `${infer A}_${infer B}`\r\n ? `${A}${Capitalize<CamelCase<B>>}`\r\n : S;\r\n\r\ntype Primitive = string | number | boolean | bigint | symbol | null | undefined;\r\ntype Builtin = Primitive | Date | RegExp | Error;\r\n\r\nexport type DeepSnakeKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepSnakeKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepSnakeKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepSnakeKeys<K>, DeepSnakeKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepSnakeKeys<U>> :\r\n T extends object\r\n ? {\r\n [K in keyof T as K extends string\r\n ? SnakeCase<FixAcronyms<K>>\r\n : K\r\n ]: DeepSnakeKeys<T[K]>\r\n }\r\n : T;\r\n\r\nexport type DeepCamelKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepCamelKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepCamelKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepCamelKeys<K>, DeepCamelKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepCamelKeys<U>> :\r\n T extends object\r\n ? { [K in keyof T as K extends string ? CamelCase<K> : K]: DeepCamelKeys<T[K]> }\r\n : T;\r\n","const CAMEL_TO_SNAKE = /[A-Z]/g;\r\nconst SNAKE_TO_CAMEL = /_([a-z])/g;\r\n\r\n// Normalize common acronyms before snake conversion\r\nconst normalizeAcronyms = (k: string) => k.replace(/ID/g, \"Id\");\r\n\r\nexport const toSnakeKey = (k: string) =>\r\n normalizeAcronyms(k).replace(CAMEL_TO_SNAKE, m => `_${m.toLowerCase()}`);\r\n\r\nexport const toCamelKey = (k: string) =>\r\n k.replace(SNAKE_TO_CAMEL, (_, c) => c.toUpperCase());\r\n\r\nexport function toSnakeDeep<T>(value: T, exceptions = new Set<string>()): any {\r\n if (Array.isArray(value)) return value.map(v => toSnakeDeep(v, exceptions));\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n const nk = exceptions.has(k) ? k : toSnakeKey(k);\r\n out[nk] = toSnakeDeep(v, exceptions);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n\r\nexport function toCamelDeep<T>(value: T): any {\r\n if (Array.isArray(value)) return value.map(toCamelDeep);\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n out[toCamelKey(k)] = toCamelDeep(v);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AAGvB,IAAM,oBAAoB,CAAC,MAAc,EAAE,QAAQ,OAAO,IAAI;AAEvD,IAAM,aAAa,CAAC,MACvB,kBAAkB,CAAC,EAAE,QAAQ,gBAAgB,OAAK,IAAI,EAAE,YAAY,CAAC,EAAE;AAEpE,IAAM,aAAa,CAAC,MACvB,EAAE,QAAQ,gBAAgB,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC;AAEhD,SAAS,YAAe,OAAU,aAAa,oBAAI,IAAY,GAAQ;AAC1E,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,OAAK,YAAY,GAAG,UAAU,CAAC;AAC1E,MAAI,iBAAiB,KAAM,QAAO;AAClC,MAAI,SAAS,OAAO,UAAU,UAAU;AACpC,UAAM,MAA2B,CAAC;AAClC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAY,GAAG;AAC/C,YAAM,KAAK,WAAW,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;AAC/C,UAAI,EAAE,IAAI,YAAY,GAAG,UAAU;AAAA,IACvC;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;AAEO,SAAS,YAAe,OAAe;AAC1C,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,WAAW;AACtD,MAAI,iBAAiB,KAAM,QAAO;AAClC,MAAI,SAAS,OAAO,UAAU,UAAU;AACpC,UAAM,MAA2B,CAAC;AAClC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAY,GAAG;AAC/C,UAAI,WAAW,CAAC,CAAC,IAAI,YAAY,CAAC;AAAA,IACtC;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/casing/index.ts","../src/casing/case.types.ts","../src/casing/case.runtime.ts","../src/auth/index.ts","../src/auth/domain/authSession.ts","../src/auth/auth.runtime.ts","../src/auth/providers/parto/parto.runtime.ts","../src/auth/providers/atplatform/atplatform.runtime.ts"],"sourcesContent":["// src/casing/index.ts\r\nexport * from \"./case.types\";\r\nexport * from \"./case.runtime\";\r\n\r\n// (optional) if you still like namespaces, keep them too:\r\nimport * as Types from \"./case.types\";\r\nimport * as Runtime from \"./case.runtime\";\r\nexport { Types, Runtime };\r\n","type FixAcronyms<S extends string> =\r\n S extends `${infer A}ID${infer B}` ? FixAcronyms<`${A}Id${B}`> : S;\r\n\r\nexport type SnakeCase<S extends string> =\r\n S extends `${infer H}${infer T}`\r\n ? T extends Uncapitalize<T>\r\n ? `${Lowercase<H>}${SnakeCase<T>}`\r\n : `${Lowercase<H>}_${SnakeCase<Uncapitalize<T>>}`\r\n : S;\r\n\r\nexport type CamelCase<S extends string> =\r\n S extends `${infer A}_${infer B}`\r\n ? `${A}${Capitalize<CamelCase<B>>}`\r\n : S;\r\n\r\ntype Primitive = string | number | boolean | bigint | symbol | null | undefined;\r\ntype Builtin = Primitive | Date | RegExp | Error;\r\n\r\nexport type DeepSnakeKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepSnakeKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepSnakeKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepSnakeKeys<K>, DeepSnakeKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepSnakeKeys<U>> :\r\n T extends object\r\n ? {\r\n [K in keyof T as K extends string\r\n ? SnakeCase<FixAcronyms<K>>\r\n : K\r\n ]: DeepSnakeKeys<T[K]>\r\n }\r\n : T;\r\n\r\nexport type DeepCamelKeys<T> =\r\n T extends Builtin ? T :\r\n T extends (...args: any[]) => any ? T :\r\n T extends readonly [any, ...any[]]\r\n ? { [I in keyof T]: DeepCamelKeys<T[I]> } :\r\n T extends ReadonlyArray<infer U>\r\n ? ReadonlyArray<DeepCamelKeys<U>> :\r\n T extends Map<infer K, infer V>\r\n ? Map<DeepCamelKeys<K>, DeepCamelKeys<V>> :\r\n T extends Set<infer U>\r\n ? Set<DeepCamelKeys<U>> :\r\n T extends object\r\n ? { [K in keyof T as K extends string ? CamelCase<K> : K]: DeepCamelKeys<T[K]> }\r\n : T;\r\n","const CAMEL_TO_SNAKE = /[A-Z]/g;\r\nconst SNAKE_TO_CAMEL = /_([a-z])/g;\r\n\r\n// Normalize common acronyms before snake conversion\r\nconst normalizeAcronyms = (k: string) => k.replace(/ID/g, \"Id\");\r\n\r\nexport const toSnakeKey = (k: string) =>\r\n normalizeAcronyms(k).replace(CAMEL_TO_SNAKE, m => `_${m.toLowerCase()}`);\r\n\r\nexport const toCamelKey = (k: string) =>\r\n k.replace(SNAKE_TO_CAMEL, (_, c) => c.toUpperCase());\r\n\r\nexport function toSnakeDeep<T>(value: T, exceptions = new Set<string>()): any {\r\n if (Array.isArray(value)) return value.map(v => toSnakeDeep(v, exceptions));\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n const nk = exceptions.has(k) ? k : toSnakeKey(k);\r\n out[nk] = toSnakeDeep(v, exceptions);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n\r\nexport function toCamelDeep<T>(value: T): any {\r\n if (Array.isArray(value)) return value.map(toCamelDeep);\r\n if (value instanceof Date) return value;\r\n if (value && typeof value === \"object\") {\r\n const out: Record<string, any> = {};\r\n for (const [k, v] of Object.entries(value as any)) {\r\n out[toCamelKey(k)] = toCamelDeep(v);\r\n }\r\n return out;\r\n }\r\n return value;\r\n}\r\n","// Export core auth models & runtime functions\r\nexport * from \"./domain/authSession\";\r\nexport * from \"./auth.runtime\";\r\n\r\nimport * as CoreTypes from \"./domain/authSession\";\r\nimport * as Runtime from \"./auth.runtime\";\r\n\r\n// Exported namespace grouping all domain, session, and provider-specific types\r\nexport namespace Types {\r\n // Core session types\r\n export type ATAuthProviderType = CoreTypes.ATAuthProviderType;\r\n export type ATAuthUserDTO = CoreTypes.ATAuthUserDTO;\r\n export type ATAuthSessionDTO = CoreTypes.ATAuthSessionDTO;\r\n\r\n // ATPlatform Types\r\n export type ATPlatformLoginResponseDTO = import(\"./providers/atplatform/atplatform.login.types\").ATPlatformLoginResponseDTO;\r\n export type ATPlatformAccessTokenPayloadDTO = import(\"./providers/atplatform/atplatform.token.types\").ATPlatformAccessTokenPayloadDTO;\r\n\r\n // Parto Types\r\n export type PartoUserInfoDTO = import(\"./providers/parto/parto.login.types\").PartoUserInfoDTO;\r\n export type PartoLoginResponseDTO = import(\"./providers/parto/parto.login.types\").PartoLoginResponseDTO;\r\n export type PartoAccessTokenPayloadDTO = import(\"./providers/parto/parto.token.types\").PartoAccessTokenPayloadDTO;\r\n}\r\n\r\n// Export runtime under a clean namespace\r\nexport { Runtime };\r\n","export const ATAuthProviderTypes = [\"parto\", \"atplatform\"] as const;\r\nexport type ATAuthProviderType = typeof ATAuthProviderTypes[number];\r\n\r\nexport interface ATAuthUserDTO {\r\n userID: string;\r\n\r\n username?: string;\r\n\r\n email?: string;\r\n\r\n firstName?: string;\r\n\r\n lastName?: string;\r\n\r\n avatar?: string;\r\n\r\n permissions?: string[];\r\n}\r\n\r\nexport interface ATAuthSessionDTO {\r\n token: string;\r\n\r\n refreshToken?: string;\r\n\r\n expiresAt?: number;\r\n\r\n iss?: string;\r\n\r\n providerType: ATAuthProviderType;\r\n\r\n user: ATAuthUserDTO;\r\n\r\n //issuer junks \r\n meta?: Record<string, unknown>;\r\n}\r\n","import {\r\n mapPartoSessionFromLogin,\r\n mapPartoSessionFromToken,\r\n} from \"./providers/parto/parto.runtime\";\r\n\r\nimport {\r\n mapATPlatformSessionFromLogin,\r\n mapATPlatformSessionFromToken,\r\n} from \"./providers/atplatform/atplatform.runtime\";\r\n\r\nimport { ATAuthProviderType, ATAuthSessionDTO } from \"./domain/authSession\";\r\n\r\nexport * from \"./providers/parto/parto.runtime\";\r\nexport * from \"./providers/atplatform/atplatform.runtime\";\r\n\r\nconst mapSessionFromLoginByProvider: Record<\r\n ATAuthProviderType,\r\n (response: any) => ATAuthSessionDTO\r\n> = {\r\n atplatform: mapATPlatformSessionFromLogin,\r\n parto: mapPartoSessionFromLogin,\r\n};\r\n\r\nconst mapSessionFromTokenByProvider: Record<\r\n ATAuthProviderType,\r\n (payload: any, token: string) => ATAuthSessionDTO\r\n> = {\r\n atplatform: mapATPlatformSessionFromToken,\r\n parto: mapPartoSessionFromToken,\r\n};\r\n\r\nexport function mapSessionFromLogin(\r\n providerType: ATAuthProviderType,\r\n response: unknown,\r\n): ATAuthSessionDTO {\r\n const mapper = mapSessionFromLoginByProvider[providerType];\r\n\r\n if (!mapper)\r\n throw new Error(`Unsupported provider type: ${providerType}`);\r\n\r\n return mapper(response);\r\n}\r\n\r\nexport function mapSessionFromToken(\r\n providerType: ATAuthProviderType,\r\n payload: unknown,\r\n token: string\r\n): ATAuthSessionDTO {\r\n const mapper = mapSessionFromTokenByProvider[providerType];\r\n\r\n if (!mapper)\r\n throw new Error(`Unsupported provider type: ${providerType}`);\r\n\r\n return mapper(payload, token);\r\n}\r\n\r\n","import { ATAuthSessionDTO } from \"../../domain/authSession\";\r\nimport { PartoLoginResponseDTO } from \"./parto.login.types\";\r\nimport { PartoAccessTokenPayloadDTO } from \"./parto.token.types\";\r\n\r\nexport function mapPartoSessionFromLogin(\r\n response: PartoLoginResponseDTO\r\n): ATAuthSessionDTO {\r\n const user = response.userInfo;\r\n\r\n return {\r\n token: response.token,\r\n refreshToken: response.refreshToken,\r\n providerType: 'parto',\r\n user: {\r\n userID: String(user.ID),\r\n username: user.userName,\r\n firstName: user.firstName,\r\n lastName: user.lastName\r\n },\r\n meta: {\r\n department: user.department,\r\n companyName: user.companyName,\r\n businessTypeID: user.businessTypeID\r\n }\r\n };\r\n}\r\n\r\nexport function mapPartoSessionFromToken(\r\n payload: PartoAccessTokenPayloadDTO,\r\n token: string\r\n): ATAuthSessionDTO {\r\n return {\r\n token,\r\n expiresAt: payload.exp,\r\n providerType: 'parto',\r\n iss: payload.iss,\r\n user: {\r\n userID: payload.ID,\r\n username: payload.unique_name,\r\n permissions: payload.PERMISSIONS?.split(\",\")\r\n }\r\n };\r\n}\r\n","import { ATAuthSessionDTO } from \"../../domain/authSession\";\r\nimport { ATPlatformLoginResponseDTO } from \"./atplatform.login.types\";\r\nimport { ATPlatformAccessTokenPayloadDTO } from \"./atplatform.token.types\";\r\n\r\nexport function mapATPlatformSessionFromLogin(\r\n response: ATPlatformLoginResponseDTO\r\n): ATAuthSessionDTO {\r\n return {\r\n token: response.token,\r\n refreshToken: response.refresh_token,\r\n providerType: 'atplatform',\r\n user: {\r\n userID: String(response.user_id),\r\n username: response.username,\r\n firstName: response.first_name,\r\n lastName: response.last_name\r\n }\r\n };\r\n}\r\n\r\nexport function mapATPlatformSessionFromToken(\r\n payload: ATPlatformAccessTokenPayloadDTO,\r\n token: string\r\n): ATAuthSessionDTO {\r\n return {\r\n token,\r\n expiresAt: payload.exp,\r\n iss: payload.iss,\r\n providerType: 'atplatform',\r\n user: {\r\n userID: payload.sub\r\n }\r\n };\r\n}\r\n"],"mappings":"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","names":[]}
|
package/dist/protocol.cjs
CHANGED
|
@@ -34,9 +34,10 @@ var ATAPIErrorCodeMap = {
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
// src/ai/protocol/ids.ts
|
|
37
|
+
var SEG = `[a-z0-9_]+`;
|
|
37
38
|
var RX = {
|
|
38
|
-
capability:
|
|
39
|
-
prompt:
|
|
39
|
+
capability: new RegExp(`^cap\\.${SEG}(?:\\.${SEG}){3,}$`, "i"),
|
|
40
|
+
prompt: new RegExp(`^prompt\\.${SEG}(?:\\.${SEG}){3,}\\.v[0-9]+$`, "i")
|
|
40
41
|
};
|
|
41
42
|
function validate(kind, id) {
|
|
42
43
|
if (!RX[kind].test(id)) {
|
|
@@ -44,34 +45,24 @@ function validate(kind, id) {
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
function normalizeSegment(seg) {
|
|
47
|
-
return seg.trim().toLowerCase().replace(/[\
|
|
48
|
+
return seg.trim().toLowerCase().replace(/[\s-]+/g, "_").replace(/[^a-z0-9_]/g, "").replace(/_+/g, "_").replace(/^_+|_+$/g, "");
|
|
48
49
|
}
|
|
49
50
|
function joinSegments(...segs) {
|
|
50
51
|
return segs.map(normalizeSegment).filter(Boolean).join(".");
|
|
51
52
|
}
|
|
52
53
|
var ATAIID = {
|
|
53
|
-
/** Validate & brand an existing capability id (throws if invalid). */
|
|
54
54
|
validateCapability(id) {
|
|
55
55
|
validate("capability", id);
|
|
56
56
|
return id;
|
|
57
57
|
},
|
|
58
|
-
/** Validate & brand an existing prompt id (throws if invalid). */
|
|
59
58
|
validatePrompt(id) {
|
|
60
59
|
validate("prompt", id);
|
|
61
60
|
return id;
|
|
62
61
|
},
|
|
63
|
-
/**
|
|
64
|
-
* Build a capability id from parts (then validates & brands).
|
|
65
|
-
* Format: cap.<app>.<area>.<object>.<verb>
|
|
66
|
-
*/
|
|
67
62
|
makeCapability(parts) {
|
|
68
63
|
const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;
|
|
69
64
|
return ATAIID.validateCapability(id);
|
|
70
65
|
},
|
|
71
|
-
/**
|
|
72
|
-
* Build a prompt id from parts (then validates & brands).
|
|
73
|
-
* Format: prompt.<app>.<area>.<object>.<verb>.v<major>
|
|
74
|
-
*/
|
|
75
66
|
makePrompt(parts) {
|
|
76
67
|
const major = Math.max(0, Math.floor(parts.v));
|
|
77
68
|
const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;
|
package/dist/protocol.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/protocol.ts","../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts"],"sourcesContent":["export * from \"./core/protocol/errors\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\n\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\nimport { ATAIPrompts } from \"./ai/protocol/prompts\";\r\nimport { ATAICapabilities } from \"./ai/protocol/capabilities\";\r\n\r\nexport const ATAI = {\r\n ID: ATAIID,\r\n Prompts: ATAIPrompts,\r\n Capabilities: ATAICapabilities,\r\n} as const;\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n AI: ATAI,\r\n} as const;\r\n\r\nexport type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\nexport type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n\r\nexport type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n","export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\nconst RX = {\r\n capability:
|
|
1
|
+
{"version":3,"sources":["../src/protocol.ts","../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts"],"sourcesContent":["export * from \"./core/protocol/errors\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\n\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\nimport { ATAIPrompts } from \"./ai/protocol/prompts\";\r\nimport { ATAICapabilities } from \"./ai/protocol/capabilities\";\r\n\r\nexport const ATAI = {\r\n ID: ATAIID,\r\n Prompts: ATAIPrompts,\r\n Capabilities: ATAICapabilities,\r\n} as const;\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n AI: ATAI,\r\n} as const;\r\n\r\nexport type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\nexport type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n\r\nexport type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n","export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\n// allow underscores inside each segment\r\nconst SEG = `[a-z0-9_]+`;\r\n\r\nconst RX = {\r\n capability: new RegExp(`^cap\\\\.${SEG}(?:\\\\.${SEG}){3,}$`, \"i\"),\r\n prompt: new RegExp(`^prompt\\\\.${SEG}(?:\\\\.${SEG}){3,}\\\\.v[0-9]+$`, \"i\"),\r\n} as const;\r\n\r\nfunction validate(kind: keyof typeof RX, id: string): void {\r\n if (!RX[kind].test(id)) {\r\n throw new Error(`[AI-PROTOCOL] Invalid ${kind} id: \"${id}\"`);\r\n }\r\n}\r\n\r\n/**\r\n * Normalize a segment for IDs (snake_case).\r\n * - trims\r\n * - lowercases\r\n * - converts spaces and dashes to underscores\r\n * - removes illegal chars (keeps a-z0-9 and _)\r\n * - collapses multiple underscores\r\n * - trims leading/trailing underscores\r\n */\r\nfunction normalizeSegment(seg: string): string {\r\n return seg\r\n .trim()\r\n .toLowerCase()\r\n .replace(/[\\s-]+/g, \"_\") // spaces/dashes -> _\r\n .replace(/[^a-z0-9_]/g, \"\") // keep only a-z0-9_\r\n .replace(/_+/g, \"_\") // collapse __\r\n .replace(/^_+|_+$/g, \"\"); // trim edges\r\n}\r\n\r\nfunction joinSegments(...segs: string[]): string {\r\n return segs.map(normalizeSegment).filter(Boolean).join(\".\");\r\n}\r\n\r\nexport const ATAIID = {\r\n validateCapability(id: string): ATAICapabilityID {\r\n validate(\"capability\", id);\r\n return id as ATAICapabilityID;\r\n },\r\n\r\n validatePrompt(id: string): ATAIPromptID {\r\n validate(\"prompt\", id);\r\n return id as ATAIPromptID;\r\n },\r\n\r\n makeCapability(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n }): ATAICapabilityID {\r\n const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;\r\n return ATAIID.validateCapability(id);\r\n },\r\n\r\n makePrompt(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n v: number;\r\n }): ATAIPromptID {\r\n const major = Math.max(0, Math.floor(parts.v));\r\n const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;\r\n return ATAIID.validatePrompt(id);\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAIPrompts = {\r\n BPMS: {\r\n SYSTEM: {\r\n INTENT_DETECTION_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"system\",\r\n target: \"intent\",\r\n action: \"detection\",\r\n v: 1\r\n }),\r\n },\r\n FORMAKER: {\r\n VALUE_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"value\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAICapabilities = {\r\n BPMS: {\r\n FORMAKER: {\r\n FORM_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"form\",\r\n action: \"generate\",\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n }),\r\n },\r\n },\r\n} as const;\r\n"],"mappings":"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","names":[]}
|
package/dist/protocol.mjs
CHANGED
|
@@ -8,9 +8,10 @@ var ATAPIErrorCodeMap = {
|
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
// src/ai/protocol/ids.ts
|
|
11
|
+
var SEG = `[a-z0-9_]+`;
|
|
11
12
|
var RX = {
|
|
12
|
-
capability:
|
|
13
|
-
prompt:
|
|
13
|
+
capability: new RegExp(`^cap\\.${SEG}(?:\\.${SEG}){3,}$`, "i"),
|
|
14
|
+
prompt: new RegExp(`^prompt\\.${SEG}(?:\\.${SEG}){3,}\\.v[0-9]+$`, "i")
|
|
14
15
|
};
|
|
15
16
|
function validate(kind, id) {
|
|
16
17
|
if (!RX[kind].test(id)) {
|
|
@@ -18,34 +19,24 @@ function validate(kind, id) {
|
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
function normalizeSegment(seg) {
|
|
21
|
-
return seg.trim().toLowerCase().replace(/[\
|
|
22
|
+
return seg.trim().toLowerCase().replace(/[\s-]+/g, "_").replace(/[^a-z0-9_]/g, "").replace(/_+/g, "_").replace(/^_+|_+$/g, "");
|
|
22
23
|
}
|
|
23
24
|
function joinSegments(...segs) {
|
|
24
25
|
return segs.map(normalizeSegment).filter(Boolean).join(".");
|
|
25
26
|
}
|
|
26
27
|
var ATAIID = {
|
|
27
|
-
/** Validate & brand an existing capability id (throws if invalid). */
|
|
28
28
|
validateCapability(id) {
|
|
29
29
|
validate("capability", id);
|
|
30
30
|
return id;
|
|
31
31
|
},
|
|
32
|
-
/** Validate & brand an existing prompt id (throws if invalid). */
|
|
33
32
|
validatePrompt(id) {
|
|
34
33
|
validate("prompt", id);
|
|
35
34
|
return id;
|
|
36
35
|
},
|
|
37
|
-
/**
|
|
38
|
-
* Build a capability id from parts (then validates & brands).
|
|
39
|
-
* Format: cap.<app>.<area>.<object>.<verb>
|
|
40
|
-
*/
|
|
41
36
|
makeCapability(parts) {
|
|
42
37
|
const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;
|
|
43
38
|
return ATAIID.validateCapability(id);
|
|
44
39
|
},
|
|
45
|
-
/**
|
|
46
|
-
* Build a prompt id from parts (then validates & brands).
|
|
47
|
-
* Format: prompt.<app>.<area>.<object>.<verb>.v<major>
|
|
48
|
-
*/
|
|
49
40
|
makePrompt(parts) {
|
|
50
41
|
const major = Math.max(0, Math.floor(parts.v));
|
|
51
42
|
const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;
|
package/dist/protocol.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts","../src/protocol.ts"],"sourcesContent":["export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\nconst RX = {\r\n capability:
|
|
1
|
+
{"version":3,"sources":["../src/core/protocol/errors.ts","../src/ai/protocol/ids.ts","../src/ai/protocol/prompts.ts","../src/ai/protocol/capabilities.ts","../src/protocol.ts"],"sourcesContent":["export const ATAPIErrorCodeMap = {\r\n AI_SESSION_EXPIRED: 4501,\r\n AI_SESSION_NOT_FOUND: 4502,\r\n AI_REQUEST_CONTEXT_MISSING: 4503,\r\n} as const;\r\n\r\nexport type ATAPIErrorCode = typeof ATAPIErrorCodeMap[keyof typeof ATAPIErrorCodeMap];\r\n","type Brand<T, B extends string> = T & { readonly __brand: B };\r\n\r\nexport type ATAICapabilityID = Brand<string, \"ATAICapabilityID\">;\r\nexport type ATAIPromptID = Brand<string, \"ATAIPromptID\">;\r\n\r\n// allow underscores inside each segment\r\nconst SEG = `[a-z0-9_]+`;\r\n\r\nconst RX = {\r\n capability: new RegExp(`^cap\\\\.${SEG}(?:\\\\.${SEG}){3,}$`, \"i\"),\r\n prompt: new RegExp(`^prompt\\\\.${SEG}(?:\\\\.${SEG}){3,}\\\\.v[0-9]+$`, \"i\"),\r\n} as const;\r\n\r\nfunction validate(kind: keyof typeof RX, id: string): void {\r\n if (!RX[kind].test(id)) {\r\n throw new Error(`[AI-PROTOCOL] Invalid ${kind} id: \"${id}\"`);\r\n }\r\n}\r\n\r\n/**\r\n * Normalize a segment for IDs (snake_case).\r\n * - trims\r\n * - lowercases\r\n * - converts spaces and dashes to underscores\r\n * - removes illegal chars (keeps a-z0-9 and _)\r\n * - collapses multiple underscores\r\n * - trims leading/trailing underscores\r\n */\r\nfunction normalizeSegment(seg: string): string {\r\n return seg\r\n .trim()\r\n .toLowerCase()\r\n .replace(/[\\s-]+/g, \"_\") // spaces/dashes -> _\r\n .replace(/[^a-z0-9_]/g, \"\") // keep only a-z0-9_\r\n .replace(/_+/g, \"_\") // collapse __\r\n .replace(/^_+|_+$/g, \"\"); // trim edges\r\n}\r\n\r\nfunction joinSegments(...segs: string[]): string {\r\n return segs.map(normalizeSegment).filter(Boolean).join(\".\");\r\n}\r\n\r\nexport const ATAIID = {\r\n validateCapability(id: string): ATAICapabilityID {\r\n validate(\"capability\", id);\r\n return id as ATAICapabilityID;\r\n },\r\n\r\n validatePrompt(id: string): ATAIPromptID {\r\n validate(\"prompt\", id);\r\n return id as ATAIPromptID;\r\n },\r\n\r\n makeCapability(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n }): ATAICapabilityID {\r\n const id = `cap.${joinSegments(parts.app, parts.area, parts.target, parts.action)}`;\r\n return ATAIID.validateCapability(id);\r\n },\r\n\r\n makePrompt(parts: {\r\n app: string;\r\n area: string;\r\n target: string;\r\n action: string;\r\n v: number;\r\n }): ATAIPromptID {\r\n const major = Math.max(0, Math.floor(parts.v));\r\n const id = `prompt.${joinSegments(parts.app, parts.area, parts.target, parts.action)}.v${major}`;\r\n return ATAIID.validatePrompt(id);\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAIPrompts = {\r\n BPMS: {\r\n SYSTEM: {\r\n INTENT_DETECTION_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"system\",\r\n target: \"intent\",\r\n action: \"detection\",\r\n v: 1\r\n }),\r\n },\r\n FORMAKER: {\r\n VALUE_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"value\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE_V1: ATAIID.makePrompt({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n v: 1,\r\n }),\r\n },\r\n },\r\n} as const;\r\n","import { ATAIID } from \"./ids\";\r\n\r\nexport const ATAICapabilities = {\r\n BPMS: {\r\n FORMAKER: {\r\n FORM_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"formmaker\",\r\n target: \"form\",\r\n action: \"generate\",\r\n }),\r\n },\r\n APIMANAGER: {\r\n POST_RESPONSE_SCRIPT_GENERATE: ATAIID.makeCapability({\r\n app: \"bpms\",\r\n area: \"apimanager\",\r\n target: \"post_response_script\",\r\n action: \"generate\",\r\n }),\r\n },\r\n },\r\n} as const;\r\n","export * from \"./core/protocol/errors\";\r\n\r\nimport { ATAPIErrorCodeMap } from \"./core/protocol/errors\";\r\n\r\nimport { ATAIID } from \"./ai/protocol/ids\";\r\nimport { ATAIPrompts } from \"./ai/protocol/prompts\";\r\nimport { ATAICapabilities } from \"./ai/protocol/capabilities\";\r\n\r\nexport const ATAI = {\r\n ID: ATAIID,\r\n Prompts: ATAIPrompts,\r\n Capabilities: ATAICapabilities,\r\n} as const;\r\n\r\nexport const ATProtocol = {\r\n ATAPIErrorCodeMap,\r\n AI: ATAI,\r\n} as const;\r\n\r\nexport type ATAICapabilityID =\r\n import(\"./ai/protocol/ids\").ATAICapabilityID;\r\nexport type ATAIPromptID =\r\n import(\"./ai/protocol/ids\").ATAIPromptID;\r\n\r\nexport type ATAPIErrorCode =\r\n import(\"./core/protocol/errors\").ATAPIErrorCode;\r\n"],"mappings":";;;AAAO,IAAM,oBAAoB;AAAA,EAC7B,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,4BAA4B;AAChC;;;ACEA,IAAM,MAAM;AAEZ,IAAM,KAAK;AAAA,EACP,YAAY,IAAI,OAAO,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG;AAAA,EAC7D,QAAQ,IAAI,OAAO,aAAa,GAAG,SAAS,GAAG,oBAAoB,GAAG;AAC1E;AAEA,SAAS,SAAS,MAAuB,IAAkB;AACvD,MAAI,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG;AACpB,UAAM,IAAI,MAAM,yBAAyB,IAAI,SAAS,EAAE,GAAG;AAAA,EAC/D;AACJ;AAWA,SAAS,iBAAiB,KAAqB;AAC3C,SAAO,IACF,KAAK,EACL,YAAY,EACZ,QAAQ,WAAW,GAAG,EACtB,QAAQ,eAAe,EAAE,EACzB,QAAQ,OAAO,GAAG,EAClB,QAAQ,YAAY,EAAE;AAC/B;AAEA,SAAS,gBAAgB,MAAwB;AAC7C,SAAO,KAAK,IAAI,gBAAgB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC9D;AAEO,IAAM,SAAS;AAAA,EAClB,mBAAmB,IAA8B;AAC7C,aAAS,cAAc,EAAE;AACzB,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,IAA0B;AACrC,aAAS,UAAU,EAAE;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,OAKM;AACjB,UAAM,KAAK,OAAO,aAAa,MAAM,KAAK,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC;AACjF,WAAO,OAAO,mBAAmB,EAAE;AAAA,EACvC;AAAA,EAEA,WAAW,OAMM;AACb,UAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,CAAC,CAAC;AAC7C,UAAM,KAAK,UAAU,aAAa,MAAM,KAAK,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC,KAAK,KAAK;AAC9F,WAAO,OAAO,eAAe,EAAE;AAAA,EACnC;AACJ;;;ACxEO,IAAM,cAAc;AAAA,EACvB,MAAM;AAAA,IACF,QAAQ;AAAA,MACJ,qBAAqB,OAAO,WAAW;AAAA,QACnC,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,GAAG;AAAA,MACP,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AAAA,MACN,mBAAmB,OAAO,WAAW;AAAA,QACjC,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,GAAG;AAAA,MACP,CAAC;AAAA,IACL;AAAA,IACA,YAAY;AAAA,MACR,kCAAkC,OAAO,WAAW;AAAA,QAChD,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,GAAG;AAAA,MACP,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;;;AC9BO,IAAM,mBAAmB;AAAA,EAC5B,MAAM;AAAA,IACF,UAAU;AAAA,MACN,eAAe,OAAO,eAAe;AAAA,QACjC,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,IACA,YAAY;AAAA,MACR,+BAA+B,OAAO,eAAe;AAAA,QACjD,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;;;ACbO,IAAM,OAAO;AAAA,EAChB,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,cAAc;AAClB;AAEO,IAAM,aAAa;AAAA,EACtB;AAAA,EACA,IAAI;AACR;","names":[]}
|