@metaobjectsdev/sdk 0.5.0-rc.1
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/LICENSE +189 -0
- package/README.md +32 -0
- package/dist/agent-docs/body.d.ts +2 -0
- package/dist/agent-docs/body.d.ts.map +1 -0
- package/dist/agent-docs/body.js +563 -0
- package/dist/agent-docs/body.js.map +1 -0
- package/dist/agent-docs/content-hash.d.ts +8 -0
- package/dist/agent-docs/content-hash.d.ts.map +1 -0
- package/dist/agent-docs/content-hash.js +23 -0
- package/dist/agent-docs/content-hash.js.map +1 -0
- package/dist/agent-docs/index.d.ts +3 -0
- package/dist/agent-docs/index.d.ts.map +1 -0
- package/dist/agent-docs/index.js +4 -0
- package/dist/agent-docs/index.js.map +1 -0
- package/dist/config.d.ts +113 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +53 -0
- package/dist/config.js.map +1 -0
- package/dist/forge-types.d.ts +47 -0
- package/dist/forge-types.d.ts.map +1 -0
- package/dist/forge-types.js +133 -0
- package/dist/forge-types.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/memory.d.ts +30 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +105 -0
- package/dist/memory.js.map +1 -0
- package/dist/package.d.ts +65 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +105 -0
- package/dist/package.js.map +1 -0
- package/dist/paths.d.ts +5 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +26 -0
- package/dist/paths.js.map +1 -0
- package/dist/records/any.d.ts +467 -0
- package/dist/records/any.d.ts.map +1 -0
- package/dist/records/any.js +14 -0
- package/dist/records/any.js.map +1 -0
- package/dist/records/convention.d.ts +90 -0
- package/dist/records/convention.d.ts.map +1 -0
- package/dist/records/convention.js +9 -0
- package/dist/records/convention.js.map +1 -0
- package/dist/records/core.d.ts +84 -0
- package/dist/records/core.d.ts.map +1 -0
- package/dist/records/core.js +47 -0
- package/dist/records/core.js.map +1 -0
- package/dist/records/decision.d.ts +90 -0
- package/dist/records/decision.d.ts.map +1 -0
- package/dist/records/decision.js +9 -0
- package/dist/records/decision.js.map +1 -0
- package/dist/records/failure.d.ts +93 -0
- package/dist/records/failure.d.ts.map +1 -0
- package/dist/records/failure.js +10 -0
- package/dist/records/failure.js.map +1 -0
- package/dist/records/glossary.d.ts +111 -0
- package/dist/records/glossary.d.ts.map +1 -0
- package/dist/records/glossary.js +14 -0
- package/dist/records/glossary.js.map +1 -0
- package/dist/records/principle.d.ts +99 -0
- package/dist/records/principle.d.ts.map +1 -0
- package/dist/records/principle.js +12 -0
- package/dist/records/principle.js.map +1 -0
- package/dist/storage/errors.d.ts +14 -0
- package/dist/storage/errors.d.ts.map +1 -0
- package/dist/storage/errors.js +27 -0
- package/dist/storage/errors.js.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +6 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/lifecycle.d.ts +5 -0
- package/dist/storage/lifecycle.d.ts.map +1 -0
- package/dist/storage/lifecycle.js +27 -0
- package/dist/storage/lifecycle.js.map +1 -0
- package/dist/storage/list.d.ts +8 -0
- package/dist/storage/list.d.ts.map +1 -0
- package/dist/storage/list.js +42 -0
- package/dist/storage/list.js.map +1 -0
- package/dist/storage/read.d.ts +9 -0
- package/dist/storage/read.d.ts.map +1 -0
- package/dist/storage/read.js +43 -0
- package/dist/storage/read.js.map +1 -0
- package/dist/storage/write.d.ts +8 -0
- package/dist/storage/write.d.ts.map +1 -0
- package/dist/storage/write.js +20 -0
- package/dist/storage/write.js.map +1 -0
- package/dist/workspace.d.ts +49 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +280 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +48 -0
- package/src/agent-docs/body.ts +562 -0
- package/src/agent-docs/content-hash.ts +25 -0
- package/src/agent-docs/index.ts +8 -0
- package/src/config.ts +69 -0
- package/src/forge-types.ts +167 -0
- package/src/index.ts +98 -0
- package/src/memory.ts +116 -0
- package/src/package.ts +120 -0
- package/src/paths.ts +30 -0
- package/src/records/any.ts +15 -0
- package/src/records/convention.ts +10 -0
- package/src/records/core.ts +55 -0
- package/src/records/decision.ts +10 -0
- package/src/records/failure.ts +11 -0
- package/src/records/glossary.ts +15 -0
- package/src/records/principle.ts +13 -0
- package/src/storage/errors.ts +23 -0
- package/src/storage/index.ts +10 -0
- package/src/storage/lifecycle.ts +38 -0
- package/src/storage/list.ts +53 -0
- package/src/storage/read.ts +54 -0
- package/src/storage/write.ts +32 -0
- package/src/workspace.ts +342 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* The package.meta.json schema. Authoring this is the one-time cost of
|
|
4
|
+
* defining a metadata package; subsequent edits should be rare.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PackageManifestSchema: z.ZodObject<{
|
|
7
|
+
/**
|
|
8
|
+
* Canonical name of the package in the language's native package manager.
|
|
9
|
+
* Conventionally `@scope/name` (npm-style) for TS, but bare names also
|
|
10
|
+
* work. Each language's package config (pom.xml, .csproj, pyproject.toml)
|
|
11
|
+
* uses its own native field for this — only TS uses `name` here.
|
|
12
|
+
*/
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
/** Semver version of this package. */
|
|
15
|
+
version: z.ZodString;
|
|
16
|
+
/**
|
|
17
|
+
* Optional cross-language canonical ref for this package, used inside
|
|
18
|
+
* metadata files (extends:, super:) and for cross-language consumption.
|
|
19
|
+
* If omitted, derived from `name` via a simple rule: `@scope/name` →
|
|
20
|
+
* `scope::name` (strip @, replace `/` with `::`). Hyphens stay as-is in
|
|
21
|
+
* the auto-derived form — for hierarchical naming users declare this
|
|
22
|
+
* field explicitly.
|
|
23
|
+
*
|
|
24
|
+
* Per v0.3 strategy doc §8.2.
|
|
25
|
+
*/
|
|
26
|
+
metaobjectsPackage: z.ZodOptional<z.ZodString>;
|
|
27
|
+
/**
|
|
28
|
+
* Other packages whose metadata trees this package extends. Each entry is
|
|
29
|
+
* a package name; the loader resolves it to the matching peer package.
|
|
30
|
+
* Empty/omitted means this package has no upstream dependencies.
|
|
31
|
+
*/
|
|
32
|
+
extends: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
name: string;
|
|
35
|
+
version: string;
|
|
36
|
+
extends: string[];
|
|
37
|
+
metaobjectsPackage?: string | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
name: string;
|
|
40
|
+
version: string;
|
|
41
|
+
metaobjectsPackage?: string | undefined;
|
|
42
|
+
extends?: string[] | undefined;
|
|
43
|
+
}>;
|
|
44
|
+
export type PackageManifest = z.infer<typeof PackageManifestSchema>;
|
|
45
|
+
export declare const PACKAGE_MANIFEST_FILE = "package.meta.json";
|
|
46
|
+
/**
|
|
47
|
+
* Read a package.meta.json from a given .meta/ root, if present.
|
|
48
|
+
* Returns undefined when the file isn't there — packages are optional in
|
|
49
|
+
* v0.3 v0.1 (loadMemory still works for single-package usage without one,
|
|
50
|
+
* and forge init scaffolds one but doesn't enforce its presence).
|
|
51
|
+
*/
|
|
52
|
+
export declare function readPackageManifest(metaDir: string): Promise<PackageManifest | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* Return the canonical metaobjects package ref for a manifest. Uses the
|
|
55
|
+
* explicit `metaobjectsPackage` field if set; otherwise derives from `name`
|
|
56
|
+
* via the simple rule: `@scope/foo-bar` → `scope::foo-bar` (strip @,
|
|
57
|
+
* replace `/` with `::`, leave hyphens). For hierarchical or non-trivial
|
|
58
|
+
* naming users declare `metaobjectsPackage` explicitly.
|
|
59
|
+
*
|
|
60
|
+
* Returns undefined if `name` itself isn't a valid bare name (e.g. has
|
|
61
|
+
* uppercase chars) and no explicit ref is set — the caller should treat
|
|
62
|
+
* this as an authoring error.
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveMetaobjectsPackage(manifest: PackageManifest): string | undefined;
|
|
65
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsCxB;;;GAGG;AACH,eAAO,MAAM,qBAAqB;IAChC;;;;;OAKG;;IAGH,sCAAsC;;IAGtC;;;;;;;;;OASG;;IAGH;;;;OAIG;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAU/F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAYvF"}
|
package/dist/package.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { readFile, stat } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
// Per the v0.3 AI-first metadata loading strategy: a package.meta.json is the
|
|
5
|
+
// boundary between metadata bundles. Three fields total — name, version,
|
|
6
|
+
// extends. No exports list; no @private. The package's metadata tree IS its
|
|
7
|
+
// public API. See docs/strategy/2026-05-12-v0.3-ai-first-metadata-loading.md
|
|
8
|
+
// §4.3.
|
|
9
|
+
/**
|
|
10
|
+
* Validates a package version string. npm-compatible: semver basics
|
|
11
|
+
* (major.minor.patch with optional prerelease/build). Not a full semver
|
|
12
|
+
* parser — strict-enough for now.
|
|
13
|
+
*/
|
|
14
|
+
const VersionStringSchema = z.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$/, "package version must follow semver (e.g. 1.2.0 or 1.2.0-alpha.1)");
|
|
15
|
+
/**
|
|
16
|
+
* Validates a package extends entry. Either a bare package name or
|
|
17
|
+
* a name with a semver range — npm-style. Range parsing is shallow
|
|
18
|
+
* for v0.3 v0.1; full range resolution lands when multi-package
|
|
19
|
+
* loading actually ships.
|
|
20
|
+
*/
|
|
21
|
+
const ExtendsEntrySchema = z.string().min(1);
|
|
22
|
+
/**
|
|
23
|
+
* Validates a canonical metaobjects package ref: snake_case segments
|
|
24
|
+
* separated by `::`. Examples: `trainer_website`, `acme::common::user_mgmt`.
|
|
25
|
+
* Used in metadata file refs (extends:, super:) cross-language.
|
|
26
|
+
*/
|
|
27
|
+
const MetaobjectsPackageSchema = z.string().regex(/^[a-z][a-z0-9_]*(::[a-z][a-z0-9_]*)*$/, "metaobjectsPackage must be snake_case segments separated by :: (e.g. acme::common::user_mgmt)");
|
|
28
|
+
/**
|
|
29
|
+
* The package.meta.json schema. Authoring this is the one-time cost of
|
|
30
|
+
* defining a metadata package; subsequent edits should be rare.
|
|
31
|
+
*/
|
|
32
|
+
export const PackageManifestSchema = z.object({
|
|
33
|
+
/**
|
|
34
|
+
* Canonical name of the package in the language's native package manager.
|
|
35
|
+
* Conventionally `@scope/name` (npm-style) for TS, but bare names also
|
|
36
|
+
* work. Each language's package config (pom.xml, .csproj, pyproject.toml)
|
|
37
|
+
* uses its own native field for this — only TS uses `name` here.
|
|
38
|
+
*/
|
|
39
|
+
name: z.string().min(1),
|
|
40
|
+
/** Semver version of this package. */
|
|
41
|
+
version: VersionStringSchema,
|
|
42
|
+
/**
|
|
43
|
+
* Optional cross-language canonical ref for this package, used inside
|
|
44
|
+
* metadata files (extends:, super:) and for cross-language consumption.
|
|
45
|
+
* If omitted, derived from `name` via a simple rule: `@scope/name` →
|
|
46
|
+
* `scope::name` (strip @, replace `/` with `::`). Hyphens stay as-is in
|
|
47
|
+
* the auto-derived form — for hierarchical naming users declare this
|
|
48
|
+
* field explicitly.
|
|
49
|
+
*
|
|
50
|
+
* Per v0.3 strategy doc §8.2.
|
|
51
|
+
*/
|
|
52
|
+
metaobjectsPackage: MetaobjectsPackageSchema.optional(),
|
|
53
|
+
/**
|
|
54
|
+
* Other packages whose metadata trees this package extends. Each entry is
|
|
55
|
+
* a package name; the loader resolves it to the matching peer package.
|
|
56
|
+
* Empty/omitted means this package has no upstream dependencies.
|
|
57
|
+
*/
|
|
58
|
+
extends: z.array(ExtendsEntrySchema).default([]),
|
|
59
|
+
});
|
|
60
|
+
export const PACKAGE_MANIFEST_FILE = "package.meta.json";
|
|
61
|
+
/**
|
|
62
|
+
* Read a package.meta.json from a given .meta/ root, if present.
|
|
63
|
+
* Returns undefined when the file isn't there — packages are optional in
|
|
64
|
+
* v0.3 v0.1 (loadMemory still works for single-package usage without one,
|
|
65
|
+
* and forge init scaffolds one but doesn't enforce its presence).
|
|
66
|
+
*/
|
|
67
|
+
export async function readPackageManifest(metaDir) {
|
|
68
|
+
const path = join(metaDir, PACKAGE_MANIFEST_FILE);
|
|
69
|
+
try {
|
|
70
|
+
const s = await stat(path);
|
|
71
|
+
if (!s.isFile())
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
const raw = await readFile(path, "utf8");
|
|
78
|
+
return PackageManifestSchema.parse(JSON.parse(raw));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Return the canonical metaobjects package ref for a manifest. Uses the
|
|
82
|
+
* explicit `metaobjectsPackage` field if set; otherwise derives from `name`
|
|
83
|
+
* via the simple rule: `@scope/foo-bar` → `scope::foo-bar` (strip @,
|
|
84
|
+
* replace `/` with `::`, leave hyphens). For hierarchical or non-trivial
|
|
85
|
+
* naming users declare `metaobjectsPackage` explicitly.
|
|
86
|
+
*
|
|
87
|
+
* Returns undefined if `name` itself isn't a valid bare name (e.g. has
|
|
88
|
+
* uppercase chars) and no explicit ref is set — the caller should treat
|
|
89
|
+
* this as an authoring error.
|
|
90
|
+
*/
|
|
91
|
+
export function resolveMetaobjectsPackage(manifest) {
|
|
92
|
+
if (manifest.metaobjectsPackage !== undefined)
|
|
93
|
+
return manifest.metaobjectsPackage;
|
|
94
|
+
// Auto-derive from name: strip leading @, replace / with ::, lowercase
|
|
95
|
+
// remains untouched — npm names are already lowercase per registry rules.
|
|
96
|
+
const stripped = manifest.name.replace(/^@/, "");
|
|
97
|
+
const derived = stripped.replace(/\//g, "::");
|
|
98
|
+
// Validate that the derived form is a legal canonical ref. If not,
|
|
99
|
+
// return undefined so the caller can surface a clear error.
|
|
100
|
+
if (!/^[a-z][a-z0-9_-]*(::[a-z][a-z0-9_-]*)*$/.test(derived)) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
return derived;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,QAAQ;AAER;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAC1C,sDAAsD,EACtD,kEAAkE,CACnE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAC/C,uCAAuC,EACvC,+FAA+F,CAChG,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C;;;;;OAKG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvB,sCAAsC;IACtC,OAAO,EAAE,mBAAmB;IAE5B;;;;;;;;;OASG;IACH,kBAAkB,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IAEvD;;;;OAIG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;YAAE,OAAO,SAAS,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAyB;IACjE,IAAI,QAAQ,CAAC,kBAAkB,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,kBAAkB,CAAC;IAClF,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,mEAAmE;IACnE,4DAA4D;IAC5D,IAAI,CAAC,yCAAyC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/paths.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,MAAM,CAKR;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAcvE"}
|
package/dist/paths.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { stat } from "node:fs/promises";
|
|
2
|
+
import { join, dirname, resolve, parse } from "node:path";
|
|
3
|
+
export function recordPath(metaRoot, type, id, opts = {}) {
|
|
4
|
+
const segments = opts.pending
|
|
5
|
+
? ["memory", "_pending", type, `${id}.json`]
|
|
6
|
+
: ["memory", type, `${id}.json`];
|
|
7
|
+
return join(metaRoot, ...segments);
|
|
8
|
+
}
|
|
9
|
+
export async function resolveMetaRoot(startDir) {
|
|
10
|
+
let current = resolve(startDir);
|
|
11
|
+
const root = parse(current).root;
|
|
12
|
+
while (current !== root) {
|
|
13
|
+
const candidate = join(current, ".meta");
|
|
14
|
+
try {
|
|
15
|
+
const s = await stat(candidate);
|
|
16
|
+
if (s.isDirectory())
|
|
17
|
+
return candidate;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
// not present at this level
|
|
21
|
+
}
|
|
22
|
+
current = dirname(current);
|
|
23
|
+
}
|
|
24
|
+
throw new Error(`no .meta directory found walking up from ${startDir}`);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,UAAU,UAAU,CACxB,QAAgB,EAChB,IAAY,EACZ,EAAU,EACV,OAA8B,EAAE;IAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;QAC3B,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC;QAC5C,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IACjC,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,SAAS,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;AAC1E,CAAC"}
|