@reminix/cli 0.1.10 → 0.1.12
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 +5 -2
- package/dist/commands/deploy.d.ts +6 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +323 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +10 -29
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/secret.d.ts.map +1 -1
- package/dist/commands/secret.js +6 -8
- package/dist/commands/secret.js.map +1 -1
- package/dist/commands/version.d.ts +1 -1
- package/dist/commands/version.js +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api-types.d.ts +478 -15
- package/dist/lib/api-types.d.ts.map +1 -1
- package/dist/lib/pagination.d.ts +46 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +58 -0
- package/dist/lib/pagination.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination utilities for fetching items from paginated API endpoints
|
|
3
|
+
*/
|
|
4
|
+
interface PaginatedResponse<T> {
|
|
5
|
+
data: T[];
|
|
6
|
+
nextCursor: string | null;
|
|
7
|
+
hasMore: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface FetchPageParams {
|
|
10
|
+
limit?: number;
|
|
11
|
+
cursor?: string;
|
|
12
|
+
}
|
|
13
|
+
interface FetchPageResult<T> {
|
|
14
|
+
data?: PaginatedResponse<T>;
|
|
15
|
+
error?: unknown;
|
|
16
|
+
}
|
|
17
|
+
interface FetchAllPagesOptions {
|
|
18
|
+
/** Maximum total items to fetch. If not specified, fetches all. */
|
|
19
|
+
maxItems?: number;
|
|
20
|
+
/** Items per page/request (default: 100) */
|
|
21
|
+
pageSize?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Fetch items from a paginated endpoint
|
|
25
|
+
*
|
|
26
|
+
* @param fetchPage - Function that fetches a single page given limit/cursor params
|
|
27
|
+
* @param options - Pagination options (maxItems, pageSize)
|
|
28
|
+
* @returns Array of items (up to maxItems if specified, otherwise all)
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* // Fetch all secrets
|
|
33
|
+
* const allSecrets = await fetchAllPages((params) =>
|
|
34
|
+
* client.GET('/secrets', { params: { query: params } })
|
|
35
|
+
* );
|
|
36
|
+
*
|
|
37
|
+
* // Fetch at most 20 secrets
|
|
38
|
+
* const limitedSecrets = await fetchAllPages(
|
|
39
|
+
* (params) => client.GET('/secrets', { params: { query: params } }),
|
|
40
|
+
* { maxItems: 20 }
|
|
41
|
+
* );
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function fetchAllPages<T>(fetchPage: (params: FetchPageParams) => Promise<FetchPageResult<T>>, options?: FetchAllPagesOptions): Promise<T[]>;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/lib/pagination.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,iBAAiB,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,SAAS,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,CAAC,EAAE,CAAC,CAwCd"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination utilities for fetching items from paginated API endpoints
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Fetch items from a paginated endpoint
|
|
6
|
+
*
|
|
7
|
+
* @param fetchPage - Function that fetches a single page given limit/cursor params
|
|
8
|
+
* @param options - Pagination options (maxItems, pageSize)
|
|
9
|
+
* @returns Array of items (up to maxItems if specified, otherwise all)
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Fetch all secrets
|
|
14
|
+
* const allSecrets = await fetchAllPages((params) =>
|
|
15
|
+
* client.GET('/secrets', { params: { query: params } })
|
|
16
|
+
* );
|
|
17
|
+
*
|
|
18
|
+
* // Fetch at most 20 secrets
|
|
19
|
+
* const limitedSecrets = await fetchAllPages(
|
|
20
|
+
* (params) => client.GET('/secrets', { params: { query: params } }),
|
|
21
|
+
* { maxItems: 20 }
|
|
22
|
+
* );
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export async function fetchAllPages(fetchPage, options = {}) {
|
|
26
|
+
const { maxItems, pageSize = 100 } = options;
|
|
27
|
+
const allItems = [];
|
|
28
|
+
let cursor = undefined;
|
|
29
|
+
do {
|
|
30
|
+
// Calculate how many items to request this page
|
|
31
|
+
const remaining = maxItems !== undefined ? maxItems - allItems.length : pageSize;
|
|
32
|
+
const limit = Math.min(pageSize, remaining);
|
|
33
|
+
// If we've already collected enough, stop
|
|
34
|
+
if (maxItems !== undefined && allItems.length >= maxItems) {
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
const { data, error } = await fetchPage({ limit, cursor });
|
|
38
|
+
if (error) {
|
|
39
|
+
throw new Error(`API error: ${JSON.stringify(error)}`);
|
|
40
|
+
}
|
|
41
|
+
if (!data)
|
|
42
|
+
break;
|
|
43
|
+
allItems.push(...data.data);
|
|
44
|
+
cursor = data.nextCursor ?? undefined;
|
|
45
|
+
// Stop if we've collected enough items
|
|
46
|
+
if (maxItems !== undefined && allItems.length >= maxItems) {
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
if (!data.hasMore)
|
|
50
|
+
break;
|
|
51
|
+
} while (cursor);
|
|
52
|
+
// Trim to maxItems if we fetched slightly more
|
|
53
|
+
if (maxItems !== undefined && allItems.length > maxItems) {
|
|
54
|
+
return allItems.slice(0, maxItems);
|
|
55
|
+
}
|
|
56
|
+
return allItems;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/lib/pagination.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAmE,EACnE,UAAgC,EAAE;IAElC,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,IAAI,MAAM,GAAuB,SAAS,CAAC;IAE3C,GAAG,CAAC;QACF,gDAAgD;QAChD,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE5C,0CAA0C;QAC1C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC1D,MAAM;QACR,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,IAAI;YAAE,MAAM;QAEjB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;QAEtC,uCAAuC;QACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC1D,MAAM;QACR,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM;IAC3B,CAAC,QAAQ,MAAM,EAAE;IAEjB,+CAA+C;IAC/C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|