@laikacms/github 1.0.0 → 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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,121 @@
1
1
  # @laikacms/github
2
2
 
3
+ ## 2.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 6b918c6: Rename `AuthorizationError` to `UpstreamUnAuthorizedError`, and stop using it for
8
+ authorization denials.
9
+
10
+ The old name promised the wrong thing. `AuthorizationError` reads as "authorization failed", but
11
+ the class is HTTP 401 and its actual job is narrow: it is the deserialization target for a 401
12
+ challenge this server received from an _upstream_ — nothing to do with "authenticated but not
13
+ permitted". That mismatch was actively misleading people (laikacms#851 proposed routing
14
+ authorization denials through it, which would have answered 401 to callers who are in fact
15
+ authenticated).
16
+
17
+ The auth vocabulary is now unambiguous:
18
+
19
+ | Case | Error | Status |
20
+ | ----------------------------------------------- | --------------------------- | ------ |
21
+ | Caller has not proven who they are | `AuthenticationError` | 401 |
22
+ | Caller is authenticated but not permitted | `ForbiddenError` | 403 |
23
+ | An upstream rejected _this server's_ credential | `UpstreamUnAuthorizedError` | 401 |
24
+
25
+ The wire code is unchanged (`unauthorized`), so JSON:API error payloads and the proxy's
26
+ `rehydrateErrorCodes` round-trip are unaffected. The exported `errorCode`/`errorStatus` key moved
27
+ from `AUTHORIZATION_ERROR` to `UPSTREAM_UNAUTHORIZED`.
28
+
29
+ Two mapping bugs surfaced by the rename are fixed as part of it:
30
+
31
+ - **GitHub 403 returned 401.** `GithubDataSource.mapError` mapped a GitHub `403` to the 401 class,
32
+ so a permission denial told callers to re-authenticate when their token was valid but
33
+ under-scoped. It now returns `ForbiddenError` (403), matching the GitLab and Bitbucket
34
+ datasources.
35
+ - **Upstream 401s claimed the caller was unauthenticated.** All three git-host datasources mapped
36
+ an upstream `401` to `AuthenticationError`, which means "_this_ server rejected your
37
+ credential". A git host rejecting the server's own token is a different failure, and now returns
38
+ `UpstreamUnAuthorizedError`. Status is unchanged (both are 401); only the error code and message
39
+ change.
40
+
41
+ ### Patch Changes
42
+
43
+ - 14df4cf: Fix `npx laikacli` crashing with `ERR_MODULE_NOT_FOUND` on
44
+ `effect/unstable/http/Multipasta/Node`.
45
+
46
+ The catalog pinned `effect` and `@effect/platform-node` to `4.0.0-beta.66` while
47
+ `@effect/platform-node-shared` sat at `4.0.0-beta.104`. Under npm's hoisting,
48
+ `@effect/platform-node@beta.66`'s own `^4.0.0-beta.66` range on `platform-node-shared` resolved to
49
+ a newer beta whose `effect` peer pulled a newer `effect` to the tree root — so
50
+ `platform-node@beta.66` resolved a module path that no longer exists. pnpm's isolated
51
+ `node_modules` masked this locally, so only npm/npx consumers hit it.
52
+
53
+ The whole effect stack is now aligned on `4.0.0-beta.104`. What matters is that all three packages
54
+ are pinned to the _same_ version: npm then dedupes `platform-node`'s transitive caret onto the
55
+ root pin, so the tree stays consistent even after newer betas ship.
56
+
57
+ Also fixes two problems surfaced by the bump:
58
+
59
+ - `@laikacms/server` imported `effect/DateTime` and `effect/Result` without declaring `effect` as
60
+ a dependency, resolving through a stale phantom symlink. It is now a declared dependency, which
61
+ also makes the published package installable on npm.
62
+ - `effect/Schema`'s `decodeUnknownSync` now throws a real `SchemaError` rather than a plain
63
+ `Error` carrying an `Issue` as its `cause`, so the documents-api error mapper detects it with
64
+ `Schema.isSchemaError`. Without this, internal decode failures regressed from `400 invalid_data`
65
+ to `500 internal_error`.
66
+
67
+ - Updated dependencies [e8ab49b]
68
+ - Updated dependencies [14df4cf]
69
+ - Updated dependencies [387a1b4]
70
+ - Updated dependencies [06b4a5a]
71
+ - Updated dependencies [e8ab49b]
72
+ - Updated dependencies [14df4cf]
73
+ - Updated dependencies [e8ab49b]
74
+ - Updated dependencies [6b918c6]
75
+ - laikacms@6.0.0
76
+
77
+ ## 1.0.4
78
+
79
+ ### Patch Changes
80
+
81
+ - Updated dependencies [2f17498]
82
+ - Updated dependencies [2f17498]
83
+ - Updated dependencies [2f17498]
84
+ - laikacms@5.0.0
85
+
86
+ ## 1.0.3
87
+
88
+ ### Patch Changes
89
+
90
+ - Updated dependencies
91
+ - Updated dependencies
92
+ - laikacms@3.1.0
93
+
94
+ ## 1.0.2
95
+
96
+ ### Patch Changes
97
+
98
+ - laikacms@3.0.1
99
+
100
+ ## 1.0.1
101
+
102
+ ### Patch Changes
103
+
104
+ - 7cc69ce: Advertise `changes: unsupportedChanges` in `getCapabilities()` to satisfy the
105
+ now-required `changes` capability on the storage `Capabilities` interface. These git-backed
106
+ repositories do not expose a push change channel, so they report the no-op channel;
107
+ `subscribeChanges` remains unsupported.
108
+ - Updated dependencies [68c658f]
109
+ - Updated dependencies [d26bdfe]
110
+ - laikacms@3.0.0
111
+
112
+ ## 1.0.1
113
+
114
+ ### Patch Changes
115
+
116
+ - Updated dependencies [e488528]
117
+ - laikacms@1.0.1
118
+
3
119
  ## 1.0.0
4
120
 
5
121
  ### Major Changes
package/README.md CHANGED
@@ -1,41 +1,185 @@
1
1
  # @laikacms/github
2
2
 
3
3
  GitHub-backed `StorageRepository` for Laika CMS. Stores content as commits in a GitHub repository;
4
- the package authenticates as a **GitHub App** using installation tokens.
4
+ pairs with the FS adapter for local dev so the same flow works against a real git repo with no FS
5
+ required.
5
6
 
6
- This is the production storage adapter that lets the same `documents-contentbase` flow work against
7
- a real git repo, no FS required. Pair it with the FS adapter (`laikacms/storage-fs`) for local dev
8
- to keep behavior identical across environments.
7
+ ## Auth modes
9
8
 
10
- ## Why a GitHub App (not OAuth App or PAT)
9
+ The package ships with **two** authentication shapes. They are mutually exclusive — supply either
10
+ App credentials **or** a pre-built `Octokit` instance, not both.
11
11
 
12
- - App installation tokens are **scoped to a single repo** (the install). Tokens are short-lived and
13
- minted on demand from the App's private key — no long-lived secrets in the running Worker.
14
- - The user's GitHub identity (logged in via PKCE) is **independent** of the writer identity. Editors
15
- don't need write access to the content repo; the App does.
16
- - Audit trail: every commit is attributed to `<App name>[bot]` with the editor's user info in the
17
- commit message.
12
+ ### GitHub App (installation token)
18
13
 
19
- ## Usage
14
+ Use when the user editing content is **not** a GitHub user (for example: they signed in to Laika
15
+ Cloud with Google, but the content lives in a GitHub repo). The App's installation token lets the
16
+ platform write to GitHub on the user's behalf; the user has no GitHub identity to act under.
17
+
18
+ Practical signs that you need App mode:
19
+
20
+ - Laika Cloud–style multi-tenant operator where editors don't have to have GitHub accounts.
21
+ - A self-hosted gateway that runs its **own** user database (managed via `@laikacms/server/oauth2` +
22
+ `@laikacms/server/api` + `@laikacms/integrations/github`) on top of GitHub storage.
23
+
24
+ ### Pre-configured Octokit (bring-your-own client)
25
+
26
+ Pass a pre-built `Octokit` instance instead of App credentials. The package uses it as-is for all
27
+ API calls — no token minting, no TTL management. This is the right choice when:
28
+
29
+ - **Testing** — inject a mocked/intercepted Octokit to avoid real GitHub API calls.
30
+ - **GitHub Enterprise** — construct `new Octokit({ baseUrl: 'https://github.my-corp.com/api/v3' })`
31
+ and pass it in; no App registration required.
32
+ - **Custom plugins / retry strategies** — build an Octokit with `@octokit/plugin-retry` or similar
33
+ and hand it to the storage repository.
34
+ - **Any existing Octokit you already have** — if your app already manages a configured Octokit (PAT,
35
+ OAuth token, custom auth), just pass it rather than setting up a GitHub App.
36
+
37
+ ## Usage — App mode
20
38
 
21
39
  ```ts
22
40
  import { GithubStorageRepository } from '@laikacms/github/storage-gh';
23
- import { storageSerializerMarkdown } from 'laikacms/storage-serializers-markdown';
24
- import { storageSerializerYaml } from 'laikacms/storage-serializers-yaml';
41
+ import { markdownSerializer } from 'laikacms/storage-serializers-markdown';
42
+ import { yamlSerializer } from 'laikacms/storage-serializers-yaml';
25
43
 
26
44
  const storage = new GithubStorageRepository({
45
+ // App-mode auth: supply all three to mint an installation token from the private key.
27
46
  appId: env.GITHUB_APP_ID,
28
47
  privateKey: env.GITHUB_APP_PRIVATE_KEY,
29
48
  installationId: env.GITHUB_APP_INSTALLATION_ID,
49
+
50
+ owner: 'esstudio',
51
+ repo: 'content',
52
+ branch: 'main',
53
+ serializerRegistry: {
54
+ yaml: yamlSerializer,
55
+ md: markdownSerializer,
56
+ },
57
+ defaultFileExtension: 'md',
58
+ });
59
+ ```
60
+
61
+ Then pass `storage` to `laikaApi({ storage, ... })`.
62
+
63
+ ## Usage — Octokit mode
64
+
65
+ ```ts
66
+ import { GithubStorageRepository } from '@laikacms/github/storage-gh';
67
+ import { Octokit } from '@octokit/rest';
68
+
69
+ // Any fully-configured Octokit instance works — PAT, OAuth, GHE, custom plugins.
70
+ const octokit = new Octokit({ auth: env.GITHUB_TOKEN });
71
+
72
+ // GitHub Enterprise example:
73
+ // const octokit = new Octokit({ baseUrl: 'https://github.my-corp.com/api/v3', auth: env.GHE_TOKEN });
74
+
75
+ const storage = new GithubStorageRepository({
76
+ octokit, // mutually exclusive with appId / privateKey / installationId
77
+
30
78
  owner: 'esstudio',
31
79
  repo: 'content',
32
80
  branch: 'main',
33
81
  serializerRegistry: {
34
- yaml: storageSerializerYaml(),
35
- md: storageSerializerMarkdown(),
82
+ yaml: yamlSerializer,
83
+ md: markdownSerializer,
36
84
  },
37
85
  defaultFileExtension: 'md',
38
86
  });
39
87
  ```
40
88
 
41
- Then pass `storage` to `decapApi({ storage, ... })`.
89
+ ---
90
+
91
+ ## Behaviour notes
92
+
93
+ - **Extension hiding.** Keys are extension-free at the boundary, exactly like `@laikacms/gitlab` and
94
+ `laikacms/storage-fs`. The on-disk file extension is chosen from the registered serializers and
95
+ looked up on read.
96
+ - **Empty directories.** Git tracks files, not directories. `createFolder` writes a `.keep` file
97
+ (filtered out of listings via the `ignoreList`).
98
+ - **Listings on missing folders.** GitHub's API cannot distinguish an empty directory from a missing
99
+ one — both return HTTP 404. The GitHub backend maps 404 → `Result.succeed([])`, so listing a
100
+ missing folder returns `total: 0` with zero summaries and **no** `recoverableError`. `getFolder`
101
+ on a missing folder similarly succeeds, returning a synthetic `Folder` with `createdAt/updatedAt`
102
+ set to `new Date(0)`. This differs from `@laikacms/gitlab` and `@laikacms/bitbucket`, which
103
+ surface missing-folder 404s as `recoverableError` (`NotFoundError`).
104
+ - **Upsert.** `createOrUpdateObject` maps to GitHub's `createOrUpdateFileContents` endpoint. Pass
105
+ `update.metadata.revisionId` (the file's blob `sha`) for optimistic-concurrency updates.
106
+ - **Rate limits.** Deep listings (Trees API) and write operations count against your installation's
107
+ primary and secondary rate limits. On 429 or a 403 with `x-ratelimit-remaining: 0`, the backend
108
+ raises `TooManyRequestsError`.
109
+
110
+ ---
111
+
112
+ ## Constructor options
113
+
114
+ All options are passed as a single object to `new GithubStorageRepository(options)`.
115
+
116
+ Auth options are a **discriminated union** — supply either `octokit` **or** the three App fields
117
+ (`appId`, `privateKey`, `installationId`), never both.
118
+
119
+ ### Required (always)
120
+
121
+ | Option | Type | Description |
122
+ | ---------------------- | --------------------------- | ----------------------------------------------------------------------------------------------- |
123
+ | `owner` | `string` | Repository owner (user or organisation). |
124
+ | `repo` | `string` | Repository name. |
125
+ | `branch` | `string` | Branch to read from and write to. |
126
+ | `serializerRegistry` | `StorageSerializerRegistry` | Map of file extension → serializer. Drives which extensions the integration can read and write. |
127
+ | `defaultFileExtension` | `string` | Extension used when no other serializer can be determined. |
128
+
129
+ ### Auth — App mode (mutually exclusive with `octokit`)
130
+
131
+ | Option | Type | Description |
132
+ | ---------------- | ------------------ | -------------------------------------------------------------------------------------------------------- |
133
+ | `appId` | `string \| number` | GitHub App ID. |
134
+ | `privateKey` | `string` | PEM private key for the App. Literal `\n` sequences and surrounding quotes are normalised automatically. |
135
+ | `installationId` | `string \| number` | Installation ID for the App on the target repo. |
136
+
137
+ ### Auth — Octokit mode (mutually exclusive with App fields)
138
+
139
+ | Option | Type | Description |
140
+ | --------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
141
+ | `octokit` | `Octokit` | Pre-configured `@octokit/rest` instance. The package uses it as-is for all API calls — no token minting or TTL management. Mutually exclusive with App credentials. |
142
+
143
+ ### Optional
144
+
145
+ | Option | Type | Default | Description |
146
+ | -------------------- | --------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
147
+ | `ignoreList` | `string[]` | See below | Glob patterns for files that are excluded from directory listings. Overrides the built-in list entirely when supplied. |
148
+ | `commitAuthor` | `{ name: string, email: string }` | _(none)_ | Name and email stamped as **both** the `author` and `committer` fields on every GitHub API write call (`createOrUpdateFileContents` and `deleteFile`). Both fields are set explicitly; neither is left for GitHub to default. Omit to let GitHub fall back to the App installation's identity. |
149
+ | `determineExtension` | `DetermineExtension` | `defaultDetermineExtension` | Custom resolver that picks the file extension for a new object given its key and metadata. Replaces the built-in logic when provided. |
150
+ | `tokenTtlSeconds` | `number` | `3000` (50 min) | App mode only. How many seconds before the cached installation token is considered stale and a fresh one is minted. GitHub installation tokens last ~1 hour; the default refreshes well before expiry. |
151
+ | `userAgent` | `string` | `'@laikacms/github'` | `User-Agent` header sent on every Octokit request. |
152
+
153
+ #### Default `ignoreList`
154
+
155
+ When `ignoreList` is not supplied the following patterns are excluded:
156
+
157
+ ```
158
+ **/.keep
159
+ **/.DS_Store
160
+ **/Thumbs.db
161
+ **/desktop.ini
162
+ **/.catalog
163
+ **/.laikacms
164
+ ```
165
+
166
+ ---
167
+
168
+ ## TODO — OAuth user-token auth
169
+
170
+ **Current state.** The package supports two auth modes: GitHub App (installation token) and
171
+ pre-configured Octokit (bring-your-own). The octokit mode unblocks testing, GitHub Enterprise, and
172
+ custom auth plugins. A first-class OAuth user-token flow (where the user's GitHub identity appears
173
+ on commits) is not yet implemented — it belongs in `@laikacms/server/oauth2` for self-hosted
174
+ gateways.
175
+
176
+ **Target shape.** When implemented, the constructor will accept an **async auth provider** — a
177
+ callback invoked on demand to produce credentials. The octokit mode is the interim escape hatch:
178
+ pass `new Octokit({ auth: yourToken })` to get non-App auth today.
179
+
180
+ **Out of scope until the OAuth flow ships:**
181
+
182
+ - Building the GitHub OAuth flow itself. That belongs in `@laikacms/server/oauth2` (and is
183
+ documented there for self-hosted gateways managing their own users).
184
+ - Token storage. Where the token lives between requests (cookie, KV, session, CLI keychain) is a
185
+ consumer concern.
@@ -1,20 +1,28 @@
1
1
  import { Octokit } from '@octokit/rest';
2
2
  import { ConflictError } from 'laikacms/core';
3
3
  import type { LaikaResult } from 'laikacms/core';
4
- export interface GithubDataSourceOptions {
4
+ type GithubAppAuthOptions = {
5
5
  appId: string | number;
6
6
  privateKey: string;
7
7
  installationId: string | number;
8
+ octokit?: undefined;
9
+ };
10
+ type GithubOctokitAuthOptions = {
11
+ /** Pre-configured Octokit instance. When provided, App credentials are not required. */
12
+ octokit: Octokit;
13
+ appId?: undefined;
14
+ privateKey?: undefined;
15
+ installationId?: undefined;
16
+ };
17
+ export type GithubDataSourceOptions = {
8
18
  owner: string;
9
19
  repo: string;
10
20
  branch: string;
11
- /** Optional Octokit override — useful for tests. */
12
- octokit?: Octokit;
13
21
  /** Token cache TTL in seconds. Installation tokens last ~1h; default refresh well before. */
14
22
  tokenTtlSeconds?: number;
15
23
  /** User-Agent string sent on all requests. */
16
24
  userAgent?: string;
17
- }
25
+ } & (GithubAppAuthOptions | GithubOctokitAuthOptions);
18
26
  interface GithubDirEntry {
19
27
  name: string;
20
28
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"github-datasource.d.ts","sourceRoot":"","sources":["../../src/storage-gh/github-datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-datasource.d.ts","sourceRoot":"","sources":["../../src/storage-gh/github-datasource.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createAppAuth } from '@octokit/auth-app';
2
2
  import { Octokit } from '@octokit/rest';
3
3
  import * as Result from 'effect/Result';
4
- import { ConflictError, DirInsteadOfFile, FileInsteadOfDir, ForbiddenError, InternalError, NotFoundError, VersionMismatchError, } from 'laikacms/core';
4
+ import { ConflictError, DirInsteadOfFile, FileInsteadOfDir, ForbiddenError, InternalError, NotFoundError, TooManyRequestsError, UpstreamUnAuthorizedError, VersionMismatchError, } from 'laikacms/core';
5
5
  const DEFAULT_TOKEN_TTL_SECONDS = 50 * 60;
6
6
  const DEFAULT_USER_AGENT = '@laikacms/github';
7
7
  /**
@@ -211,6 +211,7 @@ export class GithubDataSource {
211
211
  content: textToBase64(content),
212
212
  branch: this.branch,
213
213
  sha,
214
+ author: options.author,
214
215
  committer: options.author,
215
216
  });
216
217
  const newSha = data.content?.sha;
@@ -234,6 +235,7 @@ export class GithubDataSource {
234
235
  message: options.commitMessage ?? `Delete ${relativePath}`,
235
236
  sha,
236
237
  branch: this.branch,
238
+ author: options.author,
237
239
  committer: options.author,
238
240
  });
239
241
  return Result.succeed({ path: relativePath });
@@ -261,7 +263,11 @@ export class GithubDataSource {
261
263
  if (isOctokitError(e) && e.status === 404) {
262
264
  throw new NotFoundError(`The path at ${relativePath} does not exist`);
263
265
  }
264
- throw e;
266
+ // Route non-404 failures (429 rate-limit, 403 forbidden, 5xx, ...) through the same
267
+ // status→domain-error mapping used elsewhere, so callers can distinguish a real
268
+ // rate-limit/forbidden response from a generic failure instead of treating them alike.
269
+ const mapped = this.mapError(e, relativePath);
270
+ throw Result.isFailure(mapped) ? mapped.failure : e;
265
271
  }
266
272
  }
267
273
  mapError(error, contextPath) {
@@ -272,8 +278,20 @@ export class GithubDataSource {
272
278
  case 404:
273
279
  return Result.fail(new NotFoundError(`The file at ${contextPath} does not exist`));
274
280
  case 401:
275
- case 403:
276
- return Result.fail(new ForbiddenError(`Access denied for ${contextPath}: ${error.message ?? 'forbidden'}`));
281
+ return Result.fail(new UpstreamUnAuthorizedError(`GitHub rejected this server's credential for ${contextPath}: ${error.message ?? 'unauthorized'}`));
282
+ case 403: {
283
+ const rateLimitRemaining = error.response?.headers?.['x-ratelimit-remaining'];
284
+ if (rateLimitRemaining === '0' || rateLimitRemaining === 0) {
285
+ return Result.fail(new TooManyRequestsError(`GitHub rate limit exceeded for ${contextPath}`));
286
+ }
287
+ const msg = error.message ?? '';
288
+ if (msg.includes('Resource not accessible by')) {
289
+ return Result.fail(new ForbiddenError(`Resource not accessible for ${contextPath}: ${msg}`));
290
+ }
291
+ return Result.fail(new ForbiddenError(`Insufficient permissions for ${contextPath}: ${msg || 'forbidden'}`));
292
+ }
293
+ case 429:
294
+ return Result.fail(new TooManyRequestsError(`GitHub rate-limited request for ${contextPath}`));
277
295
  case 409:
278
296
  case 422:
279
297
  return Result.fail(new VersionMismatchError(`Conflict writing ${contextPath}: someone else modified the file since you last viewed it.`));
@@ -1 +1 @@
1
- {"version":3,"file":"github-datasource.js","sourceRoot":"","sources":["../../src/storage-gh/github-datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-datasource.js","sourceRoot":"","sources":["../../src/storage-gh/github-datasource.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { LaikaStream, LaikaTask } from 'laikacms/core';
2
2
  import { type Atom, type AtomSummary, Capabilities, type DetermineExtension, type Folder, type FolderCreate, type ListAtomsDone, type ListAtomsOptions, type RemoveAtomsDone, type StorageObject, type StorageObjectCreate, type StorageObjectUpdate, StorageRepository, type StorageSerializerRegistry } from 'laikacms/storage';
3
3
  import { type GithubDataSourceOptions } from './github-datasource.js';
4
- export interface GithubStorageRepositoryOptions extends GithubDataSourceOptions {
4
+ export type GithubStorageRepositoryOptions = GithubDataSourceOptions & {
5
5
  serializerRegistry: StorageSerializerRegistry;
6
6
  defaultFileExtension: string;
7
7
  ignoreList?: string[];
@@ -10,7 +10,7 @@ export interface GithubStorageRepositoryOptions extends GithubDataSourceOptions
10
10
  email: string;
11
11
  };
12
12
  determineExtension?: DetermineExtension;
13
- }
13
+ };
14
14
  /**
15
15
  * StorageRepository backed by a GitHub repository.
16
16
  */
@@ -38,6 +38,7 @@ export declare class GithubStorageRepository extends StorageRepository {
38
38
  listAtomSummaries(folderKey: string, options: ListAtomsOptions): LaikaStream.LaikaStream<AtomSummary, ListAtomsDone>;
39
39
  listAtoms(folderKey: string, options: ListAtomsOptions): LaikaStream.LaikaStream<Atom, ListAtomsDone>;
40
40
  private collectFilteredSummaries;
41
+ private listFolderLevel;
41
42
  removeAtoms(keys: readonly string[]): LaikaStream.LaikaStream<string, RemoveAtomsDone>;
42
43
  getCapabilities(): LaikaTask.LaikaTask<Capabilities>;
43
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"github-storage-repository.d.ts","sourceRoot":"","sources":["../../src/storage-gh/github-storage-repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,WAAW,EACX,SAAS,EAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,YAAY,EAGZ,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,KAAK,yBAAyB,EAC/B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAExF,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAcD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAE5C,OAAO,EAAE,8BAA8B;IAsBnD,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;YAOR,wBAAwB;YAYxB,SAAS;YAYT,WAAW;IAYzB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IA2B1D,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IA4B7E,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IAqB7E,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IA0BrF,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;IAUnD,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;IAerE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;IA0B/C,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC;IAUtD,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC;IAoB/C,OAAO,CAAC,wBAAwB;IA4BhC,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAuCtF,eAAe,IAAI,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;CAerD"}
1
+ {"version":3,"file":"github-storage-repository.d.ts","sourceRoot":"","sources":["../../src/storage-gh/github-storage-repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,WAAW,EACX,SAAS,EAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,YAAY,EAIZ,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,KAAK,yBAAyB,EAE/B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAExF,MAAM,MAAM,8BAA8B,GAAG,uBAAuB,GAAG;IACrE,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAcF;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAE5C,OAAO,EAAE,8BAA8B;IAsBnD,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;YAOR,wBAAwB;YAYxB,SAAS;YAYT,WAAW;IAYzB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IA2B1D,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IA4B7E,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IAqB7E,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;IA0BrF,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;IAUnD,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;IAerE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;IA2B/C,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC;IAUtD,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC;IAoB/C,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,eAAe;IAyBvB,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAuCtF,eAAe,IAAI,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;CAgBrD"}
@@ -1,7 +1,7 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import * as Result from 'effect/Result';
3
3
  import { BadRequestError, EntryAlreadyExistsError, InvalidData, LaikaStream, LaikaTask, NotFoundError, } from 'laikacms/core';
4
- import { applyPagination, CompatibilityDate, defaultDetermineExtension, pathCombine, StorageRepository, } from 'laikacms/storage';
4
+ import { applyPagination, collectAtomSummariesWithDepth, CompatibilityDate, defaultDetermineExtension, pathCombine, StorageRepository, unsupportedChanges, } from 'laikacms/storage';
5
5
  import * as minimatch from 'minimatch';
6
6
  import { GithubDataSource } from './github-datasource.js';
7
7
  const DEFAULT_IGNORE_LIST = [
@@ -9,7 +9,7 @@ const DEFAULT_IGNORE_LIST = [
9
9
  '**/.DS_Store',
10
10
  '**/Thumbs.db',
11
11
  '**/desktop.ini',
12
- '**/.contentbase',
12
+ '**/.catalog',
13
13
  '**/.laikacms',
14
14
  ];
15
15
  const liftResult = (p) => Effect.flatMap(Effect.promise(() => p), Effect.fromResult);
@@ -179,14 +179,16 @@ export class GithubStorageRepository extends StorageRepository {
179
179
  return LaikaTask.make(() => Effect.gen({ self: this }, function* () {
180
180
  const typeResult = yield* Effect.result(Effect.tryPromise({
181
181
  try: () => this.dataSource.pathType(key),
182
- catch: e => e instanceof NotFoundError
183
- ? e
184
- : e instanceof Error
185
- ? new BadRequestError(e.message)
186
- : new BadRequestError(String(e)),
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))),
187
185
  }));
188
- // pathType failures (incl. NotFound) → probe as file with an extension via getObject.
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.
189
188
  if (typeResult._tag === 'Failure') {
189
+ if (!(typeResult.failure instanceof NotFoundError)) {
190
+ return yield* Effect.fail(typeResult.failure);
191
+ }
190
192
  return yield* LaikaTask.runValue(this.getObject(key));
191
193
  }
192
194
  if (typeResult.success === 'file') {
@@ -197,15 +199,15 @@ export class GithubStorageRepository extends StorageRepository {
197
199
  }
198
200
  listAtomSummaries(folderKey, options) {
199
201
  return LaikaStream.make(emit => Effect.gen({ self: this }, function* () {
200
- const summaries = yield* this.collectFilteredSummaries(folderKey, options);
202
+ const { summaries, aggregateTotal } = yield* this.collectFilteredSummaries(folderKey, options);
201
203
  if (summaries.length > 0)
202
204
  yield* emit.dataMany(summaries);
203
- return { total: summaries.length };
205
+ return { total: aggregateTotal };
204
206
  }));
205
207
  }
206
208
  listAtoms(folderKey, options) {
207
209
  return LaikaStream.make(emit => Effect.gen({ self: this }, function* () {
208
- const summaries = yield* this.collectFilteredSummaries(folderKey, options);
210
+ const { summaries, aggregateTotal } = yield* this.collectFilteredSummaries(folderKey, options);
209
211
  for (const summary of summaries) {
210
212
  if (summary.type === 'object-summary') {
211
213
  const r = yield* Effect.result(LaikaTask.runValue(this.getObject(summary.key)));
@@ -222,10 +224,17 @@ export class GithubStorageRepository extends StorageRepository {
222
224
  yield* emit.data(r.success);
223
225
  }
224
226
  }
225
- return { total: summaries.length };
227
+ return { total: aggregateTotal };
226
228
  }));
227
229
  }
228
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) {
229
238
  return Effect.gen({ self: this }, function* () {
230
239
  const listing = yield* liftResult(this.dataSource.listDirectory(folderKey));
231
240
  const filtered = listing.filter(entry => this.excludeFilter.every(re => !re.test(entry.path)));
@@ -244,7 +253,7 @@ export class GithubStorageRepository extends StorageRepository {
244
253
  key,
245
254
  };
246
255
  });
247
- return applyPagination(summaries, options.pagination);
256
+ return summaries;
248
257
  });
249
258
  }
250
259
  removeAtoms(keys) {
@@ -281,6 +290,7 @@ export class GithubStorageRepository extends StorageRepository {
281
290
  }
282
291
  getCapabilities() {
283
292
  return LaikaTask.succeed({
293
+ changes: unsupportedChanges,
284
294
  fileExtensions: {
285
295
  supported: true,
286
296
  description: 'Supported file types depend on the serializers provided to this repository.',
@@ -1 +1 @@
1
- {"version":3,"file":"github-storage-repository.js","sourceRoot":"","sources":["../../src/storage-gh/github-storage-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,WAAW,EAGX,WAAW,EACX,SAAS,EACT,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EAIf,iBAAiB,EACjB,yBAAyB,EAMzB,WAAW,EAMX,iBAAiB,GAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAgC,MAAM,wBAAwB,CAAC;AAUxF,MAAM,mBAAmB,GAAG;IAC1B,UAAU;IACV,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,GAAG,CAAI,CAA0B,EAAgC,EAAE,CACjF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IAC3C,UAAU,CAAmB;IAC7B,kBAAkB,CAA4B;IAC9C,oBAAoB,CAAS;IAC7B,mBAAmB,CAAW;IAC9B,aAAa,CAAuB;IACpC,YAAY,CAAmC;IAC/C,kBAAkB,CAAqB;IAExD,YAAY,OAAuC;QACjD,KAAK,EAAE,CAAC;QACR,MAAM,EACJ,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,GAAG,mBAAmB,EAChC,YAAY,EACZ,kBAAkB,GAAG,yBAAyB,EAC9C,GAAG,iBAAiB,EACrB,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,UAAU;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3D,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IACzD,CAAC;IAEO,gBAAgB,CACtB,GAAW,EACX,QAA+C;QAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAC7C,QAAQ;YACR,gBAAgB,EAAE,IAAI,CAAC,oBAAoB;SAC5C,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACtE,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAEO,cAAc,CAAC,CAAS;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;gBAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,GAAW;QAEX,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,OAA6B;QAChE,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CACvB,4CAA4C,QAAQ,IAAI;kBACpD,sBAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC,6BAA6B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,OAAe;QACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CACvB,4CAA4C,QAAQ,IAAI;kBACpD,sBAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC,+BAA+B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,SAAS,CAAC,IAAI,CAAgB,GAAG,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC;YACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACvC;gBACE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1D,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACvD,EACD,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC;YACF,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACxG,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvC,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;aAC1C,CAAC;QAC5B,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAA2B;QACtC,OAAO,SAAS,CAAC,IAAI,CAAgB,GAAG,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxF,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,uBAAuB,CACzB,uBAAuB,MAAM,CAAC,GAAG,oCAAoC,QAAQ,CAAC,SAAS,EAAE,CAC1F,CACF,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,OAAQ,CAAC,CAAC,CAAC;YACrF,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACzD,KAAK,CAAC,CAAC,UAAU,CACf,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;gBAC/C,aAAa,EAAE,UAAU,IAAI,EAAE;gBAC/B,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B,CAAC,CACH,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAA2B;QACtC,OAAO,SAAS,CAAC,IAAI,CAAgB,GAAG,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,eAAe,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAQ,CAAC,CAAC,CAAC;gBACpG,KAAK,CAAC,CAAC,UAAU,CACf,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE;oBACxD,aAAa,EAAE,UAAU,QAAQ,CAAC,IAAI,EAAE;oBACxC,MAAM,EAAE,IAAI,CAAC,YAAY;iBAC1B,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,MAA2B;QAC9C,OAAO,SAAS,CAAC,IAAI,CAAgB,GAAG,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,4EAA4E;YAC5E,mDAAmD;YACnD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC7C,MAAM,WAAW,GAAG,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,MAAM,QAAQ,GAAG,WAAW;gBAC1B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,MAAM,GAAG,GAAG,WAAW,IAAI,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrG,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO;gBAC/B,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,OAAQ,CAAC,CAAC;gBACnE,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,CAAC,CAAC,UAAU,CACf,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;gBAC/C,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC1D,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B,CAAC,CACH,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,SAAS,CAAC,IAAI,CAAS,GAAG,EAAE,CACjC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAmB,CAAC;QAClF,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,YAA0B;QACrC,OAAO,SAAS,CAAC,IAAI,CAAS,GAAG,EAAE,CACjC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACxD,KAAK,CAAC,CAAC,UAAU,CACf,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,EAAE;gBAC3C,aAAa,EAAE,oBAAoB,YAAY,CAAC,GAAG,EAAE;gBACrD,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B,CAAC,CACH,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,OAAO,SAAS,CAAC,IAAI,CAAO,GAAG,EAAE,CAC/B,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CACrC,MAAM,CAAC,UAAU,CAAC;gBAChB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACxC,KAAK,EAAE,CAAC,CAAC,EAAE,CACT,CAAC,YAAY,aAAa;oBACxB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,YAAY,KAAK;wBACpB,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;wBAChC,CAAC,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACrC,CAAC,CACH,CAAC;YACF,sFAAsF;YACtF,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,SAAiB,EACjB,OAAyB;QAEzB,OAAO,WAAW,CAAC,IAAI,CAA6B,IAAI,CAAC,EAAE,CACzD,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC1D,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,SAAS,CACP,SAAiB,EACjB,OAAyB;QAEzB,OAAO,WAAW,CAAC,IAAI,CAAsB,IAAI,CAAC,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3E,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAChC,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChF,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;wBAAE,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;;wBAC5D,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChF,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;wBAAE,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;;wBAC5D,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAC9B,SAAiB,EACjB,OAAyB;QAEzB,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAC;YACF,MAAM,SAAS,GAAkB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACpD,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;gBACrB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;4BAC5B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;4BACtC,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB;oBACjE,GAAG;iBACJ,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAuB;QACjC,OAAO,WAAW,CAAC,IAAI,CAA0B,IAAI,CAAC,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC;oBACrF,OAAO,IAAI,CAAC,CAAC;oBACb,SAAS;gBACX,CAAC;gBACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChG,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACjD,OAAO,IAAI,CAAC,CAAC;oBACb,SAAS;gBACX,CAAC;gBACD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CACvC,UAAU,CACR,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE;oBAChE,aAAa,EAAE,UAAU,QAAQ,CAAC,IAAI,EAAE;oBACxC,MAAM,EAAE,IAAI,CAAC,YAAY;iBAC1B,CAAC,CACH,CACF,CAAC;gBACF,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACnD,OAAO,IAAI,CAAC,CAAC;oBACb,SAAS;gBACX,CAAC;gBACD,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC,CAAC;YACf,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,eAAe;QACb,OAAO,SAAS,CAAC,OAAO,CAAe;YACrC,cAAc,EAAE;gBACd,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,6EAA6E;gBAC1F,mBAAmB,EAAE,IAAI,CAAC,kBAAkB;aAC7C;YACD,UAAU,EAAE;gBACV,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,qFAAqF;gBAClG,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;aACpD;YACD,iBAAiB,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"github-storage-repository.js","sourceRoot":"","sources":["../../src/storage-gh/github-storage-repository.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { Octokit } from '@octokit/rest';
1
2
  export { GithubDataSource } from './github-datasource.js';
2
3
  export type { GithubDataSourceOptions } from './github-datasource.js';
3
4
  export { GithubStorageRepository } from './github-storage-repository.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage-gh/index.ts"],"names":[],"mappings":"AAAA,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
+ {"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 { Octokit } from '@octokit/rest';
1
2
  export { GithubDataSource } from './github-datasource.js';
2
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,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,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"}
@@ -0,0 +1,142 @@
1
+ import { GithubStorageRepository } from '../github-storage-repository.js';
2
+ function textToBase64(text) {
3
+ const bytes = new TextEncoder().encode(text);
4
+ let binary = '';
5
+ for (let i = 0; i < bytes.length; i++)
6
+ binary += String.fromCharCode(bytes[i]);
7
+ return btoa(binary);
8
+ }
9
+ const createMockOctokit = () => {
10
+ const files = new Map();
11
+ let shaCounter = 0;
12
+ const newSha = () => `sha${(++shaCounter).toString().padStart(40, '0')}`;
13
+ const createdAt = new Date('2026-01-01');
14
+ const getContentData = (path) => {
15
+ const exactFile = files.get(path);
16
+ if (exactFile) {
17
+ return {
18
+ type: 'file',
19
+ content: textToBase64(exactFile.content),
20
+ encoding: 'base64',
21
+ sha: exactFile.sha,
22
+ path,
23
+ name: path.split('/').pop() ?? path,
24
+ };
25
+ }
26
+ // Build a directory listing that includes both direct file children and
27
+ // immediate subdirectory entries (needed for depth>1 traversal).
28
+ const childPrefix = path === '' ? '' : `${path}/`;
29
+ const seen = new Set();
30
+ const entries = [];
31
+ for (const f of files.values()) {
32
+ if (path !== '' && !f.path.startsWith(childPrefix))
33
+ continue;
34
+ const rest = path === '' ? f.path : f.path.slice(childPrefix.length);
35
+ const slash = rest.indexOf('/');
36
+ if (slash === -1) {
37
+ // Direct file child
38
+ if (!seen.has(f.path)) {
39
+ seen.add(f.path);
40
+ entries.push({ type: 'file', sha: f.sha, path: f.path, name: f.path.split('/').pop() ?? f.path });
41
+ }
42
+ }
43
+ else {
44
+ // Nested under a subdirectory — emit the immediate subdirectory entry
45
+ const childName = rest.slice(0, slash);
46
+ const childPath = path === '' ? childName : `${path}/${childName}`;
47
+ if (!seen.has(childPath)) {
48
+ seen.add(childPath);
49
+ entries.push({ type: 'dir', sha: f.sha, path: childPath, name: childName });
50
+ }
51
+ }
52
+ }
53
+ if (entries.length > 0)
54
+ return entries;
55
+ // Simulate 404
56
+ const err = new Error('Not Found');
57
+ err.status = 404;
58
+ throw err;
59
+ };
60
+ const octokit = {
61
+ repos: {
62
+ getContent: async ({ path }) => {
63
+ const data = getContentData(path);
64
+ return { data };
65
+ },
66
+ createOrUpdateFileContents: async ({ path, content, sha: expectedSha, }) => {
67
+ const existing = files.get(path);
68
+ if (existing && expectedSha && existing.sha !== expectedSha) {
69
+ const err = new Error('Conflict');
70
+ err.status = 409;
71
+ throw err;
72
+ }
73
+ const sha = newSha();
74
+ const decoded = (() => {
75
+ const b64 = content.replace(/\s+/g, '');
76
+ const binary = atob(b64);
77
+ const bytes = new Uint8Array(binary.length);
78
+ for (let i = 0; i < binary.length; i++)
79
+ bytes[i] = binary.charCodeAt(i);
80
+ return new TextDecoder().decode(bytes);
81
+ })();
82
+ files.set(path, { content: decoded, sha, path });
83
+ return { data: { content: { sha, path } } };
84
+ },
85
+ deleteFile: async ({ path, sha, }) => {
86
+ const existing = files.get(path);
87
+ if (!existing) {
88
+ const err = new Error('Not Found');
89
+ err.status = 404;
90
+ throw err;
91
+ }
92
+ if (existing.sha !== sha) {
93
+ const err = new Error('Conflict');
94
+ err.status = 409;
95
+ throw err;
96
+ }
97
+ files.delete(path);
98
+ return {};
99
+ },
100
+ },
101
+ rest: {
102
+ repos: {
103
+ listCommits: async (_params) => {
104
+ // Return a single fake commit for all paths.
105
+ const commit = {
106
+ commit: {
107
+ author: { date: createdAt.toISOString() },
108
+ committer: { date: createdAt.toISOString() },
109
+ },
110
+ };
111
+ return {
112
+ data: [commit],
113
+ headers: {},
114
+ };
115
+ },
116
+ },
117
+ },
118
+ };
119
+ return { files, octokit };
120
+ };
121
+ const makeSerializerRegistry = () => ({
122
+ json: {
123
+ format: { mediaType: 'application/json' },
124
+ serializeDocumentFileContents: async (content) => JSON.stringify(content),
125
+ deserializeDocumentFileContents: async (raw) => JSON.parse(raw),
126
+ },
127
+ });
128
+ export const githubContractCase = {
129
+ name: 'GithubStorageRepository',
130
+ async makeRepo() {
131
+ const { octokit } = createMockOctokit();
132
+ return new GithubStorageRepository({
133
+ owner: 'test-owner',
134
+ repo: 'test-repo',
135
+ branch: 'main',
136
+ octokit: octokit,
137
+ serializerRegistry: makeSerializerRegistry(),
138
+ defaultFileExtension: 'json',
139
+ });
140
+ },
141
+ };
142
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage-gh/testing/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@laikacms/github",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
4
7
  "description": "GitHub-backed StorageRepository for Laika CMS. Stores content in a GitHub repository; authenticates as a GitHub App via installation tokens.",
5
8
  "keywords": [
6
9
  "headless-cms",
@@ -20,7 +23,10 @@
20
23
  "url": "https://github.com/laikacms/laikacms/issues"
21
24
  },
22
25
  "license": "MIT",
23
- "repository": "https://github.com/laikacms/laikacms",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/laikacms/laikacms"
29
+ },
24
30
  "type": "module",
25
31
  "sideEffects": false,
26
32
  "files": [
@@ -44,25 +50,25 @@
44
50
  "dependencies": {
45
51
  "@octokit/auth-app": "^7.1.4",
46
52
  "@octokit/rest": "^22.0.1",
47
- "effect": "4.0.0-beta.66",
48
- "minimatch": "^10.0.3",
49
- "laikacms": "1.0.0"
53
+ "effect": "4.0.0-beta.104",
54
+ "minimatch": "^10.2.5",
55
+ "laikacms": "6.0.0"
50
56
  },
51
57
  "devDependencies": {
52
- "@types/node": "^22.19.15",
58
+ "@types/node": "^24.13.3",
53
59
  "rimraf": "^6.1.3",
54
- "typescript": "^6.0.2",
55
- "vitest": "^4.1.2"
60
+ "typescript": "^6.0.3",
61
+ "vitest": "^4.1.10"
56
62
  },
57
63
  "engines": {
58
- "node": "22.x"
64
+ "node": "24.x"
59
65
  },
60
66
  "scripts": {
61
67
  "clean": "rimraf dist .turbo",
62
68
  "build": "tsc -p tsconfig.json",
63
69
  "dev": "tsc -p tsconfig.json --watch",
64
70
  "typecheck": "tsc --noEmit -p tsconfig.json",
65
- "test": "vitest run --passWithNoTests",
71
+ "test": "vitest run",
66
72
  "test:watch": "vitest"
67
73
  }
68
74
  }