@x12i/memorix-format 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,22 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.2.0
4
+
5
+ - Depends on `@x12i/memorix-base-format@^1.2.0` (`concept._extIdentifier`, `_system.state`).
6
+ - `migrate` / `migrateMemorixRecord`: transform legacy/transitional envelopes → present format and validate.
7
+ - Re-exports `buildExtIdentifier`, `readConceptExtIdentifier`, record-state helpers.
8
+
3
9
  ## 2.1.0
4
10
 
5
- - Meta-metadata lives in packaged JSON under `meta/` (`open-buckets.json`, `content-types.json`, `associated-conventions.json`, `content-type-profiles.json`).
6
- - Inventory of managed Catalox descriptors: `meta/inventory/managed-descriptors.json` (not format law).
7
- - Profiles / known buckets / SCOPE buckets load from those JSON files instead of hardcoded lists.
8
- - Requires `@x12i/memorix-base-format@^1.1.0` (base envelope meta JSON).
11
+ - Meta-metadata in packaged `meta/` JSON; inventory under `meta/inventory/`.
12
+ - Profiles / known buckets / SCOPE load from those files.
9
13
 
10
14
  ## 2.0.0
11
15
 
12
16
  Breaking relative to 1.0.0:
13
17
 
14
- - Depends on **`@x12i/memorix-base-format@^1.0.0`** for the fixed skeleton (`recordId`, `concept`, `data`, `_*`) and unnamed open buckets.
15
- - Product rules (`associated*`, `analytics` / `enrichment` / `insights` meanings, SCOPE) live only in this package as profiles / layered checks.
16
- - `classifyRootKey` comes from base — `associatedData` / `analytics` are simply **open**, not special base categories.
17
- - CLI adds `--profile`, directory validation; prefers requirement IDs (`ASSOC-2`, `SCOPE-2`, …).
18
- - Re-exports base APIs (`validateMemorixBaseRecord`, `parseContentTypeMeta`, …).
18
+ - Depends on `@x12i/memorix-base-format` for the fixed skeleton.
19
+ - Product rules live only in this package as profiles / layered checks.
19
20
 
20
21
  ## 1.0.0
21
22
 
22
- Initial release (monolithic validator with forced product naming mixed into envelope checks).
23
+ Initial release (monolithic validator).
package/README.md CHANGED
@@ -10,6 +10,12 @@ Memorix **product** record format — profiles and conventions on top of
10
10
 
11
11
  Product meta-metadata is packaged under [`meta/`](./meta/) (open buckets, content types, association conventions, profiles). Managed-descriptor inventory lives in `meta/inventory/` and is not format law.
12
12
 
13
+ Migrate older envelopes with:
14
+
15
+ ```bash
16
+ npx memorix-format migrate ./records/ --out=./clean/
17
+ ```
18
+
13
19
  ## Install
14
20
 
15
21
  ```bash
package/dist/cli.js CHANGED
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
+ import { existsSync, readdirSync, readFileSync, writeFileSync, statSync } from "node:fs";
3
3
  import { dirname, join, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { createRequire } from "node:module";
6
6
  import { inspectMemorixBaseRecord, parseContentTypeMeta, parseRecordsJson, } from "@x12i/memorix-base-format";
7
7
  import { BUILTIN_PROFILES } from "./profiles.js";
8
+ import { migrateMemorixRecord } from "./migrate.js";
8
9
  import { validateMemorixRecord } from "./validate.js";
9
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
10
11
  const require = createRequire(import.meta.url);
@@ -32,6 +33,7 @@ Memorix product format (layers on @x12i/memorix-base-format).
32
33
 
33
34
  Commands:
34
35
  validate [path|-] Validate with base + Memorix profile rules
36
+ migrate [path|-] Transform legacy/transitional records → present format
35
37
  inspect [path|-] Summarize root categories (via base)
36
38
  docs [name] List or print packaged docs
37
39
  profiles List built-in Memorix profiles
@@ -43,7 +45,10 @@ Options:
43
45
  --object-type=<name> Object type for profile resolution
44
46
  --content-type=<ct> SCOPE hint (non-snapshots reject known buckets / associated*)
45
47
  --meta=<file> Custom ContentTypeMeta JSON (overrides --profile)
46
- --allow-legacy Warn on retired roots
48
+ --allow-legacy Warn on legacy roots (compat)
49
+ --reject-legacy Fail on legacy roots
50
+ --out=<dir|file> migrate: write transformed JSON (omit = stdout / dry report)
51
+ --in-place migrate: overwrite input files
47
52
  --strict
48
53
  --json
49
54
  `);
@@ -110,9 +115,114 @@ function buildOptions(args) {
110
115
  objectType: readFlag(args, "object-type"),
111
116
  contentType: readFlag(args, "content-type"),
112
117
  allowLegacyEnvelope: hasFlag(args, "allow-legacy"),
118
+ rejectLegacyRoots: hasFlag(args, "reject-legacy"),
113
119
  strict: hasFlag(args, "strict"),
114
120
  };
115
121
  }
122
+ function runMigrate(args) {
123
+ const positional = args.filter((a) => !a.startsWith("--"));
124
+ const asJson = hasFlag(args, "json");
125
+ const inPlace = hasFlag(args, "in-place");
126
+ const outPath = readFlag(args, "out");
127
+ const contentType = readFlag(args, "content-type") ?? "snapshots";
128
+ const profileRaw = readFlag(args, "profile");
129
+ const profile = profileRaw && BUILTIN_PROFILES.includes(profileRaw)
130
+ ? profileRaw
131
+ : "snapshots";
132
+ let files;
133
+ try {
134
+ files = collectInputFiles(positional[0]);
135
+ }
136
+ catch (err) {
137
+ console.error(err instanceof Error ? err.message : String(err));
138
+ return 2;
139
+ }
140
+ const rows = [];
141
+ const migratedByFile = new Map();
142
+ for (const file of files) {
143
+ let text;
144
+ try {
145
+ text = readFileOrStdin(file);
146
+ }
147
+ catch (err) {
148
+ console.error(err instanceof Error ? err.message : String(err));
149
+ return 2;
150
+ }
151
+ let records;
152
+ try {
153
+ records = parseRecordsJson(text);
154
+ }
155
+ catch (err) {
156
+ console.error(`${file}: ${err instanceof Error ? err.message : String(err)}`);
157
+ return 2;
158
+ }
159
+ const migrated = records.map((r) => migrateMemorixRecord(r));
160
+ migratedByFile.set(file, migrated);
161
+ for (let i = 0; i < migrated.length; i++) {
162
+ const result = validateMemorixRecord(migrated[i], {
163
+ profile,
164
+ contentType,
165
+ objectType: readFlag(args, "object-type"),
166
+ });
167
+ rows.push({
168
+ file,
169
+ index: i,
170
+ ok: result.ok,
171
+ recordId: result.recordId,
172
+ issues: result.issues,
173
+ });
174
+ }
175
+ }
176
+ const allOk = rows.every((r) => r.ok);
177
+ if (asJson) {
178
+ console.log(JSON.stringify({
179
+ ok: allOk,
180
+ rows,
181
+ records: Object.fromEntries(migratedByFile),
182
+ }, null, 2));
183
+ }
184
+ else {
185
+ for (const r of rows) {
186
+ const label = `${r.file}#${r.index} ${r.recordId ?? ""}`.trim();
187
+ if (r.ok)
188
+ console.log(`OK ${label}`);
189
+ else {
190
+ console.log(`FAIL ${label}`);
191
+ for (const issue of r.issues) {
192
+ console.log(` [${issue.severity}] ${issue.code} ${issue.path}: ${issue.message}`);
193
+ }
194
+ }
195
+ }
196
+ console.log(`${rows.filter((r) => r.ok).length}/${rows.length} migrated+valid`);
197
+ }
198
+ if (inPlace || outPath) {
199
+ if (!allOk) {
200
+ console.error("Refusing to write: validation failed after migrate");
201
+ return 1;
202
+ }
203
+ for (const [file, records] of migratedByFile) {
204
+ const payload = records.length === 1 ? records[0] : records;
205
+ const text = `${JSON.stringify(payload, null, 2)}\n`;
206
+ if (inPlace && file !== "-") {
207
+ writeFileSync(file, text, "utf8");
208
+ }
209
+ else if (outPath) {
210
+ const dest = files.length === 1 && !outPath.endsWith("/")
211
+ ? resolve(outPath)
212
+ : join(resolve(outPath), file === "-" ? "stdin.json" : file.split("/").pop());
213
+ writeFileSync(dest, text, "utf8");
214
+ }
215
+ else if (file === "-") {
216
+ process.stdout.write(text);
217
+ }
218
+ }
219
+ }
220
+ else if (!asJson && files.length === 1 && files[0] === "-") {
221
+ const records = migratedByFile.get("-") ?? [];
222
+ process.stdout.write(`${JSON.stringify(records.length === 1 ? records[0] : records, null, 2)}\n`);
223
+ }
224
+ return allOk ? 0 : 1;
225
+ }
116
226
  function runValidate(args) {
117
227
  const positional = args.filter((a) => !a.startsWith("--"));
118
228
  const asJson = hasFlag(args, "json");
@@ -239,6 +349,8 @@ async function main(argv) {
239
349
  }
240
350
  if (cmd === "validate")
241
351
  return runValidate(args);
352
+ if (cmd === "migrate")
353
+ return runMigrate(args);
242
354
  if (cmd === "inspect")
243
355
  return runInspect(args);
244
356
  if (cmd === "docs")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAA2B,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAA+B,MAAM,eAAe,CAAC;AAEnF,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;AAE/C,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAyB,CAAC;QACnF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACd,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAChF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC;AACxB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;4CAc8B,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;CAUvE,CAAC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc,EAAE,IAAY;IAC5C,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,OAAO,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,OAAO,CAAC,IAAc,EAAE,IAAY;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA2B;IACpD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;QAC3B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;iBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GACX,UAAU,IAAK,gBAA6B,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC/D,CAAC,CAAE,UAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,SAAS,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QACpB,OAAO;QACP,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QACzC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAC3C,mBAAmB,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC;QAClD,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,WAAW,CAAC;IAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GACX,UAAU,IAAK,gBAA6B,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC/D,CAAC,CAAE,UAAiC;QACpC,CAAC,CAAC,WAAW,CAAC;IAElB,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IASD,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAkB,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAChD,OAAO;gBACP,WAAW;gBACX,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI;gBACJ,KAAK,EAAE,CAAC;gBACR,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;SAC5C,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;iBAChC,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;gBAC7B,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;YACrD,IAAI,OAAO,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5B,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC1C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBAClB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC;gBACnF,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,IAAc;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAML,EAAE,CAAC;IAER,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAkB,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9F,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,aAAa,GAAG,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,IAAc;IAC7B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,IAAI,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC/D,SAAS,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;IACzC,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,CAAC;AACX,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
- export type { ContentTypeMeta, JsonObject, MemorixBaseRecord, MemorixConcept, MemorixConceptIdentifier, MemorixLifecycleEvent, MemorixRecord, MemorixSystemBlock, OpenBucketDecl, OpenBucketKind, RecordInspection, RootCategory, ValidateBaseOptions, ValidateBaseResult, ValidateMemorixOptions, ValidationIssue, ValidationSeverity, MemorixProfileName, AssociatedPropertyNameInput, } from "./types.js";
2
- export { classifyRootKey, isOpenBucketKey, isSystemRootKey, validateMemorixBaseRecord, validateMemorixBaseRecords, parseContentTypeMeta, parseRecordsJson, inspectMemorixBaseRecord, buildConceptIdentifier, buildIdentityString, readConceptIdentifier, readConceptTitle, readRecordId, isPlainObject, stringifyId, loadBaseEnvelopeMeta, clearBaseEnvelopeMetaCache, RECORD_ID_FIELD, CONCEPT_FIELD, DATA_FIELD, SYSTEM_FIELD, IDENTITY_ROOT_KEYS, CORE_ROOT_KEYS, LEGACY_ROOT_KEYS, OPEN_BUCKET_KINDS, BASE_ENVELOPE_META_VERSION, } from "@x12i/memorix-base-format";
1
+ export type { ContentTypeMeta, JsonObject, MemorixBaseRecord, MemorixConcept, MemorixConceptIdentifier, MemorixExtIdentifier, MemorixLifecycleEvent, MemorixRecord, MemorixRecordState, MemorixSystemBlock, OpenBucketDecl, OpenBucketKind, RecordInspection, RootCategory, ValidateBaseOptions, ValidateBaseResult, ValidateMemorixOptions, ValidationIssue, ValidationSeverity, MemorixProfileName, AssociatedPropertyNameInput, } from "./types.js";
2
+ export type { MigrateRecordOptions } from "./migrate.js";
3
+ export { classifyRootKey, isOpenBucketKey, isSystemRootKey, validateMemorixBaseRecord, validateMemorixBaseRecords, parseContentTypeMeta, parseRecordsJson, inspectMemorixBaseRecord, buildConceptIdentifier, buildExtIdentifier, buildExtIdentifierKey, buildIdentityString, readConceptExtIdentifier, readConceptIdentifier, readConceptTitle, readRecordId, isPlainObject, stringifyId, loadBaseEnvelopeMeta, clearBaseEnvelopeMetaCache, collectLegacyRootIssues, isLegacyRootKey, isLegacySystemRootKey, RECORD_ID_FIELD, CONCEPT_FIELD, DATA_FIELD, SYSTEM_FIELD, IDENTITY_ROOT_KEYS, CORE_ROOT_KEYS, LEGACY_ROOT_KEYS, OPEN_BUCKET_KINDS, BASE_ENVELOPE_META_VERSION, DEFAULT_RECORD_STATE, MEMORIX_RECORD_STATES, MEMORIX_RECORD_STATE_VALUES, } from "@x12i/memorix-base-format";
3
4
  export { inspectMemorixBaseRecord as inspectMemorixRecord } from "@x12i/memorix-base-format";
4
5
  export { buildAssociatedPropertyName, isAssociatedPropertyName, isEnrichmentAssociatedPropertyName, isLegacyAssociatedPropertyName, isTopAssociatedPropertyName, listAssociatedProperties, DEFAULT_TOP_ASSOCIATED_ITEMS, KNOWN_OPEN_BUCKETS, LEGACY_ASSOCIATED_NAMES, pascalCaseObjectType, } from "./associated.js";
5
6
  export { BUILTIN_PROFILES, minimalContentTypeMeta, resolveMemorixProfile, snapshotsContentTypeMeta, } from "./profiles.js";
6
7
  export { loadAssociatedConventionsMeta, loadContentTypeProfilesMeta, loadContentTypesMeta, loadManagedInventoryMeta, loadOpenBucketsMeta, clearMemorixFormatMetaCache, knownOpenBucketsFromMeta, } from "./load-meta.js";
8
+ export { migrateMemorixRecord, migrateMemorixRecords } from "./migrate.js";
7
9
  export { validateMemorixRecord, validateMemorixRecords } from "./validate.js";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,wBAAwB,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,wBAAwB,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  // Base envelope (re-exported — source of truth is @x12i/memorix-base-format)
2
- export { classifyRootKey, isOpenBucketKey, isSystemRootKey, validateMemorixBaseRecord, validateMemorixBaseRecords, parseContentTypeMeta, parseRecordsJson, inspectMemorixBaseRecord, buildConceptIdentifier, buildIdentityString, readConceptIdentifier, readConceptTitle, readRecordId, isPlainObject, stringifyId, loadBaseEnvelopeMeta, clearBaseEnvelopeMetaCache, RECORD_ID_FIELD, CONCEPT_FIELD, DATA_FIELD, SYSTEM_FIELD, IDENTITY_ROOT_KEYS, CORE_ROOT_KEYS, LEGACY_ROOT_KEYS, OPEN_BUCKET_KINDS, BASE_ENVELOPE_META_VERSION, } from "@x12i/memorix-base-format";
2
+ export { classifyRootKey, isOpenBucketKey, isSystemRootKey, validateMemorixBaseRecord, validateMemorixBaseRecords, parseContentTypeMeta, parseRecordsJson, inspectMemorixBaseRecord, buildConceptIdentifier, buildExtIdentifier, buildExtIdentifierKey, buildIdentityString, readConceptExtIdentifier, readConceptIdentifier, readConceptTitle, readRecordId, isPlainObject, stringifyId, loadBaseEnvelopeMeta, clearBaseEnvelopeMetaCache, collectLegacyRootIssues, isLegacyRootKey, isLegacySystemRootKey, RECORD_ID_FIELD, CONCEPT_FIELD, DATA_FIELD, SYSTEM_FIELD, IDENTITY_ROOT_KEYS, CORE_ROOT_KEYS, LEGACY_ROOT_KEYS, OPEN_BUCKET_KINDS, BASE_ENVELOPE_META_VERSION, DEFAULT_RECORD_STATE, MEMORIX_RECORD_STATES, MEMORIX_RECORD_STATE_VALUES, } from "@x12i/memorix-base-format";
3
3
  export { inspectMemorixBaseRecord as inspectMemorixRecord } from "@x12i/memorix-base-format";
4
4
  export { buildAssociatedPropertyName, isAssociatedPropertyName, isEnrichmentAssociatedPropertyName, isLegacyAssociatedPropertyName, isTopAssociatedPropertyName, listAssociatedProperties, DEFAULT_TOP_ASSOCIATED_ITEMS, KNOWN_OPEN_BUCKETS, LEGACY_ASSOCIATED_NAMES, pascalCaseObjectType, } from "./associated.js";
5
5
  export { BUILTIN_PROFILES, minimalContentTypeMeta, resolveMemorixProfile, snapshotsContentTypeMeta, } from "./profiles.js";
6
6
  export { loadAssociatedConventionsMeta, loadContentTypeProfilesMeta, loadContentTypesMeta, loadManagedInventoryMeta, loadOpenBucketsMeta, clearMemorixFormatMetaCache, knownOpenBucketsFromMeta, } from "./load-meta.js";
7
+ export { migrateMemorixRecord, migrateMemorixRecords } from "./migrate.js";
7
8
  export { validateMemorixRecord, validateMemorixRecords } from "./validate.js";
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,6EAA6E;AAC7E,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,wBAAwB,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0BA,6EAA6E;AAC7E,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,wBAAwB,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Transform pre-clean / transitional envelopes to present Memorix format.
3
+ */
4
+ import { type JsonObject } from "@x12i/memorix-base-format";
5
+ export type MigrateRecordOptions = {
6
+ collectionName?: string;
7
+ };
8
+ /**
9
+ * Map a legacy / transitional record to the present envelope.
10
+ * Safe to re-run on already-clean records (fills `_system.state` if missing).
11
+ */
12
+ export declare function migrateMemorixRecord(input: unknown, _options?: MigrateRecordOptions): JsonObject;
13
+ export declare function migrateMemorixRecords(records: unknown[], options?: MigrateRecordOptions): JsonObject[];
14
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAKL,KAAK,UAAU,EAEhB,MAAM,2BAA2B,CAAC;AAuHnC,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,oBAAyB,GAClC,UAAU,CAyCZ;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAAE,EAClB,OAAO,GAAE,oBAAyB,GACjC,UAAU,EAAE,CAEd"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Transform pre-clean / transitional envelopes to present Memorix format.
3
+ */
4
+ import { buildExtIdentifierKey, DEFAULT_RECORD_STATE, isPlainObject, stringifyId, } from "@x12i/memorix-base-format";
5
+ const DROP_ROOTS = new Set([
6
+ "identity",
7
+ "lifecycle",
8
+ "sourceFacts",
9
+ "index",
10
+ "entityId",
11
+ "eventId",
12
+ "knowledgeId",
13
+ "displayName",
14
+ "question",
15
+ "answer",
16
+ "metadata",
17
+ "graphRunId",
18
+ "lastJobRunId",
19
+ ]);
20
+ function asObject(v) {
21
+ return isPlainObject(v) ? { ...v } : {};
22
+ }
23
+ function mapLifecycleStatusToState(status) {
24
+ const s = stringifyId(status)?.toLowerCase();
25
+ if (!s)
26
+ return undefined;
27
+ if (s === "active")
28
+ return "active";
29
+ if (s === "archived" || s === "archive" || s === "inactive")
30
+ return "archived";
31
+ if (s === "superseded" || s === "replaced" || s === "stale")
32
+ return "superseded";
33
+ return undefined;
34
+ }
35
+ function buildLifecycleEvents(legacy) {
36
+ const lifecycle = asObject(legacy.lifecycle);
37
+ const createdAt = stringifyId(lifecycle.createdAt);
38
+ const modifiedAt = stringifyId(lifecycle.modifiedAt) ?? stringifyId(lifecycle.capturedAt);
39
+ const events = [];
40
+ if (createdAt && modifiedAt && createdAt !== modifiedAt) {
41
+ events.push({ process: "created", processedAt: createdAt });
42
+ events.push({ process: "modified", processedAt: modifiedAt });
43
+ }
44
+ else if (createdAt || modifiedAt) {
45
+ events.push({ process: "enriched", processedAt: (createdAt ?? modifiedAt) });
46
+ }
47
+ return events.length > 0 ? events : undefined;
48
+ }
49
+ function migrateExtIdentifier(concept) {
50
+ if (isPlainObject(concept._extIdentifier)) {
51
+ const ext = { ...concept._extIdentifier };
52
+ if (!stringifyId(ext.key) && stringifyId(ext.identifierKey)) {
53
+ ext.key = String(ext.identifierKey);
54
+ }
55
+ delete ext.identifierKey;
56
+ if (!stringifyId(ext.key)) {
57
+ const built = buildExtIdentifierKey(ext);
58
+ if (built)
59
+ ext.key = built;
60
+ }
61
+ return ext;
62
+ }
63
+ const identifier = asObject(concept.identifier);
64
+ if (Object.keys(identifier).length === 0) {
65
+ return { kind: "recordId", recordId: "unknown", key: "recordId:unknown" };
66
+ }
67
+ const ext = { ...identifier };
68
+ if (stringifyId(ext.identifierKey) && !stringifyId(ext.key)) {
69
+ ext.key = String(ext.identifierKey);
70
+ }
71
+ delete ext.identifierKey;
72
+ const built = buildExtIdentifierKey(ext);
73
+ if (built)
74
+ ext.key = built;
75
+ return ext;
76
+ }
77
+ function migrateConcept(legacy) {
78
+ const concept = asObject(legacy.concept);
79
+ const title = stringifyId(concept.title) ??
80
+ stringifyId(concept.name) ??
81
+ stringifyId(legacy.displayName) ??
82
+ stringifyId(legacy.question) ??
83
+ "untitled";
84
+ const out = {
85
+ _extIdentifier: migrateExtIdentifier(concept),
86
+ title,
87
+ };
88
+ for (const [k, v] of Object.entries(concept)) {
89
+ if (k === "identifier" || k === "_extIdentifier" || k === "title" || k === "name")
90
+ continue;
91
+ if (k.startsWith("_"))
92
+ continue;
93
+ out[k] = v;
94
+ }
95
+ return out;
96
+ }
97
+ function migrateSystem(legacy) {
98
+ const system = asObject(legacy._system);
99
+ const rootLifecycle = asObject(legacy.lifecycle);
100
+ if (legacy._graphRuns !== undefined)
101
+ system._graphRuns = legacy._graphRuns;
102
+ if (legacy._jobTypeRuns !== undefined)
103
+ system._jobTypeRuns = legacy._jobTypeRuns;
104
+ const events = buildLifecycleEvents(legacy);
105
+ if (events)
106
+ system.lifecycle = events;
107
+ else if (Array.isArray(system.lifecycle) && system.lifecycle.length === 0) {
108
+ delete system.lifecycle;
109
+ }
110
+ if (system.state === undefined) {
111
+ const mapped = mapLifecycleStatusToState(rootLifecycle.status);
112
+ system.state = mapped ?? DEFAULT_RECORD_STATE;
113
+ }
114
+ return system;
115
+ }
116
+ /**
117
+ * Map a legacy / transitional record to the present envelope.
118
+ * Safe to re-run on already-clean records (fills `_system.state` if missing).
119
+ */
120
+ export function migrateMemorixRecord(input, _options = {}) {
121
+ if (!isPlainObject(input)) {
122
+ throw new Error("migrateMemorixRecord: input must be a plain object");
123
+ }
124
+ const legacy = input;
125
+ const identity = asObject(legacy.identity);
126
+ const out = {};
127
+ if (legacy._id !== undefined)
128
+ out._id = legacy._id;
129
+ const recordId = stringifyId(legacy.recordId) ??
130
+ stringifyId(identity.recordId) ??
131
+ stringifyId(identity.targetId) ??
132
+ stringifyId(legacy.entityId) ??
133
+ stringifyId(legacy.eventId) ??
134
+ stringifyId(legacy.knowledgeId);
135
+ if (recordId)
136
+ out.recordId = recordId;
137
+ out.concept = migrateConcept(legacy);
138
+ out.data = isPlainObject(legacy.data) ? { ...legacy.data } : {};
139
+ for (const [key, value] of Object.entries(legacy)) {
140
+ if (key === "_id" ||
141
+ key === "recordId" ||
142
+ key === "concept" ||
143
+ key === "data" ||
144
+ key === "_system" ||
145
+ key === "_graphRuns" ||
146
+ key === "_jobTypeRuns" ||
147
+ DROP_ROOTS.has(key)) {
148
+ continue;
149
+ }
150
+ // Open buckets + associated* + custom roots
151
+ out[key] = value;
152
+ }
153
+ out._system = migrateSystem(legacy);
154
+ return out;
155
+ }
156
+ export function migrateMemorixRecords(records, options = {}) {
157
+ return records.map((r) => migrateMemorixRecord(r, options));
158
+ }
159
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /** Re-export base types plus Memorix profile options. */
2
- export type { ContentTypeMeta, JsonObject, MemorixBaseRecord, MemorixConcept, MemorixConceptIdentifier, MemorixLifecycleEvent, MemorixSystemBlock, OpenBucketDecl, OpenBucketKind, RecordInspection, RootCategory, ValidateBaseOptions, ValidateBaseResult, ValidationIssue, ValidationSeverity, } from "@x12i/memorix-base-format";
2
+ export type { ContentTypeMeta, JsonObject, MemorixBaseRecord, MemorixConcept, MemorixConceptIdentifier, MemorixExtIdentifier, MemorixLifecycleEvent, MemorixRecordState, MemorixSystemBlock, OpenBucketDecl, OpenBucketKind, RecordInspection, RootCategory, ValidateBaseOptions, ValidateBaseResult, ValidationIssue, ValidationSeverity, } from "@x12i/memorix-base-format";
3
+ export { MEMORIX_RECORD_STATES } from "@x12i/memorix-base-format";
3
4
  import type { MemorixBaseRecord } from "@x12i/memorix-base-format";
4
5
  /** Alias for MemorixBaseRecord (compatibility with 1.x). */
5
6
  export type MemorixRecord = MemorixBaseRecord;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,YAAY,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,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,2BAA2B,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export { MEMORIX_RECORD_STATES } from "@x12i/memorix-base-format";
2
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -49,4 +49,6 @@ These names are **Memorix declarations**, not base-reserved keys. Base classifie
49
49
 
50
50
  **TOOL-3.** `validateMemorixRecord` = `validateMemorixBaseRecord` + profile/ASSOC/SCOPE.
51
51
 
52
+ **TOOL-4.** `migrateMemorixRecord` / CLI `migrate` transforms legacy/transitional envelopes to the present format and SHOULD validate the result.
53
+
52
54
  Built-in profiles: `snapshots`, `minimal` (`--profile=`).
@@ -1,14 +1,15 @@
1
1
  # Memorix Record Format
2
2
 
3
- > **Package split (2.0):** Core envelope → [`@x12i/memorix-base-format`](https://www.npmjs.com/package/@x12i/memorix-base-format).
3
+ > **Package split:** Core envelope → [`@x12i/memorix-base-format`](https://www.npmjs.com/package/@x12i/memorix-base-format).
4
4
  > Product open buckets / associations → this package (`@x12i/memorix-format`).
5
- > Requirements: [memorix-format-requirements.md](./memorix-format-requirements.md).
5
+ > Requirements: [memorix-format-requirements.md](./memorix-format-requirements.md).
6
+ > Migrate legacy records: `npx memorix-format migrate ./records/`.
6
7
 
7
8
  ## Purpose
8
9
 
9
10
  A Memorix record is a structured memory object: a stable envelope around domain payload, with clear separation between business data, derived analytics, external enrichment, AI insights, and cross-entity references.
10
11
 
11
- The clean format removes the legacy 2.0 `identity` block, root-level `lifecycle`, `sourceFacts`, and redundant `concept.name`. Every field belongs in exactly one place.
12
+ **Present envelope:** `recordId`, `concept` (`title` + `_extIdentifier`), `data`, optional open buckets (`analytics`, `enrichment`, `insights`, `associated*`, …), and `_…` machine roots (`_system.state`, `_system.lifecycle`, …). Open-bucket **names** are not closed — base does not reserve product names.
12
13
 
13
14
  ---
14
15
 
@@ -17,39 +18,34 @@ The clean format removes the legacy 2.0 `identity` block, root-level `lifecycle`
17
18
  ```ts
18
19
  type MemorixRecord = {
19
20
  _id?: string; // MongoDB document id (storage only)
20
- recordId: string; // stable logical record id
21
- concept: MemorixConcept;
22
- data: JsonObject; // required — see data bucket rules
21
+ recordId: string; // join plumbing across content types (same subject)
22
+ concept: {
23
+ _extIdentifier: { kind: string; key: string; [kindValue: string]: string };
24
+ title: string;
25
+ // other human/LLM-readable fields allowed
26
+ };
27
+ data: JsonObject; // required — native facts
23
28
 
24
29
  analytics?: JsonObject;
25
30
  enrichment?: JsonObject;
26
31
  insights?: JsonObject;
27
- associatedData?: JsonObject[];
28
- associatedDiscovery?: JsonObject[];
29
- associatedAnalysis?: JsonObject[];
30
- associatedSiblings?: JsonObject[];
31
- associatedChildren?: JsonObject[];
32
- // associated<CustomName>?: JsonObject[];
33
-
34
- _system?: MemorixSystemBlock;
32
+ // associated…?: JsonObject[];
33
+
34
+ _system?: {
35
+ state?: "active" | "archived" | "superseded";
36
+ lifecycle?: Array<{ process: string; processedAt: string }>;
37
+ // …
38
+ };
35
39
  };
36
40
  ```
37
41
 
38
- Associated properties use the reserved `associated` prefix. **Legacy** names (`associatedData`, `associatedDiscovery`, …) remain on existing data. **v2** names follow `associated<ObjectType><ContentType>` — see [memorix-pipeline/docs/association-format.md](../memorix-pipeline/docs/association-format.md).
42
+ Associated properties use the reserved `associated` prefix. **Legacy** short names (`associatedData`, …) may still appear. Prefer `associated<ObjectType><ContentType>` — see [association-format.md](./association-format.md).
39
43
 
40
- The root holds only `_id`, `recordId`, `concept`, the data buckets, associated properties, and `_system`. No other top-level keys.
44
+ Human/LLM readers SHOULD omit root `_…` and `concept._extIdentifier` by default; keep `recordId` for joins.
41
45
 
42
- ### Removed from 2.0
43
-
44
- | Legacy field | Fate |
45
- |---|---|
46
- | `identity` (`target`, `targetId`, `objectType`, `contentType`, `version`) | Dropped; `recordId` is root-level |
47
- | Root `lifecycle` (`createdAt`, `modifiedAt`, `capturedAt`, `status`) | Replaced by `_system.lifecycle` event array |
48
- | `sourceFacts` | Promoted into `data` or `associatedData` |
49
- | `concept.name` | Dropped; use `concept.identifier` + `concept.title` |
50
- | Root `_graphRuns` / `_jobTypeRuns` | Moved to `_system` |
46
+ ### Migrate tooling (not format law)
51
47
 
52
- `objectType` is implied by collection name. `contentType` and `version` were constant across all records and are not carried forward.
48
+ Use `memorix-format migrate` to convert older envelopes (`identity`, root `lifecycle`, `concept.identifier`, root `_graphRuns`, …) into the present shape. Do not encode past roots in envelope meta.
53
49
 
54
50
  ---
55
51
 
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "recordId": "69d216ed358778e93215787e",
3
3
  "concept": {
4
- "identifier": {
4
+ "_extIdentifier": {
5
5
  "kind": "pluginId",
6
6
  "pluginId": "142594",
7
- "identifierKey": "pluginId:142594"
7
+ "key": "pluginId:142594"
8
8
  },
9
9
  "title": "Oracle WebLogic Server RCE (CVE-2020-14882)"
10
10
  },
@@ -22,6 +22,7 @@
22
22
  "exploitability": { "level": "HIGH", "confidence": 0.92 }
23
23
  },
24
24
  "_system": {
25
+ "state": "active",
25
26
  "lifecycle": [
26
27
  { "process": "enriched", "processedAt": "2026-04-05T08:01:15.511Z" }
27
28
  ]
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@x12i/memorix-format",
3
- "version": "2.1.0",
4
- "description": "Memorix product format profiles on @x12i/memorix-base-format: known open buckets, association conventions, validator, CLI.",
3
+ "version": "2.2.0",
4
+ "description": "Memorix product format on @x12i/memorix-base-format: open buckets, associations, SCOPE, migrate CLI.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -48,7 +48,7 @@
48
48
  "node": ">=18.0.0"
49
49
  },
50
50
  "dependencies": {
51
- "@x12i/memorix-base-format": "^1.1.0"
51
+ "@x12i/memorix-base-format": "^1.2.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/node": "^20.14.0",