browser-git-ops 0.0.2 → 0.0.5
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 +291 -92
- package/dist/git/abstractAdapter.d.ts +167 -0
- package/dist/git/abstractAdapter.d.ts.map +1 -0
- package/dist/git/adapter.d.ts +23 -1
- package/dist/git/adapter.d.ts.map +1 -1
- package/dist/git/githubAdapter.d.ts +282 -35
- package/dist/git/githubAdapter.d.ts.map +1 -1
- package/dist/git/gitlabAdapter.d.ts +220 -34
- package/dist/git/gitlabAdapter.d.ts.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6199 -792
- package/dist/index.js.map +4 -4
- package/dist/index.mjs +6199 -792
- package/dist/index.mjs.map +4 -4
- package/dist/virtualfs/changeTracker.d.ts +66 -0
- package/dist/virtualfs/changeTracker.d.ts.map +1 -0
- package/dist/virtualfs/conflictManager.d.ts +69 -0
- package/dist/virtualfs/conflictManager.d.ts.map +1 -0
- package/dist/virtualfs/hashUtils.d.ts +13 -0
- package/dist/virtualfs/hashUtils.d.ts.map +1 -0
- package/dist/virtualfs/indexManager.d.ts +57 -0
- package/dist/virtualfs/indexManager.d.ts.map +1 -0
- package/dist/virtualfs/indexedDatabaseStorage.d.ts +7 -0
- package/dist/virtualfs/indexedDatabaseStorage.d.ts.map +1 -0
- package/dist/virtualfs/inmemoryStorage.d.ts +8 -0
- package/dist/virtualfs/inmemoryStorage.d.ts.map +1 -0
- package/dist/virtualfs/localChangeApplier.d.ts +21 -0
- package/dist/virtualfs/localChangeApplier.d.ts.map +1 -0
- package/dist/virtualfs/localFileManager.d.ts +58 -0
- package/dist/virtualfs/localFileManager.d.ts.map +1 -0
- package/dist/virtualfs/metadataManager.d.ts +14 -0
- package/dist/virtualfs/metadataManager.d.ts.map +1 -0
- package/dist/virtualfs/opfsStorage.d.ts +2 -63
- package/dist/virtualfs/opfsStorage.d.ts.map +1 -1
- package/dist/virtualfs/remoteSynchronizer.d.ts +192 -0
- package/dist/virtualfs/remoteSynchronizer.d.ts.map +1 -0
- package/dist/virtualfs/storageBackend.d.ts +57 -4
- package/dist/virtualfs/storageBackend.d.ts.map +1 -1
- package/dist/virtualfs/types.d.ts +37 -0
- package/dist/virtualfs/types.d.ts.map +1 -1
- package/dist/virtualfs/virtualfs.d.ts +454 -87
- package/dist/virtualfs/virtualfs.d.ts.map +1 -1
- package/package.json +30 -13
- package/dist/virtualfs/indexedDbStorage.d.ts +0 -62
- package/dist/virtualfs/indexedDbStorage.d.ts.map +0 -1
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { IndexFile } from './types';
|
|
1
|
+
import { IndexFile } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Storage セグメント
|
|
4
|
+
*/
|
|
5
|
+
export type Segment = 'workspace' | 'base' | 'conflict' | 'conflictBlob' | 'info' | 'info-workspace' | 'info-git';
|
|
2
6
|
/**
|
|
3
7
|
* 永続化レイヤーの抽象インターフェース
|
|
4
8
|
* Storage の具体実装はこの契約に従うこと
|
|
@@ -24,21 +28,70 @@ export interface StorageBackend {
|
|
|
24
28
|
* ファイルコンテンツを保存
|
|
25
29
|
* @param {string} filepath
|
|
26
30
|
* @param {string} content
|
|
31
|
+
* @param {Segment} segment 保存先セグメント
|
|
27
32
|
* @returns {Promise<void>}
|
|
28
33
|
*/
|
|
29
|
-
writeBlob(_filepath: string, _content: string): Promise<void>;
|
|
34
|
+
writeBlob(_filepath: string, _content: string, _segment?: Segment): Promise<void>;
|
|
30
35
|
/**
|
|
31
36
|
* ファイルコンテンツを読み出す
|
|
32
37
|
* @param {string} filepath
|
|
38
|
+
* @param {Segment} segment 読み出すセグメント
|
|
33
39
|
* @returns {Promise<string|null>}
|
|
34
40
|
*/
|
|
35
|
-
readBlob(_filepath: string): Promise<string | null>;
|
|
41
|
+
readBlob(_filepath: string, _segment?: Segment): Promise<string | null>;
|
|
36
42
|
/**
|
|
37
43
|
* ファイルを削除する
|
|
38
44
|
* @param {string} filepath
|
|
45
|
+
* @param {Segment} [segment] 削除するセグメント(省略時は全セグメント削除)
|
|
39
46
|
* @returns {Promise<void>}
|
|
40
47
|
*/
|
|
41
|
-
deleteBlob(_filepath: string): Promise<void>;
|
|
48
|
+
deleteBlob(_filepath: string, _segment?: Segment): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* 指定プレフィックス配下のファイル一覧を取得します。
|
|
51
|
+
* @param prefix 取得対象のディレクトリプレフィックス(省略時はルート)
|
|
52
|
+
* @param segment 取得対象セグメント(省略時は 'workspace')
|
|
53
|
+
* @param recursive サブディレクトリも含める場合は true(デフォルト true)
|
|
54
|
+
* @returns Promise<Array<{path:string, info:string|null}>>
|
|
55
|
+
*/
|
|
56
|
+
listFiles(_prefix?: string, _segment?: Segment, _recursive?: boolean): Promise<Array<{
|
|
57
|
+
path: string;
|
|
58
|
+
info: string | null;
|
|
59
|
+
}>>;
|
|
60
|
+
/**
|
|
61
|
+
* Raw listing that returns implementation-specific URIs and a normalized path.
|
|
62
|
+
* @returns Promise<Array<{ uri: string; path: string; info?: string | null }>>
|
|
63
|
+
*/
|
|
64
|
+
listFilesRaw?(_prefix?: string, _recursive?: boolean): Promise<Array<{
|
|
65
|
+
uri: string;
|
|
66
|
+
path: string;
|
|
67
|
+
info?: string | null;
|
|
68
|
+
}>>;
|
|
69
|
+
/**
|
|
70
|
+
* Set the currently-active branch name for backends that scope data by branch.
|
|
71
|
+
* Implementations may ignore this call if branch-scoped storage is unsupported.
|
|
72
|
+
* @param branch branch name or undefined to clear
|
|
73
|
+
*/
|
|
74
|
+
setBranch?(_branch?: string | null): void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* StorageBackend の "静的側"(コンストラクタ/クラス)を表現する型。
|
|
78
|
+
* クラス実装はこの型を満たすことで `canUse()` の静的メソッドを持つことが保証されます。
|
|
79
|
+
*/
|
|
80
|
+
export interface StorageBackendConstructor {
|
|
81
|
+
/**
|
|
82
|
+
* コンストラクタ。ルートパスやDB名などのオプション引数を受け取れるようにする。
|
|
83
|
+
* 実装側はこの引数を利用して初期化を行うことができます。
|
|
84
|
+
*/
|
|
85
|
+
new (_namespace: string, _root?: string): StorageBackend;
|
|
86
|
+
/**
|
|
87
|
+
* このストレージ実装が利用可能かどうかを返す(例: 環境依存のチェック)。
|
|
88
|
+
*/
|
|
89
|
+
canUse(): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* このストレージ実装で利用可能なルートパスあるいはDB名の一覧を返す。
|
|
92
|
+
* 例えばローカルFS実装ならベースディレクトリ名、IndexedDB実装ならDB名候補を返す等。
|
|
93
|
+
*/
|
|
94
|
+
availableRoots(_namespace: string): string[] | Promise<string[]>;
|
|
42
95
|
}
|
|
43
96
|
export default StorageBackend;
|
|
44
97
|
//# sourceMappingURL=storageBackend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storageBackend.d.ts","sourceRoot":"","sources":["../../src/virtualfs/storageBackend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"storageBackend.d.ts","sourceRoot":"","sources":["../../src/virtualfs/storageBackend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,GAAG,gBAAgB,GAAG,UAAU,CAAA;AAEjH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAEtC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5C;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjF;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEvE;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhE;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC,CAAA;IAE5H;;;OAGG;IACH,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC,CAAA;IAE1H;;;;OAIG;IACH,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,KAAI,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAAA;IAEvD;;OAEG;IACH,MAAM,IAAI,OAAO,CAAA;IAEjB;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACjE;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -3,12 +3,17 @@ export interface IndexEntry {
|
|
|
3
3
|
path: string;
|
|
4
4
|
state: FileState;
|
|
5
5
|
baseSha?: string;
|
|
6
|
+
remoteSha?: string;
|
|
6
7
|
workspaceSha?: string;
|
|
7
8
|
updatedAt: number;
|
|
8
9
|
}
|
|
9
10
|
export interface IndexFile {
|
|
10
11
|
head: string;
|
|
11
12
|
lastCommitKey?: string;
|
|
13
|
+
adapter?: {
|
|
14
|
+
type: 'github' | 'gitlab' | string;
|
|
15
|
+
opts?: any;
|
|
16
|
+
};
|
|
12
17
|
entries: Record<string, IndexEntry>;
|
|
13
18
|
}
|
|
14
19
|
export interface TombstoneEntry {
|
|
@@ -43,4 +48,36 @@ export interface CommitInput {
|
|
|
43
48
|
ref?: string;
|
|
44
49
|
commitKey?: string;
|
|
45
50
|
}
|
|
51
|
+
export type BranchInfo = {
|
|
52
|
+
name: string;
|
|
53
|
+
commit: {
|
|
54
|
+
sha: string;
|
|
55
|
+
url: string;
|
|
56
|
+
};
|
|
57
|
+
protected: boolean;
|
|
58
|
+
isDefault: boolean;
|
|
59
|
+
};
|
|
60
|
+
export type BranchListQuery = {
|
|
61
|
+
perPage?: number;
|
|
62
|
+
page?: number;
|
|
63
|
+
};
|
|
64
|
+
export type BranchListPage = {
|
|
65
|
+
items: BranchInfo[];
|
|
66
|
+
nextPage?: number;
|
|
67
|
+
lastPage?: number;
|
|
68
|
+
};
|
|
69
|
+
export type RepositoryMetadata = {
|
|
70
|
+
defaultBranch: string;
|
|
71
|
+
name: string;
|
|
72
|
+
id?: string | number;
|
|
73
|
+
};
|
|
74
|
+
export type CreateBranchInput = {
|
|
75
|
+
name: string;
|
|
76
|
+
fromRef?: string;
|
|
77
|
+
};
|
|
78
|
+
export type CreateBranchResult = {
|
|
79
|
+
name: string;
|
|
80
|
+
sha: string;
|
|
81
|
+
ref: string;
|
|
82
|
+
};
|
|
46
83
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/virtualfs/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAA;AAE9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/virtualfs/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAA;AAE9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IAEZ,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;QAClC,IAAI,CAAC,EAAE,GAAG,CAAA;KACX,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAGD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAAA;AAGD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA"}
|