@classytic/primitives 0.27.0 → 0.29.0
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 +122 -0
- package/dist/approval.d.mts +26 -2
- package/dist/approval.mjs +26 -3
- package/dist/bank-transaction.d.mts +1 -1
- package/dist/canonical.d.mts +6 -1
- package/dist/canonical.mjs +10 -4
- package/dist/currency.d.mts +1 -1
- package/dist/environment.d.mts +30 -1
- package/dist/environment.mjs +72 -1
- package/dist/events.d.mts +39 -1
- package/dist/events.mjs +169 -1
- package/dist/idempotency.d.mts +4 -0
- package/dist/idempotency.mjs +4 -0
- package/dist/item-stock.d.mts +43 -0
- package/dist/item-stock.mjs +67 -0
- package/dist/legal-form.d.mts +12 -0
- package/dist/legal-form.mjs +27 -0
- package/dist/line-settlement.d.mts +70 -0
- package/dist/line-settlement.mjs +79 -0
- package/dist/memory-outbox.mjs +2 -1
- package/dist/monetization.d.mts +92 -6
- package/dist/monetization.mjs +68 -5
- package/dist/money-BBOARE5f.mjs +204 -0
- package/dist/{money-CfAvfNiM.d.mts → money-C9iLWiWR.d.mts} +21 -1
- package/dist/money.d.mts +2 -2
- package/dist/money.mjs +3 -177
- package/dist/outbox.d.mts +20 -3
- package/dist/payment-events.d.mts +7 -1
- package/dist/payment-gateway.d.mts +1 -1
- package/dist/period.d.mts +22 -1
- package/dist/period.mjs +30 -1
- package/dist/phone.d.mts +13 -1
- package/dist/phone.mjs +21 -1
- package/dist/proration.d.mts +12 -2
- package/dist/proration.mjs +24 -1
- package/dist/signed-token.d.mts +54 -0
- package/dist/signed-token.mjs +139 -0
- package/dist/unit-cost-rate.d.mts +1 -1
- package/dist/unit-cost-rate.mjs +1 -1
- package/package.json +75 -1
package/dist/proration.mjs
CHANGED
|
@@ -108,6 +108,29 @@ function requirePart(result, id) {
|
|
|
108
108
|
return part.amount;
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
111
|
+
* The share of `total` carried by `part` of `whole`, in integer minor units — the VAT on a partial
|
|
112
|
+
* refund, the tax on one tender of a split sale. Largest-remainder rounding, so the share and its
|
|
113
|
+
* complement sum to `total` exactly; `part === whole` returns `total` untouched.
|
|
114
|
+
*
|
|
115
|
+
* @throws ProrationError('INVALID_FRACTION') when an input is not an integer, `whole` is not
|
|
116
|
+
* positive, or `part` lies outside `[0, whole]` — a refund larger than its payment is a defect
|
|
117
|
+
* upstream, and clamping it would book a plausible number.
|
|
118
|
+
*/
|
|
119
|
+
function apportion(total, part, whole) {
|
|
120
|
+
if (![
|
|
121
|
+
total,
|
|
122
|
+
part,
|
|
123
|
+
whole
|
|
124
|
+
].every(Number.isInteger) || whole <= 0 || part < 0 || part > whole) throw new ProrationError("INVALID_FRACTION", `cannot apportion ${total} by ${part} of ${whole}`);
|
|
125
|
+
return requirePart(allocate(total, [{
|
|
126
|
+
id: "part",
|
|
127
|
+
weight: part
|
|
128
|
+
}, {
|
|
129
|
+
id: "rest",
|
|
130
|
+
weight: whole - part
|
|
131
|
+
}], "by-weight"), "part");
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
111
134
|
* Allocate the `fraction`-weighted part of a `Money` amount, drift-free — the
|
|
112
135
|
* complement (`1 - fraction`) is discarded but computed so rounding is exact
|
|
113
136
|
* against the whole. `fraction` must be in `[0, 1]`.
|
|
@@ -129,4 +152,4 @@ function allocateMoneyByFraction(amount, fraction) {
|
|
|
129
152
|
};
|
|
130
153
|
}
|
|
131
154
|
//#endregion
|
|
132
|
-
export { ProrationError, allocateMoneyByFraction, periodProgress, splitByPeriodFraction };
|
|
155
|
+
export { ProrationError, allocateMoneyByFraction, apportion, periodProgress, splitByPeriodFraction };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//#region src/security/signed-token.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Signed tokens: compact JWS (RFC 7515), ES256 over WebCrypto — a server and an offline device sign
|
|
4
|
+
* and verify the same bytes with no dependency. Claims follow RFC 7519 (`exp`/`nbf`/`iat` in
|
|
5
|
+
* seconds).
|
|
6
|
+
*
|
|
7
|
+
* const token = await signToken({ sub, exp }, { kid, privateKey }, { typ: 'till-grant+jwt' });
|
|
8
|
+
* const read = await verifyToken<Grant>(token, (kid) => keys.get(kid), { typ: 'till-grant+jwt' });
|
|
9
|
+
*
|
|
10
|
+
* `typ` is required on both sides, so one kind of token is never accepted as another, and a token
|
|
11
|
+
* without `exp` is refused.
|
|
12
|
+
*/
|
|
13
|
+
declare const SIGNED_TOKEN_ALG = "ES256";
|
|
14
|
+
/** A P-256 key as JWK; `d` only on a private key. */
|
|
15
|
+
interface EcJwk {
|
|
16
|
+
kty?: string;
|
|
17
|
+
crv?: string;
|
|
18
|
+
x?: string;
|
|
19
|
+
y?: string;
|
|
20
|
+
d?: string;
|
|
21
|
+
[member: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
interface SigningKey {
|
|
24
|
+
/** Published with the public key; names it in each token's header. */
|
|
25
|
+
readonly kid: string;
|
|
26
|
+
readonly privateKey: CryptoKey;
|
|
27
|
+
}
|
|
28
|
+
type TokenRefusal = 'malformed' | 'unsupported' | 'wrong_type' | 'unknown_key' | 'bad_signature' | 'no_expiry' | 'expired' | 'not_yet_valid';
|
|
29
|
+
type VerifiedToken<T> = {
|
|
30
|
+
readonly ok: true;
|
|
31
|
+
readonly claims: T;
|
|
32
|
+
readonly kid: string;
|
|
33
|
+
} | {
|
|
34
|
+
readonly ok: false;
|
|
35
|
+
readonly reason: TokenRefusal;
|
|
36
|
+
};
|
|
37
|
+
declare function signToken(claims: Record<string, unknown>, key: SigningKey, options: {
|
|
38
|
+
typ: string;
|
|
39
|
+
}): Promise<string>;
|
|
40
|
+
declare function verifyToken<T>(token: string, keyOf: (kid: string) => CryptoKey | undefined | Promise<CryptoKey | undefined>, options: {
|
|
41
|
+
typ: string;
|
|
42
|
+
now?: Date | undefined;
|
|
43
|
+
leewaySeconds?: number | undefined;
|
|
44
|
+
}): Promise<VerifiedToken<T>>;
|
|
45
|
+
/** A P-256 private JWK as a non-extractable signing key. */
|
|
46
|
+
declare function importSigningKey(privateJwk: EcJwk): Promise<CryptoKey>;
|
|
47
|
+
/** A P-256 public JWK as a verifying key. */
|
|
48
|
+
declare function importVerifyingKey(publicJwk: EcJwk): Promise<CryptoKey>;
|
|
49
|
+
/** The public half of a P-256 private JWK — what is published. */
|
|
50
|
+
declare function publicJwkOf(privateJwk: EcJwk): EcJwk;
|
|
51
|
+
/** A fresh key pair as JWKs — for provisioning a deployment's signing key. */
|
|
52
|
+
declare function generateSigningJwk(): Promise<EcJwk>;
|
|
53
|
+
//#endregion
|
|
54
|
+
export { EcJwk, SIGNED_TOKEN_ALG, SigningKey, TokenRefusal, VerifiedToken, generateSigningJwk, importSigningKey, importVerifyingKey, publicJwkOf, signToken, verifyToken };
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
//#region src/security/signed-token.ts
|
|
2
|
+
/**
|
|
3
|
+
* Signed tokens: compact JWS (RFC 7515), ES256 over WebCrypto — a server and an offline device sign
|
|
4
|
+
* and verify the same bytes with no dependency. Claims follow RFC 7519 (`exp`/`nbf`/`iat` in
|
|
5
|
+
* seconds).
|
|
6
|
+
*
|
|
7
|
+
* const token = await signToken({ sub, exp }, { kid, privateKey }, { typ: 'till-grant+jwt' });
|
|
8
|
+
* const read = await verifyToken<Grant>(token, (kid) => keys.get(kid), { typ: 'till-grant+jwt' });
|
|
9
|
+
*
|
|
10
|
+
* `typ` is required on both sides, so one kind of token is never accepted as another, and a token
|
|
11
|
+
* without `exp` is refused.
|
|
12
|
+
*/
|
|
13
|
+
const SIGNED_TOKEN_ALG = "ES256";
|
|
14
|
+
const ECDSA = {
|
|
15
|
+
name: "ECDSA",
|
|
16
|
+
namedCurve: "P-256"
|
|
17
|
+
};
|
|
18
|
+
const SIGN = {
|
|
19
|
+
name: "ECDSA",
|
|
20
|
+
hash: "SHA-256"
|
|
21
|
+
};
|
|
22
|
+
const encoder = new TextEncoder();
|
|
23
|
+
const decoder = new TextDecoder();
|
|
24
|
+
function toBase64Url(bytes) {
|
|
25
|
+
let binary = "";
|
|
26
|
+
for (const byte of bytes) binary += String.fromCharCode(byte);
|
|
27
|
+
return btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
28
|
+
}
|
|
29
|
+
function fromBase64Url(text) {
|
|
30
|
+
if (!/^[A-Za-z0-9_-]*$/.test(text)) return null;
|
|
31
|
+
const binary = atob(text.replace(/-/g, "+").replace(/_/g, "/"));
|
|
32
|
+
const bytes = new Uint8Array(new ArrayBuffer(binary.length));
|
|
33
|
+
for (let i = 0; i < binary.length; i += 1) bytes[i] = binary.charCodeAt(i);
|
|
34
|
+
return bytes;
|
|
35
|
+
}
|
|
36
|
+
function parseJson(segment) {
|
|
37
|
+
const bytes = fromBase64Url(segment);
|
|
38
|
+
if (!bytes) return null;
|
|
39
|
+
try {
|
|
40
|
+
const value = JSON.parse(decoder.decode(bytes));
|
|
41
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
42
|
+
} catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function signToken(claims, key, options) {
|
|
47
|
+
const input = `${toBase64Url(encoder.encode(JSON.stringify({
|
|
48
|
+
alg: SIGNED_TOKEN_ALG,
|
|
49
|
+
typ: options.typ,
|
|
50
|
+
kid: key.kid
|
|
51
|
+
})))}.${toBase64Url(encoder.encode(JSON.stringify(claims)))}`;
|
|
52
|
+
return `${input}.${toBase64Url(new Uint8Array(await crypto.subtle.sign(SIGN, key.privateKey, encoder.encode(input))))}`;
|
|
53
|
+
}
|
|
54
|
+
async function verifyToken(token, keyOf, options) {
|
|
55
|
+
const parts = typeof token === "string" ? token.split(".") : [];
|
|
56
|
+
if (parts.length !== 3) return {
|
|
57
|
+
ok: false,
|
|
58
|
+
reason: "malformed"
|
|
59
|
+
};
|
|
60
|
+
const [headerPart, payloadPart, signaturePart] = parts;
|
|
61
|
+
const header = parseJson(headerPart);
|
|
62
|
+
const claims = parseJson(payloadPart);
|
|
63
|
+
const signature = fromBase64Url(signaturePart);
|
|
64
|
+
if (!header || !claims || !signature) return {
|
|
65
|
+
ok: false,
|
|
66
|
+
reason: "malformed"
|
|
67
|
+
};
|
|
68
|
+
if (header.alg !== "ES256" || header.crit !== void 0) return {
|
|
69
|
+
ok: false,
|
|
70
|
+
reason: "unsupported"
|
|
71
|
+
};
|
|
72
|
+
if (header.typ !== options.typ) return {
|
|
73
|
+
ok: false,
|
|
74
|
+
reason: "wrong_type"
|
|
75
|
+
};
|
|
76
|
+
if (typeof header.kid !== "string") return {
|
|
77
|
+
ok: false,
|
|
78
|
+
reason: "unknown_key"
|
|
79
|
+
};
|
|
80
|
+
const key = await keyOf(header.kid);
|
|
81
|
+
if (!key) return {
|
|
82
|
+
ok: false,
|
|
83
|
+
reason: "unknown_key"
|
|
84
|
+
};
|
|
85
|
+
if (!await crypto.subtle.verify(SIGN, key, signature, encoder.encode(`${headerPart}.${payloadPart}`))) return {
|
|
86
|
+
ok: false,
|
|
87
|
+
reason: "bad_signature"
|
|
88
|
+
};
|
|
89
|
+
const now = Math.floor((options.now ?? /* @__PURE__ */ new Date()).getTime() / 1e3);
|
|
90
|
+
const leeway = options.leewaySeconds ?? 0;
|
|
91
|
+
if (typeof claims.exp !== "number") return {
|
|
92
|
+
ok: false,
|
|
93
|
+
reason: "no_expiry"
|
|
94
|
+
};
|
|
95
|
+
if (now >= claims.exp + leeway) return {
|
|
96
|
+
ok: false,
|
|
97
|
+
reason: "expired"
|
|
98
|
+
};
|
|
99
|
+
if (typeof claims.nbf === "number" && now < claims.nbf - leeway) return {
|
|
100
|
+
ok: false,
|
|
101
|
+
reason: "not_yet_valid"
|
|
102
|
+
};
|
|
103
|
+
return {
|
|
104
|
+
ok: true,
|
|
105
|
+
claims,
|
|
106
|
+
kid: header.kid
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** A P-256 private JWK as a non-extractable signing key. */
|
|
110
|
+
function importSigningKey(privateJwk) {
|
|
111
|
+
return crypto.subtle.importKey("jwk", privateJwk, ECDSA, false, ["sign"]);
|
|
112
|
+
}
|
|
113
|
+
/** A P-256 public JWK as a verifying key. */
|
|
114
|
+
function importVerifyingKey(publicJwk) {
|
|
115
|
+
const { kty, crv, x, y } = publicJwk;
|
|
116
|
+
return crypto.subtle.importKey("jwk", {
|
|
117
|
+
kty,
|
|
118
|
+
crv,
|
|
119
|
+
x,
|
|
120
|
+
y
|
|
121
|
+
}, ECDSA, false, ["verify"]);
|
|
122
|
+
}
|
|
123
|
+
/** The public half of a P-256 private JWK — what is published. */
|
|
124
|
+
function publicJwkOf(privateJwk) {
|
|
125
|
+
const { kty, crv, x, y } = privateJwk;
|
|
126
|
+
return {
|
|
127
|
+
kty,
|
|
128
|
+
crv,
|
|
129
|
+
x,
|
|
130
|
+
y
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/** A fresh key pair as JWKs — for provisioning a deployment's signing key. */
|
|
134
|
+
async function generateSigningJwk() {
|
|
135
|
+
const pair = await crypto.subtle.generateKey(ECDSA, true, ["sign", "verify"]);
|
|
136
|
+
return await crypto.subtle.exportKey("jwk", pair.privateKey);
|
|
137
|
+
}
|
|
138
|
+
//#endregion
|
|
139
|
+
export { SIGNED_TOKEN_ALG, generateSigningJwk, importSigningKey, importVerifyingKey, publicJwkOf, signToken, verifyToken };
|
package/dist/unit-cost-rate.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MinorUnits } from "./money.mjs";
|
|
1
|
+
import { t as MinorUnits } from "./money-BBOARE5f.mjs";
|
|
2
2
|
import { t as roundedDiv } from "./rounded-div-BWJb98Ws.mjs";
|
|
3
3
|
//#region src/money/unit-cost-rate.ts
|
|
4
4
|
/** Fixed, ecosystem-wide rate scale: 6 decimal places below the minor unit. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@classytic/primitives",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Framework-agnostic TypeScript primitives shared across Classytic packages — Money, events, pagination, tenant config, and other building blocks.",
|
|
5
5
|
"author": "Classytic",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,219 +22,293 @@
|
|
|
22
22
|
},
|
|
23
23
|
"exports": {
|
|
24
24
|
"./money": {
|
|
25
|
+
"@classytic/source": "./src/money/money.ts",
|
|
25
26
|
"types": "./dist/money.d.mts",
|
|
26
27
|
"default": "./dist/money.mjs"
|
|
27
28
|
},
|
|
28
29
|
"./currency": {
|
|
30
|
+
"@classytic/source": "./src/money/currency.ts",
|
|
29
31
|
"types": "./dist/currency.d.mts",
|
|
30
32
|
"default": "./dist/currency.mjs"
|
|
31
33
|
},
|
|
32
34
|
"./unit-cost-rate": {
|
|
35
|
+
"@classytic/source": "./src/money/unit-cost-rate.ts",
|
|
33
36
|
"types": "./dist/unit-cost-rate.d.mts",
|
|
34
37
|
"default": "./dist/unit-cost-rate.mjs"
|
|
35
38
|
},
|
|
36
39
|
"./price-basis": {
|
|
40
|
+
"@classytic/source": "./src/money/price-basis.ts",
|
|
37
41
|
"types": "./dist/price-basis.d.mts",
|
|
38
42
|
"default": "./dist/price-basis.mjs"
|
|
39
43
|
},
|
|
40
44
|
"./address": {
|
|
45
|
+
"@classytic/source": "./src/identity/address.ts",
|
|
41
46
|
"types": "./dist/address.d.mts",
|
|
42
47
|
"default": "./dist/address.mjs"
|
|
43
48
|
},
|
|
44
49
|
"./period": {
|
|
50
|
+
"@classytic/source": "./src/scheduling/period.ts",
|
|
45
51
|
"types": "./dist/period.d.mts",
|
|
46
52
|
"default": "./dist/period.mjs"
|
|
47
53
|
},
|
|
48
54
|
"./calendar": {
|
|
55
|
+
"@classytic/source": "./src/scheduling/calendar.ts",
|
|
49
56
|
"types": "./dist/calendar.d.mts",
|
|
50
57
|
"default": "./dist/calendar.mjs"
|
|
51
58
|
},
|
|
52
59
|
"./calendar-facts": {
|
|
60
|
+
"@classytic/source": "./src/scheduling/calendar-facts.ts",
|
|
53
61
|
"types": "./dist/calendar-facts.d.mts",
|
|
54
62
|
"default": "./dist/calendar-facts.mjs"
|
|
55
63
|
},
|
|
56
64
|
"./timezone": {
|
|
65
|
+
"@classytic/source": "./src/scheduling/timezone.ts",
|
|
57
66
|
"types": "./dist/timezone.d.mts",
|
|
58
67
|
"default": "./dist/timezone.mjs"
|
|
59
68
|
},
|
|
60
69
|
"./reference": {
|
|
70
|
+
"@classytic/source": "./src/composition/reference.ts",
|
|
61
71
|
"types": "./dist/reference.d.mts",
|
|
62
72
|
"default": "./dist/reference.mjs"
|
|
63
73
|
},
|
|
64
74
|
"./fault-attribution": {
|
|
75
|
+
"@classytic/source": "./src/composition/fault-attribution.ts",
|
|
65
76
|
"types": "./dist/fault-attribution.d.mts",
|
|
66
77
|
"default": "./dist/fault-attribution.mjs"
|
|
67
78
|
},
|
|
68
79
|
"./context": {
|
|
80
|
+
"@classytic/source": "./src/composition/context.ts",
|
|
69
81
|
"types": "./dist/context.d.mts",
|
|
70
82
|
"default": "./dist/context.mjs"
|
|
71
83
|
},
|
|
72
84
|
"./environment": {
|
|
85
|
+
"@classytic/source": "./src/composition/environment.ts",
|
|
73
86
|
"types": "./dist/environment.d.mts",
|
|
74
87
|
"default": "./dist/environment.mjs"
|
|
75
88
|
},
|
|
76
89
|
"./events": {
|
|
90
|
+
"@classytic/source": "./src/events/events.ts",
|
|
77
91
|
"types": "./dist/events.d.mts",
|
|
78
92
|
"default": "./dist/events.mjs"
|
|
79
93
|
},
|
|
80
94
|
"./memory-outbox": {
|
|
95
|
+
"@classytic/source": "./src/events/memory-outbox.ts",
|
|
81
96
|
"types": "./dist/memory-outbox.d.mts",
|
|
82
97
|
"default": "./dist/memory-outbox.mjs"
|
|
83
98
|
},
|
|
84
99
|
"./event-infra": {
|
|
100
|
+
"@classytic/source": "./src/events/event-infra.ts",
|
|
85
101
|
"types": "./dist/event-infra.d.mts",
|
|
86
102
|
"default": "./dist/event-infra.mjs"
|
|
87
103
|
},
|
|
88
104
|
"./outbox": {
|
|
105
|
+
"@classytic/source": "./src/events/outbox.ts",
|
|
89
106
|
"types": "./dist/outbox.d.mts",
|
|
90
107
|
"default": "./dist/outbox.mjs"
|
|
91
108
|
},
|
|
92
109
|
"./result": {
|
|
110
|
+
"@classytic/source": "./src/composition/result.ts",
|
|
93
111
|
"types": "./dist/result.d.mts",
|
|
94
112
|
"default": "./dist/result.mjs"
|
|
95
113
|
},
|
|
96
114
|
"./brand": {
|
|
115
|
+
"@classytic/source": "./src/composition/brand.ts",
|
|
97
116
|
"types": "./dist/brand.d.mts",
|
|
98
117
|
"default": "./dist/brand.mjs"
|
|
99
118
|
},
|
|
100
119
|
"./split-allocation": {
|
|
120
|
+
"@classytic/source": "./src/money/split-allocation.ts",
|
|
101
121
|
"types": "./dist/split-allocation.d.mts",
|
|
102
122
|
"default": "./dist/split-allocation.mjs"
|
|
103
123
|
},
|
|
104
124
|
"./approval": {
|
|
125
|
+
"@classytic/source": "./src/workflow/approval.ts",
|
|
105
126
|
"types": "./dist/approval.d.mts",
|
|
106
127
|
"default": "./dist/approval.mjs"
|
|
107
128
|
},
|
|
108
129
|
"./idempotency": {
|
|
130
|
+
"@classytic/source": "./src/workflow/idempotency.ts",
|
|
109
131
|
"types": "./dist/idempotency.d.mts",
|
|
110
132
|
"default": "./dist/idempotency.mjs"
|
|
111
133
|
},
|
|
112
134
|
"./cadence": {
|
|
135
|
+
"@classytic/source": "./src/scheduling/cadence.ts",
|
|
113
136
|
"types": "./dist/cadence.d.mts",
|
|
114
137
|
"default": "./dist/cadence.mjs"
|
|
115
138
|
},
|
|
116
139
|
"./hold": {
|
|
140
|
+
"@classytic/source": "./src/workflow/hold.ts",
|
|
117
141
|
"types": "./dist/hold.d.mts",
|
|
118
142
|
"default": "./dist/hold.mjs"
|
|
119
143
|
},
|
|
120
144
|
"./sla": {
|
|
145
|
+
"@classytic/source": "./src/scheduling/sla.ts",
|
|
121
146
|
"types": "./dist/sla.d.mts",
|
|
122
147
|
"default": "./dist/sla.mjs"
|
|
123
148
|
},
|
|
124
149
|
"./shelf-life": {
|
|
150
|
+
"@classytic/source": "./src/scheduling/shelf-life.ts",
|
|
125
151
|
"types": "./dist/shelf-life.d.mts",
|
|
126
152
|
"default": "./dist/shelf-life.mjs"
|
|
127
153
|
},
|
|
128
154
|
"./person": {
|
|
155
|
+
"@classytic/source": "./src/identity/person.ts",
|
|
129
156
|
"types": "./dist/person.d.mts",
|
|
130
157
|
"default": "./dist/person.mjs"
|
|
131
158
|
},
|
|
132
159
|
"./person-parse": {
|
|
160
|
+
"@classytic/source": "./src/identity/person-parse.ts",
|
|
133
161
|
"types": "./dist/person-parse.d.mts",
|
|
134
162
|
"default": "./dist/person-parse.mjs"
|
|
135
163
|
},
|
|
136
164
|
"./identity-verification": {
|
|
165
|
+
"@classytic/source": "./src/identity/identity-verification.ts",
|
|
137
166
|
"types": "./dist/identity-verification.d.mts",
|
|
138
167
|
"default": "./dist/identity-verification.mjs"
|
|
139
168
|
},
|
|
140
169
|
"./otp": {
|
|
170
|
+
"@classytic/source": "./src/identity/otp.ts",
|
|
141
171
|
"types": "./dist/otp.d.mts",
|
|
142
172
|
"default": "./dist/otp.mjs"
|
|
143
173
|
},
|
|
144
174
|
"./state-machine": {
|
|
175
|
+
"@classytic/source": "./src/workflow/state-machine.ts",
|
|
145
176
|
"types": "./dist/state-machine.d.mts",
|
|
146
177
|
"default": "./dist/state-machine.mjs"
|
|
147
178
|
},
|
|
148
179
|
"./bank-transaction": {
|
|
180
|
+
"@classytic/source": "./src/money/bank-transaction.ts",
|
|
149
181
|
"types": "./dist/bank-transaction.d.mts",
|
|
150
182
|
"default": "./dist/bank-transaction.mjs"
|
|
151
183
|
},
|
|
152
184
|
"./payment-gateway": {
|
|
185
|
+
"@classytic/source": "./src/money/payment-gateway.ts",
|
|
153
186
|
"types": "./dist/payment-gateway.d.mts",
|
|
154
187
|
"default": "./dist/payment-gateway.mjs"
|
|
155
188
|
},
|
|
156
189
|
"./payment-method-kind": {
|
|
190
|
+
"@classytic/source": "./src/money/payment-method-kind.ts",
|
|
157
191
|
"types": "./dist/payment-method-kind.d.mts",
|
|
158
192
|
"default": "./dist/payment-method-kind.mjs"
|
|
159
193
|
},
|
|
160
194
|
"./payment-allocation-status": {
|
|
195
|
+
"@classytic/source": "./src/money/payment-allocation-status.ts",
|
|
161
196
|
"types": "./dist/payment-allocation-status.d.mts",
|
|
162
197
|
"default": "./dist/payment-allocation-status.mjs"
|
|
163
198
|
},
|
|
164
199
|
"./monetization": {
|
|
200
|
+
"@classytic/source": "./src/money/monetization.ts",
|
|
165
201
|
"types": "./dist/monetization.d.mts",
|
|
166
202
|
"default": "./dist/monetization.mjs"
|
|
167
203
|
},
|
|
168
204
|
"./proration": {
|
|
205
|
+
"@classytic/source": "./src/money/proration.ts",
|
|
169
206
|
"types": "./dist/proration.d.mts",
|
|
170
207
|
"default": "./dist/proration.mjs"
|
|
171
208
|
},
|
|
172
209
|
"./payment-events": {
|
|
210
|
+
"@classytic/source": "./src/events/payment-events.ts",
|
|
173
211
|
"types": "./dist/payment-events.d.mts",
|
|
174
212
|
"default": "./dist/payment-events.mjs"
|
|
175
213
|
},
|
|
176
214
|
"./phone": {
|
|
215
|
+
"@classytic/source": "./src/identity/phone.ts",
|
|
177
216
|
"types": "./dist/phone.d.mts",
|
|
178
217
|
"default": "./dist/phone.mjs"
|
|
179
218
|
},
|
|
180
219
|
"./status-history": {
|
|
220
|
+
"@classytic/source": "./src/workflow/status-history.ts",
|
|
181
221
|
"types": "./dist/status-history.d.mts",
|
|
182
222
|
"default": "./dist/status-history.mjs"
|
|
183
223
|
},
|
|
184
224
|
"./condition": {
|
|
225
|
+
"@classytic/source": "./src/workflow/condition.ts",
|
|
185
226
|
"types": "./dist/condition.d.mts",
|
|
186
227
|
"default": "./dist/condition.mjs"
|
|
187
228
|
},
|
|
188
229
|
"./mixin": {
|
|
230
|
+
"@classytic/source": "./src/composition/mixin.ts",
|
|
189
231
|
"types": "./dist/mixin.d.mts",
|
|
190
232
|
"default": "./dist/mixin.mjs"
|
|
191
233
|
},
|
|
192
234
|
"./deadline": {
|
|
235
|
+
"@classytic/source": "./src/composition/deadline.ts",
|
|
193
236
|
"types": "./dist/deadline.d.mts",
|
|
194
237
|
"default": "./dist/deadline.mjs"
|
|
195
238
|
},
|
|
196
239
|
"./sla-policy": {
|
|
240
|
+
"@classytic/source": "./src/scheduling/sla-policy.ts",
|
|
197
241
|
"types": "./dist/sla-policy.d.mts",
|
|
198
242
|
"default": "./dist/sla-policy.mjs"
|
|
199
243
|
},
|
|
200
244
|
"./retention": {
|
|
245
|
+
"@classytic/source": "./src/retention/purge-evidence.ts",
|
|
201
246
|
"types": "./dist/retention.d.mts",
|
|
202
247
|
"default": "./dist/retention.mjs"
|
|
203
248
|
},
|
|
204
249
|
"./canonical": {
|
|
250
|
+
"@classytic/source": "./src/serialization/canonical.ts",
|
|
205
251
|
"types": "./dist/canonical.d.mts",
|
|
206
252
|
"default": "./dist/canonical.mjs"
|
|
207
253
|
},
|
|
208
254
|
"./csv": {
|
|
255
|
+
"@classytic/source": "./src/serialization/csv.ts",
|
|
209
256
|
"types": "./dist/csv.d.mts",
|
|
210
257
|
"default": "./dist/csv.mjs"
|
|
211
258
|
},
|
|
212
259
|
"./package.json": "./package.json",
|
|
213
260
|
"./state-diagram": {
|
|
261
|
+
"@classytic/source": "./src/workflow/state-diagram.ts",
|
|
214
262
|
"types": "./dist/state-diagram.d.mts",
|
|
215
263
|
"default": "./dist/state-diagram.mjs"
|
|
216
264
|
},
|
|
217
265
|
"./suspension": {
|
|
266
|
+
"@classytic/source": "./src/workflow/suspension.ts",
|
|
218
267
|
"types": "./dist/suspension.d.mts",
|
|
219
268
|
"default": "./dist/suspension.mjs"
|
|
220
269
|
},
|
|
270
|
+
"./legal-form": {
|
|
271
|
+
"@classytic/source": "./src/identity/legal-form.ts",
|
|
272
|
+
"types": "./dist/legal-form.d.mts",
|
|
273
|
+
"default": "./dist/legal-form.mjs"
|
|
274
|
+
},
|
|
221
275
|
"./subject": {
|
|
276
|
+
"@classytic/source": "./src/identity/subject.ts",
|
|
222
277
|
"types": "./dist/subject.d.mts",
|
|
223
278
|
"default": "./dist/subject.mjs"
|
|
224
279
|
},
|
|
225
280
|
"./item-identity": {
|
|
281
|
+
"@classytic/source": "./src/identity/item-identity.ts",
|
|
226
282
|
"types": "./dist/item-identity.d.mts",
|
|
227
283
|
"default": "./dist/item-identity.mjs"
|
|
228
284
|
},
|
|
229
285
|
"./stock-level": {
|
|
286
|
+
"@classytic/source": "./src/inventory/stock-level.ts",
|
|
230
287
|
"types": "./dist/stock-level.d.mts",
|
|
231
288
|
"default": "./dist/stock-level.mjs"
|
|
232
289
|
},
|
|
290
|
+
"./signed-token": {
|
|
291
|
+
"@classytic/source": "./src/security/signed-token.ts",
|
|
292
|
+
"types": "./dist/signed-token.d.mts",
|
|
293
|
+
"default": "./dist/signed-token.mjs"
|
|
294
|
+
},
|
|
295
|
+
"./item-stock": {
|
|
296
|
+
"@classytic/source": "./src/inventory/item-stock.ts",
|
|
297
|
+
"types": "./dist/item-stock.d.mts",
|
|
298
|
+
"default": "./dist/item-stock.mjs"
|
|
299
|
+
},
|
|
233
300
|
"./item-facts": {
|
|
301
|
+
"@classytic/source": "./src/inventory/item-facts.ts",
|
|
234
302
|
"types": "./dist/item-facts.d.mts",
|
|
235
303
|
"default": "./dist/item-facts.mjs"
|
|
236
304
|
},
|
|
305
|
+
"./line-settlement": {
|
|
306
|
+
"@classytic/source": "./src/inventory/line-settlement.ts",
|
|
307
|
+
"types": "./dist/line-settlement.d.mts",
|
|
308
|
+
"default": "./dist/line-settlement.mjs"
|
|
309
|
+
},
|
|
237
310
|
"./testing/stock-key-seam": {
|
|
311
|
+
"@classytic/source": "./src/testing/stock-key-seam.ts",
|
|
238
312
|
"types": "./dist/testing/stock-key-seam.d.mts",
|
|
239
313
|
"default": "./dist/testing/stock-key-seam.mjs"
|
|
240
314
|
}
|