dotdo 0.0.2 → 0.1.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/cli/README.md +238 -0
- package/cli/agent.ts +72 -0
- package/cli/bin.js +44 -0
- package/cli/bin.ts +38 -0
- package/cli/build.ts +157 -0
- package/cli/commands/auth/login.ts +14 -0
- package/cli/commands/auth/logout.ts +6 -0
- package/cli/commands/auth/whoami.ts +16 -0
- package/cli/commands/deploy-multi.ts +245 -0
- package/cli/commands/dev/deploy.ts +100 -0
- package/cli/commands/dev/dev.ts +95 -0
- package/cli/commands/dev/logs.ts +91 -0
- package/cli/commands/dev-local.ts +88 -0
- package/cli/commands/do-ops.ts +314 -0
- package/cli/commands/index.ts +100 -0
- package/cli/commands/init.ts +247 -0
- package/cli/commands/introspect/emitter.ts +315 -0
- package/cli/commands/introspect/index.ts +193 -0
- package/cli/commands/link.ts +598 -0
- package/cli/commands/snippets.ts +415 -0
- package/cli/commands/tunnel.ts +239 -0
- package/cli/device-auth.ts +289 -0
- package/cli/fallback.ts +12 -0
- package/cli/index.ts +121 -0
- package/cli/main.ts +246 -0
- package/cli/mcp-stdio.ts +790 -0
- package/cli/package.json +62 -0
- package/cli/runtime/do-registry.ts +193 -0
- package/cli/runtime/embedded-db.ts +344 -0
- package/cli/runtime/index.ts +9 -0
- package/cli/runtime/miniflare-adapter.ts +162 -0
- package/cli/sandbox.ts +82 -0
- package/cli/src/args.ts +174 -0
- package/cli/src/auth.ts +55 -0
- package/cli/src/commands/call.ts +84 -0
- package/cli/src/commands/charge.ts +96 -0
- package/cli/src/commands/config.ts +115 -0
- package/cli/src/commands/email.ts +112 -0
- package/cli/src/commands/llm.ts +115 -0
- package/cli/src/commands/queue.ts +134 -0
- package/cli/src/commands/text.ts +86 -0
- package/cli/src/config.ts +185 -0
- package/cli/src/output.ts +246 -0
- package/cli/src/rpc.ts +192 -0
- package/cli/utils/config.ts +282 -0
- package/cli/utils/detect.ts +73 -0
- package/cli/utils/index.ts +15 -0
- package/cli/utils/logger.ts +232 -0
- package/dist/ai/template-literals.js +2 -2
- package/dist/ai/template-literals.js.map +1 -1
- package/dist/api/middleware/auth.js +3 -2
- package/dist/api/middleware/auth.js.map +1 -1
- package/dist/db/iceberg/inverted-index.js +1 -1
- package/dist/db/iceberg/inverted-index.js.map +1 -1
- package/dist/db/iceberg/puffin.js.map +1 -1
- package/dist/db/json-indexes.js.map +1 -1
- package/dist/db/objects.js.map +1 -1
- package/dist/db/primitives/dag-scheduler/index.js +1 -1
- package/dist/db/primitives/dag-scheduler/index.js.map +1 -1
- package/dist/db/primitives/observability.js.map +1 -1
- package/dist/db/primitives/schema-evolution.js.map +1 -1
- package/dist/db/primitives/temporal-store.js.map +1 -1
- package/dist/db/primitives/typed-column-store.js.map +1 -1
- package/dist/db/primitives/utils/duration.js.map +1 -1
- package/dist/db/primitives/utils/murmur3.js +12 -14
- package/dist/db/primitives/utils/murmur3.js.map +1 -1
- package/dist/db/primitives/window-manager.js.map +1 -1
- package/dist/db/stores.js.map +1 -1
- package/dist/db/things.js.map +1 -1
- package/dist/lib/DODispatcher.js +2 -2
- package/dist/lib/DODispatcher.js.map +1 -1
- package/dist/lib/auto-wiring.js.map +1 -1
- package/dist/lib/channels/email.js +1 -1
- package/dist/lib/channels/email.js.map +1 -1
- package/dist/lib/channels/slack-blockkit.js.map +1 -1
- package/dist/lib/cloudflare/ai.js +1 -1
- package/dist/lib/cloudflare/ai.js.map +1 -1
- package/dist/lib/cloudflare/kv.js +1 -1
- package/dist/lib/cloudflare/kv.js.map +1 -1
- package/dist/lib/cloudflare/r2.js +3 -3
- package/dist/lib/cloudflare/r2.js.map +1 -1
- package/dist/lib/cloudflare/vectorize.js.map +1 -1
- package/dist/lib/cloudflare/workflows.js.map +1 -1
- package/dist/lib/executors/AgenticFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/CodeFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/GenerativeFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/HumanFunctionExecutor.js +1 -1
- package/dist/lib/executors/HumanFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/ParallelStepExecutor.js.map +1 -1
- package/dist/lib/experiments.js.map +1 -1
- package/dist/lib/flags/store.js.map +1 -1
- package/dist/lib/functions/FunctionComposition.js.map +1 -1
- package/dist/lib/functions/FunctionMiddleware.js.map +1 -1
- package/dist/lib/functions/FunctionRegistry.js.map +1 -1
- package/dist/lib/humans/templates.js.map +1 -1
- package/dist/lib/identity.js +2 -2
- package/dist/lib/identity.js.map +1 -1
- package/dist/lib/logging/index.js.map +1 -1
- package/dist/lib/mixins/bash.js +1 -73
- package/dist/lib/mixins/bash.js.map +1 -1
- package/dist/lib/mixins/git.js +0 -5
- package/dist/lib/mixins/git.js.map +1 -1
- package/dist/lib/mixins/npm.js.map +1 -1
- package/dist/lib/noun-id.js.map +1 -1
- package/dist/lib/rate-limit/sliding-window.js.map +1 -1
- package/dist/lib/rpc/bindings.js.map +1 -1
- package/dist/lib/safe-stringify.js.map +1 -1
- package/dist/lib/sandbox/miniflare-sandbox.js.map +1 -1
- package/dist/lib/sqids.js.map +1 -1
- package/dist/lib/sql/adapters/node-sql-parser.js.map +1 -1
- package/dist/lib/sql/adapters/pgsql-parser.js +19 -18
- package/dist/lib/sql/adapters/pgsql-parser.js.map +1 -1
- package/dist/metrics/hunch.js.map +1 -1
- package/dist/objects/API.js +1 -1
- package/dist/objects/API.js.map +1 -1
- package/dist/objects/Agent.js.map +1 -1
- package/dist/objects/Browser.js.map +1 -1
- package/dist/objects/CLI.js.map +1 -1
- package/dist/objects/DOBase.js.map +1 -1
- package/dist/objects/DOCache.js +153 -0
- package/dist/objects/DOCache.js.map +1 -0
- package/dist/objects/DOFull.js.map +1 -1
- package/dist/objects/Entity.js.map +1 -1
- package/dist/objects/Human.js.map +1 -1
- package/dist/objects/IcebergMetadataDO.js.map +1 -1
- package/dist/objects/IntegrationsDO.js.map +1 -1
- package/dist/objects/ObservabilityBroadcaster.js.map +1 -1
- package/dist/objects/Package.js.map +1 -1
- package/dist/objects/Product.js +1 -1
- package/dist/objects/Product.js.map +1 -1
- package/dist/objects/SaaS.js.map +1 -1
- package/dist/objects/SandboxDO.js.map +1 -1
- package/dist/objects/Service.js.map +1 -1
- package/dist/objects/VectorShardDO.js +9 -7
- package/dist/objects/VectorShardDO.js.map +1 -1
- package/dist/objects/Workflow.js.map +1 -1
- package/dist/objects/WorkflowFactory.js.map +1 -1
- package/dist/objects/WorkflowRuntime.js.map +1 -1
- package/dist/objects/lifecycle/Branch.js.map +1 -1
- package/dist/objects/lifecycle/Clone.js +1 -1
- package/dist/objects/lifecycle/Clone.js.map +1 -1
- package/dist/objects/lifecycle/Compact.js.map +1 -1
- package/dist/objects/lifecycle/Shard.js.map +1 -1
- package/dist/objects/persistence/checkpoint-manager.js.map +1 -1
- package/dist/objects/persistence/migration-runner.js.map +1 -1
- package/dist/objects/persistence/replication-manager.js +2 -2
- package/dist/objects/persistence/replication-manager.js.map +1 -1
- package/dist/objects/persistence/tiered-storage-manager.js.map +1 -1
- package/dist/objects/persistence/wal-manager.js.map +1 -1
- package/dist/objects/transport/auth-layer.js.map +1 -1
- package/dist/objects/transport/chain.js.map +1 -1
- package/dist/objects/transport/mcp-server.js +7 -6
- package/dist/objects/transport/mcp-server.js.map +1 -1
- package/dist/objects/transport/rest-autowire.js +3 -2
- package/dist/objects/transport/rest-autowire.js.map +1 -1
- package/dist/objects/transport/rest-router.js.map +1 -1
- package/dist/objects/transport/rpc-server.js +18 -15
- package/dist/objects/transport/rpc-server.js.map +1 -1
- package/dist/objects/transport/shared.js +2 -1
- package/dist/objects/transport/shared.js.map +1 -1
- package/dist/snippets/artifacts-ingest.js.map +1 -1
- package/dist/snippets/artifacts-serve.js.map +1 -1
- package/dist/snippets/search.js.map +1 -1
- package/dist/workflows/ScheduleManager.js.map +1 -1
- package/dist/workflows/StepResultStorage.js.map +1 -1
- package/dist/workflows/WaitForEventManager.js.map +1 -1
- package/dist/workflows/compat/backends/cloudflare-workflows.js.map +1 -1
- package/dist/workflows/compat/inngest/index.js.map +1 -1
- package/dist/workflows/compat/qstash/index.js.map +1 -1
- package/dist/workflows/compat/temporal/client.js.map +1 -1
- package/dist/workflows/compat/temporal/index.js.map +1 -1
- package/dist/workflows/compat/trigger/index.js.map +1 -1
- package/dist/workflows/compat/utils/index.js.map +1 -1
- package/dist/workflows/context/correlation.js +2 -2
- package/dist/workflows/context/correlation.js.map +1 -1
- package/dist/workflows/context/experiment.js +1 -1
- package/dist/workflows/context/experiment.js.map +1 -1
- package/dist/workflows/context/flag.js +1 -1
- package/dist/workflows/context/flag.js.map +1 -1
- package/dist/workflows/context/measure.js +1 -1
- package/dist/workflows/context/measure.js.map +1 -1
- package/dist/workflows/context/rate-limit.js.map +1 -1
- package/dist/workflows/data/entity-events/entity-events.js.map +1 -1
- package/dist/workflows/data/experiment/index.js.map +1 -1
- package/dist/workflows/data/goal/context.js +1 -1
- package/dist/workflows/data/goal/context.js.map +1 -1
- package/dist/workflows/data/measure/index.js +1 -1
- package/dist/workflows/data/measure/index.js.map +1 -1
- package/dist/workflows/data/stream/index.js +10 -76
- package/dist/workflows/data/stream/index.js.map +1 -1
- package/dist/workflows/data/track/context.js.map +1 -1
- package/dist/workflows/data/view/context.js.map +1 -1
- package/dist/workflows/domain.js.map +1 -1
- package/dist/workflows/flags.js +1 -1
- package/dist/workflows/flags.js.map +1 -1
- package/dist/workflows/hash.js.map +1 -1
- package/dist/workflows/on.js +1 -1
- package/dist/workflows/on.js.map +1 -1
- package/dist/workflows/schedule-builder.js.map +1 -1
- package/dist/workflows/visibility/index.js +0 -2
- package/dist/workflows/visibility/index.js.map +1 -1
- package/dist/workflows/visibility/query-parser.js.map +1 -1
- package/package.json +18 -3
- package/dist/api/analytics/router.js +0 -601
- package/dist/api/analytics/router.js.map +0 -1
- package/dist/api/index.js +0 -158
- package/dist/api/index.js.map +0 -1
- package/dist/api/middleware/error-handling.js +0 -176
- package/dist/api/middleware/error-handling.js.map +0 -1
- package/dist/api/middleware/request-id.js +0 -21
- package/dist/api/middleware/request-id.js.map +0 -1
- package/dist/api/pages.js +0 -1180
- package/dist/api/pages.js.map +0 -1
- package/dist/api/routes/api.js +0 -612
- package/dist/api/routes/api.js.map +0 -1
- package/dist/api/routes/browsers.js +0 -471
- package/dist/api/routes/browsers.js.map +0 -1
- package/dist/api/routes/do.js +0 -188
- package/dist/api/routes/do.js.map +0 -1
- package/dist/api/routes/mcp.js +0 -459
- package/dist/api/routes/mcp.js.map +0 -1
- package/dist/api/routes/obs.js +0 -445
- package/dist/api/routes/obs.js.map +0 -1
- package/dist/api/routes/openapi.js +0 -794
- package/dist/api/routes/openapi.js.map +0 -1
- package/dist/api/routes/rpc.js +0 -1103
- package/dist/api/routes/rpc.js.map +0 -1
- package/dist/api/routes/sandboxes.js +0 -389
- package/dist/api/routes/sandboxes.js.map +0 -1
- package/dist/api/test-do.js +0 -38
- package/dist/api/test-do.js.map +0 -1
- package/dist/api/types.js +0 -11
- package/dist/api/types.js.map +0 -1
- package/dist/cli/bin.js +0 -2
- package/dist/cli/main.js +0 -52342
- package/dist/do/bash.js +0 -35
- package/dist/do/bash.js.map +0 -1
- package/dist/do/fs.js +0 -25
- package/dist/do/fs.js.map +0 -1
- package/dist/do/full.js +0 -61
- package/dist/do/full.js.map +0 -1
- package/dist/do/git.js +0 -28
- package/dist/do/git.js.map +0 -1
- package/dist/do/index.js +0 -52
- package/dist/do/index.js.map +0 -1
- package/dist/lib/agent/tools/bash.js +0 -336
- package/dist/lib/agent/tools/bash.js.map +0 -1
- package/dist/lib/agent/tools/edit.js +0 -157
- package/dist/lib/agent/tools/edit.js.map +0 -1
- package/dist/lib/agent/tools/glob.js +0 -137
- package/dist/lib/agent/tools/glob.js.map +0 -1
- package/dist/lib/agent/tools/grep.js +0 -315
- package/dist/lib/agent/tools/grep.js.map +0 -1
- package/dist/lib/agent/tools/index.js +0 -71
- package/dist/lib/agent/tools/index.js.map +0 -1
- package/dist/lib/agent/tools/read.js +0 -212
- package/dist/lib/agent/tools/read.js.map +0 -1
- package/dist/lib/agent/tools/types.js +0 -197
- package/dist/lib/agent/tools/types.js.map +0 -1
- package/dist/lib/agent/tools/write.js +0 -159
- package/dist/lib/agent/tools/write.js.map +0 -1
- package/dist/lib/mixins/index.js +0 -29
- package/dist/lib/mixins/index.js.map +0 -1
- package/dist/primitives/bashx/src/ast/analyze.js +0 -1472
- package/dist/primitives/bashx/src/ast/analyze.js.map +0 -1
- package/dist/primitives/bashx/src/ast/parser.js +0 -1488
- package/dist/primitives/bashx/src/ast/parser.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/crypto.js +0 -1954
- package/dist/primitives/bashx/src/do/commands/crypto.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/data-processing.js +0 -1812
- package/dist/primitives/bashx/src/do/commands/data-processing.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/extended-utils.js +0 -804
- package/dist/primitives/bashx/src/do/commands/extended-utils.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/math-control.js +0 -1122
- package/dist/primitives/bashx/src/do/commands/math-control.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/posix-utils.js +0 -1015
- package/dist/primitives/bashx/src/do/commands/posix-utils.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/system-utils.js +0 -687
- package/dist/primitives/bashx/src/do/commands/system-utils.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/test-command.js +0 -523
- package/dist/primitives/bashx/src/do/commands/test-command.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/text-processing.js +0 -1550
- package/dist/primitives/bashx/src/do/commands/text-processing.js.map +0 -1
- package/dist/primitives/bashx/src/do/container-executor.js +0 -429
- package/dist/primitives/bashx/src/do/container-executor.js.map +0 -1
- package/dist/primitives/bashx/src/do/index.js +0 -668
- package/dist/primitives/bashx/src/do/index.js.map +0 -1
- package/dist/primitives/bashx/src/do/tiered-executor.js +0 -2647
- package/dist/primitives/bashx/src/do/tiered-executor.js.map +0 -1
- package/dist/primitives/bashx/src/do/worker.js +0 -352
- package/dist/primitives/bashx/src/do/worker.js.map +0 -1
- package/dist/primitives/bashx/src/types.js +0 -10
- package/dist/primitives/bashx/src/types.js.map +0 -1
- package/dist/primitives/fsx/core/backend.js +0 -480
- package/dist/primitives/fsx/core/backend.js.map +0 -1
- package/dist/primitives/fsx/core/constants.js +0 -140
- package/dist/primitives/fsx/core/constants.js.map +0 -1
- package/dist/primitives/fsx/core/fsx.js +0 -1184
- package/dist/primitives/fsx/core/fsx.js.map +0 -1
- package/dist/primitives/fsx/core/glob/glob.js +0 -438
- package/dist/primitives/fsx/core/glob/glob.js.map +0 -1
- package/dist/primitives/fsx/core/glob/index.js +0 -8
- package/dist/primitives/fsx/core/glob/index.js.map +0 -1
- package/dist/primitives/fsx/core/glob/match.js +0 -392
- package/dist/primitives/fsx/core/glob/match.js.map +0 -1
- package/dist/primitives/fsx/core/types.js +0 -307
- package/dist/primitives/fsx/core/types.js.map +0 -1
- package/dist/sdk/capnweb-compat.js +0 -42
- package/dist/sdk/capnweb-compat.js.map +0 -1
- package/dist/sdk/client.js +0 -20
- package/dist/sdk/client.js.map +0 -1
- package/dist/sdk/index.js +0 -17
- package/dist/sdk/index.js.map +0 -1
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pattern matching for glob patterns
|
|
3
|
-
*
|
|
4
|
-
* This module provides functions for matching file paths against glob patterns.
|
|
5
|
-
* Supports standard glob syntax: *, **, ?, [abc], [a-z], [!abc], {a,b,c}
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Escape special regex characters
|
|
9
|
-
*/
|
|
10
|
-
function escapeRegex(str) {
|
|
11
|
-
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Convert a single pattern segment to regex
|
|
15
|
-
* Handles: *, ?, [abc], [!abc], [a-z], {a,b,c}
|
|
16
|
-
*/
|
|
17
|
-
function segmentToRegex(segment, options) {
|
|
18
|
-
let result = '';
|
|
19
|
-
let i = 0;
|
|
20
|
-
const dot = options.dot ?? false;
|
|
21
|
-
while (i < segment.length) {
|
|
22
|
-
const char = segment[i];
|
|
23
|
-
if (char === '*') {
|
|
24
|
-
// * matches anything except path separator
|
|
25
|
-
// If at start and not dot mode, don't match dotfiles
|
|
26
|
-
if (i === 0 && !dot) {
|
|
27
|
-
result += '(?!\\.)[^/]*';
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
result += '[^/]*';
|
|
31
|
-
}
|
|
32
|
-
i++;
|
|
33
|
-
}
|
|
34
|
-
else if (char === '?') {
|
|
35
|
-
// ? matches single char except path separator
|
|
36
|
-
// If at start and not dot mode, don't match dotfiles
|
|
37
|
-
if (i === 0 && !dot) {
|
|
38
|
-
result += '(?!\\.)[^/]';
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
result += '[^/]';
|
|
42
|
-
}
|
|
43
|
-
i++;
|
|
44
|
-
}
|
|
45
|
-
else if (char === '[') {
|
|
46
|
-
// Character class - find the closing ]
|
|
47
|
-
const classStart = i;
|
|
48
|
-
i++;
|
|
49
|
-
// Check for negation
|
|
50
|
-
let negated = false;
|
|
51
|
-
if (segment[i] === '!' || segment[i] === '^') {
|
|
52
|
-
negated = true;
|
|
53
|
-
i++;
|
|
54
|
-
}
|
|
55
|
-
// Find closing bracket (handle ] as first char in class)
|
|
56
|
-
let classContent = '';
|
|
57
|
-
let firstChar = true;
|
|
58
|
-
while (i < segment.length && (segment[i] !== ']' || firstChar)) {
|
|
59
|
-
classContent += segment[i];
|
|
60
|
-
firstChar = false;
|
|
61
|
-
i++;
|
|
62
|
-
}
|
|
63
|
-
if (segment[i] === ']') {
|
|
64
|
-
i++; // consume ]
|
|
65
|
-
// Build character class
|
|
66
|
-
// Escape special regex chars inside class (but not - or ^)
|
|
67
|
-
let escapedContent = '';
|
|
68
|
-
for (let j = 0; j < classContent.length; j++) {
|
|
69
|
-
const c = classContent[j];
|
|
70
|
-
// Escape special chars except - (which has special meaning)
|
|
71
|
-
if (c === '\\' || c === ']' || c === '^') {
|
|
72
|
-
escapedContent += '\\' + c;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
escapedContent += c;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
result += negated ? `[^${escapedContent}]` : `[${escapedContent}]`;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// No closing bracket, treat as literal
|
|
82
|
-
result += escapeRegex(segment.slice(classStart));
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else if (char === '{') {
|
|
86
|
-
// Brace expansion - find closing }
|
|
87
|
-
const braceStart = i;
|
|
88
|
-
i++;
|
|
89
|
-
let depth = 1;
|
|
90
|
-
let braceContent = '';
|
|
91
|
-
while (i < segment.length && depth > 0) {
|
|
92
|
-
if (segment[i] === '{')
|
|
93
|
-
depth++;
|
|
94
|
-
else if (segment[i] === '}')
|
|
95
|
-
depth--;
|
|
96
|
-
if (depth > 0) {
|
|
97
|
-
braceContent += segment[i];
|
|
98
|
-
}
|
|
99
|
-
i++;
|
|
100
|
-
}
|
|
101
|
-
if (depth === 0) {
|
|
102
|
-
// Split by comma and convert each alternative
|
|
103
|
-
const alternatives = splitBraceContent(braceContent);
|
|
104
|
-
const altRegexes = alternatives.map(alt => segmentToRegex(alt, { ...options, dot: true }));
|
|
105
|
-
result += `(?:${altRegexes.join('|')})`;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
// No closing brace, treat as literal
|
|
109
|
-
result += escapeRegex(segment.slice(braceStart));
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
else if (char === '\\' && i + 1 < segment.length) {
|
|
113
|
-
// Escaped character - treat next char literally
|
|
114
|
-
const nextChar = segment[i + 1];
|
|
115
|
-
if (nextChar !== undefined) {
|
|
116
|
-
result += escapeRegex(nextChar);
|
|
117
|
-
}
|
|
118
|
-
i += 2;
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
// Literal character
|
|
122
|
-
result += escapeRegex(char);
|
|
123
|
-
i++;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return result;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Split brace content by comma, handling nested braces
|
|
130
|
-
*/
|
|
131
|
-
function splitBraceContent(content) {
|
|
132
|
-
const parts = [];
|
|
133
|
-
let current = '';
|
|
134
|
-
let depth = 0;
|
|
135
|
-
for (let i = 0; i < content.length; i++) {
|
|
136
|
-
const char = content[i];
|
|
137
|
-
if (char === '{') {
|
|
138
|
-
depth++;
|
|
139
|
-
current += char;
|
|
140
|
-
}
|
|
141
|
-
else if (char === '}') {
|
|
142
|
-
depth--;
|
|
143
|
-
current += char;
|
|
144
|
-
}
|
|
145
|
-
else if (char === ',' && depth === 0) {
|
|
146
|
-
parts.push(current);
|
|
147
|
-
current = '';
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
current += char;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
parts.push(current);
|
|
154
|
-
return parts;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Compile a pattern for efficient reuse
|
|
158
|
-
*/
|
|
159
|
-
function compilePattern(pattern, options = {}) {
|
|
160
|
-
if (pattern === '') {
|
|
161
|
-
throw new Error('Pattern cannot be empty');
|
|
162
|
-
}
|
|
163
|
-
// Handle negation
|
|
164
|
-
let isNegated = false;
|
|
165
|
-
let workingPattern = pattern;
|
|
166
|
-
while (workingPattern.startsWith('!')) {
|
|
167
|
-
isNegated = !isNegated;
|
|
168
|
-
workingPattern = workingPattern.slice(1);
|
|
169
|
-
}
|
|
170
|
-
// Handle special case of just "/"
|
|
171
|
-
if (workingPattern === '/') {
|
|
172
|
-
return {
|
|
173
|
-
pattern,
|
|
174
|
-
isNegated,
|
|
175
|
-
regex: /^\/$/,
|
|
176
|
-
segments: ['/'],
|
|
177
|
-
hasGlobstar: false,
|
|
178
|
-
options,
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
// Split pattern into segments
|
|
182
|
-
const segments = workingPattern.split('/').filter((s, i, arr) => {
|
|
183
|
-
// Keep empty strings for trailing slashes
|
|
184
|
-
if (i === arr.length - 1 && s === '')
|
|
185
|
-
return true;
|
|
186
|
-
return s !== '';
|
|
187
|
-
});
|
|
188
|
-
// Check if pattern has globstar
|
|
189
|
-
const hasGlobstar = segments.some(s => s === '**');
|
|
190
|
-
// If no globstar, we can compile to a single regex
|
|
191
|
-
if (!hasGlobstar) {
|
|
192
|
-
const regexParts = segments.map(seg => segmentToRegex(seg, options));
|
|
193
|
-
const regexStr = '^' + regexParts.join('/') + '$';
|
|
194
|
-
const flags = options.nocase ? 'i' : '';
|
|
195
|
-
return {
|
|
196
|
-
pattern,
|
|
197
|
-
isNegated,
|
|
198
|
-
regex: new RegExp(regexStr, flags),
|
|
199
|
-
segments,
|
|
200
|
-
hasGlobstar: false,
|
|
201
|
-
options,
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
// Has globstar - we'll use segment matching
|
|
205
|
-
return {
|
|
206
|
-
pattern,
|
|
207
|
-
isNegated,
|
|
208
|
-
regex: null,
|
|
209
|
-
segments,
|
|
210
|
-
hasGlobstar: true,
|
|
211
|
-
options,
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Match a single segment pattern against a path segment
|
|
216
|
-
*/
|
|
217
|
-
function matchSegment(patternSeg, pathSeg, options) {
|
|
218
|
-
const regexStr = '^' + segmentToRegex(patternSeg, options) + '$';
|
|
219
|
-
const flags = options.nocase ? 'i' : '';
|
|
220
|
-
const regex = new RegExp(regexStr, flags);
|
|
221
|
-
return regex.test(pathSeg);
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Match path against compiled pattern with globstar support
|
|
225
|
-
*/
|
|
226
|
-
function matchGlobstar(compiled, pathSegments) {
|
|
227
|
-
const { segments: patternSegments, options } = compiled;
|
|
228
|
-
const dot = options.dot ?? false;
|
|
229
|
-
// Recursive helper with memoization
|
|
230
|
-
function matchFrom(pi, pathi, memo) {
|
|
231
|
-
const key = `${pi}:${pathi}`;
|
|
232
|
-
if (memo.has(key))
|
|
233
|
-
return memo.get(key);
|
|
234
|
-
// Base cases
|
|
235
|
-
if (pi === patternSegments.length && pathi === pathSegments.length) {
|
|
236
|
-
memo.set(key, true);
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
if (pi === patternSegments.length) {
|
|
240
|
-
// Pattern exhausted but path remains
|
|
241
|
-
memo.set(key, false);
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
const patternSeg = patternSegments[pi];
|
|
245
|
-
// Handle ** (globstar)
|
|
246
|
-
if (patternSeg === '**') {
|
|
247
|
-
// ** can match:
|
|
248
|
-
// 1. Nothing (skip to next pattern segment)
|
|
249
|
-
if (matchFrom(pi + 1, pathi, memo)) {
|
|
250
|
-
memo.set(key, true);
|
|
251
|
-
return true;
|
|
252
|
-
}
|
|
253
|
-
// 2. One or more path segments
|
|
254
|
-
for (let j = pathi; j < pathSegments.length; j++) {
|
|
255
|
-
const pathSegAtJ = pathSegments[j];
|
|
256
|
-
// Check dotfile constraint for each segment ** matches
|
|
257
|
-
if (!dot && pathSegAtJ?.startsWith('.')) {
|
|
258
|
-
// ** shouldn't match dotfiles unless dot option
|
|
259
|
-
// But we continue trying to match later segments
|
|
260
|
-
}
|
|
261
|
-
if (matchFrom(pi + 1, j + 1, memo)) {
|
|
262
|
-
memo.set(key, true);
|
|
263
|
-
return true;
|
|
264
|
-
}
|
|
265
|
-
// Also try consuming this segment and continuing with **
|
|
266
|
-
if (matchFrom(pi, j + 1, memo)) {
|
|
267
|
-
memo.set(key, true);
|
|
268
|
-
return true;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
memo.set(key, false);
|
|
272
|
-
return false;
|
|
273
|
-
}
|
|
274
|
-
// Path exhausted but pattern remains (and pattern is not **)
|
|
275
|
-
if (pathi === pathSegments.length) {
|
|
276
|
-
// Special case: trailing empty segment in pattern (for src/)
|
|
277
|
-
if (patternSeg === '' && pi === patternSegments.length - 1) {
|
|
278
|
-
memo.set(key, true);
|
|
279
|
-
return true;
|
|
280
|
-
}
|
|
281
|
-
memo.set(key, false);
|
|
282
|
-
return false;
|
|
283
|
-
}
|
|
284
|
-
const pathSeg = pathSegments[pathi];
|
|
285
|
-
if (!pathSeg || !patternSeg) {
|
|
286
|
-
memo.set(key, false);
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
// Check dotfile constraint
|
|
290
|
-
if (!dot && pathSeg.startsWith('.') && patternSeg !== pathSeg) {
|
|
291
|
-
// If the segment starts with . and pattern doesn't literally match,
|
|
292
|
-
// check if pattern starts with * or ?
|
|
293
|
-
if (patternSeg.startsWith('*') || patternSeg.startsWith('?')) {
|
|
294
|
-
memo.set(key, false);
|
|
295
|
-
return false;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
// Match current segments
|
|
299
|
-
if (matchSegment(patternSeg, pathSeg, options)) {
|
|
300
|
-
const result = matchFrom(pi + 1, pathi + 1, memo);
|
|
301
|
-
memo.set(key, result);
|
|
302
|
-
return result;
|
|
303
|
-
}
|
|
304
|
-
memo.set(key, false);
|
|
305
|
-
return false;
|
|
306
|
-
}
|
|
307
|
-
return matchFrom(0, 0, new Map());
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Match a path against a glob pattern
|
|
311
|
-
*
|
|
312
|
-
* @param pattern - The glob pattern to match against
|
|
313
|
-
* @param path - The path to test
|
|
314
|
-
* @param options - Matching options
|
|
315
|
-
* @returns true if the path matches the pattern
|
|
316
|
-
* @throws Error if pattern is empty
|
|
317
|
-
*
|
|
318
|
-
* @example
|
|
319
|
-
* ```typescript
|
|
320
|
-
* match('*.ts', 'foo.ts') // true
|
|
321
|
-
* match('src/**\/*.ts', 'src/a/b.ts') // true
|
|
322
|
-
* match('[abc].ts', 'a.ts') // true
|
|
323
|
-
* match('*.{ts,js}', 'foo.js') // true
|
|
324
|
-
* ```
|
|
325
|
-
*/
|
|
326
|
-
export function match(pattern, path, options = {}) {
|
|
327
|
-
if (pattern === '') {
|
|
328
|
-
throw new Error('Pattern cannot be empty');
|
|
329
|
-
}
|
|
330
|
-
// Empty path never matches (except empty pattern which throws)
|
|
331
|
-
if (path === '') {
|
|
332
|
-
return false;
|
|
333
|
-
}
|
|
334
|
-
const compiled = compilePattern(pattern, options);
|
|
335
|
-
// Handle simple regex match (no globstar)
|
|
336
|
-
if (compiled.regex && !compiled.hasGlobstar) {
|
|
337
|
-
const result = compiled.regex.test(path);
|
|
338
|
-
return compiled.isNegated ? !result : result;
|
|
339
|
-
}
|
|
340
|
-
// Handle globstar matching
|
|
341
|
-
const pathSegments = path.split('/').filter((s, i, arr) => {
|
|
342
|
-
// Keep trailing empty segment
|
|
343
|
-
if (i === arr.length - 1 && s === '' && path.endsWith('/'))
|
|
344
|
-
return true;
|
|
345
|
-
return s !== '';
|
|
346
|
-
});
|
|
347
|
-
const result = matchGlobstar(compiled, pathSegments);
|
|
348
|
-
return compiled.isNegated ? !result : result;
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Create a reusable matcher function for a pattern
|
|
352
|
-
*
|
|
353
|
-
* More efficient when matching many paths against the same pattern,
|
|
354
|
-
* as the pattern is only parsed once.
|
|
355
|
-
*
|
|
356
|
-
* @param pattern - The glob pattern to compile
|
|
357
|
-
* @param options - Matching options
|
|
358
|
-
* @returns A function that tests paths against the compiled pattern
|
|
359
|
-
* @throws Error if pattern is empty
|
|
360
|
-
*
|
|
361
|
-
* @example
|
|
362
|
-
* ```typescript
|
|
363
|
-
* const isTypeScript = createMatcher('**\/*.ts')
|
|
364
|
-
* isTypeScript('src/index.ts') // true
|
|
365
|
-
* isTypeScript('README.md') // false
|
|
366
|
-
* ```
|
|
367
|
-
*/
|
|
368
|
-
export function createMatcher(pattern, options = {}) {
|
|
369
|
-
if (pattern === '') {
|
|
370
|
-
throw new Error('Pattern cannot be empty');
|
|
371
|
-
}
|
|
372
|
-
const compiled = compilePattern(pattern, options);
|
|
373
|
-
return (path) => {
|
|
374
|
-
if (path === '') {
|
|
375
|
-
return false;
|
|
376
|
-
}
|
|
377
|
-
// Handle simple regex match (no globstar)
|
|
378
|
-
if (compiled.regex && !compiled.hasGlobstar) {
|
|
379
|
-
const result = compiled.regex.test(path);
|
|
380
|
-
return compiled.isNegated ? !result : result;
|
|
381
|
-
}
|
|
382
|
-
// Handle globstar matching
|
|
383
|
-
const pathSegments = path.split('/').filter((s, i, arr) => {
|
|
384
|
-
if (i === arr.length - 1 && s === '' && path.endsWith('/'))
|
|
385
|
-
return true;
|
|
386
|
-
return s !== '';
|
|
387
|
-
});
|
|
388
|
-
const result = matchGlobstar(compiled, pathSegments);
|
|
389
|
-
return compiled.isNegated ? !result : result;
|
|
390
|
-
};
|
|
391
|
-
}
|
|
392
|
-
//# sourceMappingURL=match.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../../../primitives/fsx/core/glob/match.ts"],"names":[],"mappings":"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"}
|