gitx.do 0.1.0 → 0.1.2
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 +40 -353
- package/dist/do/logger.d.ts +50 -0
- package/dist/do/logger.d.ts.map +1 -0
- package/dist/do/logger.js +122 -0
- package/dist/do/logger.js.map +1 -0
- package/dist/{durable-object → do}/schema.d.ts +3 -3
- package/dist/do/schema.d.ts.map +1 -0
- package/dist/{durable-object → do}/schema.js +4 -3
- package/dist/do/schema.js.map +1 -0
- package/dist/do/types.d.ts +267 -0
- package/dist/do/types.d.ts.map +1 -0
- package/dist/do/types.js +62 -0
- package/dist/do/types.js.map +1 -0
- package/dist/index.d.ts +15 -415
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -483
- package/dist/index.js.map +1 -1
- package/package.json +13 -21
- package/dist/cli/commands/add.d.ts +0 -174
- package/dist/cli/commands/add.d.ts.map +0 -1
- package/dist/cli/commands/add.js +0 -131
- package/dist/cli/commands/add.js.map +0 -1
- package/dist/cli/commands/blame.d.ts +0 -259
- package/dist/cli/commands/blame.d.ts.map +0 -1
- package/dist/cli/commands/blame.js +0 -609
- package/dist/cli/commands/blame.js.map +0 -1
- package/dist/cli/commands/branch.d.ts +0 -249
- package/dist/cli/commands/branch.d.ts.map +0 -1
- package/dist/cli/commands/branch.js +0 -693
- package/dist/cli/commands/branch.js.map +0 -1
- package/dist/cli/commands/commit.d.ts +0 -182
- package/dist/cli/commands/commit.d.ts.map +0 -1
- package/dist/cli/commands/commit.js +0 -437
- package/dist/cli/commands/commit.js.map +0 -1
- package/dist/cli/commands/diff.d.ts +0 -464
- package/dist/cli/commands/diff.d.ts.map +0 -1
- package/dist/cli/commands/diff.js +0 -958
- package/dist/cli/commands/diff.js.map +0 -1
- package/dist/cli/commands/log.d.ts +0 -239
- package/dist/cli/commands/log.d.ts.map +0 -1
- package/dist/cli/commands/log.js +0 -535
- package/dist/cli/commands/log.js.map +0 -1
- package/dist/cli/commands/merge.d.ts +0 -106
- package/dist/cli/commands/merge.d.ts.map +0 -1
- package/dist/cli/commands/merge.js +0 -55
- package/dist/cli/commands/merge.js.map +0 -1
- package/dist/cli/commands/review.d.ts +0 -457
- package/dist/cli/commands/review.d.ts.map +0 -1
- package/dist/cli/commands/review.js +0 -533
- package/dist/cli/commands/review.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -269
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -493
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/web.d.ts +0 -199
- package/dist/cli/commands/web.d.ts.map +0 -1
- package/dist/cli/commands/web.js +0 -696
- package/dist/cli/commands/web.js.map +0 -1
- package/dist/cli/fs-adapter.d.ts +0 -656
- package/dist/cli/fs-adapter.d.ts.map +0 -1
- package/dist/cli/fs-adapter.js +0 -1179
- package/dist/cli/fs-adapter.js.map +0 -1
- package/dist/cli/fsx-cli-adapter.d.ts +0 -359
- package/dist/cli/fsx-cli-adapter.d.ts.map +0 -1
- package/dist/cli/fsx-cli-adapter.js +0 -619
- package/dist/cli/fsx-cli-adapter.js.map +0 -1
- package/dist/cli/index.d.ts +0 -387
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -523
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/ui/components/DiffView.d.ts +0 -7
- package/dist/cli/ui/components/DiffView.d.ts.map +0 -1
- package/dist/cli/ui/components/DiffView.js +0 -11
- package/dist/cli/ui/components/DiffView.js.map +0 -1
- package/dist/cli/ui/components/ErrorDisplay.d.ts +0 -6
- package/dist/cli/ui/components/ErrorDisplay.d.ts.map +0 -1
- package/dist/cli/ui/components/ErrorDisplay.js +0 -11
- package/dist/cli/ui/components/ErrorDisplay.js.map +0 -1
- package/dist/cli/ui/components/FuzzySearch.d.ts +0 -9
- package/dist/cli/ui/components/FuzzySearch.d.ts.map +0 -1
- package/dist/cli/ui/components/FuzzySearch.js +0 -12
- package/dist/cli/ui/components/FuzzySearch.js.map +0 -1
- package/dist/cli/ui/components/LoadingSpinner.d.ts +0 -6
- package/dist/cli/ui/components/LoadingSpinner.d.ts.map +0 -1
- package/dist/cli/ui/components/LoadingSpinner.js +0 -10
- package/dist/cli/ui/components/LoadingSpinner.js.map +0 -1
- package/dist/cli/ui/components/NavigationList.d.ts +0 -9
- package/dist/cli/ui/components/NavigationList.d.ts.map +0 -1
- package/dist/cli/ui/components/NavigationList.js +0 -11
- package/dist/cli/ui/components/NavigationList.js.map +0 -1
- package/dist/cli/ui/components/ScrollableContent.d.ts +0 -8
- package/dist/cli/ui/components/ScrollableContent.d.ts.map +0 -1
- package/dist/cli/ui/components/ScrollableContent.js +0 -11
- package/dist/cli/ui/components/ScrollableContent.js.map +0 -1
- package/dist/cli/ui/components/index.d.ts +0 -7
- package/dist/cli/ui/components/index.d.ts.map +0 -1
- package/dist/cli/ui/components/index.js +0 -9
- package/dist/cli/ui/components/index.js.map +0 -1
- package/dist/cli/ui/terminal-ui.d.ts +0 -52
- package/dist/cli/ui/terminal-ui.d.ts.map +0 -1
- package/dist/cli/ui/terminal-ui.js +0 -121
- package/dist/cli/ui/terminal-ui.js.map +0 -1
- package/dist/do/BashModule.d.ts +0 -871
- package/dist/do/BashModule.d.ts.map +0 -1
- package/dist/do/BashModule.js +0 -1143
- package/dist/do/BashModule.js.map +0 -1
- package/dist/do/FsModule.d.ts +0 -601
- package/dist/do/FsModule.d.ts.map +0 -1
- package/dist/do/FsModule.js +0 -1120
- package/dist/do/FsModule.js.map +0 -1
- package/dist/do/GitModule.d.ts +0 -635
- package/dist/do/GitModule.d.ts.map +0 -1
- package/dist/do/GitModule.js +0 -781
- package/dist/do/GitModule.js.map +0 -1
- package/dist/do/GitRepoDO.d.ts +0 -281
- package/dist/do/GitRepoDO.d.ts.map +0 -1
- package/dist/do/GitRepoDO.js +0 -479
- package/dist/do/GitRepoDO.js.map +0 -1
- package/dist/do/bash-ast.d.ts +0 -246
- package/dist/do/bash-ast.d.ts.map +0 -1
- package/dist/do/bash-ast.js +0 -888
- package/dist/do/bash-ast.js.map +0 -1
- package/dist/do/container-executor.d.ts +0 -491
- package/dist/do/container-executor.d.ts.map +0 -1
- package/dist/do/container-executor.js +0 -730
- package/dist/do/container-executor.js.map +0 -1
- package/dist/do/index.d.ts +0 -53
- package/dist/do/index.d.ts.map +0 -1
- package/dist/do/index.js +0 -91
- package/dist/do/index.js.map +0 -1
- package/dist/do/tiered-storage.d.ts +0 -403
- package/dist/do/tiered-storage.d.ts.map +0 -1
- package/dist/do/tiered-storage.js +0 -689
- package/dist/do/tiered-storage.js.map +0 -1
- package/dist/do/withBash.d.ts +0 -231
- package/dist/do/withBash.d.ts.map +0 -1
- package/dist/do/withBash.js +0 -244
- package/dist/do/withBash.js.map +0 -1
- package/dist/do/withFs.d.ts +0 -237
- package/dist/do/withFs.d.ts.map +0 -1
- package/dist/do/withFs.js +0 -387
- package/dist/do/withFs.js.map +0 -1
- package/dist/do/withGit.d.ts +0 -180
- package/dist/do/withGit.d.ts.map +0 -1
- package/dist/do/withGit.js +0 -271
- package/dist/do/withGit.js.map +0 -1
- package/dist/durable-object/object-store.d.ts +0 -633
- package/dist/durable-object/object-store.d.ts.map +0 -1
- package/dist/durable-object/object-store.js +0 -1161
- package/dist/durable-object/object-store.js.map +0 -1
- package/dist/durable-object/schema.d.ts.map +0 -1
- package/dist/durable-object/schema.js.map +0 -1
- package/dist/durable-object/wal.d.ts +0 -416
- package/dist/durable-object/wal.d.ts.map +0 -1
- package/dist/durable-object/wal.js +0 -445
- package/dist/durable-object/wal.js.map +0 -1
- package/dist/mcp/adapter.d.ts +0 -772
- package/dist/mcp/adapter.d.ts.map +0 -1
- package/dist/mcp/adapter.js +0 -895
- package/dist/mcp/adapter.js.map +0 -1
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -22
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
- package/dist/mcp/sandbox/miniflare-evaluator.js +0 -140
- package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
- package/dist/mcp/sandbox/object-store-proxy.d.ts +0 -32
- package/dist/mcp/sandbox/object-store-proxy.d.ts.map +0 -1
- package/dist/mcp/sandbox/object-store-proxy.js +0 -30
- package/dist/mcp/sandbox/object-store-proxy.js.map +0 -1
- package/dist/mcp/sandbox/template.d.ts +0 -17
- package/dist/mcp/sandbox/template.d.ts.map +0 -1
- package/dist/mcp/sandbox/template.js +0 -71
- package/dist/mcp/sandbox/template.js.map +0 -1
- package/dist/mcp/sandbox.d.ts +0 -764
- package/dist/mcp/sandbox.d.ts.map +0 -1
- package/dist/mcp/sandbox.js +0 -1362
- package/dist/mcp/sandbox.js.map +0 -1
- package/dist/mcp/sdk-adapter.d.ts +0 -835
- package/dist/mcp/sdk-adapter.d.ts.map +0 -1
- package/dist/mcp/sdk-adapter.js +0 -974
- package/dist/mcp/sdk-adapter.js.map +0 -1
- package/dist/mcp/tools/do.d.ts +0 -32
- package/dist/mcp/tools/do.d.ts.map +0 -1
- package/dist/mcp/tools/do.js +0 -115
- package/dist/mcp/tools/do.js.map +0 -1
- package/dist/mcp/tools.d.ts +0 -548
- package/dist/mcp/tools.d.ts.map +0 -1
- package/dist/mcp/tools.js +0 -1934
- package/dist/mcp/tools.js.map +0 -1
- package/dist/ops/blame.d.ts +0 -551
- package/dist/ops/blame.d.ts.map +0 -1
- package/dist/ops/blame.js +0 -1037
- package/dist/ops/blame.js.map +0 -1
- package/dist/ops/branch.d.ts +0 -766
- package/dist/ops/branch.d.ts.map +0 -1
- package/dist/ops/branch.js +0 -950
- package/dist/ops/branch.js.map +0 -1
- package/dist/ops/commit-traversal.d.ts +0 -349
- package/dist/ops/commit-traversal.d.ts.map +0 -1
- package/dist/ops/commit-traversal.js +0 -821
- package/dist/ops/commit-traversal.js.map +0 -1
- package/dist/ops/commit.d.ts +0 -555
- package/dist/ops/commit.d.ts.map +0 -1
- package/dist/ops/commit.js +0 -826
- package/dist/ops/commit.js.map +0 -1
- package/dist/ops/merge-base.d.ts +0 -397
- package/dist/ops/merge-base.d.ts.map +0 -1
- package/dist/ops/merge-base.js +0 -691
- package/dist/ops/merge-base.js.map +0 -1
- package/dist/ops/merge.d.ts +0 -855
- package/dist/ops/merge.d.ts.map +0 -1
- package/dist/ops/merge.js +0 -1551
- package/dist/ops/merge.js.map +0 -1
- package/dist/ops/tag.d.ts +0 -247
- package/dist/ops/tag.d.ts.map +0 -1
- package/dist/ops/tag.js +0 -649
- package/dist/ops/tag.js.map +0 -1
- package/dist/ops/tree-builder.d.ts +0 -178
- package/dist/ops/tree-builder.d.ts.map +0 -1
- package/dist/ops/tree-builder.js +0 -271
- package/dist/ops/tree-builder.js.map +0 -1
- package/dist/ops/tree-diff.d.ts +0 -291
- package/dist/ops/tree-diff.d.ts.map +0 -1
- package/dist/ops/tree-diff.js +0 -705
- package/dist/ops/tree-diff.js.map +0 -1
- package/dist/pack/delta.d.ts +0 -248
- package/dist/pack/delta.d.ts.map +0 -1
- package/dist/pack/delta.js +0 -736
- package/dist/pack/delta.js.map +0 -1
- package/dist/pack/format.d.ts +0 -446
- package/dist/pack/format.d.ts.map +0 -1
- package/dist/pack/format.js +0 -572
- package/dist/pack/format.js.map +0 -1
- package/dist/pack/full-generation.d.ts +0 -612
- package/dist/pack/full-generation.d.ts.map +0 -1
- package/dist/pack/full-generation.js +0 -1378
- package/dist/pack/full-generation.js.map +0 -1
- package/dist/pack/generation.d.ts +0 -441
- package/dist/pack/generation.d.ts.map +0 -1
- package/dist/pack/generation.js +0 -707
- package/dist/pack/generation.js.map +0 -1
- package/dist/pack/index.d.ts +0 -502
- package/dist/pack/index.d.ts.map +0 -1
- package/dist/pack/index.js +0 -833
- package/dist/pack/index.js.map +0 -1
- package/dist/refs/branch.d.ts +0 -668
- package/dist/refs/branch.d.ts.map +0 -1
- package/dist/refs/branch.js +0 -897
- package/dist/refs/branch.js.map +0 -1
- package/dist/refs/storage.d.ts +0 -833
- package/dist/refs/storage.d.ts.map +0 -1
- package/dist/refs/storage.js +0 -1023
- package/dist/refs/storage.js.map +0 -1
- package/dist/refs/tag.d.ts +0 -860
- package/dist/refs/tag.d.ts.map +0 -1
- package/dist/refs/tag.js +0 -996
- package/dist/refs/tag.js.map +0 -1
- package/dist/storage/backend.d.ts +0 -425
- package/dist/storage/backend.d.ts.map +0 -1
- package/dist/storage/backend.js +0 -41
- package/dist/storage/backend.js.map +0 -1
- package/dist/storage/fsx-adapter.d.ts +0 -204
- package/dist/storage/fsx-adapter.d.ts.map +0 -1
- package/dist/storage/fsx-adapter.js +0 -470
- package/dist/storage/fsx-adapter.js.map +0 -1
- package/dist/storage/lru-cache.d.ts +0 -691
- package/dist/storage/lru-cache.d.ts.map +0 -1
- package/dist/storage/lru-cache.js +0 -813
- package/dist/storage/lru-cache.js.map +0 -1
- package/dist/storage/object-index.d.ts +0 -585
- package/dist/storage/object-index.d.ts.map +0 -1
- package/dist/storage/object-index.js +0 -532
- package/dist/storage/object-index.js.map +0 -1
- package/dist/storage/r2-pack.d.ts +0 -1257
- package/dist/storage/r2-pack.d.ts.map +0 -1
- package/dist/storage/r2-pack.js +0 -1770
- package/dist/storage/r2-pack.js.map +0 -1
- package/dist/tiered/cdc-pipeline.d.ts +0 -1888
- package/dist/tiered/cdc-pipeline.d.ts.map +0 -1
- package/dist/tiered/cdc-pipeline.js +0 -1880
- package/dist/tiered/cdc-pipeline.js.map +0 -1
- package/dist/tiered/migration.d.ts +0 -1104
- package/dist/tiered/migration.d.ts.map +0 -1
- package/dist/tiered/migration.js +0 -1214
- package/dist/tiered/migration.js.map +0 -1
- package/dist/tiered/parquet-writer.d.ts +0 -1145
- package/dist/tiered/parquet-writer.d.ts.map +0 -1
- package/dist/tiered/parquet-writer.js +0 -1183
- package/dist/tiered/parquet-writer.js.map +0 -1
- package/dist/tiered/read-path.d.ts +0 -835
- package/dist/tiered/read-path.d.ts.map +0 -1
- package/dist/tiered/read-path.js +0 -487
- package/dist/tiered/read-path.js.map +0 -1
- package/dist/types/capability.d.ts +0 -1385
- package/dist/types/capability.d.ts.map +0 -1
- package/dist/types/capability.js +0 -36
- package/dist/types/capability.js.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -18
- package/dist/types/index.js.map +0 -1
- package/dist/types/objects.d.ts +0 -692
- package/dist/types/objects.d.ts.map +0 -1
- package/dist/types/objects.js +0 -837
- package/dist/types/objects.js.map +0 -1
- package/dist/types/storage.d.ts +0 -603
- package/dist/types/storage.d.ts.map +0 -1
- package/dist/types/storage.js +0 -191
- package/dist/types/storage.js.map +0 -1
- package/dist/types/worker-loader.d.ts +0 -60
- package/dist/types/worker-loader.d.ts.map +0 -1
- package/dist/types/worker-loader.js +0 -62
- package/dist/types/worker-loader.js.map +0 -1
- package/dist/utils/hash.d.ts +0 -197
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js +0 -268
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/sha1.d.ts +0 -290
- package/dist/utils/sha1.d.ts.map +0 -1
- package/dist/utils/sha1.js +0 -582
- package/dist/utils/sha1.js.map +0 -1
- package/dist/wire/capabilities.d.ts +0 -1044
- package/dist/wire/capabilities.d.ts.map +0 -1
- package/dist/wire/capabilities.js +0 -941
- package/dist/wire/capabilities.js.map +0 -1
- package/dist/wire/path-security.d.ts +0 -157
- package/dist/wire/path-security.d.ts.map +0 -1
- package/dist/wire/path-security.js +0 -307
- package/dist/wire/path-security.js.map +0 -1
- package/dist/wire/pkt-line.d.ts +0 -345
- package/dist/wire/pkt-line.d.ts.map +0 -1
- package/dist/wire/pkt-line.js +0 -381
- package/dist/wire/pkt-line.js.map +0 -1
- package/dist/wire/receive-pack.d.ts +0 -1059
- package/dist/wire/receive-pack.d.ts.map +0 -1
- package/dist/wire/receive-pack.js +0 -1414
- package/dist/wire/receive-pack.js.map +0 -1
- package/dist/wire/smart-http.d.ts +0 -799
- package/dist/wire/smart-http.d.ts.map +0 -1
- package/dist/wire/smart-http.js +0 -945
- package/dist/wire/smart-http.js.map +0 -1
- package/dist/wire/upload-pack.d.ts +0 -727
- package/dist/wire/upload-pack.d.ts.map +0 -1
- package/dist/wire/upload-pack.js +0 -1138
- package/dist/wire/upload-pack.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tiered-storage.js","sourceRoot":"","sources":["../../src/do/tiered-storage.ts"],"names":[],"mappings":"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"}
|
package/dist/do/withBash.d.ts
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview withBash Mixin for DO Composition
|
|
3
|
-
*
|
|
4
|
-
* This module provides a mixin function that adds bash execution capability
|
|
5
|
-
* to any Durable Object class. The mixin follows the TypeScript mixin pattern
|
|
6
|
-
* and supports lazy initialization of the BashModule.
|
|
7
|
-
*
|
|
8
|
-
* @module do/withBash
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* import { withBash } from 'gitx.do/do'
|
|
13
|
-
* import { DO } from 'dotdo'
|
|
14
|
-
*
|
|
15
|
-
* // Basic usage with defaults
|
|
16
|
-
* class MyDO extends withBash(DO) {
|
|
17
|
-
* async runCommand() {
|
|
18
|
-
* const result = await this.bash.exec('ls', ['-la'])
|
|
19
|
-
* return new Response(result.stdout)
|
|
20
|
-
* }
|
|
21
|
-
* }
|
|
22
|
-
*
|
|
23
|
-
* // With custom options
|
|
24
|
-
* class SecureDO extends withBash(DO, {
|
|
25
|
-
* cwd: '/app',
|
|
26
|
-
* defaultTimeout: 60000,
|
|
27
|
-
* blockedCommands: ['rm', 'wget'],
|
|
28
|
-
* requireConfirmation: true
|
|
29
|
-
* }) {
|
|
30
|
-
* async buildProject() {
|
|
31
|
-
* const result = await this.bash.exec('npm', ['run', 'build'])
|
|
32
|
-
* if (result.exitCode !== 0) {
|
|
33
|
-
* throw new Error(`Build failed: ${result.stderr}`)
|
|
34
|
-
* }
|
|
35
|
-
* return new Response('Build successful')
|
|
36
|
-
* }
|
|
37
|
-
* }
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
import { BashModule, type BashModuleOptions, type BashExecutor, type FsCapability, type BashStorage } from './BashModule';
|
|
41
|
-
/**
|
|
42
|
-
* Type for a class constructor.
|
|
43
|
-
* Used as the base constraint for mixin composition.
|
|
44
|
-
*/
|
|
45
|
-
export type Constructor<T = object> = new (...args: any[]) => T;
|
|
46
|
-
/**
|
|
47
|
-
* Interface for DOs that have bash capability.
|
|
48
|
-
* Classes extended with withBash will implement this interface.
|
|
49
|
-
*/
|
|
50
|
-
export interface WithBashCapability {
|
|
51
|
-
/**
|
|
52
|
-
* The BashModule instance providing bash execution functionality.
|
|
53
|
-
* Lazily initialized on first access.
|
|
54
|
-
*/
|
|
55
|
-
readonly bash: BashModule;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Options for the withBash mixin.
|
|
59
|
-
* These options configure the BashModule that will be created.
|
|
60
|
-
*/
|
|
61
|
-
export interface WithBashOptions {
|
|
62
|
-
/**
|
|
63
|
-
* Default working directory for commands.
|
|
64
|
-
* @default '/'
|
|
65
|
-
*/
|
|
66
|
-
cwd?: string;
|
|
67
|
-
/**
|
|
68
|
-
* Default timeout for commands in milliseconds.
|
|
69
|
-
* @default 30000
|
|
70
|
-
*/
|
|
71
|
-
defaultTimeout?: number;
|
|
72
|
-
/**
|
|
73
|
-
* List of commands that are blocked from execution.
|
|
74
|
-
*/
|
|
75
|
-
blockedCommands?: string[];
|
|
76
|
-
/**
|
|
77
|
-
* Whether to require confirmation for dangerous commands.
|
|
78
|
-
* @default true
|
|
79
|
-
*/
|
|
80
|
-
requireConfirmation?: boolean;
|
|
81
|
-
/**
|
|
82
|
-
* Whether to use AST-based safety analysis.
|
|
83
|
-
* @default true
|
|
84
|
-
*/
|
|
85
|
-
useAST?: boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Policy name to use when persisting settings to database.
|
|
88
|
-
* @default 'default'
|
|
89
|
-
*/
|
|
90
|
-
policyName?: string;
|
|
91
|
-
/**
|
|
92
|
-
* Factory function to get the executor from the DO instance.
|
|
93
|
-
* This enables lazy binding of the executor based on the DO's environment.
|
|
94
|
-
*
|
|
95
|
-
* @param instance - The DO instance
|
|
96
|
-
* @returns The BashExecutor to use, or undefined if none available
|
|
97
|
-
*
|
|
98
|
-
* @example
|
|
99
|
-
* ```typescript
|
|
100
|
-
* withBash(DO, {
|
|
101
|
-
* getExecutor: (instance) => instance.env?.CONTAINER_EXECUTOR
|
|
102
|
-
* })
|
|
103
|
-
* ```
|
|
104
|
-
*/
|
|
105
|
-
getExecutor?: (instance: object) => BashExecutor | undefined;
|
|
106
|
-
/**
|
|
107
|
-
* Factory function to get the filesystem capability from the DO instance.
|
|
108
|
-
* This enables lazy binding of the fs capability based on the DO's context.
|
|
109
|
-
*
|
|
110
|
-
* @param instance - The DO instance
|
|
111
|
-
* @returns The FsCapability to use, or undefined if none available
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
* ```typescript
|
|
115
|
-
* withBash(DO, {
|
|
116
|
-
* getFs: (instance) => instance.$?.fs
|
|
117
|
-
* })
|
|
118
|
-
* ```
|
|
119
|
-
*/
|
|
120
|
-
getFs?: (instance: object) => FsCapability | undefined;
|
|
121
|
-
/**
|
|
122
|
-
* Factory function to get the storage from the DO instance.
|
|
123
|
-
* This enables lazy binding of storage for persistent settings.
|
|
124
|
-
*
|
|
125
|
-
* @param instance - The DO instance
|
|
126
|
-
* @returns The BashStorage to use, or undefined if none available
|
|
127
|
-
*
|
|
128
|
-
* @example
|
|
129
|
-
* ```typescript
|
|
130
|
-
* withBash(DO, {
|
|
131
|
-
* getStorage: (instance) => instance.state?.storage
|
|
132
|
-
* })
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
getStorage?: (instance: object) => BashStorage | undefined;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Mixin function to add bash capability to a DO class.
|
|
139
|
-
*
|
|
140
|
-
* @description
|
|
141
|
-
* Composes bash execution functionality into a Durable Object class.
|
|
142
|
-
* The resulting class will have a `bash` property that provides
|
|
143
|
-
* BashModule functionality for executing shell commands.
|
|
144
|
-
*
|
|
145
|
-
* The BashModule is lazily initialized on first access to the `bash`
|
|
146
|
-
* property. This means:
|
|
147
|
-
* - No overhead if bash is never used
|
|
148
|
-
* - Factory functions (getExecutor, getFs, getStorage) are called at first access
|
|
149
|
-
* - The module can be properly initialized with DO-specific context
|
|
150
|
-
*
|
|
151
|
-
* The mixin supports:
|
|
152
|
-
* - Command execution via exec() and run()
|
|
153
|
-
* - Streaming execution via spawn()
|
|
154
|
-
* - Safety analysis and command blocking
|
|
155
|
-
* - Configurable timeouts and working directory
|
|
156
|
-
* - Database persistence for execution policies
|
|
157
|
-
*
|
|
158
|
-
* @param Base - Base class to extend
|
|
159
|
-
* @param options - Bash configuration options (optional)
|
|
160
|
-
* @returns Extended class with bash capability
|
|
161
|
-
*
|
|
162
|
-
* @example
|
|
163
|
-
* ```typescript
|
|
164
|
-
* import { withBash } from 'gitx.do/do'
|
|
165
|
-
* import { DO } from 'dotdo'
|
|
166
|
-
*
|
|
167
|
-
* // Basic usage with defaults
|
|
168
|
-
* class MyDO extends withBash(DO) {
|
|
169
|
-
* async runCommand() {
|
|
170
|
-
* const result = await this.bash.exec('ls', ['-la'])
|
|
171
|
-
* return new Response(result.stdout)
|
|
172
|
-
* }
|
|
173
|
-
* }
|
|
174
|
-
*
|
|
175
|
-
* // With custom options and lazy binding
|
|
176
|
-
* class SecureDO extends withBash(DO, {
|
|
177
|
-
* cwd: '/app',
|
|
178
|
-
* defaultTimeout: 60000,
|
|
179
|
-
* blockedCommands: ['rm', 'wget'],
|
|
180
|
-
* requireConfirmation: true,
|
|
181
|
-
* getExecutor: (instance) => (instance as any).env?.CONTAINER_EXECUTOR,
|
|
182
|
-
* getFs: (instance) => (instance as any).$?.fs,
|
|
183
|
-
* getStorage: (instance) => (instance as any).state?.storage
|
|
184
|
-
* }) {
|
|
185
|
-
* async buildProject() {
|
|
186
|
-
* const result = await this.bash.exec('npm', ['run', 'build'])
|
|
187
|
-
* if (result.exitCode !== 0) {
|
|
188
|
-
* throw new Error(`Build failed: ${result.stderr}`)
|
|
189
|
-
* }
|
|
190
|
-
* return new Response('Build successful')
|
|
191
|
-
* }
|
|
192
|
-
* }
|
|
193
|
-
* ```
|
|
194
|
-
*
|
|
195
|
-
* @example
|
|
196
|
-
* ```typescript
|
|
197
|
-
* // Combining with withGit
|
|
198
|
-
* import { withGit, withBash } from 'gitx.do/do'
|
|
199
|
-
* import { DO } from 'dotdo'
|
|
200
|
-
*
|
|
201
|
-
* class DevDO extends withBash(withGit(DO, { repo: 'org/repo' }), {
|
|
202
|
-
* cwd: '/workspace'
|
|
203
|
-
* }) {
|
|
204
|
-
* async setupAndBuild() {
|
|
205
|
-
* // Sync git repository
|
|
206
|
-
* await this.git.sync()
|
|
207
|
-
*
|
|
208
|
-
* // Run build commands
|
|
209
|
-
* await this.bash.exec('npm', ['install'])
|
|
210
|
-
* await this.bash.exec('npm', ['run', 'build'])
|
|
211
|
-
* }
|
|
212
|
-
* }
|
|
213
|
-
* ```
|
|
214
|
-
*/
|
|
215
|
-
export declare function withBash<TBase extends Constructor>(Base: TBase, options?: WithBashOptions): TBase & Constructor<WithBashCapability>;
|
|
216
|
-
/**
|
|
217
|
-
* Check if a value has bash capability.
|
|
218
|
-
*
|
|
219
|
-
* @param value - Value to check
|
|
220
|
-
* @returns True if value has the bash property
|
|
221
|
-
*
|
|
222
|
-
* @example
|
|
223
|
-
* ```typescript
|
|
224
|
-
* if (hasBashCapability(instance)) {
|
|
225
|
-
* const result = await instance.bash.exec('ls')
|
|
226
|
-
* }
|
|
227
|
-
* ```
|
|
228
|
-
*/
|
|
229
|
-
export declare function hasBashCapability(value: unknown): value is WithBashCapability;
|
|
230
|
-
export { BashModule, type BashModuleOptions, type BashExecutor, type FsCapability, type BashStorage, };
|
|
231
|
-
//# sourceMappingURL=withBash.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"withBash.d.ts","sourceRoot":"","sources":["../../src/do/withBash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAA;AAMrB;;;GAGG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAE/D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAE5D;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAEtD;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CAC3D;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,wBAAgB,QAAQ,CAAC,KAAK,SAAS,WAAW,EAChD,IAAI,EAAE,KAAK,EACX,OAAO,GAAE,eAAoB,GAC5B,KAAK,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAgGzC;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAO7E;AAMD,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,CAAA"}
|
package/dist/do/withBash.js
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview withBash Mixin for DO Composition
|
|
3
|
-
*
|
|
4
|
-
* This module provides a mixin function that adds bash execution capability
|
|
5
|
-
* to any Durable Object class. The mixin follows the TypeScript mixin pattern
|
|
6
|
-
* and supports lazy initialization of the BashModule.
|
|
7
|
-
*
|
|
8
|
-
* @module do/withBash
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* import { withBash } from 'gitx.do/do'
|
|
13
|
-
* import { DO } from 'dotdo'
|
|
14
|
-
*
|
|
15
|
-
* // Basic usage with defaults
|
|
16
|
-
* class MyDO extends withBash(DO) {
|
|
17
|
-
* async runCommand() {
|
|
18
|
-
* const result = await this.bash.exec('ls', ['-la'])
|
|
19
|
-
* return new Response(result.stdout)
|
|
20
|
-
* }
|
|
21
|
-
* }
|
|
22
|
-
*
|
|
23
|
-
* // With custom options
|
|
24
|
-
* class SecureDO extends withBash(DO, {
|
|
25
|
-
* cwd: '/app',
|
|
26
|
-
* defaultTimeout: 60000,
|
|
27
|
-
* blockedCommands: ['rm', 'wget'],
|
|
28
|
-
* requireConfirmation: true
|
|
29
|
-
* }) {
|
|
30
|
-
* async buildProject() {
|
|
31
|
-
* const result = await this.bash.exec('npm', ['run', 'build'])
|
|
32
|
-
* if (result.exitCode !== 0) {
|
|
33
|
-
* throw new Error(`Build failed: ${result.stderr}`)
|
|
34
|
-
* }
|
|
35
|
-
* return new Response('Build successful')
|
|
36
|
-
* }
|
|
37
|
-
* }
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
import { BashModule, } from './BashModule';
|
|
41
|
-
// ============================================================================
|
|
42
|
-
// Mixin Implementation
|
|
43
|
-
// ============================================================================
|
|
44
|
-
/**
|
|
45
|
-
* Symbol used to store the BashModule instance for lazy initialization.
|
|
46
|
-
* Using a symbol prevents name collisions with user-defined properties.
|
|
47
|
-
*/
|
|
48
|
-
const BASH_MODULE_SYMBOL = Symbol('bashModule');
|
|
49
|
-
/**
|
|
50
|
-
* Symbol used to store the options for lazy initialization.
|
|
51
|
-
*/
|
|
52
|
-
const BASH_OPTIONS_SYMBOL = Symbol('bashOptions');
|
|
53
|
-
/**
|
|
54
|
-
* Symbol to track if the module has been initialized.
|
|
55
|
-
*/
|
|
56
|
-
const BASH_INITIALIZED_SYMBOL = Symbol('bashInitialized');
|
|
57
|
-
/**
|
|
58
|
-
* Mixin function to add bash capability to a DO class.
|
|
59
|
-
*
|
|
60
|
-
* @description
|
|
61
|
-
* Composes bash execution functionality into a Durable Object class.
|
|
62
|
-
* The resulting class will have a `bash` property that provides
|
|
63
|
-
* BashModule functionality for executing shell commands.
|
|
64
|
-
*
|
|
65
|
-
* The BashModule is lazily initialized on first access to the `bash`
|
|
66
|
-
* property. This means:
|
|
67
|
-
* - No overhead if bash is never used
|
|
68
|
-
* - Factory functions (getExecutor, getFs, getStorage) are called at first access
|
|
69
|
-
* - The module can be properly initialized with DO-specific context
|
|
70
|
-
*
|
|
71
|
-
* The mixin supports:
|
|
72
|
-
* - Command execution via exec() and run()
|
|
73
|
-
* - Streaming execution via spawn()
|
|
74
|
-
* - Safety analysis and command blocking
|
|
75
|
-
* - Configurable timeouts and working directory
|
|
76
|
-
* - Database persistence for execution policies
|
|
77
|
-
*
|
|
78
|
-
* @param Base - Base class to extend
|
|
79
|
-
* @param options - Bash configuration options (optional)
|
|
80
|
-
* @returns Extended class with bash capability
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* ```typescript
|
|
84
|
-
* import { withBash } from 'gitx.do/do'
|
|
85
|
-
* import { DO } from 'dotdo'
|
|
86
|
-
*
|
|
87
|
-
* // Basic usage with defaults
|
|
88
|
-
* class MyDO extends withBash(DO) {
|
|
89
|
-
* async runCommand() {
|
|
90
|
-
* const result = await this.bash.exec('ls', ['-la'])
|
|
91
|
-
* return new Response(result.stdout)
|
|
92
|
-
* }
|
|
93
|
-
* }
|
|
94
|
-
*
|
|
95
|
-
* // With custom options and lazy binding
|
|
96
|
-
* class SecureDO extends withBash(DO, {
|
|
97
|
-
* cwd: '/app',
|
|
98
|
-
* defaultTimeout: 60000,
|
|
99
|
-
* blockedCommands: ['rm', 'wget'],
|
|
100
|
-
* requireConfirmation: true,
|
|
101
|
-
* getExecutor: (instance) => (instance as any).env?.CONTAINER_EXECUTOR,
|
|
102
|
-
* getFs: (instance) => (instance as any).$?.fs,
|
|
103
|
-
* getStorage: (instance) => (instance as any).state?.storage
|
|
104
|
-
* }) {
|
|
105
|
-
* async buildProject() {
|
|
106
|
-
* const result = await this.bash.exec('npm', ['run', 'build'])
|
|
107
|
-
* if (result.exitCode !== 0) {
|
|
108
|
-
* throw new Error(`Build failed: ${result.stderr}`)
|
|
109
|
-
* }
|
|
110
|
-
* return new Response('Build successful')
|
|
111
|
-
* }
|
|
112
|
-
* }
|
|
113
|
-
* ```
|
|
114
|
-
*
|
|
115
|
-
* @example
|
|
116
|
-
* ```typescript
|
|
117
|
-
* // Combining with withGit
|
|
118
|
-
* import { withGit, withBash } from 'gitx.do/do'
|
|
119
|
-
* import { DO } from 'dotdo'
|
|
120
|
-
*
|
|
121
|
-
* class DevDO extends withBash(withGit(DO, { repo: 'org/repo' }), {
|
|
122
|
-
* cwd: '/workspace'
|
|
123
|
-
* }) {
|
|
124
|
-
* async setupAndBuild() {
|
|
125
|
-
* // Sync git repository
|
|
126
|
-
* await this.git.sync()
|
|
127
|
-
*
|
|
128
|
-
* // Run build commands
|
|
129
|
-
* await this.bash.exec('npm', ['install'])
|
|
130
|
-
* await this.bash.exec('npm', ['run', 'build'])
|
|
131
|
-
* }
|
|
132
|
-
* }
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
export function withBash(Base, options = {}) {
|
|
136
|
-
// Create the extended class
|
|
137
|
-
class WithBashClass extends Base {
|
|
138
|
-
/**
|
|
139
|
-
* Internal storage for the lazily initialized BashModule.
|
|
140
|
-
*/
|
|
141
|
-
[BASH_MODULE_SYMBOL];
|
|
142
|
-
/**
|
|
143
|
-
* Internal storage for the options.
|
|
144
|
-
*/
|
|
145
|
-
[BASH_OPTIONS_SYMBOL];
|
|
146
|
-
/**
|
|
147
|
-
* Tracks whether initialization has been attempted.
|
|
148
|
-
*/
|
|
149
|
-
[BASH_INITIALIZED_SYMBOL] = false;
|
|
150
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
151
|
-
constructor(...args) {
|
|
152
|
-
super(...args);
|
|
153
|
-
this[BASH_OPTIONS_SYMBOL] = options;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Get the BashModule instance, creating it lazily on first access.
|
|
157
|
-
*
|
|
158
|
-
* @returns The BashModule instance
|
|
159
|
-
*/
|
|
160
|
-
get bash() {
|
|
161
|
-
if (!this[BASH_MODULE_SYMBOL]) {
|
|
162
|
-
this[BASH_MODULE_SYMBOL] = this._createBashModule();
|
|
163
|
-
}
|
|
164
|
-
return this[BASH_MODULE_SYMBOL];
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Create the BashModule instance with resolved options.
|
|
168
|
-
*
|
|
169
|
-
* @returns A new BashModule instance
|
|
170
|
-
* @private
|
|
171
|
-
*/
|
|
172
|
-
_createBashModule() {
|
|
173
|
-
const opts = this[BASH_OPTIONS_SYMBOL];
|
|
174
|
-
// Build module options, resolving lazy factories
|
|
175
|
-
const moduleOptions = {
|
|
176
|
-
cwd: opts.cwd,
|
|
177
|
-
defaultTimeout: opts.defaultTimeout,
|
|
178
|
-
blockedCommands: opts.blockedCommands,
|
|
179
|
-
requireConfirmation: opts.requireConfirmation,
|
|
180
|
-
useAST: opts.useAST,
|
|
181
|
-
policyName: opts.policyName,
|
|
182
|
-
};
|
|
183
|
-
// Resolve executor if factory provided
|
|
184
|
-
if (opts.getExecutor) {
|
|
185
|
-
moduleOptions.executor = opts.getExecutor(this);
|
|
186
|
-
}
|
|
187
|
-
// Resolve filesystem if factory provided
|
|
188
|
-
if (opts.getFs) {
|
|
189
|
-
moduleOptions.fs = opts.getFs(this);
|
|
190
|
-
}
|
|
191
|
-
// Resolve storage if factory provided
|
|
192
|
-
if (opts.getStorage) {
|
|
193
|
-
moduleOptions.storage = opts.getStorage(this);
|
|
194
|
-
}
|
|
195
|
-
return new BashModule(moduleOptions);
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Initialize the bash module asynchronously.
|
|
199
|
-
* This should be called if you need database-backed settings to be loaded.
|
|
200
|
-
*
|
|
201
|
-
* @returns Promise that resolves when initialization is complete
|
|
202
|
-
*/
|
|
203
|
-
async initializeBash() {
|
|
204
|
-
if (this[BASH_INITIALIZED_SYMBOL])
|
|
205
|
-
return;
|
|
206
|
-
// Ensure bash module is created
|
|
207
|
-
const bash = this.bash;
|
|
208
|
-
// Initialize if storage is configured
|
|
209
|
-
if (bash.hasStorage()) {
|
|
210
|
-
await bash.initialize();
|
|
211
|
-
}
|
|
212
|
-
this[BASH_INITIALIZED_SYMBOL] = true;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
// Return the class with proper typing
|
|
216
|
-
return WithBashClass;
|
|
217
|
-
}
|
|
218
|
-
// ============================================================================
|
|
219
|
-
// Type Guards
|
|
220
|
-
// ============================================================================
|
|
221
|
-
/**
|
|
222
|
-
* Check if a value has bash capability.
|
|
223
|
-
*
|
|
224
|
-
* @param value - Value to check
|
|
225
|
-
* @returns True if value has the bash property
|
|
226
|
-
*
|
|
227
|
-
* @example
|
|
228
|
-
* ```typescript
|
|
229
|
-
* if (hasBashCapability(instance)) {
|
|
230
|
-
* const result = await instance.bash.exec('ls')
|
|
231
|
-
* }
|
|
232
|
-
* ```
|
|
233
|
-
*/
|
|
234
|
-
export function hasBashCapability(value) {
|
|
235
|
-
return (typeof value === 'object' &&
|
|
236
|
-
value !== null &&
|
|
237
|
-
'bash' in value &&
|
|
238
|
-
value.bash instanceof BashModule);
|
|
239
|
-
}
|
|
240
|
-
// ============================================================================
|
|
241
|
-
// Re-exports for Convenience
|
|
242
|
-
// ============================================================================
|
|
243
|
-
export { BashModule, };
|
|
244
|
-
//# sourceMappingURL=withBash.js.map
|
package/dist/do/withBash.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"withBash.js","sourceRoot":"","sources":["../../src/do/withBash.ts"],"names":[],"mappings":"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"}
|