@pierre/storage 0.4.0 → 0.4.1
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 +12 -1
- package/dist/index.cjs +99 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +53 -1
- package/dist/index.d.ts +53 -1
- package/dist/index.js +99 -1
- package/dist/index.js.map +1 -1
- package/package.json +39 -38
- package/src/index.ts +108 -0
- package/src/schemas.ts +26 -0
- package/src/types.ts +57 -0
package/dist/index.d.cts
CHANGED
|
@@ -455,6 +455,7 @@ interface Repo {
|
|
|
455
455
|
listCommits(options?: ListCommitsOptions): Promise<ListCommitsResult>;
|
|
456
456
|
getBranchDiff(options: GetBranchDiffOptions): Promise<GetBranchDiffResult>;
|
|
457
457
|
getCommitDiff(options: GetCommitDiffOptions): Promise<GetCommitDiffResult>;
|
|
458
|
+
grep(options: GrepOptions): Promise<GrepResult>;
|
|
458
459
|
pullUpstream(options?: PullUpstreamOptions): Promise<void>;
|
|
459
460
|
restoreCommit(options: RestoreCommitOptions): Promise<RestoreCommitResult>;
|
|
460
461
|
createBranch(options: CreateBranchOptions): Promise<CreateBranchResult>;
|
|
@@ -592,6 +593,57 @@ interface GetCommitDiffResult {
|
|
|
592
593
|
files: FileDiff[];
|
|
593
594
|
filteredFiles: FilteredFile[];
|
|
594
595
|
}
|
|
596
|
+
interface GrepOptions extends GitStorageInvocationOptions {
|
|
597
|
+
ref?: string;
|
|
598
|
+
paths?: string[];
|
|
599
|
+
query: {
|
|
600
|
+
pattern: string;
|
|
601
|
+
/**
|
|
602
|
+
* Default is case-sensitive.
|
|
603
|
+
* When omitted, the server default is used.
|
|
604
|
+
*/
|
|
605
|
+
caseSensitive?: boolean;
|
|
606
|
+
};
|
|
607
|
+
fileFilters?: {
|
|
608
|
+
includeGlobs?: string[];
|
|
609
|
+
excludeGlobs?: string[];
|
|
610
|
+
extensionFilters?: string[];
|
|
611
|
+
};
|
|
612
|
+
context?: {
|
|
613
|
+
before?: number;
|
|
614
|
+
after?: number;
|
|
615
|
+
};
|
|
616
|
+
limits?: {
|
|
617
|
+
maxLines?: number;
|
|
618
|
+
maxMatchesPerFile?: number;
|
|
619
|
+
};
|
|
620
|
+
pagination?: {
|
|
621
|
+
cursor?: string;
|
|
622
|
+
limit?: number;
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
interface GrepLine {
|
|
626
|
+
lineNumber: number;
|
|
627
|
+
text: string;
|
|
628
|
+
type: string;
|
|
629
|
+
}
|
|
630
|
+
interface GrepFileMatch {
|
|
631
|
+
path: string;
|
|
632
|
+
lines: GrepLine[];
|
|
633
|
+
}
|
|
634
|
+
interface GrepResult {
|
|
635
|
+
query: {
|
|
636
|
+
pattern: string;
|
|
637
|
+
caseSensitive: boolean;
|
|
638
|
+
};
|
|
639
|
+
repo: {
|
|
640
|
+
ref: string;
|
|
641
|
+
commit: string;
|
|
642
|
+
};
|
|
643
|
+
matches: GrepFileMatch[];
|
|
644
|
+
nextCursor?: string;
|
|
645
|
+
hasMore: boolean;
|
|
646
|
+
}
|
|
595
647
|
interface DiffStats {
|
|
596
648
|
files: number;
|
|
597
649
|
additions: number;
|
|
@@ -910,4 +962,4 @@ declare function createClient(options: GitStorageOptions): GitStorage;
|
|
|
910
962
|
|
|
911
963
|
type StorageOptions = GitStorageOptions;
|
|
912
964
|
|
|
913
|
-
export { ApiError, type BaseRepo, type BlobLike, type BranchInfo, GitStorage as CodeStorage, type CommitBuilder, type CommitFileOptions, type CommitFileSource, type CommitInfo, type CommitResult, type CommitSignature, type CommitTextFileOptions, type CreateBranchOptions, type CreateBranchResponse, type CreateBranchResult, type CreateCommitBranchOptions, type CreateCommitFromDiffOptions, type CreateCommitOptions, type CreateRepoOptions, type DeleteRepoOptions, type DeleteRepoResult, type DiffFileBase, type DiffFileState, type DiffSource, type DiffStats, type FileDiff, type FileLike, type FilteredFile, type FindOneOptions, type GetBranchDiffOptions, type GetBranchDiffResponse, type GetBranchDiffResult, type GetCommitDiffOptions, type GetCommitDiffResponse, type GetCommitDiffResult, type GetFileOptions, type GetRemoteURLOptions, type GitFileMode, GitStorage, type GitStorageOptions, type LegacyCreateCommitOptions, type ListBranchesOptions, type ListBranchesResponse, type ListBranchesResult, type ListCommitsOptions, type ListCommitsResponse, type ListCommitsResult, type ListFilesOptions, type ListFilesResponse, type ListFilesResult, type OverrideableGitStorageOptions, type ParsedWebhookSignature, type PullUpstreamOptions, type RawBranchInfo, type RawCommitInfo, type RawFileDiff, type RawFilteredFile, type RawWebhookPushEvent, type ReadableStreamLike, type ReadableStreamReaderLike, type RefUpdate, RefUpdateError, type RefUpdateReason, type Repo, type RestoreCommitOptions, type RestoreCommitResult, type StorageOptions, type SupportedRepoProvider, type TextEncoding, type ValidAPIVersion, type ValidMethod, type ValidPath, type WebhookEventPayload, type WebhookPushEvent, type WebhookUnknownEvent, type WebhookValidationOptions, type WebhookValidationResult, createClient, parseSignatureHeader, validateWebhook, validateWebhookSignature };
|
|
965
|
+
export { ApiError, type BaseRepo, type BlobLike, type BranchInfo, GitStorage as CodeStorage, type CommitBuilder, type CommitFileOptions, type CommitFileSource, type CommitInfo, type CommitResult, type CommitSignature, type CommitTextFileOptions, type CreateBranchOptions, type CreateBranchResponse, type CreateBranchResult, type CreateCommitBranchOptions, type CreateCommitFromDiffOptions, type CreateCommitOptions, type CreateRepoOptions, type DeleteRepoOptions, type DeleteRepoResult, type DiffFileBase, type DiffFileState, type DiffSource, type DiffStats, type FileDiff, type FileLike, type FilteredFile, type FindOneOptions, type GetBranchDiffOptions, type GetBranchDiffResponse, type GetBranchDiffResult, type GetCommitDiffOptions, type GetCommitDiffResponse, type GetCommitDiffResult, type GetFileOptions, type GetRemoteURLOptions, type GitFileMode, GitStorage, type GitStorageOptions, type GrepFileMatch, type GrepLine, type GrepOptions, type GrepResult, type LegacyCreateCommitOptions, type ListBranchesOptions, type ListBranchesResponse, type ListBranchesResult, type ListCommitsOptions, type ListCommitsResponse, type ListCommitsResult, type ListFilesOptions, type ListFilesResponse, type ListFilesResult, type OverrideableGitStorageOptions, type ParsedWebhookSignature, type PullUpstreamOptions, type RawBranchInfo, type RawCommitInfo, type RawFileDiff, type RawFilteredFile, type RawWebhookPushEvent, type ReadableStreamLike, type ReadableStreamReaderLike, type RefUpdate, RefUpdateError, type RefUpdateReason, type Repo, type RestoreCommitOptions, type RestoreCommitResult, type StorageOptions, type SupportedRepoProvider, type TextEncoding, type ValidAPIVersion, type ValidMethod, type ValidPath, type WebhookEventPayload, type WebhookPushEvent, type WebhookUnknownEvent, type WebhookValidationOptions, type WebhookValidationResult, createClient, parseSignatureHeader, validateWebhook, validateWebhookSignature };
|
package/dist/index.d.ts
CHANGED
|
@@ -455,6 +455,7 @@ interface Repo {
|
|
|
455
455
|
listCommits(options?: ListCommitsOptions): Promise<ListCommitsResult>;
|
|
456
456
|
getBranchDiff(options: GetBranchDiffOptions): Promise<GetBranchDiffResult>;
|
|
457
457
|
getCommitDiff(options: GetCommitDiffOptions): Promise<GetCommitDiffResult>;
|
|
458
|
+
grep(options: GrepOptions): Promise<GrepResult>;
|
|
458
459
|
pullUpstream(options?: PullUpstreamOptions): Promise<void>;
|
|
459
460
|
restoreCommit(options: RestoreCommitOptions): Promise<RestoreCommitResult>;
|
|
460
461
|
createBranch(options: CreateBranchOptions): Promise<CreateBranchResult>;
|
|
@@ -592,6 +593,57 @@ interface GetCommitDiffResult {
|
|
|
592
593
|
files: FileDiff[];
|
|
593
594
|
filteredFiles: FilteredFile[];
|
|
594
595
|
}
|
|
596
|
+
interface GrepOptions extends GitStorageInvocationOptions {
|
|
597
|
+
ref?: string;
|
|
598
|
+
paths?: string[];
|
|
599
|
+
query: {
|
|
600
|
+
pattern: string;
|
|
601
|
+
/**
|
|
602
|
+
* Default is case-sensitive.
|
|
603
|
+
* When omitted, the server default is used.
|
|
604
|
+
*/
|
|
605
|
+
caseSensitive?: boolean;
|
|
606
|
+
};
|
|
607
|
+
fileFilters?: {
|
|
608
|
+
includeGlobs?: string[];
|
|
609
|
+
excludeGlobs?: string[];
|
|
610
|
+
extensionFilters?: string[];
|
|
611
|
+
};
|
|
612
|
+
context?: {
|
|
613
|
+
before?: number;
|
|
614
|
+
after?: number;
|
|
615
|
+
};
|
|
616
|
+
limits?: {
|
|
617
|
+
maxLines?: number;
|
|
618
|
+
maxMatchesPerFile?: number;
|
|
619
|
+
};
|
|
620
|
+
pagination?: {
|
|
621
|
+
cursor?: string;
|
|
622
|
+
limit?: number;
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
interface GrepLine {
|
|
626
|
+
lineNumber: number;
|
|
627
|
+
text: string;
|
|
628
|
+
type: string;
|
|
629
|
+
}
|
|
630
|
+
interface GrepFileMatch {
|
|
631
|
+
path: string;
|
|
632
|
+
lines: GrepLine[];
|
|
633
|
+
}
|
|
634
|
+
interface GrepResult {
|
|
635
|
+
query: {
|
|
636
|
+
pattern: string;
|
|
637
|
+
caseSensitive: boolean;
|
|
638
|
+
};
|
|
639
|
+
repo: {
|
|
640
|
+
ref: string;
|
|
641
|
+
commit: string;
|
|
642
|
+
};
|
|
643
|
+
matches: GrepFileMatch[];
|
|
644
|
+
nextCursor?: string;
|
|
645
|
+
hasMore: boolean;
|
|
646
|
+
}
|
|
595
647
|
interface DiffStats {
|
|
596
648
|
files: number;
|
|
597
649
|
additions: number;
|
|
@@ -910,4 +962,4 @@ declare function createClient(options: GitStorageOptions): GitStorage;
|
|
|
910
962
|
|
|
911
963
|
type StorageOptions = GitStorageOptions;
|
|
912
964
|
|
|
913
|
-
export { ApiError, type BaseRepo, type BlobLike, type BranchInfo, GitStorage as CodeStorage, type CommitBuilder, type CommitFileOptions, type CommitFileSource, type CommitInfo, type CommitResult, type CommitSignature, type CommitTextFileOptions, type CreateBranchOptions, type CreateBranchResponse, type CreateBranchResult, type CreateCommitBranchOptions, type CreateCommitFromDiffOptions, type CreateCommitOptions, type CreateRepoOptions, type DeleteRepoOptions, type DeleteRepoResult, type DiffFileBase, type DiffFileState, type DiffSource, type DiffStats, type FileDiff, type FileLike, type FilteredFile, type FindOneOptions, type GetBranchDiffOptions, type GetBranchDiffResponse, type GetBranchDiffResult, type GetCommitDiffOptions, type GetCommitDiffResponse, type GetCommitDiffResult, type GetFileOptions, type GetRemoteURLOptions, type GitFileMode, GitStorage, type GitStorageOptions, type LegacyCreateCommitOptions, type ListBranchesOptions, type ListBranchesResponse, type ListBranchesResult, type ListCommitsOptions, type ListCommitsResponse, type ListCommitsResult, type ListFilesOptions, type ListFilesResponse, type ListFilesResult, type OverrideableGitStorageOptions, type ParsedWebhookSignature, type PullUpstreamOptions, type RawBranchInfo, type RawCommitInfo, type RawFileDiff, type RawFilteredFile, type RawWebhookPushEvent, type ReadableStreamLike, type ReadableStreamReaderLike, type RefUpdate, RefUpdateError, type RefUpdateReason, type Repo, type RestoreCommitOptions, type RestoreCommitResult, type StorageOptions, type SupportedRepoProvider, type TextEncoding, type ValidAPIVersion, type ValidMethod, type ValidPath, type WebhookEventPayload, type WebhookPushEvent, type WebhookUnknownEvent, type WebhookValidationOptions, type WebhookValidationResult, createClient, parseSignatureHeader, validateWebhook, validateWebhookSignature };
|
|
965
|
+
export { ApiError, type BaseRepo, type BlobLike, type BranchInfo, GitStorage as CodeStorage, type CommitBuilder, type CommitFileOptions, type CommitFileSource, type CommitInfo, type CommitResult, type CommitSignature, type CommitTextFileOptions, type CreateBranchOptions, type CreateBranchResponse, type CreateBranchResult, type CreateCommitBranchOptions, type CreateCommitFromDiffOptions, type CreateCommitOptions, type CreateRepoOptions, type DeleteRepoOptions, type DeleteRepoResult, type DiffFileBase, type DiffFileState, type DiffSource, type DiffStats, type FileDiff, type FileLike, type FilteredFile, type FindOneOptions, type GetBranchDiffOptions, type GetBranchDiffResponse, type GetBranchDiffResult, type GetCommitDiffOptions, type GetCommitDiffResponse, type GetCommitDiffResult, type GetFileOptions, type GetRemoteURLOptions, type GitFileMode, GitStorage, type GitStorageOptions, type GrepFileMatch, type GrepLine, type GrepOptions, type GrepResult, type LegacyCreateCommitOptions, type ListBranchesOptions, type ListBranchesResponse, type ListBranchesResult, type ListCommitsOptions, type ListCommitsResponse, type ListCommitsResult, type ListFilesOptions, type ListFilesResponse, type ListFilesResult, type OverrideableGitStorageOptions, type ParsedWebhookSignature, type PullUpstreamOptions, type RawBranchInfo, type RawCommitInfo, type RawFileDiff, type RawFilteredFile, type RawWebhookPushEvent, type ReadableStreamLike, type ReadableStreamReaderLike, type RefUpdate, RefUpdateError, type RefUpdateReason, type Repo, type RestoreCommitOptions, type RestoreCommitResult, type StorageOptions, type SupportedRepoProvider, type TextEncoding, type ValidAPIVersion, type ValidMethod, type ValidPath, type WebhookEventPayload, type WebhookPushEvent, type WebhookUnknownEvent, type WebhookValidationOptions, type WebhookValidationResult, createClient, parseSignatureHeader, validateWebhook, validateWebhookSignature };
|
package/dist/index.js
CHANGED
|
@@ -150,6 +150,28 @@ var restoreCommitResponseSchema = z.object({
|
|
|
150
150
|
commit: restoreCommitCommitSchema.partial().optional().nullable(),
|
|
151
151
|
result: refUpdateResultWithOptionalsSchema
|
|
152
152
|
});
|
|
153
|
+
var grepLineSchema = z.object({
|
|
154
|
+
line_number: z.number(),
|
|
155
|
+
text: z.string(),
|
|
156
|
+
type: z.string()
|
|
157
|
+
});
|
|
158
|
+
var grepFileMatchSchema = z.object({
|
|
159
|
+
path: z.string(),
|
|
160
|
+
lines: z.array(grepLineSchema)
|
|
161
|
+
});
|
|
162
|
+
var grepResponseSchema = z.object({
|
|
163
|
+
query: z.object({
|
|
164
|
+
pattern: z.string(),
|
|
165
|
+
case_sensitive: z.boolean()
|
|
166
|
+
}),
|
|
167
|
+
repo: z.object({
|
|
168
|
+
ref: z.string(),
|
|
169
|
+
commit: z.string()
|
|
170
|
+
}),
|
|
171
|
+
matches: z.array(grepFileMatchSchema),
|
|
172
|
+
next_cursor: z.string().nullable().optional(),
|
|
173
|
+
has_more: z.boolean()
|
|
174
|
+
});
|
|
153
175
|
var errorEnvelopeSchema = z.object({
|
|
154
176
|
error: z.string()
|
|
155
177
|
});
|
|
@@ -444,7 +466,7 @@ function concatChunks(a, b) {
|
|
|
444
466
|
|
|
445
467
|
// package.json
|
|
446
468
|
var package_default = {
|
|
447
|
-
version: "0.4.
|
|
469
|
+
version: "0.4.1"};
|
|
448
470
|
|
|
449
471
|
// src/version.ts
|
|
450
472
|
var PACKAGE_NAME = "code-storage-sdk";
|
|
@@ -1513,6 +1535,19 @@ function transformCreateBranchResult(raw) {
|
|
|
1513
1535
|
commitSha: raw.commit_sha ?? void 0
|
|
1514
1536
|
};
|
|
1515
1537
|
}
|
|
1538
|
+
function transformGrepLine(raw) {
|
|
1539
|
+
return {
|
|
1540
|
+
lineNumber: raw.line_number,
|
|
1541
|
+
text: raw.text,
|
|
1542
|
+
type: raw.type
|
|
1543
|
+
};
|
|
1544
|
+
}
|
|
1545
|
+
function transformGrepFileMatch(raw) {
|
|
1546
|
+
return {
|
|
1547
|
+
path: raw.path,
|
|
1548
|
+
lines: raw.lines.map(transformGrepLine)
|
|
1549
|
+
};
|
|
1550
|
+
}
|
|
1516
1551
|
var RepoImpl = class {
|
|
1517
1552
|
constructor(id, options, generateJWT) {
|
|
1518
1553
|
this.id = id;
|
|
@@ -1665,6 +1700,69 @@ var RepoImpl = class {
|
|
|
1665
1700
|
const raw = commitDiffResponseSchema.parse(await response.json());
|
|
1666
1701
|
return transformCommitDiffResult(raw);
|
|
1667
1702
|
}
|
|
1703
|
+
async grep(options) {
|
|
1704
|
+
const pattern = options?.query?.pattern?.trim();
|
|
1705
|
+
if (!pattern) {
|
|
1706
|
+
throw new Error("grep query.pattern is required");
|
|
1707
|
+
}
|
|
1708
|
+
const ttl = resolveInvocationTtlSeconds(options, DEFAULT_TOKEN_TTL_SECONDS);
|
|
1709
|
+
const jwt = await this.generateJWT(this.id, {
|
|
1710
|
+
permissions: ["git:read"],
|
|
1711
|
+
ttl
|
|
1712
|
+
});
|
|
1713
|
+
const body = {
|
|
1714
|
+
query: {
|
|
1715
|
+
pattern,
|
|
1716
|
+
...typeof options.query.caseSensitive === "boolean" ? { case_sensitive: options.query.caseSensitive } : {}
|
|
1717
|
+
}
|
|
1718
|
+
};
|
|
1719
|
+
if (options.ref) {
|
|
1720
|
+
body.rev = options.ref;
|
|
1721
|
+
}
|
|
1722
|
+
if (Array.isArray(options.paths) && options.paths.length > 0) {
|
|
1723
|
+
body.paths = options.paths;
|
|
1724
|
+
}
|
|
1725
|
+
if (options.fileFilters) {
|
|
1726
|
+
body.file_filters = {
|
|
1727
|
+
...options.fileFilters.includeGlobs ? { include_globs: options.fileFilters.includeGlobs } : {},
|
|
1728
|
+
...options.fileFilters.excludeGlobs ? { exclude_globs: options.fileFilters.excludeGlobs } : {},
|
|
1729
|
+
...options.fileFilters.extensionFilters ? { extension_filters: options.fileFilters.extensionFilters } : {}
|
|
1730
|
+
};
|
|
1731
|
+
}
|
|
1732
|
+
if (options.context) {
|
|
1733
|
+
body.context = {
|
|
1734
|
+
...typeof options.context.before === "number" ? { before: options.context.before } : {},
|
|
1735
|
+
...typeof options.context.after === "number" ? { after: options.context.after } : {}
|
|
1736
|
+
};
|
|
1737
|
+
}
|
|
1738
|
+
if (options.limits) {
|
|
1739
|
+
body.limits = {
|
|
1740
|
+
...typeof options.limits.maxLines === "number" ? { max_lines: options.limits.maxLines } : {},
|
|
1741
|
+
...typeof options.limits.maxMatchesPerFile === "number" ? { max_matches_per_file: options.limits.maxMatchesPerFile } : {}
|
|
1742
|
+
};
|
|
1743
|
+
}
|
|
1744
|
+
if (options.pagination) {
|
|
1745
|
+
body.pagination = {
|
|
1746
|
+
...typeof options.pagination.cursor === "string" && options.pagination.cursor.trim() !== "" ? { cursor: options.pagination.cursor } : {},
|
|
1747
|
+
...typeof options.pagination.limit === "number" ? { limit: options.pagination.limit } : {}
|
|
1748
|
+
};
|
|
1749
|
+
}
|
|
1750
|
+
const response = await this.api.post({ path: "repos/grep", body }, jwt);
|
|
1751
|
+
const raw = grepResponseSchema.parse(await response.json());
|
|
1752
|
+
return {
|
|
1753
|
+
query: {
|
|
1754
|
+
pattern: raw.query.pattern,
|
|
1755
|
+
caseSensitive: raw.query.case_sensitive
|
|
1756
|
+
},
|
|
1757
|
+
repo: {
|
|
1758
|
+
ref: raw.repo.ref,
|
|
1759
|
+
commit: raw.repo.commit
|
|
1760
|
+
},
|
|
1761
|
+
matches: raw.matches.map(transformGrepFileMatch),
|
|
1762
|
+
nextCursor: raw.next_cursor ?? void 0,
|
|
1763
|
+
hasMore: raw.has_more
|
|
1764
|
+
};
|
|
1765
|
+
}
|
|
1668
1766
|
async pullUpstream(options = {}) {
|
|
1669
1767
|
const ttl = resolveInvocationTtlSeconds(options, DEFAULT_TOKEN_TTL_SECONDS);
|
|
1670
1768
|
const jwt = await this.generateJWT(this.id, {
|