@x12i/memorix-format 2.3.2 → 3.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/README.md +15 -20
- package/dist/associated.d.ts +2 -2
- package/dist/associated.d.ts.map +1 -1
- package/dist/associated.js +1 -1
- package/dist/base/classify.d.ts +6 -0
- package/dist/base/classify.d.ts.map +1 -0
- package/dist/base/classify.js +18 -0
- package/dist/base/classify.js.map +1 -0
- package/dist/base/compat/legacy-roots.d.ts +24 -0
- package/dist/base/compat/legacy-roots.d.ts.map +1 -0
- package/dist/base/compat/legacy-roots.js +50 -0
- package/dist/base/compat/legacy-roots.js.map +1 -0
- package/dist/base/concept.d.ts +21 -0
- package/dist/base/concept.d.ts.map +1 -0
- package/dist/base/concept.js +87 -0
- package/dist/base/concept.js.map +1 -0
- package/dist/base/constants.d.ts +18 -0
- package/dist/base/constants.d.ts.map +1 -0
- package/dist/base/constants.js +21 -0
- package/dist/base/constants.js.map +1 -0
- package/dist/base/index.d.ts +13 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js +11 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/inspect.d.ts +3 -0
- package/dist/base/inspect.d.ts.map +1 -0
- package/dist/base/inspect.js +41 -0
- package/dist/base/inspect.js.map +1 -0
- package/dist/base/load-meta.d.ts +61 -0
- package/dist/base/load-meta.d.ts.map +1 -0
- package/dist/base/load-meta.js +45 -0
- package/dist/base/load-meta.js.map +1 -0
- package/dist/base/meta.d.ts +8 -0
- package/dist/base/meta.d.ts.map +1 -0
- package/dist/base/meta.js +79 -0
- package/dist/base/meta.js.map +1 -0
- package/dist/base/types.d.ts +112 -0
- package/dist/base/types.d.ts.map +1 -0
- package/dist/base/types.js +2 -0
- package/dist/base/types.js.map +1 -0
- package/dist/base/utils.d.ts +4 -0
- package/dist/base/utils.d.ts.map +1 -0
- package/dist/base/utils.js +15 -0
- package/dist/base/utils.js.map +1 -0
- package/dist/base/validate.d.ts +13 -0
- package/dist/base/validate.d.ts.map +1 -0
- package/dist/base/validate.js +253 -0
- package/dist/base/validate.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/load-meta.d.ts +1 -1
- package/dist/load-meta.d.ts.map +1 -1
- package/dist/migrate.d.ts +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +1 -1
- package/dist/migrate.js.map +1 -1
- package/dist/profiles.d.ts +1 -1
- package/dist/profiles.d.ts.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validate.d.ts +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +1 -1
- package/dist/validate.js.map +1 -1
- package/docs/association-format.md +1 -1
- package/docs/memorix-format.md +1 -1
- package/docs/memorix-record-v2.md +1 -1
- package/docs/migrate-present-to-v2.md +1 -1
- package/meta/envelope.json +104 -0
- package/package.json +1 -4
- package/dist/base-reexport.d.ts +0 -8
- package/dist/base-reexport.d.ts.map +0 -1
- package/dist/base-reexport.js +0 -8
- package/dist/base-reexport.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
# @x12i/memorix-format
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Canonical **memorix-record/2** validation, migration, and CLI for Memorix.
|
|
4
4
|
|
|
5
|
-
|
|
|
6
|
-
|
|
7
|
-
|
|
|
8
|
-
| Present
|
|
5
|
+
| API | Status |
|
|
6
|
+
|---|---|
|
|
7
|
+
| `validateMemorixRecordV2`, CLI `validate-v2` / `migrate-to-v2` | **Current** SoT for platform work |
|
|
8
|
+
| Present-envelope helpers | Migration/compat only |
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
**Object types belong in agent metadata / Catalox, not here.**
|
|
13
|
-
|
|
14
|
-
Docs:
|
|
15
|
-
|
|
16
|
-
- [docs/memorix-record-v2.md](./docs/memorix-record-v2.md) — V2 contract
|
|
17
|
-
- [docs/memorix-format.md](./docs/memorix-format.md) — present + pointers
|
|
18
|
-
- Golden V2 examples: [examples/v2/](./examples/v2/)
|
|
10
|
+
Object types belong in **agent metadata**, not in this package.
|
|
19
11
|
|
|
20
12
|
## Install
|
|
21
13
|
|
|
@@ -54,12 +46,15 @@ npx memorix-format migrate-to-v2 ./present.json \
|
|
|
54
46
|
--object-type=work-items --content-type=snapshots --data-category=entity
|
|
55
47
|
```
|
|
56
48
|
|
|
57
|
-
##
|
|
49
|
+
## Docs
|
|
58
50
|
|
|
59
|
-
|
|
51
|
+
- [docs/memorix-record-v2.md](./docs/memorix-record-v2.md)
|
|
52
|
+
- Ebook: [Format for Dummies](../new-ebooks/01-format-for-dummies/)
|
|
60
53
|
|
|
61
|
-
|
|
54
|
+
**Exports:** `.` · `./validate` · `./profiles` · `./types` · `./v2`
|
|
62
55
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
V2 rejects copied related-record payloads. Authoritative navigation is four-field relationship links (see `@x12i/memorix-relationships`).
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
**Ebooks:** [https://ebooks.memorix.x12i.com](https://ebooks.memorix.x12i.com) · in-repo [`../new-ebooks/`](../new-ebooks/)
|
package/dist/associated.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Memorix product open-bucket helpers — conventions from meta/*.json.
|
|
3
|
-
* Base envelope rules live in
|
|
3
|
+
* Base envelope rules live in ./base.
|
|
4
4
|
*/
|
|
5
5
|
export declare const LEGACY_ASSOCIATED_NAMES: Set<string>;
|
|
6
|
-
export declare const KNOWN_OPEN_BUCKETS: Record<string, import("
|
|
6
|
+
export declare const KNOWN_OPEN_BUCKETS: Record<string, import("./types.js").OpenBucketDecl>;
|
|
7
7
|
export declare const DEFAULT_TOP_ASSOCIATED_ITEMS: number;
|
|
8
8
|
export declare function isAssociatedPropertyName(name: string): boolean;
|
|
9
9
|
export declare function isLegacyAssociatedPropertyName(name: string): boolean;
|
package/dist/associated.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"associated.d.ts","sourceRoot":"","sources":["../src/associated.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,eAAO,MAAM,uBAAuB,aAAsC,CAAC;AAE3E,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"associated.d.ts","sourceRoot":"","sources":["../src/associated.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,eAAO,MAAM,uBAAuB,aAAsC,CAAC;AAE3E,eAAO,MAAM,kBAAkB,qDAA6B,CAAC;AAE7D,eAAO,MAAM,4BAA4B,QAAoC,CAAC;AAE9E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,MAAM,MAAM,2BAA2B,GACnC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE7D,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,2BAA2B,GAAG,MAAM,CAmBtF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAElF"}
|
package/dist/associated.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Memorix product open-bucket helpers — conventions from meta/*.json.
|
|
3
|
-
* Base envelope rules live in
|
|
3
|
+
* Base envelope rules live in ./base.
|
|
4
4
|
*/
|
|
5
5
|
import { loadAssociatedConventionsMeta, knownOpenBucketsFromMeta, } from "./load-meta.js";
|
|
6
6
|
const associatedMeta = loadAssociatedConventionsMeta();
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RootCategory } from "./types.js";
|
|
2
|
+
/** Classify a root key into the four base categories (ENV-2). */
|
|
3
|
+
export declare function classifyRootKey(key: string): RootCategory;
|
|
4
|
+
export declare function isSystemRootKey(key: string): boolean;
|
|
5
|
+
export declare function isOpenBucketKey(key: string): boolean;
|
|
6
|
+
//# sourceMappingURL=classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/base/classify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAKzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CORE_ROOT_KEYS, IDENTITY_ROOT_KEYS, SYSTEM_KEY_PREFIX } from "./constants.js";
|
|
2
|
+
/** Classify a root key into the four base categories (ENV-2). */
|
|
3
|
+
export function classifyRootKey(key) {
|
|
4
|
+
if (IDENTITY_ROOT_KEYS.has(key))
|
|
5
|
+
return "identity";
|
|
6
|
+
if (CORE_ROOT_KEYS.has(key))
|
|
7
|
+
return "core";
|
|
8
|
+
if (key.startsWith(SYSTEM_KEY_PREFIX))
|
|
9
|
+
return "system";
|
|
10
|
+
return "open";
|
|
11
|
+
}
|
|
12
|
+
export function isSystemRootKey(key) {
|
|
13
|
+
return key.startsWith(SYSTEM_KEY_PREFIX);
|
|
14
|
+
}
|
|
15
|
+
export function isOpenBucketKey(key) {
|
|
16
|
+
return classifyRootKey(key) === "open";
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=classify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/base/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGvF,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAK,kBAAkC,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACpE,IAAK,cAA8B,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compat-only lists of pre-clean envelope roots.
|
|
3
|
+
* NOT format law — used by migrators and optional writer guards.
|
|
4
|
+
*/
|
|
5
|
+
export declare const LEGACY_ROOT_KEYS: readonly ["identity", "lifecycle", "sourceFacts", "index"];
|
|
6
|
+
/** Root _-keys that belong under `_system` in the present envelope. */
|
|
7
|
+
export declare const LEGACY_SYSTEM_ROOT_KEYS: readonly ["_graphRuns", "_jobTypeRuns"];
|
|
8
|
+
export type LegacyRootKey = (typeof LEGACY_ROOT_KEYS)[number];
|
|
9
|
+
export type LegacySystemRootKey = (typeof LEGACY_SYSTEM_ROOT_KEYS)[number];
|
|
10
|
+
export declare function isLegacyRootKey(key: string): boolean;
|
|
11
|
+
export declare function isLegacySystemRootKey(key: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Emit validation issues for legacy roots present on a record.
|
|
14
|
+
* Used when `allowLegacyEnvelope` / writer guard / migrator pre-checks need them.
|
|
15
|
+
*/
|
|
16
|
+
export declare function collectLegacyRootIssues(keys: string[], options?: {
|
|
17
|
+
asWarning?: boolean;
|
|
18
|
+
}): Array<{
|
|
19
|
+
path: string;
|
|
20
|
+
code: string;
|
|
21
|
+
message: string;
|
|
22
|
+
severity: "error" | "warning";
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=legacy-roots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-roots.d.ts","sourceRoot":"","sources":["../../../src/base/compat/legacy-roots.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,gBAAgB,4DAKnB,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,yCAA0C,CAAC;AAE/E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC,CA2BvF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compat-only lists of pre-clean envelope roots.
|
|
3
|
+
* NOT format law — used by migrators and optional writer guards.
|
|
4
|
+
*/
|
|
5
|
+
export const LEGACY_ROOT_KEYS = [
|
|
6
|
+
"identity",
|
|
7
|
+
"lifecycle",
|
|
8
|
+
"sourceFacts",
|
|
9
|
+
"index",
|
|
10
|
+
];
|
|
11
|
+
/** Root _-keys that belong under `_system` in the present envelope. */
|
|
12
|
+
export const LEGACY_SYSTEM_ROOT_KEYS = ["_graphRuns", "_jobTypeRuns"];
|
|
13
|
+
export function isLegacyRootKey(key) {
|
|
14
|
+
return LEGACY_ROOT_KEYS.includes(key);
|
|
15
|
+
}
|
|
16
|
+
export function isLegacySystemRootKey(key) {
|
|
17
|
+
return LEGACY_SYSTEM_ROOT_KEYS.includes(key);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Emit validation issues for legacy roots present on a record.
|
|
21
|
+
* Used when `allowLegacyEnvelope` / writer guard / migrator pre-checks need them.
|
|
22
|
+
*/
|
|
23
|
+
export function collectLegacyRootIssues(keys, options = {}) {
|
|
24
|
+
const severity = options.asWarning ? "warning" : "error";
|
|
25
|
+
const issues = [];
|
|
26
|
+
for (const key of keys) {
|
|
27
|
+
if (isLegacyRootKey(key)) {
|
|
28
|
+
issues.push({
|
|
29
|
+
path: key,
|
|
30
|
+
code: "COMPAT-legacy-root",
|
|
31
|
+
message: options.asWarning
|
|
32
|
+
? `${key} is a legacy root field`
|
|
33
|
+
: `${key} MUST NOT be written (legacy root; migrate first)`,
|
|
34
|
+
severity,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (isLegacySystemRootKey(key)) {
|
|
38
|
+
issues.push({
|
|
39
|
+
path: key,
|
|
40
|
+
code: "COMPAT-legacy-system-root",
|
|
41
|
+
message: options.asWarning
|
|
42
|
+
? `${key} belongs under _system`
|
|
43
|
+
: `${key} MUST NOT be a root key; use _system.${key}`,
|
|
44
|
+
severity,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return issues;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=legacy-roots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-roots.js","sourceRoot":"","sources":["../../../src/base/compat/legacy-roots.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,WAAW;IACX,aAAa;IACb,OAAO;CACC,CAAC;AAEX,uEAAuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAY,EAAE,cAAc,CAAU,CAAC;AAK/E,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,OAAQ,uBAA6C,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAc,EACd,UAAmC,EAAE;IAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IACzD,MAAM,MAAM,GACV,EAAE,CAAC;IACL,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,OAAO,CAAC,SAAS;oBACxB,CAAC,CAAC,GAAG,GAAG,yBAAyB;oBACjC,CAAC,CAAC,GAAG,GAAG,mDAAmD;gBAC7D,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QACD,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,OAAO,CAAC,SAAS;oBACxB,CAAC,CAAC,GAAG,GAAG,wBAAwB;oBAChC,CAAC,CAAC,GAAG,GAAG,wCAAwC,GAAG,EAAE;gBACvD,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { JsonObject, MemorixExtIdentifier } from "./types.js";
|
|
2
|
+
/** Build deterministic external key string from an ext-identifier object. */
|
|
3
|
+
export declare function buildExtIdentifierKey(identifier: Record<string, unknown>): string | null;
|
|
4
|
+
/** @deprecated Use buildExtIdentifierKey */
|
|
5
|
+
export declare const buildIdentityString: typeof buildExtIdentifierKey;
|
|
6
|
+
export declare function buildExtIdentifier(kind: string, value: string, extra?: Record<string, string>): MemorixExtIdentifier;
|
|
7
|
+
/** @deprecated Use buildExtIdentifier */
|
|
8
|
+
export declare function buildConceptIdentifier(kind: string, value: string, extra?: Record<string, string>): MemorixExtIdentifier;
|
|
9
|
+
export declare function readRecordId(record: JsonObject): string;
|
|
10
|
+
export declare function readConceptExtIdentifier(record: JsonObject): {
|
|
11
|
+
kind: string;
|
|
12
|
+
value: string;
|
|
13
|
+
key?: string;
|
|
14
|
+
} | null;
|
|
15
|
+
/** @deprecated Use readConceptExtIdentifier */
|
|
16
|
+
export declare function readConceptIdentifier(record: JsonObject): {
|
|
17
|
+
kind: string;
|
|
18
|
+
value: string;
|
|
19
|
+
} | null;
|
|
20
|
+
export declare function readConceptTitle(record: JsonObject): string | undefined;
|
|
21
|
+
//# sourceMappingURL=concept.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concept.d.ts","sourceRoot":"","sources":["../../src/base/concept.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMnE,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAoBxF;AAED,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,8BAAwB,CAAC;AAEzD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,oBAAoB,CAStB;AAED,yCAAyC;AACzC,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,oBAAoB,CAEtB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAQvD;AASD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAatD;AAED,+CAA+C;AAC/C,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAIvE"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { isPlainObject, stringifyId } from "./utils.js";
|
|
2
|
+
const KEY_FIELD = "key";
|
|
3
|
+
const LEGACY_KEY_FIELD = "identifierKey";
|
|
4
|
+
/** Build deterministic external key string from an ext-identifier object. */
|
|
5
|
+
export function buildExtIdentifierKey(identifier) {
|
|
6
|
+
const kind = stringifyId(identifier.kind);
|
|
7
|
+
if (!kind)
|
|
8
|
+
return null;
|
|
9
|
+
if (identifier[kind] != null) {
|
|
10
|
+
const extras = Object.keys(identifier)
|
|
11
|
+
.filter((k) => k !== "kind" && k !== KEY_FIELD && k !== LEGACY_KEY_FIELD && k !== kind)
|
|
12
|
+
.sort()
|
|
13
|
+
.map((k) => String(identifier[k]));
|
|
14
|
+
if (extras.length === 0)
|
|
15
|
+
return `${kind}:${String(identifier[kind])}`;
|
|
16
|
+
return [kind, String(identifier[kind]), ...extras].join(":");
|
|
17
|
+
}
|
|
18
|
+
const parts = Object.keys(identifier)
|
|
19
|
+
.filter((k) => k !== "kind" && k !== KEY_FIELD && k !== LEGACY_KEY_FIELD)
|
|
20
|
+
.sort()
|
|
21
|
+
.map((k) => String(identifier[k]));
|
|
22
|
+
if (parts.length === 0)
|
|
23
|
+
return null;
|
|
24
|
+
return [kind, ...parts].join(":");
|
|
25
|
+
}
|
|
26
|
+
/** @deprecated Use buildExtIdentifierKey */
|
|
27
|
+
export const buildIdentityString = buildExtIdentifierKey;
|
|
28
|
+
export function buildExtIdentifier(kind, value, extra = {}) {
|
|
29
|
+
const identifier = {
|
|
30
|
+
kind,
|
|
31
|
+
[kind]: value,
|
|
32
|
+
...extra,
|
|
33
|
+
key: "",
|
|
34
|
+
};
|
|
35
|
+
identifier.key = buildExtIdentifierKey(identifier) ?? `${kind}:${value}`;
|
|
36
|
+
return identifier;
|
|
37
|
+
}
|
|
38
|
+
/** @deprecated Use buildExtIdentifier */
|
|
39
|
+
export function buildConceptIdentifier(kind, value, extra = {}) {
|
|
40
|
+
return buildExtIdentifier(kind, value, extra);
|
|
41
|
+
}
|
|
42
|
+
export function readRecordId(record) {
|
|
43
|
+
const root = stringifyId(record.recordId);
|
|
44
|
+
if (root)
|
|
45
|
+
return root;
|
|
46
|
+
const identity = record.identity;
|
|
47
|
+
if (isPlainObject(identity)) {
|
|
48
|
+
return stringifyId(identity.recordId) ?? stringifyId(identity.targetId) ?? "";
|
|
49
|
+
}
|
|
50
|
+
return stringifyId(record._id) ?? "";
|
|
51
|
+
}
|
|
52
|
+
function readExtIdentifierObject(concept) {
|
|
53
|
+
if (isPlainObject(concept._extIdentifier))
|
|
54
|
+
return concept._extIdentifier;
|
|
55
|
+
// Compat read during migration / transitional tooling
|
|
56
|
+
if (isPlainObject(concept.identifier))
|
|
57
|
+
return concept.identifier;
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
export function readConceptExtIdentifier(record) {
|
|
61
|
+
const concept = record.concept;
|
|
62
|
+
if (!isPlainObject(concept))
|
|
63
|
+
return null;
|
|
64
|
+
const identifier = readExtIdentifierObject(concept);
|
|
65
|
+
if (!identifier)
|
|
66
|
+
return null;
|
|
67
|
+
const kind = stringifyId(identifier.kind);
|
|
68
|
+
if (!kind)
|
|
69
|
+
return null;
|
|
70
|
+
const key = stringifyId(identifier.key) ?? stringifyId(identifier.identifierKey) ?? undefined;
|
|
71
|
+
if (identifier[kind] != null) {
|
|
72
|
+
return { kind, value: String(identifier[kind]), key };
|
|
73
|
+
}
|
|
74
|
+
return key ? { kind, value: key, key } : null;
|
|
75
|
+
}
|
|
76
|
+
/** @deprecated Use readConceptExtIdentifier */
|
|
77
|
+
export function readConceptIdentifier(record) {
|
|
78
|
+
const ext = readConceptExtIdentifier(record);
|
|
79
|
+
return ext ? { kind: ext.kind, value: ext.value } : null;
|
|
80
|
+
}
|
|
81
|
+
export function readConceptTitle(record) {
|
|
82
|
+
const concept = record.concept;
|
|
83
|
+
if (!isPlainObject(concept))
|
|
84
|
+
return undefined;
|
|
85
|
+
return stringifyId(concept.title) ?? undefined;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=concept.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concept.js","sourceRoot":"","sources":["../../src/base/concept.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const RECORD_ID_FIELD: "recordId";
|
|
2
|
+
export declare const CONCEPT_FIELD: "concept";
|
|
3
|
+
export declare const DATA_FIELD: "data";
|
|
4
|
+
export declare const SYSTEM_FIELD: "_system";
|
|
5
|
+
/** Fixed identity + core roots — from meta/envelope.json. */
|
|
6
|
+
export declare const IDENTITY_ROOT_KEYS: Set<string>;
|
|
7
|
+
export declare const CORE_ROOT_KEYS: Set<string>;
|
|
8
|
+
/**
|
|
9
|
+
* Compat re-export of legacy root names (NOT from envelope law).
|
|
10
|
+
* Prefer importing from `compat/legacy-roots`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const LEGACY_ROOT_KEYS: Set<string>;
|
|
13
|
+
export declare const OPEN_BUCKET_KINDS: readonly ("rollup" | "sourced" | "interpretive" | "linked-payloads" | "custom")[];
|
|
14
|
+
export declare const SYSTEM_KEY_PREFIX: string;
|
|
15
|
+
export declare const BASE_ENVELOPE_META_VERSION: string;
|
|
16
|
+
export declare const MEMORIX_RECORD_STATE_VALUES: readonly ("active" | "archived" | "superseded")[];
|
|
17
|
+
export declare const DEFAULT_RECORD_STATE: "active" | "archived" | "superseded";
|
|
18
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/base/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,EAAG,UAAmB,CAAC;AACnD,eAAO,MAAM,aAAa,EAAG,SAAkB,CAAC;AAChD,eAAO,MAAM,UAAU,EAAG,MAAe,CAAC;AAC1C,eAAO,MAAM,YAAY,EAAG,SAAkB,CAAC;AAE/C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,aAA6C,CAAC;AAC7E,eAAO,MAAM,cAAc,aAAyC,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,aAA2C,CAAC;AAEzE,eAAO,MAAM,iBAAiB,EAA+B,SAAS,CAClE,QAAQ,GACR,SAAS,GACT,cAAc,GACd,iBAAiB,GACjB,QAAQ,CACX,EAAE,CAAC;AAEJ,eAAO,MAAM,iBAAiB,QAA2C,CAAC;AAC1E,eAAO,MAAM,0BAA0B,QAAmB,CAAC;AAE3D,eAAO,MAAM,2BAA2B,EAA0C,SAAS,CACvF,QAAQ,GACR,UAAU,GACV,YAAY,CACf,EAAE,CAAC;AACJ,eAAO,MAAM,oBAAoB,EAC7B,QAAQ,GACR,UAAU,GACV,YAAY,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { loadBaseEnvelopeMeta } from "./load-meta.js";
|
|
2
|
+
import { LEGACY_ROOT_KEYS as COMPAT_LEGACY_ROOT_KEYS } from "./compat/legacy-roots.js";
|
|
3
|
+
const envelope = loadBaseEnvelopeMeta();
|
|
4
|
+
export const RECORD_ID_FIELD = "recordId";
|
|
5
|
+
export const CONCEPT_FIELD = "concept";
|
|
6
|
+
export const DATA_FIELD = "data";
|
|
7
|
+
export const SYSTEM_FIELD = "_system";
|
|
8
|
+
/** Fixed identity + core roots — from meta/envelope.json. */
|
|
9
|
+
export const IDENTITY_ROOT_KEYS = new Set(envelope.categories.identity.keys);
|
|
10
|
+
export const CORE_ROOT_KEYS = new Set(envelope.categories.core.keys);
|
|
11
|
+
/**
|
|
12
|
+
* Compat re-export of legacy root names (NOT from envelope law).
|
|
13
|
+
* Prefer importing from `compat/legacy-roots`.
|
|
14
|
+
*/
|
|
15
|
+
export const LEGACY_ROOT_KEYS = new Set(COMPAT_LEGACY_ROOT_KEYS);
|
|
16
|
+
export const OPEN_BUCKET_KINDS = envelope.openBucketKinds;
|
|
17
|
+
export const SYSTEM_KEY_PREFIX = envelope.categories.underscore.keyPrefix;
|
|
18
|
+
export const BASE_ENVELOPE_META_VERSION = envelope.version;
|
|
19
|
+
export const MEMORIX_RECORD_STATE_VALUES = envelope.underscoreBlock.state.enum;
|
|
20
|
+
export const DEFAULT_RECORD_STATE = envelope.underscoreBlock.state.default;
|
|
21
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/base/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,UAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,SAAkB,CAAC;AAChD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAe,CAAC;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,SAAkB,CAAC;AAE/C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAErE;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,uBAAuB,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,eAMvC,CAAC;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC,OAAO,CAAC;AAE3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,IAIvE,CAAC;AACJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,OAGnD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type { ContentTypeMeta, JsonObject, MemorixBaseRecord, MemorixConcept, MemorixConceptIdentifier, MemorixExtIdentifier, MemorixLifecycleEvent, MemorixRecordState, MemorixSystemBlock, OpenBucketDecl, OpenBucketKind, RecordInspection, RootCategory, ValidateBaseOptions, ValidateBaseResult, ValidationIssue, ValidationSeverity, } from "./types.js";
|
|
2
|
+
export { MEMORIX_RECORD_STATES } from "./types.js";
|
|
3
|
+
export { BASE_ENVELOPE_META_VERSION, CONCEPT_FIELD, CORE_ROOT_KEYS, DATA_FIELD, DEFAULT_RECORD_STATE, IDENTITY_ROOT_KEYS, LEGACY_ROOT_KEYS, MEMORIX_RECORD_STATE_VALUES, OPEN_BUCKET_KINDS, RECORD_ID_FIELD, SYSTEM_FIELD, SYSTEM_KEY_PREFIX, } from "./constants.js";
|
|
4
|
+
export { classifyRootKey, isOpenBucketKey, isSystemRootKey } from "./classify.js";
|
|
5
|
+
export { buildConceptIdentifier, buildExtIdentifier, buildExtIdentifierKey, buildIdentityString, readConceptExtIdentifier, readConceptIdentifier, readConceptTitle, readRecordId, } from "./concept.js";
|
|
6
|
+
export { collectLegacyRootIssues, isLegacyRootKey, isLegacySystemRootKey, LEGACY_ROOT_KEYS as COMPAT_LEGACY_ROOT_KEYS, LEGACY_SYSTEM_ROOT_KEYS, } from "./compat/legacy-roots.js";
|
|
7
|
+
export { parseContentTypeMeta } from "./meta.js";
|
|
8
|
+
export { loadBaseEnvelopeMeta, clearBaseEnvelopeMetaCache, } from "./load-meta.js";
|
|
9
|
+
export type { BaseEnvelopeMeta } from "./load-meta.js";
|
|
10
|
+
export { inspectMemorixBaseRecord } from "./inspect.js";
|
|
11
|
+
export { parseRecordsJson, validateMemorixBaseRecord, validateMemorixBaseRecords, } from "./validate.js";
|
|
12
|
+
export { isPlainObject, stringifyId } from "./utils.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EACL,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,IAAI,uBAAuB,EAC3C,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { MEMORIX_RECORD_STATES } from "./types.js";
|
|
2
|
+
export { BASE_ENVELOPE_META_VERSION, CONCEPT_FIELD, CORE_ROOT_KEYS, DATA_FIELD, DEFAULT_RECORD_STATE, IDENTITY_ROOT_KEYS, LEGACY_ROOT_KEYS, MEMORIX_RECORD_STATE_VALUES, OPEN_BUCKET_KINDS, RECORD_ID_FIELD, SYSTEM_FIELD, SYSTEM_KEY_PREFIX, } from "./constants.js";
|
|
3
|
+
export { classifyRootKey, isOpenBucketKey, isSystemRootKey } from "./classify.js";
|
|
4
|
+
export { buildConceptIdentifier, buildExtIdentifier, buildExtIdentifierKey, buildIdentityString, readConceptExtIdentifier, readConceptIdentifier, readConceptTitle, readRecordId, } from "./concept.js";
|
|
5
|
+
export { collectLegacyRootIssues, isLegacyRootKey, isLegacySystemRootKey, LEGACY_ROOT_KEYS as COMPAT_LEGACY_ROOT_KEYS, LEGACY_SYSTEM_ROOT_KEYS, } from "./compat/legacy-roots.js";
|
|
6
|
+
export { parseContentTypeMeta } from "./meta.js";
|
|
7
|
+
export { loadBaseEnvelopeMeta, clearBaseEnvelopeMetaCache, } from "./load-meta.js";
|
|
8
|
+
export { inspectMemorixBaseRecord } from "./inspect.js";
|
|
9
|
+
export { parseRecordsJson, validateMemorixBaseRecord, validateMemorixBaseRecords, } from "./validate.js";
|
|
10
|
+
export { isPlainObject, stringifyId } from "./utils.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EACL,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,IAAI,uBAAuB,EAC3C,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/base/inspect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG/D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAqCzE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { classifyRootKey } from "./classify.js";
|
|
2
|
+
import { isLegacyRootKey, isLegacySystemRootKey } from "./compat/legacy-roots.js";
|
|
3
|
+
import { readConceptExtIdentifier, readConceptTitle, readRecordId } from "./concept.js";
|
|
4
|
+
import { isPlainObject } from "./utils.js";
|
|
5
|
+
export function inspectMemorixBaseRecord(input) {
|
|
6
|
+
const empty = {
|
|
7
|
+
categories: { identity: [], core: [], system: [], open: [] },
|
|
8
|
+
legacyRoots: [],
|
|
9
|
+
};
|
|
10
|
+
if (!isPlainObject(input))
|
|
11
|
+
return empty;
|
|
12
|
+
const record = input;
|
|
13
|
+
const categories = {
|
|
14
|
+
identity: [],
|
|
15
|
+
core: [],
|
|
16
|
+
system: [],
|
|
17
|
+
open: [],
|
|
18
|
+
};
|
|
19
|
+
const legacyRoots = [];
|
|
20
|
+
for (const key of Object.keys(record)) {
|
|
21
|
+
if (isLegacyRootKey(key) || isLegacySystemRootKey(key)) {
|
|
22
|
+
legacyRoots.push(key);
|
|
23
|
+
}
|
|
24
|
+
const cat = classifyRootKey(key);
|
|
25
|
+
categories[cat].push(key);
|
|
26
|
+
}
|
|
27
|
+
const conceptId = readConceptExtIdentifier(record);
|
|
28
|
+
return {
|
|
29
|
+
recordId: readRecordId(record) || undefined,
|
|
30
|
+
conceptTitle: readConceptTitle(record),
|
|
31
|
+
conceptKind: conceptId?.kind,
|
|
32
|
+
categories: {
|
|
33
|
+
identity: categories.identity.sort(),
|
|
34
|
+
core: categories.core.sort(),
|
|
35
|
+
system: categories.system.sort(),
|
|
36
|
+
open: categories.open.sort(),
|
|
37
|
+
},
|
|
38
|
+
legacyRoots: legacyRoots.sort(),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/base/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,KAAK,GAAqB;QAC9B,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC5D,WAAW,EAAE,EAAE;KAChB,CAAC;IACF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,MAAM,GAAe,KAAK,CAAC;IACjC,MAAM,UAAU,GAAG;QACjB,QAAQ,EAAE,EAAc;QACxB,IAAI,EAAE,EAAc;QACpB,MAAM,EAAE,EAAc;QACtB,IAAI,EAAE,EAAc;KACrB,CAAC;IACF,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACjC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS;QAC3C,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACtC,WAAW,EAAE,SAAS,EAAE,IAAI;QAC5B,UAAU,EAAE;YACV,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;YAC5B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;YAChC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;SAC7B;QACD,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type BaseEnvelopeMeta = {
|
|
2
|
+
version: string;
|
|
3
|
+
categories: {
|
|
4
|
+
identity: {
|
|
5
|
+
keys: string[];
|
|
6
|
+
required: boolean;
|
|
7
|
+
description?: string;
|
|
8
|
+
};
|
|
9
|
+
core: {
|
|
10
|
+
keys: string[];
|
|
11
|
+
required: boolean;
|
|
12
|
+
description?: string;
|
|
13
|
+
};
|
|
14
|
+
underscore: {
|
|
15
|
+
keyPrefix: string;
|
|
16
|
+
wellKnown: string[];
|
|
17
|
+
description?: string;
|
|
18
|
+
};
|
|
19
|
+
open: {
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
concept: {
|
|
24
|
+
requiredFields: string[];
|
|
25
|
+
extIdentifier: {
|
|
26
|
+
path: string;
|
|
27
|
+
requiredFields: string[];
|
|
28
|
+
forbiddenFields: string[];
|
|
29
|
+
rules?: string[];
|
|
30
|
+
description?: string;
|
|
31
|
+
};
|
|
32
|
+
forbiddenFields: string[];
|
|
33
|
+
otherKeys?: {
|
|
34
|
+
description: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
underscoreBlock: {
|
|
38
|
+
allowUnderscoreKeys: boolean;
|
|
39
|
+
state: {
|
|
40
|
+
path: string;
|
|
41
|
+
enum: string[];
|
|
42
|
+
default: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
};
|
|
45
|
+
lifecycle: {
|
|
46
|
+
path: string;
|
|
47
|
+
shape?: string;
|
|
48
|
+
omitIfEmpty: boolean;
|
|
49
|
+
};
|
|
50
|
+
wellKnownSystemPaths: string[];
|
|
51
|
+
};
|
|
52
|
+
openBucketKinds: string[];
|
|
53
|
+
defaults: {
|
|
54
|
+
unknownOpenBuckets: "reject" | "allow" | "warn";
|
|
55
|
+
emptyBuckets: "reject" | "omit-required";
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export declare function loadBaseEnvelopeMeta(): BaseEnvelopeMeta;
|
|
59
|
+
/** Reset cache (tests). */
|
|
60
|
+
export declare function clearBaseEnvelopeMetaCache(): void;
|
|
61
|
+
//# sourceMappingURL=load-meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-meta.d.ts","sourceRoot":"","sources":["../../src/base/load-meta.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QACV,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClE,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7E,IAAI,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,aAAa,EAAE;YACb,IAAI,EAAE,MAAM,CAAC;YACb,cAAc,EAAE,MAAM,EAAE,CAAC;YACzB,eAAe,EAAE,MAAM,EAAE,CAAC;YAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,SAAS,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KACrC,CAAC;IACF,eAAe,EAAE;QACf,mBAAmB,EAAE,OAAO,CAAC;QAC7B,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,EAAE,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,SAAS,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,OAAO,CAAA;SAAE,CAAC;QAClE,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE;QACR,kBAAkB,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;QAChD,YAAY,EAAE,QAAQ,GAAG,eAAe,CAAC;KAC1C,CAAC;CACH,CAAC;AA0BF,wBAAgB,oBAAoB,IAAI,gBAAgB,CAKvD;AAED,2BAA2B;AAC3B,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load base envelope meta from packaged JSON.
|
|
3
|
+
*/
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
|
+
import { dirname, join } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { createRequire } from "node:module";
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const require = createRequire(import.meta.url);
|
|
10
|
+
let cached;
|
|
11
|
+
function resolveEnvelopePath() {
|
|
12
|
+
// From src/base or dist/base → package root meta/
|
|
13
|
+
const candidates = [
|
|
14
|
+
join(__dirname, "..", "..", "meta", "envelope.json"),
|
|
15
|
+
join(__dirname, "..", "meta", "envelope.json"),
|
|
16
|
+
];
|
|
17
|
+
for (const p of candidates) {
|
|
18
|
+
try {
|
|
19
|
+
readFileSync(p);
|
|
20
|
+
return p;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
/* try next */
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const pkgJson = require.resolve("@x12i/memorix-format/package.json");
|
|
28
|
+
return join(dirname(pkgJson), "meta", "envelope.json");
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return candidates[0];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function loadBaseEnvelopeMeta() {
|
|
35
|
+
if (cached)
|
|
36
|
+
return cached;
|
|
37
|
+
const raw = JSON.parse(readFileSync(resolveEnvelopePath(), "utf8"));
|
|
38
|
+
cached = raw;
|
|
39
|
+
return raw;
|
|
40
|
+
}
|
|
41
|
+
/** Reset cache (tests). */
|
|
42
|
+
export function clearBaseEnvelopeMetaCache() {
|
|
43
|
+
cached = undefined;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=load-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-meta.js","sourceRoot":"","sources":["../../src/base/load-meta.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAwC/C,IAAI,MAAoC,CAAC;AAEzC,SAAS,mBAAmB;IAC1B,kDAAkD;IAClD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC;KAC/C,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,MAAM,CAAC,CAAqB,CAAC;IACxF,MAAM,GAAG,GAAG,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,0BAA0B;IACxC,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ContentTypeMeta, ValidationIssue } from "./types.js";
|
|
2
|
+
/** Parse and validate a ContentTypeMeta document. */
|
|
3
|
+
export declare function parseContentTypeMeta(input: unknown): {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
meta?: ContentTypeMeta;
|
|
6
|
+
issues: ValidationIssue[];
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/base/meta.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAkC,eAAe,EAAE,MAAM,YAAY,CAAC;AAgBnG,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG;IACpD,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAuFA"}
|