@private.me/xbind 1.2.0 → 1.2.2
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/README.md +13 -24
- package/dist-standalone/_deps/ux-helpers/cjs/errors.d.ts +4 -0
- package/dist-standalone/_deps/ux-helpers/cjs/errors.d.ts.map +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/errors.js +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/errors.js.map +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/pagination.js +1 -83
- package/dist-standalone/_deps/ux-helpers/cjs/progress.js +1 -143
- package/dist-standalone/_deps/ux-helpers/cjs/search.js +1 -119
- package/dist-standalone/_deps/ux-helpers/cjs/types.js +1 -8
- package/dist-standalone/_deps/ux-helpers/errors.d.ts +4 -0
- package/dist-standalone/_deps/ux-helpers/errors.d.ts.map +1 -1
- package/dist-standalone/_deps/ux-helpers/errors.js +1 -253
- package/dist-standalone/_deps/ux-helpers/errors.js.map +1 -1
- package/dist-standalone/_deps/ux-helpers/index.js +1 -16
- package/dist-standalone/_deps/ux-helpers/pagination.js +1 -79
- package/dist-standalone/_deps/ux-helpers/progress.js +1 -138
- package/dist-standalone/_deps/ux-helpers/search.js +1 -116
- package/dist-standalone/_deps/ux-helpers/types.js +1 -7
- package/dist-standalone/agent.d.ts +9 -4
- package/dist-standalone/agent.js +20 -4
- package/dist-standalone/cjs/agent.js +20 -4
- package/dist-standalone/cjs/correlation-id.js +339 -0
- package/dist-standalone/cjs/http-status-map.js +571 -0
- package/dist-standalone/cjs/index.js +14 -1
- package/dist-standalone/cjs/types/error-response.js +56 -0
- package/dist-standalone/correlation-id.d.ts +222 -0
- package/dist-standalone/correlation-id.js +326 -0
- package/dist-standalone/http-status-map.d.ts +136 -0
- package/dist-standalone/http-status-map.js +561 -0
- package/dist-standalone/index.d.ts +2 -0
- package/dist-standalone/index.js +1 -0
- package/package.json +2 -2
- package/share1.dat +0 -0
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @private.me/xbind
|
|
2
2
|
|
|
3
3
|

|
|
4
|
-

|
|
5
5
|

|
|
6
6
|

|
|
7
7
|

|
|
@@ -18,13 +18,13 @@ Part of the **Private.Me** platform—where APIs have keys, but ACIs have identi
|
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
# Node.js / TypeScript
|
|
21
|
-
npm install
|
|
21
|
+
npm install @private.me/xbind
|
|
22
22
|
|
|
23
23
|
# Python
|
|
24
24
|
pip install private-me-xbind
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
**Distribution Model:** xBind uses Full Control IP protection (2-share XorIDA). Share 1 (Store Front) is
|
|
27
|
+
**Distribution Model:** xBind uses Full Control IP protection (2-share XorIDA). Share 1 (Store Front) is distributed via npm registry. Share 2 (Vault Store) is served via `/api/full-control/share2/:package/:version` and requires payment verification and xBind authentication.
|
|
28
28
|
|
|
29
29
|
[Python SDK documentation](./python/README.md) • [Complete docs](./docs/README.md) • [White paper](https://private.me/docs/xbind.html)
|
|
30
30
|
|
|
@@ -126,14 +126,9 @@ See [Configuration Guide](./docs/configuration.md) for complete setup instructio
|
|
|
126
126
|
|
|
127
127
|
## Pricing
|
|
128
128
|
|
|
129
|
-
**
|
|
129
|
+
**3-month free trial** — No credit card required.
|
|
130
130
|
|
|
131
|
-
**Tiers:**
|
|
132
|
-
- **Basic:** 100k ops/month free
|
|
133
|
-
- **Pro:** $5 per 100k operations (unlimited)
|
|
134
|
-
- **Enterprise:** Volume discounts + dedicated support
|
|
135
|
-
|
|
136
|
-
**Free Trial:** Start with 100k operations free. No signup required until you reach usage limits.
|
|
131
|
+
**Tiers:** Free, Pro, and Enterprise plans available. Free tier includes generous limits. Pro tier provides usage-based billing. Enterprise tier offers volume discounts and dedicated support.
|
|
137
132
|
|
|
138
133
|
See [pricing details](../../docs/pricing-reference.md) for current rates and complete tier comparison.
|
|
139
134
|
|
|
@@ -167,6 +162,8 @@ console.log('Agent DID:', agent.did);
|
|
|
167
162
|
|
|
168
163
|
**Prerequisites:** The `FULL_CONTROL_MASTER_KEY` environment variable is required for Share 2 operations in production but optional for basic testing. See [Environment Variables](#environment-variables) for setup.
|
|
169
164
|
|
|
165
|
+
**JITR (Just-in-Time Registration):** Agents created with `Agent.fromSeed()` automatically register with the trust registry on first use. No manual registration scripts required. Includes all encryption keys (Ed25519, X25519, ML-KEM, ML-DSA) for zero-config encrypted messaging.
|
|
166
|
+
|
|
170
167
|
[More examples](./docs/examples.md) • [Python examples](./python/README.md)
|
|
171
168
|
|
|
172
169
|
## Python SDK
|
|
@@ -206,32 +203,24 @@ Zero key management, zero cascade failures, zero bearer credentials. Cryptograph
|
|
|
206
203
|
|
|
207
204
|
## Features
|
|
208
205
|
|
|
209
|
-
Post-quantum cryptography (ML-KEM-768, ML-DSA-65), bilateral authorization, XorIDA split-channel delivery, Python SDK, Full Control IP protection, zero rotation, type safety with `Result<T, E>`, PLAN-3 hybrid signatures, 96 error codes.
|
|
206
|
+
**Zero-config JITR:** Just-in-Time Registration auto-registers agents with trust registry on first use (AWS IoT JITR, OAuth DCR, MCP 2025 standards). Post-quantum cryptography (ML-KEM-768, ML-DSA-65), bilateral authorization, XorIDA split-channel delivery, Python SDK, Full Control IP protection, zero rotation, type safety with `Result<T, E>`, PLAN-3 hybrid signatures, 96 error codes.
|
|
210
207
|
|
|
211
208
|
## Billing & Metering
|
|
212
209
|
|
|
213
210
|
xBind includes usage-based billing with automated milestone notifications:
|
|
214
211
|
|
|
215
|
-
- **Free Tier:**
|
|
216
|
-
- **Grace Buffer:**
|
|
217
|
-
- **
|
|
218
|
-
- **Pro Tier:** Unlimited operations at $5 per 100K (after first 100K free)
|
|
212
|
+
- **Free Tier:** Generous monthly limits (no email verification required upfront)
|
|
213
|
+
- **Grace Buffer:** Additional operations available after email verification
|
|
214
|
+
- **Pro Tier:** Usage-based billing with unlimited operations
|
|
219
215
|
- **Monthly Reset:** 1st of each month at 00:00 UTC
|
|
220
216
|
|
|
221
217
|
See [pricing](../../docs/pricing-reference.md) for current rates and tier details.
|
|
222
218
|
|
|
223
219
|
### Milestone Notifications
|
|
224
220
|
|
|
225
|
-
Automated email notifications at usage thresholds
|
|
226
|
-
|
|
227
|
-
| Threshold | Usage | Progress Bar | CTA |
|
|
228
|
-
|-----------|-------|--------------|-----|
|
|
229
|
-
| 50K | 50% | Green | View Dashboard |
|
|
230
|
-
| 80K | 80% | Orange | Upgrade to Pro |
|
|
231
|
-
| 100K | 100% | Red | Verify Email & Continue |
|
|
232
|
-
| 120K | 120% | Red | Upgrade to Pro Now |
|
|
221
|
+
Automated email notifications at usage thresholds with progress bars and CTAs for upgrades.
|
|
233
222
|
|
|
234
|
-
**Email verification:** Required at
|
|
223
|
+
**Email verification:** Required at free tier limit to access grace buffer.
|
|
235
224
|
|
|
236
225
|
**Implementation:**
|
|
237
226
|
- Metering logic: `apps/server/src/customer-metering.ts`
|
|
@@ -111,5 +111,9 @@ export declare function formatErrorStructured(error: ACIErrorDetail): import('./
|
|
|
111
111
|
export declare const ERROR_DETAILS: Record<string, {
|
|
112
112
|
description: string;
|
|
113
113
|
recovery: string;
|
|
114
|
+
aws: string;
|
|
115
|
+
grpc: string;
|
|
116
|
+
http: number;
|
|
117
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
114
118
|
}>;
|
|
115
119
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAUhB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgB/D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAWlE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAqBzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,YAAY,EAAE,cAAc,CA2DhG;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAUhB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgB/D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAWlE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAqBzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,YAAY,EAAE,cAAc,CA2DhG;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CAClD,CAGA,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['ERROR_DETAILS']=void 0x0,exports['createDetailedError']=createDetailedError,exports['formatErrorForUser']=formatErrorForUser,exports['formatErrorForLog']=formatErrorForLog,exports['isACIError']=isACIError,exports['toACIError']=toACIError,exports['formatErrorStructured']=formatErrorStructured;function createDetailedError(
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['ERROR_DETAILS']=void 0x0,exports['createDetailedError']=createDetailedError,exports['formatErrorForUser']=formatErrorForUser,exports['formatErrorForLog']=formatErrorForLog,exports['isACIError']=isACIError,exports['toACIError']=toACIError,exports['formatErrorStructured']=formatErrorStructured;function createDetailedError(_0x2d7e73,_0x694fcf,_0x15d9c9){return{'code':_0x2d7e73,'message':_0x694fcf,'hint':_0x15d9c9?.['hint'],'suggested_action':_0x15d9c9?.['suggested_action'],'field':_0x15d9c9?.['field'],'docs':_0x15d9c9?.['docs'],'severity':_0x15d9c9?.['severity']};}function formatErrorForUser(_0x203f97){const _0x10ab2=[_0x203f97['message']];return _0x203f97['field']&&_0x10ab2['push']('Field:\x20'+_0x203f97['field']),_0x203f97['hint']&&_0x10ab2['push']('Hint:\x20'+_0x203f97['hint']),_0x203f97['docs']&&_0x10ab2['push']('Docs:\x20'+_0x203f97['docs']),_0x10ab2['join']('\x0a');}function formatErrorForLog(_0x37537a){const _0x2b24b2=['['+_0x37537a['code']+']\x20'+_0x37537a['message']];return _0x37537a['field']&&_0x2b24b2['push']('field='+_0x37537a['field']),_0x37537a['hint']&&_0x2b24b2['push']('hint=\x22'+_0x37537a['hint']+'\x22'),_0x37537a['docs']&&_0x2b24b2['push']('docs='+_0x37537a['docs']),_0x2b24b2['join']('\x20|\x20');}function isACIError(_0x3c8c2a){if(typeof _0x3c8c2a!=='object'||_0x3c8c2a===null)return![];const _0x433e45=_0x3c8c2a;return typeof _0x433e45['code']==='string'&&typeof _0x433e45['message']==='string'&&(_0x433e45['hint']===undefined||typeof _0x433e45['hint']==='string')&&(_0x433e45['field']===undefined||typeof _0x433e45['field']==='string')&&(_0x433e45['docs']===undefined||typeof _0x433e45['docs']==='string');}function toACIError(_0x323d47){if(isACIError(_0x323d47))return _0x323d47;if(_0x323d47 instanceof Error)return{'code':'INTERNAL_ERROR','message':_0x323d47['message'],'hint':'An\x20unexpected\x20error\x20occurred'};return{'code':'UNKNOWN_ERROR','message':String(_0x323d47),'hint':'An\x20unexpected\x20error\x20occurred'};}function formatErrorStructured(_0x42e217){const _0x2ae31d=['Error:\x20'+_0x42e217['message'],'Code:\x20'+_0x42e217['code']];if(_0x42e217['severity'])_0x2ae31d['push']('Severity:\x20'+_0x42e217['severity']);if(_0x42e217['field'])_0x2ae31d['push']('Field:\x20'+_0x42e217['field']);if(_0x42e217['hint'])_0x2ae31d['push']('Hint:\x20'+_0x42e217['hint']);if(_0x42e217['suggested_action'])_0x2ae31d['push']('Action:\x20'+_0x42e217['suggested_action']);if(_0x42e217['docs'])_0x2ae31d['push']('Docs:\x20'+_0x42e217['docs']);const _0x5b8fd7=_0x2ae31d['join']('\x0a'),_0x2697bf=['error',_0x42e217['code'],_0x42e217['message']];if(_0x42e217['severity'])_0x2697bf['push']('severity='+_0x42e217['severity']);if(_0x42e217['field'])_0x2697bf['push']('field='+_0x42e217['field']);if(_0x42e217['hint']){const _0x371f05=_0x42e217['hint']['replace'](/"/g,'\x5c\x22');_0x2697bf['push']('hint=\x22'+_0x371f05+'\x22');}if(_0x42e217['suggested_action']){const _0x4a428=_0x42e217['suggested_action']['replace'](/"/g,'\x5c\x22');_0x2697bf['push']('action=\x22'+_0x4a428+'\x22');}if(_0x42e217['docs'])_0x2697bf['push']('docs='+_0x42e217['docs']);const _0x242367=_0x2697bf['join']('\x20|\x20'),_0x219e3b={'code':_0x42e217['code'],'message':_0x42e217['message']};if(_0x42e217['severity'])_0x219e3b['severity']=_0x42e217['severity'];if(_0x42e217['field'])_0x219e3b['field']=_0x42e217['field'];if(_0x42e217['hint'])_0x219e3b['hint']=_0x42e217['hint'];if(_0x42e217['suggested_action'])_0x219e3b['suggested_action']=_0x42e217['suggested_action'];if(_0x42e217['docs'])_0x219e3b['docs']=_0x42e217['docs'];const _0x34cbb8=JSON['stringify'](_0x219e3b),_0x25bfec=['**Error:**\x20'+_0x42e217['message'],'**Code:**\x20`'+_0x42e217['code']+'`'];if(_0x42e217['severity'])_0x25bfec['push']('**Severity:**\x20'+_0x42e217['severity']);if(_0x42e217['field'])_0x25bfec['push']('**Field:**\x20`'+_0x42e217['field']+'`');if(_0x42e217['hint'])_0x25bfec['push']('**Hint:**\x20'+_0x42e217['hint']);if(_0x42e217['suggested_action'])_0x25bfec['push']('**Action:**\x20'+_0x42e217['suggested_action']);if(_0x42e217['docs'])_0x25bfec['push']('**Docs:**\x20['+_0x42e217['docs']+']('+_0x42e217['docs']+')');const _0x2338bd=_0x25bfec['join']('\x0a\x0a');return{..._0x42e217,'formats':{'multiline':_0x5b8fd7,'singleline':_0x242367,'json':_0x34cbb8,'markdown':_0x2338bd}};}exports['ERROR_DETAILS']={};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,83 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Pagination Helper
|
|
4
|
-
*
|
|
5
|
-
* Provides consistent pagination behavior across all PRIVATE.ME packages.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.paginate = paginate;
|
|
9
|
-
exports.createPaginationMetadata = createPaginationMetadata;
|
|
10
|
-
/** Default items per page. */
|
|
11
|
-
const DEFAULT_LIMIT = 50;
|
|
12
|
-
/** Maximum items per page. */
|
|
13
|
-
const MAX_LIMIT = 100;
|
|
14
|
-
/**
|
|
15
|
-
* Paginate a collection of items.
|
|
16
|
-
*
|
|
17
|
-
* Returns a subset of items for the requested page along with pagination metadata.
|
|
18
|
-
*
|
|
19
|
-
* @param items Full collection to paginate
|
|
20
|
-
* @param options Pagination options (page number, limit)
|
|
21
|
-
* @returns Paginated result with data and metadata
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* const allItems = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
26
|
-
* const result = paginate(allItems, { page: 2, limit: 3 });
|
|
27
|
-
* // result.data = [4, 5, 6]
|
|
28
|
-
* // result.pagination.page = 2
|
|
29
|
-
* // result.pagination.total = 10
|
|
30
|
-
* // result.pagination.totalPages = 4
|
|
31
|
-
* // result.pagination.hasNext = true
|
|
32
|
-
* // result.pagination.hasPrev = true
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
function paginate(items, options) {
|
|
36
|
-
// Normalize pagination parameters
|
|
37
|
-
const page = Math.max(1, options?.page ?? 1);
|
|
38
|
-
const limit = Math.min(Math.max(1, options?.limit ?? DEFAULT_LIMIT), MAX_LIMIT);
|
|
39
|
-
const total = items.length;
|
|
40
|
-
const totalPages = Math.max(1, Math.ceil(total / limit));
|
|
41
|
-
// Clamp page to valid range
|
|
42
|
-
const safePage = Math.min(page, totalPages);
|
|
43
|
-
// Calculate slice indices
|
|
44
|
-
const startIndex = (safePage - 1) * limit;
|
|
45
|
-
const endIndex = Math.min(startIndex + limit, total);
|
|
46
|
-
// Extract page data
|
|
47
|
-
const data = items.slice(startIndex, endIndex);
|
|
48
|
-
return {
|
|
49
|
-
data,
|
|
50
|
-
pagination: {
|
|
51
|
-
page: safePage,
|
|
52
|
-
limit,
|
|
53
|
-
total,
|
|
54
|
-
totalPages,
|
|
55
|
-
hasNext: safePage < totalPages,
|
|
56
|
-
hasPrev: safePage > 1,
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Create pagination metadata without slicing data.
|
|
62
|
-
*
|
|
63
|
-
* Useful when you already have the page data and just need the metadata.
|
|
64
|
-
*
|
|
65
|
-
* @param total Total number of items in the full collection
|
|
66
|
-
* @param options Pagination options
|
|
67
|
-
* @returns Pagination metadata only
|
|
68
|
-
*/
|
|
69
|
-
function createPaginationMetadata(total, options) {
|
|
70
|
-
const page = Math.max(1, options?.page ?? 1);
|
|
71
|
-
const limit = Math.min(Math.max(1, options?.limit ?? DEFAULT_LIMIT), MAX_LIMIT);
|
|
72
|
-
const totalPages = Math.max(1, Math.ceil(total / limit));
|
|
73
|
-
const safePage = Math.min(page, totalPages);
|
|
74
|
-
return {
|
|
75
|
-
page: safePage,
|
|
76
|
-
limit,
|
|
77
|
-
total,
|
|
78
|
-
totalPages,
|
|
79
|
-
hasNext: safePage < totalPages,
|
|
80
|
-
hasPrev: safePage > 1,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=pagination.js.map
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['paginate']=paginate,exports['createPaginationMetadata']=createPaginationMetadata;const DEFAULT_LIMIT=0x32,MAX_LIMIT=0x64;function paginate(_0x20d23f,_0x453721){const _0x35f866=Math['max'](0x1,_0x453721?.['page']??0x1),_0x5459d0=Math['min'](Math['max'](0x1,_0x453721?.['limit']??DEFAULT_LIMIT),MAX_LIMIT),_0x5c0fbc=_0x20d23f['length'],_0x3f0fc5=Math['max'](0x1,Math['ceil'](_0x5c0fbc/_0x5459d0)),_0x3a4141=Math['min'](_0x35f866,_0x3f0fc5),_0x1fbeb3=(_0x3a4141-0x1)*_0x5459d0,_0x445867=Math['min'](_0x1fbeb3+_0x5459d0,_0x5c0fbc),_0x125eae=_0x20d23f['slice'](_0x1fbeb3,_0x445867);return{'data':_0x125eae,'pagination':{'page':_0x3a4141,'limit':_0x5459d0,'total':_0x5c0fbc,'totalPages':_0x3f0fc5,'hasNext':_0x3a4141<_0x3f0fc5,'hasPrev':_0x3a4141>0x1}};}function createPaginationMetadata(_0x458428,_0x3956f6){const _0x1fdf6a=Math['max'](0x1,_0x3956f6?.['page']??0x1),_0x439767=Math['min'](Math['max'](0x1,_0x3956f6?.['limit']??DEFAULT_LIMIT),MAX_LIMIT),_0x2d1167=Math['max'](0x1,Math['ceil'](_0x458428/_0x439767)),_0x3d9603=Math['min'](_0x1fdf6a,_0x2d1167);return{'page':_0x3d9603,'limit':_0x439767,'total':_0x458428,'totalPages':_0x2d1167,'hasNext':_0x3d9603<_0x2d1167,'hasPrev':_0x3d9603>0x1};}
|
|
@@ -1,143 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Progress Reporter
|
|
4
|
-
*
|
|
5
|
-
* Provides consistent progress reporting for long-running operations.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.ProgressReporter = void 0;
|
|
9
|
-
exports.createStagedProgress = createStagedProgress;
|
|
10
|
-
/**
|
|
11
|
-
* Progress reporter for long-running operations.
|
|
12
|
-
*
|
|
13
|
-
* Wraps a progress callback with convenient methods for reporting status updates.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* async function processLargeFile(
|
|
18
|
-
* data: Uint8Array,
|
|
19
|
-
* onProgress?: ProgressCallback
|
|
20
|
-
* ): Promise<void> {
|
|
21
|
-
* const progress = new ProgressReporter(onProgress);
|
|
22
|
-
*
|
|
23
|
-
* progress.start('Initializing...');
|
|
24
|
-
* // ... initialization work
|
|
25
|
-
*
|
|
26
|
-
* progress.update('Processing...', 50);
|
|
27
|
-
* // ... processing work
|
|
28
|
-
*
|
|
29
|
-
* progress.complete();
|
|
30
|
-
* }
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
class ProgressReporter {
|
|
34
|
-
callback;
|
|
35
|
-
lastPercent = 0;
|
|
36
|
-
/**
|
|
37
|
-
* Create a new progress reporter.
|
|
38
|
-
*
|
|
39
|
-
* @param callback Optional callback to invoke on progress updates
|
|
40
|
-
*/
|
|
41
|
-
constructor(callback) {
|
|
42
|
-
this.callback = callback;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Report progress with status and optional percentage.
|
|
46
|
-
*
|
|
47
|
-
* @param status Human-readable status message
|
|
48
|
-
* @param percent Progress percentage (0-100), optional
|
|
49
|
-
*/
|
|
50
|
-
report(status, percent) {
|
|
51
|
-
// Clamp percent to valid range if provided
|
|
52
|
-
const normalizedPercent = percent !== undefined ? Math.max(0, Math.min(100, percent)) : undefined;
|
|
53
|
-
// Update last known percent
|
|
54
|
-
if (normalizedPercent !== undefined) {
|
|
55
|
-
this.lastPercent = normalizedPercent;
|
|
56
|
-
}
|
|
57
|
-
// Call callback if provided
|
|
58
|
-
if (this.callback) {
|
|
59
|
-
this.callback(status, normalizedPercent);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Report the start of an operation (0% progress).
|
|
64
|
-
*
|
|
65
|
-
* @param status Status message
|
|
66
|
-
*/
|
|
67
|
-
start(status) {
|
|
68
|
-
this.report(status, 0);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Update progress with status and percentage.
|
|
72
|
-
*
|
|
73
|
-
* @param status Status message
|
|
74
|
-
* @param percent Progress percentage (0-100)
|
|
75
|
-
*/
|
|
76
|
-
update(status, percent) {
|
|
77
|
-
this.report(status, percent);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Report completion (100% progress).
|
|
81
|
-
*/
|
|
82
|
-
complete() {
|
|
83
|
-
this.report('Complete', 100);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Get the last reported percentage.
|
|
87
|
-
*
|
|
88
|
-
* @returns Last reported percentage (0-100)
|
|
89
|
-
*/
|
|
90
|
-
getLastPercent() {
|
|
91
|
-
return this.lastPercent;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
exports.ProgressReporter = ProgressReporter;
|
|
95
|
-
/**
|
|
96
|
-
* Create a progress reporter that tracks multiple stages.
|
|
97
|
-
*
|
|
98
|
-
* Divides the 0-100% range into equal segments for each stage.
|
|
99
|
-
*
|
|
100
|
-
* @param stages Array of stage names
|
|
101
|
-
* @param callback Progress callback
|
|
102
|
-
* @returns Object with methods for advancing through stages
|
|
103
|
-
*
|
|
104
|
-
* @example
|
|
105
|
-
* ```typescript
|
|
106
|
-
* const progress = createStagedProgress(
|
|
107
|
-
* ['Initializing', 'Processing', 'Finalizing'],
|
|
108
|
-
* (status, percent) => console.log(`${status}: ${percent}%`)
|
|
109
|
-
* );
|
|
110
|
-
*
|
|
111
|
-
* progress.start(); // "Initializing: 0%"
|
|
112
|
-
* progress.nextStage(); // "Processing: 33%"
|
|
113
|
-
* progress.nextStage(); // "Finalizing: 67%"
|
|
114
|
-
* progress.complete(); // "Complete: 100%"
|
|
115
|
-
* ```
|
|
116
|
-
*/
|
|
117
|
-
function createStagedProgress(stages, callback) {
|
|
118
|
-
const reporter = new ProgressReporter(callback);
|
|
119
|
-
let currentStageIndex = 0;
|
|
120
|
-
const percentPerStage = stages.length > 0 ? 100 / stages.length : 100;
|
|
121
|
-
return {
|
|
122
|
-
start: () => {
|
|
123
|
-
currentStageIndex = 0;
|
|
124
|
-
reporter.start(stages[0] ?? 'Starting...');
|
|
125
|
-
},
|
|
126
|
-
nextStage: () => {
|
|
127
|
-
currentStageIndex = Math.min(currentStageIndex + 1, stages.length - 1);
|
|
128
|
-
const percent = Math.round(currentStageIndex * percentPerStage);
|
|
129
|
-
reporter.update(stages[currentStageIndex] ?? 'Processing...', percent);
|
|
130
|
-
},
|
|
131
|
-
complete: () => {
|
|
132
|
-
currentStageIndex = stages.length;
|
|
133
|
-
reporter.complete();
|
|
134
|
-
},
|
|
135
|
-
getCurrentStage: () => {
|
|
136
|
-
return stages[currentStageIndex] ?? '';
|
|
137
|
-
},
|
|
138
|
-
getProgress: () => {
|
|
139
|
-
return Math.round(currentStageIndex * percentPerStage);
|
|
140
|
-
},
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=progress.js.map
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['ProgressReporter']=void 0x0,exports['createStagedProgress']=createStagedProgress;class ProgressReporter{['callback'];['lastPercent']=0x0;constructor(_0x25875f){this['callback']=_0x25875f;}['report'](_0x3170fc,_0x23f485){const _0x336ce0=_0x23f485!==undefined?Math['max'](0x0,Math['min'](0x64,_0x23f485)):undefined;_0x336ce0!==undefined&&(this['lastPercent']=_0x336ce0),this['callback']&&this['callback'](_0x3170fc,_0x336ce0);}['start'](_0x6827c5){this['report'](_0x6827c5,0x0);}['update'](_0x3f1407,_0x39dd04){this['report'](_0x3f1407,_0x39dd04);}['complete'](){this['report']('Complete',0x64);}['getLastPercent'](){return this['lastPercent'];}}exports['ProgressReporter']=ProgressReporter;function createStagedProgress(_0x43063e,_0x17b4ad){const _0x572a7e=new ProgressReporter(_0x17b4ad);let _0x1067da=0x0;const _0x1083c9=_0x43063e['length']>0x0?0x64/_0x43063e['length']:0x64;return{'start':()=>{_0x1067da=0x0,_0x572a7e['start'](_0x43063e[0x0]??'Starting...');},'nextStage':()=>{_0x1067da=Math['min'](_0x1067da+0x1,_0x43063e['length']-0x1);const _0x2709df=Math['round'](_0x1067da*_0x1083c9);_0x572a7e['update'](_0x43063e[_0x1067da]??'Processing...',_0x2709df);},'complete':()=>{_0x1067da=_0x43063e['length'],_0x572a7e['complete']();},'getCurrentStage':()=>{return _0x43063e[_0x1067da]??'';},'getProgress':()=>{return Math['round'](_0x1067da*_0x1083c9);}};}
|
|
@@ -1,119 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Search Helper
|
|
4
|
-
*
|
|
5
|
-
* Provides consistent search behavior across all PRIVATE.ME packages.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.search = search;
|
|
9
|
-
/**
|
|
10
|
-
* Search a collection of items.
|
|
11
|
-
*
|
|
12
|
-
* Performs case-insensitive substring matching across specified fields.
|
|
13
|
-
*
|
|
14
|
-
* @param items Collection to search
|
|
15
|
-
* @param options Search options (query, fields, fuzzy, limit)
|
|
16
|
-
* @returns Filtered items matching the search query
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const items = [
|
|
21
|
-
* { name: 'Alice', email: 'alice@example.com' },
|
|
22
|
-
* { name: 'Bob', email: 'bob@example.com' },
|
|
23
|
-
* { name: 'Charlie', email: 'charlie@example.com' },
|
|
24
|
-
* ];
|
|
25
|
-
*
|
|
26
|
-
* const results = search(items, {
|
|
27
|
-
* query: 'alice',
|
|
28
|
-
* fields: ['name', 'email'],
|
|
29
|
-
* });
|
|
30
|
-
* // results = [{ name: 'Alice', email: 'alice@example.com' }]
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
function search(items, options) {
|
|
34
|
-
const { query, fields, fuzzy = true, limit } = options;
|
|
35
|
-
// Empty query returns all items
|
|
36
|
-
if (!query.trim()) {
|
|
37
|
-
return limit !== undefined ? items.slice(0, limit) : items;
|
|
38
|
-
}
|
|
39
|
-
// Normalize query for comparison
|
|
40
|
-
const normalizedQuery = fuzzy ? query.toLowerCase() : query;
|
|
41
|
-
// Filter items that match the query
|
|
42
|
-
const results = items.filter((item) => {
|
|
43
|
-
// If fields are specified, search only those fields
|
|
44
|
-
if (fields && fields.length > 0) {
|
|
45
|
-
return fields.some((field) => {
|
|
46
|
-
const value = getNestedValue(item, field);
|
|
47
|
-
if (value === null || value === undefined)
|
|
48
|
-
return false;
|
|
49
|
-
return matchesQuery(String(value), normalizedQuery, fuzzy);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
// Otherwise, search all string fields
|
|
53
|
-
return searchAllFields(item, normalizedQuery, fuzzy);
|
|
54
|
-
});
|
|
55
|
-
// Apply limit if specified
|
|
56
|
-
return limit !== undefined ? results.slice(0, limit) : results;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Get nested property value using dot notation.
|
|
60
|
-
*
|
|
61
|
-
* @param obj Object to query
|
|
62
|
-
* @param path Dot-separated path (e.g., 'user.profile.name')
|
|
63
|
-
* @returns Value at the path, or null if not found
|
|
64
|
-
*/
|
|
65
|
-
function getNestedValue(obj, path) {
|
|
66
|
-
const parts = path.split('.');
|
|
67
|
-
let current = obj;
|
|
68
|
-
for (const part of parts) {
|
|
69
|
-
if (current === null || current === undefined)
|
|
70
|
-
return null;
|
|
71
|
-
if (typeof current !== 'object')
|
|
72
|
-
return null;
|
|
73
|
-
current = current[part];
|
|
74
|
-
}
|
|
75
|
-
return current;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Check if a value matches the query.
|
|
79
|
-
*
|
|
80
|
-
* @param value Value to check
|
|
81
|
-
* @param query Query string (already normalized)
|
|
82
|
-
* @param fuzzy Whether to use fuzzy (case-insensitive) matching
|
|
83
|
-
* @returns True if value matches query
|
|
84
|
-
*/
|
|
85
|
-
function matchesQuery(value, query, fuzzy) {
|
|
86
|
-
if (fuzzy) {
|
|
87
|
-
return value.toLowerCase().includes(query);
|
|
88
|
-
}
|
|
89
|
-
return value.includes(query);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Search all string fields in an object recursively.
|
|
93
|
-
*
|
|
94
|
-
* @param obj Object to search
|
|
95
|
-
* @param query Normalized query string
|
|
96
|
-
* @param fuzzy Whether to use fuzzy matching
|
|
97
|
-
* @returns True if any field matches the query
|
|
98
|
-
*/
|
|
99
|
-
function searchAllFields(obj, query, fuzzy) {
|
|
100
|
-
if (obj === null || obj === undefined)
|
|
101
|
-
return false;
|
|
102
|
-
// Check primitive types
|
|
103
|
-
if (typeof obj === 'string') {
|
|
104
|
-
return matchesQuery(obj, query, fuzzy);
|
|
105
|
-
}
|
|
106
|
-
if (typeof obj === 'number' || typeof obj === 'boolean') {
|
|
107
|
-
return matchesQuery(String(obj), query, fuzzy);
|
|
108
|
-
}
|
|
109
|
-
// Recurse into arrays
|
|
110
|
-
if (Array.isArray(obj)) {
|
|
111
|
-
return obj.some((item) => searchAllFields(item, query, fuzzy));
|
|
112
|
-
}
|
|
113
|
-
// Recurse into objects
|
|
114
|
-
if (typeof obj === 'object') {
|
|
115
|
-
return Object.values(obj).some((value) => searchAllFields(value, query, fuzzy));
|
|
116
|
-
}
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=search.js.map
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['search']=search;function search(_0x141736,_0x22fbbc){const {query:_0x7aff6c,fields:_0x56215c,fuzzy:fuzzy=!![],limit:_0x4fed08}=_0x22fbbc;if(!_0x7aff6c['trim']())return _0x4fed08!==undefined?_0x141736['slice'](0x0,_0x4fed08):_0x141736;const _0x10c28c=fuzzy?_0x7aff6c['toLowerCase']():_0x7aff6c,_0x52cbfe=_0x141736['filter'](_0x121d25=>{if(_0x56215c&&_0x56215c['length']>0x0)return _0x56215c['some'](_0x381826=>{const _0x429d72=getNestedValue(_0x121d25,_0x381826);if(_0x429d72===null||_0x429d72===undefined)return![];return matchesQuery(String(_0x429d72),_0x10c28c,fuzzy);});return searchAllFields(_0x121d25,_0x10c28c,fuzzy);});return _0x4fed08!==undefined?_0x52cbfe['slice'](0x0,_0x4fed08):_0x52cbfe;}function getNestedValue(_0x276215,_0x2ba7b5){const _0x7de837=_0x2ba7b5['split']('.');let _0x34531d=_0x276215;for(const _0x5a4494 of _0x7de837){if(_0x34531d===null||_0x34531d===undefined)return null;if(typeof _0x34531d!=='object')return null;_0x34531d=_0x34531d[_0x5a4494];}return _0x34531d;}function matchesQuery(_0x21f8ee,_0x2f3bf9,_0x252b5f){if(_0x252b5f)return _0x21f8ee['toLowerCase']()['includes'](_0x2f3bf9);return _0x21f8ee['includes'](_0x2f3bf9);}function searchAllFields(_0x2adf64,_0x14dd10,_0x54b823){if(_0x2adf64===null||_0x2adf64===undefined)return![];if(typeof _0x2adf64==='string')return matchesQuery(_0x2adf64,_0x14dd10,_0x54b823);if(typeof _0x2adf64==='number'||typeof _0x2adf64==='boolean')return matchesQuery(String(_0x2adf64),_0x14dd10,_0x54b823);if(Array['isArray'](_0x2adf64))return _0x2adf64['some'](_0xd99fc2=>searchAllFields(_0xd99fc2,_0x14dd10,_0x54b823));if(typeof _0x2adf64==='object')return Object['values'](_0x2adf64)['some'](_0x16dc9a=>searchAllFields(_0x16dc9a,_0x14dd10,_0x54b823));return![];}
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* UX Helpers - Type Definitions
|
|
4
|
-
*
|
|
5
|
-
* Shared types for UX utilities across all PRIVATE.ME packages.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
//# sourceMappingURL=types.js.map
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
|
@@ -111,5 +111,9 @@ export declare function formatErrorStructured(error: ACIErrorDetail): import('./
|
|
|
111
111
|
export declare const ERROR_DETAILS: Record<string, {
|
|
112
112
|
description: string;
|
|
113
113
|
recovery: string;
|
|
114
|
+
aws: string;
|
|
115
|
+
grpc: string;
|
|
116
|
+
http: number;
|
|
117
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
114
118
|
}>;
|
|
115
119
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAUhB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgB/D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAWlE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAqBzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,YAAY,EAAE,cAAc,CA2DhG;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAUhB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgBhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAgB/D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAWlE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAqBzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,YAAY,EAAE,cAAc,CA2DhG;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CAClD,CAGA,CAAC"}
|