@cranberry-money/shared-utils 8.23.445 → 8.23.446
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pagination.d.ts +32 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +39 -0
- package/dist/pagination.js.map +1 -0
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ export { formatPhoneForDisplay, cleanPhoneNumber } from './phoneFormatting';
|
|
|
9
9
|
export { formatSourceOfFunds, formatIntendedUse } from './formatting-labels';
|
|
10
10
|
export { validateUserProfileField } from './user-validation';
|
|
11
11
|
export { getUserVerificationStatus, type VerificationStatusType } from './user-verification';
|
|
12
|
+
export { getNextPageFromUrl, getNextPageParam } from './pagination';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
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,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACvH,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3K,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1I,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACvH,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3K,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1I,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,4 +9,5 @@ export { formatPhoneForDisplay, cleanPhoneNumber } from './phoneFormatting';
|
|
|
9
9
|
export { formatSourceOfFunds, formatIntendedUse } from './formatting-labels';
|
|
10
10
|
export { validateUserProfileField } from './user-validation';
|
|
11
11
|
export { getUserVerificationStatus } from './user-verification';
|
|
12
|
+
export { getNextPageFromUrl, getNextPageParam } from './pagination';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAkB,MAAM,QAAQ,CAAC;AACvH,OAAO,EAAE,cAAc,EAA8B,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3K,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1I,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAA+B,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAkB,MAAM,QAAQ,CAAC;AACvH,OAAO,EAAE,cAAc,EAA8B,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3K,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1I,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAA+B,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { PaginatedResponse } from '@cranberry-money/shared-types';
|
|
2
|
+
/**
|
|
3
|
+
* Extract the next page number from a paginated API response URL.
|
|
4
|
+
* Returns undefined if there are no more pages.
|
|
5
|
+
*
|
|
6
|
+
* @param nextUrl - The "next" URL from a paginated response, or null if no more pages
|
|
7
|
+
* @returns The next page number, or undefined if no more pages
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const nextPage = getNextPageFromUrl(response.data.next);
|
|
11
|
+
* // nextPage = 2 if next URL is "...?page=2"
|
|
12
|
+
* // nextPage = undefined if next URL is null
|
|
13
|
+
*/
|
|
14
|
+
export declare const getNextPageFromUrl: (nextUrl: string | null | undefined) => number | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Generic helper to extract the next page number from any paginated response.
|
|
17
|
+
* Designed for use with TanStack Query's useInfiniteQuery getNextPageParam.
|
|
18
|
+
*
|
|
19
|
+
* @param lastPage - The last page response containing a PaginatedResponse in data
|
|
20
|
+
* @returns The next page number, or undefined if no more pages
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Use with TanStack Query's useInfiniteQuery
|
|
24
|
+
* useInfiniteQuery({
|
|
25
|
+
* queryKey: ['items'],
|
|
26
|
+
* queryFn: ({ pageParam = 1 }) => getItems(apiClient, { page: pageParam }),
|
|
27
|
+
* getNextPageParam: (lastPage) => getNextPageParam(lastPage.data),
|
|
28
|
+
* initialPageParam: 1,
|
|
29
|
+
* });
|
|
30
|
+
*/
|
|
31
|
+
export declare const getNextPageParam: <T>(lastPage: PaginatedResponse<T> | undefined) => number | undefined;
|
|
32
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,SAKhF,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,UAAU,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,KAAG,MAAM,GAAG,SAEzF,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract the next page number from a paginated API response URL.
|
|
3
|
+
* Returns undefined if there are no more pages.
|
|
4
|
+
*
|
|
5
|
+
* @param nextUrl - The "next" URL from a paginated response, or null if no more pages
|
|
6
|
+
* @returns The next page number, or undefined if no more pages
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const nextPage = getNextPageFromUrl(response.data.next);
|
|
10
|
+
* // nextPage = 2 if next URL is "...?page=2"
|
|
11
|
+
* // nextPage = undefined if next URL is null
|
|
12
|
+
*/
|
|
13
|
+
export const getNextPageFromUrl = (nextUrl) => {
|
|
14
|
+
if (!nextUrl)
|
|
15
|
+
return undefined;
|
|
16
|
+
const url = new URL(nextUrl);
|
|
17
|
+
const page = url.searchParams.get('page');
|
|
18
|
+
return page ? Number(page) : undefined;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Generic helper to extract the next page number from any paginated response.
|
|
22
|
+
* Designed for use with TanStack Query's useInfiniteQuery getNextPageParam.
|
|
23
|
+
*
|
|
24
|
+
* @param lastPage - The last page response containing a PaginatedResponse in data
|
|
25
|
+
* @returns The next page number, or undefined if no more pages
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Use with TanStack Query's useInfiniteQuery
|
|
29
|
+
* useInfiniteQuery({
|
|
30
|
+
* queryKey: ['items'],
|
|
31
|
+
* queryFn: ({ pageParam = 1 }) => getItems(apiClient, { page: pageParam }),
|
|
32
|
+
* getNextPageParam: (lastPage) => getNextPageParam(lastPage.data),
|
|
33
|
+
* initialPageParam: 1,
|
|
34
|
+
* });
|
|
35
|
+
*/
|
|
36
|
+
export const getNextPageParam = (lastPage) => {
|
|
37
|
+
return getNextPageFromUrl(lastPage?.next);
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAkC,EAAsB,EAAE;IAC3F,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,QAA0C,EAAsB,EAAE;IACpG,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cranberry-money/shared-utils",
|
|
3
|
-
"version": "8.23.
|
|
3
|
+
"version": "8.23.446",
|
|
4
4
|
"description": "Shared utility functions for Blueberry platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"prepublishOnly": "npm run clean && npm run typecheck && npm test && npm run build"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@cranberry-money/shared-constants": "^8.15.
|
|
33
|
-
"@cranberry-money/shared-types": "^8.22.
|
|
32
|
+
"@cranberry-money/shared-constants": "^8.15.471",
|
|
33
|
+
"@cranberry-money/shared-types": "^8.22.446"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/jest": "^30.0.0",
|