@laikacms/github 0.1.2 → 2.0.0

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.
@@ -1,6 +1,7 @@
1
- import { BadRequestError, EntryAlreadyExistsError, InvalidData, NotFoundError } from 'laikacms/core';
2
- import { pathCombine, StorageRepository, } from 'laikacms/storage';
1
+ import * as Effect from 'effect/Effect';
3
2
  import * as Result from 'effect/Result';
3
+ import { BadRequestError, EntryAlreadyExistsError, InvalidData, LaikaStream, LaikaTask, NotFoundError, } from 'laikacms/core';
4
+ import { applyPagination, collectAtomSummariesWithDepth, CompatibilityDate, defaultDetermineExtension, pathCombine, StorageRepository, unsupportedChanges, } from 'laikacms/storage';
4
5
  import * as minimatch from 'minimatch';
5
6
  import { GithubDataSource } from './github-datasource.js';
6
7
  const DEFAULT_IGNORE_LIST = [
@@ -8,13 +9,12 @@ const DEFAULT_IGNORE_LIST = [
8
9
  '**/.DS_Store',
9
10
  '**/Thumbs.db',
10
11
  '**/desktop.ini',
11
- '**/.contentbase',
12
+ '**/.catalog',
12
13
  '**/.laikacms',
13
14
  ];
14
- const failAs = (error) => Result.fail(error);
15
+ const liftResult = (p) => Effect.flatMap(Effect.promise(() => p), Effect.fromResult);
15
16
  /**
16
- * StorageRepository backed by a GitHub repository. Mirrors the surface and semantics of
17
- * `laikacms/storage-fs` so that swapping FS for GitHub is purely a wiring change.
17
+ * StorageRepository backed by a GitHub repository.
18
18
  */
19
19
  export class GithubStorageRepository extends StorageRepository {
20
20
  dataSource;
@@ -23,18 +23,29 @@ export class GithubStorageRepository extends StorageRepository {
23
23
  availableExtensions;
24
24
  excludeFilter;
25
25
  commitAuthor;
26
+ determineExtension;
26
27
  constructor(options) {
27
28
  super();
28
- const { serializerRegistry, defaultFileExtension, ignoreList = DEFAULT_IGNORE_LIST, commitAuthor, ...dataSourceOptions } = options;
29
+ const { serializerRegistry, defaultFileExtension, ignoreList = DEFAULT_IGNORE_LIST, commitAuthor, determineExtension = defaultDetermineExtension, ...dataSourceOptions } = options;
29
30
  this.serializerRegistry = serializerRegistry;
30
31
  this.defaultFileExtension = defaultFileExtension;
31
32
  this.availableExtensions = Object.keys(serializerRegistry);
32
33
  this.commitAuthor = commitAuthor;
34
+ this.determineExtension = determineExtension;
33
35
  this.dataSource = new GithubDataSource(dataSourceOptions);
34
36
  this.excludeFilter = ignoreList
35
37
  .map(p => minimatch.makeRe(p, { dot: true, partial: true }))
36
38
  .filter((x) => x !== false);
37
39
  }
40
+ resolveExtension(key, metadata) {
41
+ const requested = this.determineExtension(key, {
42
+ metadata,
43
+ defaultExtension: this.defaultFileExtension,
44
+ });
45
+ if (requested && this.serializerRegistry[requested])
46
+ return requested;
47
+ return this.defaultFileExtension;
48
+ }
38
49
  stripExtension(p) {
39
50
  for (const ext of this.availableExtensions) {
40
51
  if (p.endsWith(`.${ext}`))
@@ -70,208 +81,228 @@ export class GithubStorageRepository extends StorageRepository {
70
81
  }
71
82
  return serializer.deserializeDocumentFileContents(content, {});
72
83
  }
73
- // ===== StorageObjects =====
74
- async *getObject(key) {
75
- const resolved = await this.resolvePathWithExtension(key);
76
- if (!resolved) {
77
- yield failAs(new NotFoundError(`The file at ${key} does not exist`));
78
- return;
79
- }
80
- const [contentResult, metaResult] = await Promise.all([
81
- this.dataSource.getFileContents(resolved.path),
82
- this.dataSource.getFileMeta(resolved.path),
83
- ]);
84
- if (Result.isFailure(contentResult)) {
85
- yield failAs(contentResult.failure);
86
- return;
87
- }
88
- if (Result.isFailure(metaResult)) {
89
- yield failAs(metaResult.failure);
90
- return;
91
- }
92
- yield Result.succeed({
93
- type: 'object',
94
- key: this.stripExtension(resolved.path),
95
- createdAt: metaResult.success.createdAt.toISOString(),
96
- updatedAt: metaResult.success.updatedAt.toISOString(),
97
- content: await this.deserialize(resolved.extension, contentResult.success.content),
98
- });
99
- }
100
- async *createObject(create) {
101
- if (!create.content) {
102
- yield Result.fail(new InvalidData('Object content is required for creation'));
103
- return;
104
- }
105
- const existing = await this.resolvePathWithExtension(create.key);
106
- if (existing) {
107
- yield Result.fail(new EntryAlreadyExistsError(`An object with key "${create.key}" already exists with extension .${existing.extension}`));
108
- return;
109
- }
110
- const ext = this.defaultFileExtension;
111
- const serialized = await this.serialize(ext, create.content);
112
- const path = `${this.stripExtension(create.key)}.${ext}`;
113
- const writeResult = await this.dataSource.createOrUpdate(path, serialized, {
114
- commitMessage: `Create ${path}`,
115
- author: this.commitAuthor,
116
- });
117
- if (Result.isFailure(writeResult)) {
118
- yield failAs(writeResult.failure);
119
- return;
120
- }
121
- yield* this.getObject(create.key);
84
+ getObject(key) {
85
+ return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
86
+ const resolved = yield* Effect.promise(() => this.resolvePathWithExtension(key));
87
+ if (!resolved) {
88
+ return yield* Effect.fail(new NotFoundError(`The file at ${key} does not exist`));
89
+ }
90
+ const [content, meta] = yield* Effect.all([
91
+ liftResult(this.dataSource.getFileContents(resolved.path)),
92
+ liftResult(this.dataSource.getFileMeta(resolved.path)),
93
+ ], { concurrency: 2 });
94
+ const deserialized = yield* Effect.promise(() => this.deserialize(resolved.extension, content.content));
95
+ return {
96
+ type: 'object',
97
+ key: this.stripExtension(resolved.path),
98
+ createdAt: meta.createdAt.toISOString(),
99
+ updatedAt: meta.updatedAt.toISOString(),
100
+ content: deserialized,
101
+ metadata: { extension: resolved.extension, revisionId: meta.sha },
102
+ };
103
+ }));
122
104
  }
123
- async *updateObject(update) {
124
- const resolved = await this.resolvePathWithExtension(update.key);
125
- if (!resolved) {
126
- yield failAs(new NotFoundError(`The file at ${update.key} does not exist`));
127
- return;
128
- }
129
- if (update.content) {
130
- const serialized = await this.serialize(resolved.extension, update.content);
131
- const writeResult = await this.dataSource.createOrUpdate(resolved.path, serialized, {
132
- commitMessage: `Update ${resolved.path}`,
105
+ createObject(create) {
106
+ return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
107
+ if (!create.content) {
108
+ return yield* Effect.fail(new InvalidData('Object content is required for creation'));
109
+ }
110
+ const existing = yield* Effect.promise(() => this.resolvePathWithExtension(create.key));
111
+ if (existing) {
112
+ return yield* Effect.fail(new EntryAlreadyExistsError(`An object with key "${create.key}" already exists with extension .${existing.extension}`));
113
+ }
114
+ const ext = this.resolveExtension(create.key, create.metadata);
115
+ const serialized = yield* Effect.promise(() => this.serialize(ext, create.content));
116
+ const path = `${this.stripExtension(create.key)}.${ext}`;
117
+ yield* liftResult(this.dataSource.createOrUpdate(path, serialized, {
118
+ commitMessage: `Create ${path}`,
133
119
  author: this.commitAuthor,
134
- });
135
- if (Result.isFailure(writeResult)) {
136
- yield failAs(writeResult.failure);
137
- return;
120
+ }));
121
+ return yield* LaikaTask.runValue(this.getObject(create.key));
122
+ }));
123
+ }
124
+ updateObject(update) {
125
+ return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
126
+ const resolved = yield* Effect.promise(() => this.resolvePathWithExtension(update.key));
127
+ if (!resolved) {
128
+ return yield* Effect.fail(new NotFoundError(`The file at ${update.key} does not exist`));
138
129
  }
139
- }
140
- yield* this.getObject(update.key);
130
+ if (update.content) {
131
+ const serialized = yield* Effect.promise(() => this.serialize(resolved.extension, update.content));
132
+ yield* liftResult(this.dataSource.createOrUpdate(resolved.path, serialized, {
133
+ commitMessage: `Update ${resolved.path}`,
134
+ author: this.commitAuthor,
135
+ }));
136
+ }
137
+ return yield* LaikaTask.runValue(this.getObject(update.key));
138
+ }));
141
139
  }
142
- async *createOrUpdateObject(create) {
143
- const existing = await this.resolvePathWithExtension(create.key);
144
- const ext = existing?.extension ?? this.defaultFileExtension;
145
- const path = existing?.path ?? `${this.stripExtension(create.key)}.${ext}`;
146
- const serialized = create.content ? await this.serialize(ext, create.content) : '';
147
- const writeResult = await this.dataSource.createOrUpdate(path, serialized, {
148
- commitMessage: `${existing ? 'Update' : 'Create'} ${path}`,
149
- author: this.commitAuthor,
150
- });
151
- if (Result.isFailure(writeResult)) {
152
- yield failAs(writeResult.failure);
153
- return;
154
- }
155
- yield* this.getObject(create.key);
140
+ createOrUpdateObject(create) {
141
+ return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
142
+ // When metadata pins an extension, that's authoritative — don't let a stale
143
+ // file at a different extension capture the write.
144
+ const requested = create.metadata?.extension;
145
+ const metadataExt = requested && this.serializerRegistry[requested] ? requested : undefined;
146
+ const existing = metadataExt
147
+ ? null
148
+ : yield* Effect.promise(() => this.resolvePathWithExtension(create.key));
149
+ const ext = metadataExt ?? existing?.extension ?? this.resolveExtension(create.key, create.metadata);
150
+ const path = existing?.path ?? `${this.stripExtension(create.key)}.${ext}`;
151
+ const serialized = create.content
152
+ ? yield* Effect.promise(() => this.serialize(ext, create.content))
153
+ : '';
154
+ yield* liftResult(this.dataSource.createOrUpdate(path, serialized, {
155
+ commitMessage: `${existing ? 'Update' : 'Create'} ${path}`,
156
+ author: this.commitAuthor,
157
+ }));
158
+ return yield* LaikaTask.runValue(this.getObject(create.key));
159
+ }));
156
160
  }
157
- // ===== Folders =====
158
- async *getFolder(key) {
159
- // Listing the directory both validates existence and gives us a baseline.
160
- const listing = await this.dataSource.listDirectory(key);
161
- if (Result.isFailure(listing)) {
162
- yield failAs(listing.failure);
163
- return;
164
- }
165
- // GitHub doesn't track per-directory timestamps. Approximate with the most recent commit
166
- // touching the path; if no commits, fall back to epoch.
167
- const now = new Date(0).toISOString();
168
- yield Result.succeed({ type: 'folder', key, createdAt: now, updatedAt: now });
161
+ getFolder(key) {
162
+ return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
163
+ yield* liftResult(this.dataSource.listDirectory(key));
164
+ const now = new Date(0).toISOString();
165
+ return { type: 'folder', key, createdAt: now, updatedAt: now };
166
+ }));
169
167
  }
170
- async *createFolder(folderCreate) {
171
- // GitHub has no concept of empty directories emulate by writing a `.keep` placeholder.
172
- const keepPath = pathCombine(folderCreate.key, '.keep');
173
- const writeResult = await this.dataSource.createOrUpdate(keepPath, '', {
174
- commitMessage: `Create directory ${folderCreate.key}`,
175
- author: this.commitAuthor,
176
- });
177
- if (Result.isFailure(writeResult)) {
178
- yield failAs(writeResult.failure);
179
- return;
180
- }
181
- yield* this.getFolder(folderCreate.key);
168
+ createFolder(folderCreate) {
169
+ return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
170
+ const keepPath = pathCombine(folderCreate.key, '.keep');
171
+ yield* liftResult(this.dataSource.createOrUpdate(keepPath, '', {
172
+ commitMessage: `Create directory ${folderCreate.key}`,
173
+ author: this.commitAuthor,
174
+ }));
175
+ return yield* LaikaTask.runValue(this.getFolder(folderCreate.key));
176
+ }));
182
177
  }
183
- // ===== Atoms =====
184
- async *getAtom(key) {
185
- try {
186
- const type = await this.dataSource.pathType(key);
187
- if (type === 'file')
188
- yield* this.getObject(key);
189
- else
190
- yield* this.getFolder(key);
191
- }
192
- catch (e) {
193
- if (e instanceof NotFoundError) {
194
- // Treat key as a file path with extension — getObject handles the extension probe.
195
- yield* this.getObject(key);
178
+ getAtom(key) {
179
+ return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
180
+ const typeResult = yield* Effect.result(Effect.tryPromise({
181
+ try: () => this.dataSource.pathType(key),
182
+ // pathType already maps octokit failures onto domain errors (NotFoundError,
183
+ // TooManyRequestsError, ForbiddenError, ...); preserve them as-is here.
184
+ catch: (e) => (e instanceof Error ? e : new BadRequestError(String(e))),
185
+ }));
186
+ // pathType NotFound → probe as file with an extension via getObject. All other
187
+ // failures (429, 403, 5xx) must propagate unchanged instead of falling through.
188
+ if (typeResult._tag === 'Failure') {
189
+ if (!(typeResult.failure instanceof NotFoundError)) {
190
+ return yield* Effect.fail(typeResult.failure);
191
+ }
192
+ return yield* LaikaTask.runValue(this.getObject(key));
196
193
  }
197
- else {
198
- yield Result.fail(e instanceof Error ? new BadRequestError(e.message) : new BadRequestError(String(e)));
194
+ if (typeResult.success === 'file') {
195
+ return yield* LaikaTask.runValue(this.getObject(key));
199
196
  }
200
- }
197
+ return yield* LaikaTask.runValue(this.getFolder(key));
198
+ }));
201
199
  }
202
200
  listAtomSummaries(folderKey, options) {
203
- return this.collectAtoms(folderKey, options, true);
201
+ return LaikaStream.make(emit => Effect.gen({ self: this }, function* () {
202
+ const { summaries, aggregateTotal } = yield* this.collectFilteredSummaries(folderKey, options);
203
+ if (summaries.length > 0)
204
+ yield* emit.dataMany(summaries);
205
+ return { total: aggregateTotal };
206
+ }));
204
207
  }
205
208
  listAtoms(folderKey, options) {
206
- return this.collectAtoms(folderKey, options, false);
209
+ return LaikaStream.make(emit => Effect.gen({ self: this }, function* () {
210
+ const { summaries, aggregateTotal } = yield* this.collectFilteredSummaries(folderKey, options);
211
+ for (const summary of summaries) {
212
+ if (summary.type === 'object-summary') {
213
+ const r = yield* Effect.result(LaikaTask.runValue(this.getObject(summary.key)));
214
+ if (Result.isFailure(r))
215
+ yield* emit.recoverableError(r.failure);
216
+ else
217
+ yield* emit.data(r.success);
218
+ }
219
+ else {
220
+ const r = yield* Effect.result(LaikaTask.runValue(this.getFolder(summary.key)));
221
+ if (Result.isFailure(r))
222
+ yield* emit.recoverableError(r.failure);
223
+ else
224
+ yield* emit.data(r.success);
225
+ }
226
+ }
227
+ return { total: aggregateTotal };
228
+ }));
207
229
  }
208
- async *collectAtoms(folderKey, _options, summariesOnly) {
209
- const listing = await this.dataSource.listDirectory(folderKey);
210
- if (Result.isFailure(listing)) {
211
- yield failAs(listing.failure);
212
- return;
213
- }
214
- const filtered = listing.success.filter(entry => this.excludeFilter.every(re => !re.test(entry.path)));
215
- const summaries = filtered.map(entry => {
216
- let key = entry.path;
217
- if (entry.type === 'file') {
218
- for (const ext of this.availableExtensions) {
219
- if (key.endsWith(`.${ext}`)) {
220
- key = key.slice(0, -(ext.length + 1));
221
- break;
230
+ collectFilteredSummaries(folderKey, options) {
231
+ return Effect.gen({ self: this }, function* () {
232
+ const all = yield* collectAtomSummariesWithDepth(folderKey, key => this.listFolderLevel(key), options.depth);
233
+ const aggregateTotal = all.length;
234
+ return { summaries: applyPagination(all, options.pagination), aggregateTotal };
235
+ });
236
+ }
237
+ listFolderLevel(folderKey) {
238
+ return Effect.gen({ self: this }, function* () {
239
+ const listing = yield* liftResult(this.dataSource.listDirectory(folderKey));
240
+ const filtered = listing.filter(entry => this.excludeFilter.every(re => !re.test(entry.path)));
241
+ const summaries = filtered.map(entry => {
242
+ let key = entry.path;
243
+ if (entry.type === 'file') {
244
+ for (const ext of this.availableExtensions) {
245
+ if (key.endsWith(`.${ext}`)) {
246
+ key = key.slice(0, -(ext.length + 1));
247
+ break;
248
+ }
222
249
  }
223
250
  }
224
- }
225
- return {
226
- type: entry.type === 'file' ? 'object-summary' : 'folder-summary',
227
- key,
228
- };
251
+ return {
252
+ type: entry.type === 'file' ? 'object-summary' : 'folder-summary',
253
+ key,
254
+ };
255
+ });
256
+ return summaries;
229
257
  });
230
- if (summariesOnly) {
231
- yield Result.succeed(summaries);
232
- return;
233
- }
234
- const atoms = [];
235
- for (const summary of summaries) {
236
- if (summary.type === 'object-summary') {
237
- for await (const r of this.getObject(summary.key)) {
238
- if (Result.isSuccess(r))
239
- atoms.push(r.success);
258
+ }
259
+ removeAtoms(keys) {
260
+ return LaikaStream.make(emit => Effect.gen({ self: this }, function* () {
261
+ let removed = 0;
262
+ let skipped = 0;
263
+ for (const key of keys) {
264
+ const resolved = yield* Effect.promise(() => this.resolvePathWithExtension(key));
265
+ if (!resolved) {
266
+ yield* emit.recoverableError(new NotFoundError(`The file at ${key} does not exist`));
267
+ skipped += 1;
268
+ continue;
240
269
  }
241
- }
242
- else {
243
- for await (const r of this.getFolder(summary.key)) {
244
- if (Result.isSuccess(r))
245
- atoms.push(r.success);
270
+ const metaResult = yield* Effect.result(liftResult(this.dataSource.getFileMeta(resolved.path)));
271
+ if (Result.isFailure(metaResult)) {
272
+ yield* emit.recoverableError(metaResult.failure);
273
+ skipped += 1;
274
+ continue;
246
275
  }
276
+ const deleteResult = yield* Effect.result(liftResult(this.dataSource.deleteFile(resolved.path, metaResult.success.sha, {
277
+ commitMessage: `Delete ${resolved.path}`,
278
+ author: this.commitAuthor,
279
+ })));
280
+ if (Result.isFailure(deleteResult)) {
281
+ yield* emit.recoverableError(deleteResult.failure);
282
+ skipped += 1;
283
+ continue;
284
+ }
285
+ yield* emit.data(key);
286
+ removed += 1;
247
287
  }
248
- }
249
- yield Result.succeed(atoms);
288
+ return { removed, skipped };
289
+ }));
250
290
  }
251
- async *removeAtoms(keys) {
252
- const removed = [];
253
- for (const key of keys) {
254
- const resolved = await this.resolvePathWithExtension(key);
255
- if (!resolved) {
256
- yield failAs(new NotFoundError(`The file at ${key} does not exist`));
257
- return;
258
- }
259
- const meta = await this.dataSource.getFileMeta(resolved.path);
260
- if (Result.isFailure(meta)) {
261
- yield failAs(meta.failure);
262
- return;
263
- }
264
- const deleteResult = await this.dataSource.deleteFile(resolved.path, meta.success.sha, {
265
- commitMessage: `Delete ${resolved.path}`,
266
- author: this.commitAuthor,
267
- });
268
- if (Result.isFailure(deleteResult)) {
269
- yield failAs(deleteResult.failure);
270
- return;
271
- }
272
- removed.push(key);
273
- }
274
- yield Result.succeed(removed);
291
+ getCapabilities() {
292
+ return LaikaTask.succeed({
293
+ changes: unsupportedChanges,
294
+ fileExtensions: {
295
+ supported: true,
296
+ description: 'Supported file types depend on the serializers provided to this repository.',
297
+ supportedExtensions: this.serializerRegistry,
298
+ },
299
+ pagination: {
300
+ supported: true,
301
+ description: 'In-memory slicing over the GitHub tree listing; cursor pagination is not supported.',
302
+ styles: { offset: true, page: true, cursor: false },
303
+ },
304
+ compatibilityDate: CompatibilityDate.make('2024-06-01'),
305
+ });
275
306
  }
276
307
  }
277
308
  //# sourceMappingURL=github-storage-repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-storage-repository.js","sourceRoot":"","sources":["../../src/storage-gh/github-storage-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-storage-repository.js","sourceRoot":"","sources":["../../src/storage-gh/github-storage-repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- export { GithubStorageRepository } from './github-storage-repository.js';
2
- export type { GithubStorageRepositoryOptions } from './github-storage-repository.js';
1
+ export { Octokit } from '@octokit/rest';
3
2
  export { GithubDataSource } from './github-datasource.js';
4
3
  export type { GithubDataSourceOptions } from './github-datasource.js';
4
+ export { GithubStorageRepository } from './github-storage-repository.js';
5
+ export type { GithubStorageRepositoryOptions } from './github-storage-repository.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage-gh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage-gh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC"}
@@ -1,3 +1,4 @@
1
- export { GithubStorageRepository } from './github-storage-repository.js';
1
+ export { Octokit } from '@octokit/rest';
2
2
  export { GithubDataSource } from './github-datasource.js';
3
+ export { GithubStorageRepository } from './github-storage-repository.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage-gh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage-gh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StorageContractCase } from 'laikacms/storage/testing';
2
+ export declare const githubContractCase: StorageContractCase;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage-gh/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAwLpE,eAAO,MAAM,kBAAkB,EAAE,mBAahC,CAAC"}