@nboconnect/connect 0.1.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/LICENSE +186 -0
- package/README.md +75 -0
- package/dist/agentWorkflow.d.ts +78 -0
- package/dist/agentWorkflow.d.ts.map +1 -0
- package/dist/agentWorkflow.js +154 -0
- package/dist/agentWorkflow.js.map +1 -0
- package/dist/index.d.ts +479 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +453 -0
- package/dist/index.js.map +1 -0
- package/dist/runtimeTokenReleaseGate.d.ts +43 -0
- package/dist/runtimeTokenReleaseGate.d.ts.map +1 -0
- package/dist/runtimeTokenReleaseGate.js +115 -0
- package/dist/runtimeTokenReleaseGate.js.map +1 -0
- package/dist/runtimeTokenReplay.d.ts +56 -0
- package/dist/runtimeTokenReplay.d.ts.map +1 -0
- package/dist/runtimeTokenReplay.js +137 -0
- package/dist/runtimeTokenReplay.js.map +1 -0
- package/dist/runtimeTokenRequest.d.ts +50 -0
- package/dist/runtimeTokenRequest.d.ts.map +1 -0
- package/dist/runtimeTokenRequest.js +79 -0
- package/dist/runtimeTokenRequest.js.map +1 -0
- package/dist/runtimeTokenShadow.d.ts +75 -0
- package/dist/runtimeTokenShadow.d.ts.map +1 -0
- package/dist/runtimeTokenShadow.js +168 -0
- package/dist/runtimeTokenShadow.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
const MAX_LIFETIME_SECONDS = 600;
|
|
2
|
+
const CLOCK_SKEW_SECONDS = 30;
|
|
3
|
+
const BLOCKED_ACTION_IDS = new Set([
|
|
4
|
+
'live_value_action',
|
|
5
|
+
'issue_reward',
|
|
6
|
+
'reward_issuance',
|
|
7
|
+
'credit_wallet',
|
|
8
|
+
'wallet_credit',
|
|
9
|
+
'execute_redemption',
|
|
10
|
+
'redemption_execution',
|
|
11
|
+
'payments',
|
|
12
|
+
'settlement',
|
|
13
|
+
'treasury_movement',
|
|
14
|
+
'qude_mutation',
|
|
15
|
+
'nbr_unlock',
|
|
16
|
+
'publish_claim',
|
|
17
|
+
'public_claim_publishing',
|
|
18
|
+
'nbo_unit_commit',
|
|
19
|
+
'scada_control',
|
|
20
|
+
'hcu_hcus_issuance',
|
|
21
|
+
]);
|
|
22
|
+
function isNonEmptyString(value) {
|
|
23
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
24
|
+
}
|
|
25
|
+
function isFiniteInteger(value) {
|
|
26
|
+
return typeof value === 'number' && Number.isFinite(value) && Number.isInteger(value);
|
|
27
|
+
}
|
|
28
|
+
function maskOpaqueRef(value) {
|
|
29
|
+
if (!isNonEmptyString(value))
|
|
30
|
+
return 'masked:missing';
|
|
31
|
+
if (value.length <= 8)
|
|
32
|
+
return 'masked:opaque';
|
|
33
|
+
return `masked:${value.slice(0, 4)}...${value.slice(-4)}`;
|
|
34
|
+
}
|
|
35
|
+
function addMissingClaimCodes(claims, denialCodes) {
|
|
36
|
+
const requiredClaims = [
|
|
37
|
+
'iss', 'aud', 'sub', 'jti', 'tokenType', 'environment', 'organizationId',
|
|
38
|
+
'nodeId', 'persona', 'capabilityId', 'actionId', 'scope', 'registryVersion',
|
|
39
|
+
'iat', 'exp', 'authorizationRef',
|
|
40
|
+
];
|
|
41
|
+
if (requiredClaims.some((claim) => !isNonEmptyString(claims[claim]) && !isFiniteInteger(claims[claim]))) {
|
|
42
|
+
denialCodes.push('REQUIRED_CLAIM_MISSING');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function addExactBindingCodes(claims, request, denialCodes) {
|
|
46
|
+
const bindings = [
|
|
47
|
+
['organizationId', request.organizationId, 'ORGANIZATION_MISMATCH'],
|
|
48
|
+
['nodeId', request.nodeId, 'NODE_MISMATCH'],
|
|
49
|
+
['persona', request.persona, 'PERSONA_MISMATCH'],
|
|
50
|
+
['capabilityId', request.capabilityId, 'CAPABILITY_MISMATCH'],
|
|
51
|
+
['actionId', request.actionId, 'ACTION_MISMATCH'],
|
|
52
|
+
['scope', request.scope, 'SCOPE_MISMATCH'],
|
|
53
|
+
];
|
|
54
|
+
for (const [claim, expected, denialCode] of bindings) {
|
|
55
|
+
if (claims[claim] !== expected)
|
|
56
|
+
denialCodes.push(denialCode);
|
|
57
|
+
}
|
|
58
|
+
if (claims.registryVersion !== request.catalog.registryVersion) {
|
|
59
|
+
denialCodes.push('REGISTRY_VERSION_MISMATCH');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function addTemporalCodes(claims, nowSeconds, denialCodes) {
|
|
63
|
+
if (!isFiniteInteger(claims.iat) || !isFiniteInteger(claims.exp))
|
|
64
|
+
return;
|
|
65
|
+
if (claims.iat > nowSeconds + CLOCK_SKEW_SECONDS)
|
|
66
|
+
denialCodes.push('TOKEN_NOT_YET_VALID');
|
|
67
|
+
if (claims.exp <= nowSeconds)
|
|
68
|
+
denialCodes.push('TOKEN_EXPIRED');
|
|
69
|
+
if (claims.exp <= claims.iat || claims.exp - claims.iat > MAX_LIFETIME_SECONDS) {
|
|
70
|
+
denialCodes.push('TOKEN_LIFETIME_TOO_LONG');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function addRegistryCodes(request, denialCodes) {
|
|
74
|
+
const capability = request.catalog.capabilityRegistry.find((item) => item.capabilityId === request.capabilityId);
|
|
75
|
+
if (!capability) {
|
|
76
|
+
denialCodes.push('CAPABILITY_NOT_FOUND');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (!capability.personas.includes(request.persona))
|
|
80
|
+
denialCodes.push('PERSONA_NOT_ALLOWED');
|
|
81
|
+
const action = capability.actions.find((item) => item.actionId === request.actionId);
|
|
82
|
+
if (!action) {
|
|
83
|
+
denialCodes.push('ACTION_NOT_ALLOWED');
|
|
84
|
+
}
|
|
85
|
+
else if (action.mode === 'blocked') {
|
|
86
|
+
denialCodes.push('LIVE_VALUE_ACTION_BLOCKED');
|
|
87
|
+
}
|
|
88
|
+
else if (!action.requiredScopes.includes(request.scope)) {
|
|
89
|
+
denialCodes.push('SCOPE_NOT_ALLOWED');
|
|
90
|
+
}
|
|
91
|
+
if (BLOCKED_ACTION_IDS.has(request.actionId) || request.capabilityId === 'production_value_and_claims') {
|
|
92
|
+
denialCodes.push('LIVE_VALUE_ACTION_BLOCKED');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function uniqueCodes(codes) {
|
|
96
|
+
return [...new Set(codes)];
|
|
97
|
+
}
|
|
98
|
+
export function evaluateConnectRuntimeTokenShadowV1(request) {
|
|
99
|
+
const claims = request.claims;
|
|
100
|
+
const denialCodes = [];
|
|
101
|
+
if (!claims || typeof claims !== 'object') {
|
|
102
|
+
denialCodes.push('MALFORMED_CLAIMS');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
if (claims.iss !== 'nbo-connect')
|
|
106
|
+
denialCodes.push('ISSUER_MISMATCH');
|
|
107
|
+
if (claims.aud !== 'nbo-connect-action')
|
|
108
|
+
denialCodes.push('AUDIENCE_MISMATCH');
|
|
109
|
+
if (claims.tokenType !== 'connect_action')
|
|
110
|
+
denialCodes.push('TOKEN_TYPE_MISMATCH');
|
|
111
|
+
if (claims.environment !== 'sandbox' || request.environment !== 'sandbox') {
|
|
112
|
+
denialCodes.push('ENVIRONMENT_MISMATCH');
|
|
113
|
+
}
|
|
114
|
+
addMissingClaimCodes(claims, denialCodes);
|
|
115
|
+
addTemporalCodes(claims, request.nowSeconds, denialCodes);
|
|
116
|
+
addExactBindingCodes(claims, request, denialCodes);
|
|
117
|
+
if (request.authorizationActive === false)
|
|
118
|
+
denialCodes.push('AUTHORIZATION_WITHDRAWN');
|
|
119
|
+
if (request.revokedJtis?.includes(claims.jti ?? ''))
|
|
120
|
+
denialCodes.push('TOKEN_REVOKED');
|
|
121
|
+
if (request.consumedJtis?.includes(claims.jti ?? ''))
|
|
122
|
+
denialCodes.push('TOKEN_REPLAYED');
|
|
123
|
+
}
|
|
124
|
+
addRegistryCodes(request, denialCodes);
|
|
125
|
+
const uniqueDenialCodes = uniqueCodes(denialCodes);
|
|
126
|
+
const wouldAuthorize = uniqueDenialCodes.length === 0;
|
|
127
|
+
const tokenRef = maskOpaqueRef(claims?.jti);
|
|
128
|
+
const auditRef = `runtime-token-shadow:${tokenRef}`;
|
|
129
|
+
const evaluatedAt = new Date(request.nowSeconds * 1000).toISOString();
|
|
130
|
+
const audit = {
|
|
131
|
+
schemaVersion: 'nbo.connect.runtime_token_shadow_audit.v1',
|
|
132
|
+
auditRef,
|
|
133
|
+
outcome: wouldAuthorize ? 'RUNTIME_TOKEN_SHADOW_WOULD_ALLOW' : 'RUNTIME_TOKEN_SHADOW_DENIED',
|
|
134
|
+
tokenRef,
|
|
135
|
+
organizationId: isNonEmptyString(claims?.organizationId) ? claims.organizationId : null,
|
|
136
|
+
nodeId: isNonEmptyString(claims?.nodeId) ? claims.nodeId : null,
|
|
137
|
+
persona: isNonEmptyString(claims?.persona) ? claims.persona : null,
|
|
138
|
+
capabilityId: isNonEmptyString(claims?.capabilityId) ? claims.capabilityId : null,
|
|
139
|
+
actionId: isNonEmptyString(claims?.actionId) ? claims.actionId : null,
|
|
140
|
+
scope: isNonEmptyString(claims?.scope) ? claims.scope : null,
|
|
141
|
+
denialCodes: uniqueDenialCodes,
|
|
142
|
+
acceptedForAuthentication: false,
|
|
143
|
+
liveValueActionAttempted: false,
|
|
144
|
+
evaluatedAt,
|
|
145
|
+
};
|
|
146
|
+
return {
|
|
147
|
+
mode: 'shadow_only',
|
|
148
|
+
wouldAuthorize,
|
|
149
|
+
acceptedForAuthentication: false,
|
|
150
|
+
denialCodes: uniqueDenialCodes,
|
|
151
|
+
audit,
|
|
152
|
+
dashboard: {
|
|
153
|
+
tokenRef,
|
|
154
|
+
auditRef,
|
|
155
|
+
status: wouldAuthorize ? 'would_allow' : 'would_deny',
|
|
156
|
+
environment: request.environment,
|
|
157
|
+
organizationId: audit.organizationId,
|
|
158
|
+
nodeId: audit.nodeId,
|
|
159
|
+
persona: audit.persona,
|
|
160
|
+
capabilityId: audit.capabilityId,
|
|
161
|
+
actionId: audit.actionId,
|
|
162
|
+
scope: audit.scope,
|
|
163
|
+
denialCodes: uniqueDenialCodes,
|
|
164
|
+
acceptedForAuthentication: false,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=runtimeTokenShadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeTokenShadow.js","sourceRoot":"","sources":["../src/runtimeTokenShadow.ts"],"names":[],"mappings":"AAwGA,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,mBAAmB;IACnB,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,oBAAoB;IACpB,sBAAsB;IACtB,UAAU;IACV,YAAY;IACZ,mBAAmB;IACnB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,yBAAyB;IACzB,iBAAiB;IACjB,eAAe;IACf,mBAAmB;CACpB,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACtD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IAC9C,OAAO,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA4C,EAC5C,WAAoD;IAEpD,MAAM,cAAc,GAA6C;QAC/D,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB;QACxE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB;QAC3E,KAAK,EAAE,KAAK,EAAE,kBAAkB;KACjC,CAAC;IACF,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,WAAW,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA4C,EAC5C,OAA2C,EAC3C,WAAoD;IAEpD,MAAM,QAAQ,GAA8F;QAC1G,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,EAAE,uBAAuB,CAAC;QACnE,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC;QAC3C,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAChD,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,EAAE,qBAAqB,CAAC;QAC7D,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACjD,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC;KAC3C,CAAC;IACF,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC/D,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA4C,EAC5C,UAAkB,EAClB,WAAoD;IAEpD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO;IACzE,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,GAAG,kBAAkB;QAAE,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,GAAG,IAAI,UAAU;QAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,oBAAoB,EAAE,CAAC;QAC/E,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA2C,EAC3C,WAAoD;IAEpD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CACxD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,CACrD,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,YAAY,KAAK,6BAA6B,EAAE,CAAC;QACvG,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAA8C;IACjE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,OAA2C;IAE3C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,WAAW,GAA4C,EAAE,CAAC;IAEhE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,GAAG,KAAK,aAAa;YAAE,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,GAAG,KAAK,oBAAoB;YAAE,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB;YAAE,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC1E,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3C,CAAC;QACD,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1C,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC1D,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvF,IAAI,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvF,IAAI,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3F,CAAC;IAED,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACvC,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,wBAAwB,QAAQ,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACtE,MAAM,KAAK,GAAqC;QAC9C,aAAa,EAAE,2CAA2C;QAC1D,QAAQ;QACR,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,6BAA6B;QAC5F,QAAQ;QACR,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;QACvF,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC/D,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAClE,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;QACjF,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACrE,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC5D,WAAW,EAAE,iBAAiB;QAC9B,yBAAyB,EAAE,KAAK;QAChC,wBAAwB,EAAE,KAAK;QAC/B,WAAW;KACZ,CAAC;IACF,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,cAAc;QACd,yBAAyB,EAAE,KAAK;QAChC,WAAW,EAAE,iBAAiB;QAC9B,KAAK;QACL,SAAS,EAAE;YACT,QAAQ;YACR,QAAQ;YACR,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;YACrD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,iBAAiB;YAC9B,yBAAyB,EAAE,KAAK;SACjC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nboconnect/connect",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Server-side TypeScript client for the governed NBO Connect API",
|
|
5
|
+
"private": false,
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/Planettechnologies/nbo-monorepo.git",
|
|
10
|
+
"directory": "packages/connect-sdk"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"README.md",
|
|
15
|
+
"LICENSE"
|
|
16
|
+
],
|
|
17
|
+
"type": "module",
|
|
18
|
+
"main": "dist/index.js",
|
|
19
|
+
"types": "dist/index.d.ts",
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"import": "./dist/index.js",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc -p tsconfig.json",
|
|
29
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
30
|
+
"test": "vitest run",
|
|
31
|
+
"replay:runtime-token": "node scripts/replay-runtime-token-shadow.mjs",
|
|
32
|
+
"verify:runtime-token-shadow-release": "node scripts/verify-runtime-token-shadow-release.mjs"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"typescript": "^5.6.3",
|
|
36
|
+
"vitest": "^2.1.9"
|
|
37
|
+
}
|
|
38
|
+
}
|