@x12i/memorix-format 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +27 -63
  3. package/dist/associated.d.ts +12 -12
  4. package/dist/associated.d.ts.map +1 -1
  5. package/dist/associated.js +26 -33
  6. package/dist/associated.js.map +1 -1
  7. package/dist/cli.js +129 -77
  8. package/dist/cli.js.map +1 -1
  9. package/dist/index.d.ts +7 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +7 -6
  12. package/dist/index.js.map +1 -1
  13. package/dist/load-meta.d.ts +56 -0
  14. package/dist/load-meta.d.ts.map +1 -0
  15. package/dist/load-meta.js +94 -0
  16. package/dist/load-meta.js.map +1 -0
  17. package/dist/profiles.d.ts +15 -0
  18. package/dist/profiles.d.ts.map +1 -0
  19. package/dist/profiles.js +47 -0
  20. package/dist/profiles.js.map +1 -0
  21. package/dist/types.d.ts +8 -80
  22. package/dist/types.d.ts.map +1 -1
  23. package/dist/validate.d.ts +17 -9
  24. package/dist/validate.d.ts.map +1 -1
  25. package/dist/validate.js +43 -184
  26. package/dist/validate.js.map +1 -1
  27. package/docs/memorix-format-requirements.md +52 -0
  28. package/docs/memorix-format.md +3 -1
  29. package/examples/valid-snapshot.json +3 -12
  30. package/meta/associated-conventions.json +59 -0
  31. package/meta/content-type-profiles.json +27 -0
  32. package/meta/content-types.json +68 -0
  33. package/meta/inventory/managed-descriptors.json +77 -0
  34. package/meta/open-buckets.json +24 -0
  35. package/package.json +14 -6
  36. package/dist/concept.d.ts +0 -16
  37. package/dist/concept.d.ts.map +0 -1
  38. package/dist/concept.js +0 -75
  39. package/dist/concept.js.map +0 -1
  40. package/dist/constants.d.ts +0 -21
  41. package/dist/constants.d.ts.map +0 -1
  42. package/dist/constants.js +0 -49
  43. package/dist/constants.js.map +0 -1
  44. package/dist/inspect.d.ts +0 -4
  45. package/dist/inspect.d.ts.map +0 -1
  46. package/dist/inspect.js +0 -51
  47. package/dist/inspect.js.map +0 -1
  48. package/dist/utils.d.ts +0 -6
  49. package/dist/utils.d.ts.map +0 -1
  50. package/dist/utils.js +0 -23
  51. package/dist/utils.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- export type { JsonObject, MemorixConcept, MemorixConceptIdentifier, MemorixContentTypeHint, MemorixLifecycleEvent, MemorixRecord, MemorixSystemBlock, RecordInspection, ValidateRecordOptions, ValidateRecordResult, ValidationIssue, ValidationSeverity, } from "./types.js";
2
- export { ANALYTICS_FIELD, CANONICAL_ROOT_KEYS, CONCEPT_FIELD, DATA_FIELD, DEFAULT_TOP_ASSOCIATED_ITEMS, ENRICHMENT_FIELD, GRAPH_RUNS_FIELD, INSIGHTS_FIELD, JOB_TYPE_RUNS_FIELD, LEGACY_ASSOCIATED_NAMES, LEGACY_ROOT_KEYS, RECORD_ID_FIELD, SNAPSHOT_ONLY_BUCKETS, SYSTEM_FIELD, SYSTEM_LIFECYCLE_FIELD, } from "./constants.js";
3
- export { assertAssociatedPropertyName, buildAssociatedPropertyName, isAssociatedPropertyName, isEnrichmentAssociatedPropertyName, isLegacyAssociatedPropertyName, isTopAssociatedPropertyName, listAssociatedProperties, } from "./associated.js";
4
- export type { AssociatedPropertyNameInput } from "./associated.js";
5
- export { buildConceptIdentifier, buildIdentityString, readConceptIdentifier, readConceptTitle, readRecordId, } from "./concept.js";
6
- export { inspectMemorixRecord } from "./inspect.js";
7
- export { parseRecordsJson, validateMemorixRecord, validateMemorixRecords, } from "./validate.js";
8
- export { isPlainObject, pascalCaseObjectType, stringifyId } from "./utils.js";
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";
3
+ export { inspectMemorixBaseRecord as inspectMemorixRecord } from "@x12i/memorix-base-format";
4
+ export { buildAssociatedPropertyName, isAssociatedPropertyName, isEnrichmentAssociatedPropertyName, isLegacyAssociatedPropertyName, isTopAssociatedPropertyName, listAssociatedProperties, DEFAULT_TOP_ASSOCIATED_ITEMS, KNOWN_OPEN_BUCKETS, LEGACY_ASSOCIATED_NAMES, pascalCaseObjectType, } from "./associated.js";
5
+ export { BUILTIN_PROFILES, minimalContentTypeMeta, resolveMemorixProfile, snapshotsContentTypeMeta, } from "./profiles.js";
6
+ export { loadAssociatedConventionsMeta, loadContentTypeProfilesMeta, loadContentTypesMeta, loadManagedInventoryMeta, loadOpenBucketsMeta, clearMemorixFormatMetaCache, knownOpenBucketsFromMeta, } from "./load-meta.js";
7
+ export { validateMemorixRecord, validateMemorixRecords } from "./validate.js";
9
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,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,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"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- export { ANALYTICS_FIELD, CANONICAL_ROOT_KEYS, CONCEPT_FIELD, DATA_FIELD, DEFAULT_TOP_ASSOCIATED_ITEMS, ENRICHMENT_FIELD, GRAPH_RUNS_FIELD, INSIGHTS_FIELD, JOB_TYPE_RUNS_FIELD, LEGACY_ASSOCIATED_NAMES, LEGACY_ROOT_KEYS, RECORD_ID_FIELD, SNAPSHOT_ONLY_BUCKETS, SYSTEM_FIELD, SYSTEM_LIFECYCLE_FIELD, } from "./constants.js";
2
- export { assertAssociatedPropertyName, buildAssociatedPropertyName, isAssociatedPropertyName, isEnrichmentAssociatedPropertyName, isLegacyAssociatedPropertyName, isTopAssociatedPropertyName, listAssociatedProperties, } from "./associated.js";
3
- export { buildConceptIdentifier, buildIdentityString, readConceptIdentifier, readConceptTitle, readRecordId, } from "./concept.js";
4
- export { inspectMemorixRecord } from "./inspect.js";
5
- export { parseRecordsJson, validateMemorixRecord, validateMemorixRecords, } from "./validate.js";
6
- export { isPlainObject, pascalCaseObjectType, stringifyId } from "./utils.js";
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";
3
+ export { inspectMemorixBaseRecord as inspectMemorixRecord } from "@x12i/memorix-base-format";
4
+ export { buildAssociatedPropertyName, isAssociatedPropertyName, isEnrichmentAssociatedPropertyName, isLegacyAssociatedPropertyName, isTopAssociatedPropertyName, listAssociatedProperties, DEFAULT_TOP_ASSOCIATED_ITEMS, KNOWN_OPEN_BUCKETS, LEGACY_ASSOCIATED_NAMES, pascalCaseObjectType, } from "./associated.js";
5
+ export { BUILTIN_PROFILES, minimalContentTypeMeta, resolveMemorixProfile, snapshotsContentTypeMeta, } from "./profiles.js";
6
+ export { loadAssociatedConventionsMeta, loadContentTypeProfilesMeta, loadContentTypesMeta, loadManagedInventoryMeta, loadOpenBucketsMeta, clearMemorixFormatMetaCache, knownOpenBucketsFromMeta, } from "./load-meta.js";
7
+ export { validateMemorixRecord, validateMemorixRecords } from "./validate.js";
7
8
  //# 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":"AAeA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
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"}
@@ -0,0 +1,56 @@
1
+ import type { ContentTypeMeta, OpenBucketDecl } from "@x12i/memorix-base-format";
2
+ export type OpenBucketsMeta = {
3
+ version: string;
4
+ openBuckets: Record<string, OpenBucketDecl & {
5
+ title?: string;
6
+ description?: string;
7
+ }>;
8
+ };
9
+ export type AssociatedConventionsMeta = {
10
+ version: string;
11
+ prefix: string;
12
+ defaultTopMaxItems: number;
13
+ legacyNames: string[];
14
+ namingForms: Array<{
15
+ form: string;
16
+ pattern: string;
17
+ }>;
18
+ };
19
+ export type ContentTypesMeta = {
20
+ version: string;
21
+ canonicalContentType: string;
22
+ contentTypes: Record<string, {
23
+ profile: string;
24
+ description?: string;
25
+ }>;
26
+ };
27
+ export type ContentTypeProfilesMeta = {
28
+ version: string;
29
+ profiles: Record<string, {
30
+ contentType?: string;
31
+ collectionPostfix?: string;
32
+ openBucketsRef?: string;
33
+ policy?: ContentTypeMeta["policy"];
34
+ read?: ContentTypeMeta["read"];
35
+ }>;
36
+ };
37
+ export type ManagedInventoryMeta = {
38
+ version: string;
39
+ managedObjectTypes: string[];
40
+ contentTypesObserved: string[];
41
+ associatedPropertiesObserved: string[];
42
+ customRootPropertiesObserved: Array<{
43
+ name: string;
44
+ kind: string;
45
+ shape: string;
46
+ }>;
47
+ };
48
+ export declare function loadOpenBucketsMeta(): OpenBucketsMeta;
49
+ export declare function loadAssociatedConventionsMeta(): AssociatedConventionsMeta;
50
+ export declare function loadContentTypesMeta(): ContentTypesMeta;
51
+ export declare function loadContentTypeProfilesMeta(): ContentTypeProfilesMeta;
52
+ export declare function loadManagedInventoryMeta(): ManagedInventoryMeta;
53
+ export declare function clearMemorixFormatMetaCache(): void;
54
+ /** Known product open buckets from meta/open-buckets.json. */
55
+ export declare function knownOpenBucketsFromMeta(): Record<string, OpenBucketDecl>;
56
+ //# sourceMappingURL=load-meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-meta.d.ts","sourceRoot":"","sources":["../src/load-meta.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AA8BjF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxF,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;QACE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;KAChC,CACF,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,4BAA4B,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAQF,wBAAgB,mBAAmB,IAAI,eAAe,CAKrD;AAED,wBAAgB,6BAA6B,IAAI,yBAAyB,CAKzE;AAED,wBAAgB,oBAAoB,IAAI,gBAAgB,CAKvD;AAED,wBAAgB,2BAA2B,IAAI,uBAAuB,CAKrE;AAED,wBAAgB,wBAAwB,IAAI,oBAAoB,CAK/D;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAMlD;AAED,8DAA8D;AAC9D,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAazE"}
@@ -0,0 +1,94 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { createRequire } from "node:module";
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ const require = createRequire(import.meta.url);
7
+ function metaDir() {
8
+ const candidates = [
9
+ join(__dirname, "..", "meta"),
10
+ join(__dirname, "meta"),
11
+ ];
12
+ for (const dir of candidates) {
13
+ try {
14
+ readFileSync(join(dir, "open-buckets.json"));
15
+ return dir;
16
+ }
17
+ catch {
18
+ /* next */
19
+ }
20
+ }
21
+ try {
22
+ const pkg = require.resolve("@x12i/memorix-format/package.json");
23
+ return join(dirname(pkg), "meta");
24
+ }
25
+ catch {
26
+ return candidates[0];
27
+ }
28
+ }
29
+ function readJson(name) {
30
+ return JSON.parse(readFileSync(join(metaDir(), name), "utf8"));
31
+ }
32
+ let openBucketsCache;
33
+ let associatedCache;
34
+ let contentTypesCache;
35
+ let profilesCache;
36
+ let inventoryCache;
37
+ export function loadOpenBucketsMeta() {
38
+ if (openBucketsCache)
39
+ return openBucketsCache;
40
+ const loaded = readJson("open-buckets.json");
41
+ openBucketsCache = loaded;
42
+ return loaded;
43
+ }
44
+ export function loadAssociatedConventionsMeta() {
45
+ if (associatedCache)
46
+ return associatedCache;
47
+ const loaded = readJson("associated-conventions.json");
48
+ associatedCache = loaded;
49
+ return loaded;
50
+ }
51
+ export function loadContentTypesMeta() {
52
+ if (contentTypesCache)
53
+ return contentTypesCache;
54
+ const loaded = readJson("content-types.json");
55
+ contentTypesCache = loaded;
56
+ return loaded;
57
+ }
58
+ export function loadContentTypeProfilesMeta() {
59
+ if (profilesCache)
60
+ return profilesCache;
61
+ const loaded = readJson("content-type-profiles.json");
62
+ profilesCache = loaded;
63
+ return loaded;
64
+ }
65
+ export function loadManagedInventoryMeta() {
66
+ if (inventoryCache)
67
+ return inventoryCache;
68
+ const loaded = readJson(join("inventory", "managed-descriptors.json"));
69
+ inventoryCache = loaded;
70
+ return loaded;
71
+ }
72
+ export function clearMemorixFormatMetaCache() {
73
+ openBucketsCache = undefined;
74
+ associatedCache = undefined;
75
+ contentTypesCache = undefined;
76
+ profilesCache = undefined;
77
+ inventoryCache = undefined;
78
+ }
79
+ /** Known product open buckets from meta/open-buckets.json. */
80
+ export function knownOpenBucketsFromMeta() {
81
+ const meta = loadOpenBucketsMeta();
82
+ const out = {};
83
+ for (const [name, decl] of Object.entries(meta.openBuckets)) {
84
+ out[name] = {
85
+ kind: decl.kind,
86
+ shape: decl.shape,
87
+ required: decl.required,
88
+ title: decl.title,
89
+ description: decl.description,
90
+ };
91
+ }
92
+ return out;
93
+ }
94
+ //# sourceMappingURL=load-meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-meta.js","sourceRoot":"","sources":["../src/load-meta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ContentTypeMeta } from "@x12i/memorix-base-format";
2
+ export type MemorixProfileName = "snapshots" | "minimal";
3
+ /**
4
+ * Snapshot content-type conventions from meta/content-type-profiles.json + open-buckets.json.
5
+ * `objectType` is supplied by the caller (descriptor / catalog / write context).
6
+ */
7
+ export declare function snapshotsContentTypeMeta(objectType: string): ContentTypeMeta;
8
+ /** Minimal content type — identity + data only. */
9
+ export declare function minimalContentTypeMeta(objectType: string, contentType: string): ContentTypeMeta;
10
+ /**
11
+ * Resolve profile by name, or by content-type vocabulary (meta/content-types.json).
12
+ */
13
+ export declare function resolveMemorixProfile(name: MemorixProfileName | string, objectType?: string): ContentTypeMeta;
14
+ export declare const BUILTIN_PROFILES: MemorixProfileName[];
15
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAOjE,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,SAAS,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAW5E;AAED,mDAAmD;AACnD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,eAAe,CASjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,GAAG,MAAM,EACjC,UAAU,SAAY,GACrB,eAAe,CAWjB;AAED,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EAA6B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { knownOpenBucketsFromMeta, loadContentTypeProfilesMeta, loadContentTypesMeta, } from "./load-meta.js";
2
+ /**
3
+ * Snapshot content-type conventions from meta/content-type-profiles.json + open-buckets.json.
4
+ * `objectType` is supplied by the caller (descriptor / catalog / write context).
5
+ */
6
+ export function snapshotsContentTypeMeta(objectType) {
7
+ const profiles = loadContentTypeProfilesMeta().profiles.snapshots;
8
+ const openBuckets = knownOpenBucketsFromMeta();
9
+ return {
10
+ objectType,
11
+ contentType: profiles?.contentType ?? "snapshots",
12
+ collectionPostfix: profiles?.collectionPostfix ?? "snapshots",
13
+ openBuckets,
14
+ policy: profiles?.policy ?? { unknownOpenBuckets: "allow", emptyBuckets: "reject" },
15
+ read: profiles?.read ?? { missingOptionalIsNa: true },
16
+ };
17
+ }
18
+ /** Minimal content type — identity + data only. */
19
+ export function minimalContentTypeMeta(objectType, contentType) {
20
+ const profiles = loadContentTypeProfilesMeta().profiles.minimal;
21
+ return {
22
+ objectType,
23
+ contentType,
24
+ collectionPostfix: contentType,
25
+ policy: profiles?.policy ?? { unknownOpenBuckets: "warn", emptyBuckets: "reject" },
26
+ read: profiles?.read ?? { missingOptionalIsNa: true },
27
+ };
28
+ }
29
+ /**
30
+ * Resolve profile by name, or by content-type vocabulary (meta/content-types.json).
31
+ */
32
+ export function resolveMemorixProfile(name, objectType = "generic") {
33
+ if (name === "snapshots")
34
+ return snapshotsContentTypeMeta(objectType);
35
+ if (name === "minimal")
36
+ return minimalContentTypeMeta(objectType, "events");
37
+ const ctMeta = loadContentTypesMeta().contentTypes[name];
38
+ if (ctMeta?.profile === "snapshots")
39
+ return snapshotsContentTypeMeta(objectType);
40
+ if (ctMeta?.profile === "workflow") {
41
+ // Workflow uses a separate document format; treat as minimal for envelope checks.
42
+ return minimalContentTypeMeta(objectType, "workflow");
43
+ }
44
+ return minimalContentTypeMeta(objectType, name);
45
+ }
46
+ export const BUILTIN_PROFILES = ["snapshots", "minimal"];
47
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAIxB;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;IAClE,MAAM,WAAW,GAAG,wBAAwB,EAAE,CAAC;IAC/C,OAAO;QACL,UAAU;QACV,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,WAAW;QACjD,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,IAAI,WAAW;QAC7D,WAAW;QACX,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE;QACnF,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;KACtD,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAChE,OAAO;QACL,UAAU;QACV,WAAW;QACX,iBAAiB,EAAE,WAAW;QAC9B,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;QAClF,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;KACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAiC,EACjC,UAAU,GAAG,SAAS;IAEtB,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE5E,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,MAAM,EAAE,OAAO,KAAK,WAAW;QAAE,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,MAAM,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACnC,kFAAkF;QAClF,OAAO,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAyB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,81 +1,9 @@
1
- /** Plain JSON object (non-array). */
2
- export type JsonObject = Record<string, unknown>;
3
- /** Discriminated concept identifier with deterministic join key. */
4
- export type MemorixConceptIdentifier = {
5
- kind: string;
6
- /** Deterministic join key: kind first, then values, colon-joined. */
7
- identifierKey: string;
8
- [key: string]: string;
9
- };
10
- export type MemorixConcept = {
11
- identifier: MemorixConceptIdentifier;
12
- title: string;
13
- };
14
- export type MemorixLifecycleEvent = {
15
- process: string;
16
- processedAt: string;
17
- };
18
- export type MemorixSystemBlock = {
19
- lifecycle?: MemorixLifecycleEvent[];
20
- _graphRuns?: Record<string, unknown>;
21
- _jobTypeRuns?: Record<string, unknown>;
22
- provenance?: JsonObject;
23
- memorix?: JsonObject;
24
- processing?: JsonObject;
25
- scoping?: JsonObject;
26
- [key: string]: unknown;
27
- };
28
- /**
29
- * Canonical clean Memorix record envelope.
30
- * See `docs/memorix-format.md`.
31
- */
32
- export type MemorixRecord = {
33
- _id?: unknown;
34
- recordId: string;
35
- concept: MemorixConcept;
36
- data: JsonObject;
37
- analytics?: JsonObject;
38
- enrichment?: JsonObject;
39
- insights?: JsonObject;
40
- /** Legacy short name; prefer v2 `associated<ObjectType><ContentType>`. */
41
- associatedData?: JsonObject[];
42
- _system?: MemorixSystemBlock;
43
- };
44
- /** Optional content-type hint for snapshot-only bucket rules. */
45
- export type MemorixContentTypeHint = "snapshots" | "discovery" | "analysis" | "decision" | "workflow" | "chunks" | "facts" | "events" | "history" | "profiles" | "legacy" | "core" | "inferences" | "scoped" | (string & {});
46
- export type ValidationSeverity = "error" | "warning";
47
- export type ValidationIssue = {
48
- path: string;
49
- code: string;
50
- message: string;
51
- severity: ValidationSeverity;
52
- };
53
- export type ValidateRecordOptions = {
54
- /** When set and not `snapshots`, snapshot-only buckets are rejected. */
55
- contentType?: MemorixContentTypeHint;
56
- /** Allow root `identity` / `lifecycle` / `sourceFacts` (legacy 2.0). Default false. */
57
- allowLegacyEnvelope?: boolean;
58
- /** Treat warnings as failures in `ok`. Default false. */
59
- strict?: boolean;
60
- };
61
- export type ValidateRecordResult = {
62
- ok: boolean;
63
- issues: ValidationIssue[];
64
- recordId?: string;
65
- };
66
- export type RecordInspection = {
67
- recordId?: string;
68
- conceptTitle?: string;
69
- conceptKind?: string;
70
- buckets: {
71
- data: boolean;
72
- analytics: boolean;
73
- enrichment: boolean;
74
- insights: boolean;
75
- system: boolean;
76
- };
77
- associatedProperties: string[];
78
- legacyRoots: string[];
79
- unknownRoots: string[];
80
- };
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";
3
+ import type { MemorixBaseRecord } from "@x12i/memorix-base-format";
4
+ /** Alias for MemorixBaseRecord (compatibility with 1.x). */
5
+ export type MemorixRecord = MemorixBaseRecord;
6
+ export type { ValidateMemorixOptions } from "./validate.js";
7
+ export type { MemorixProfileName } from "./profiles.js";
8
+ export type { AssociatedPropertyNameInput } from "./associated.js";
81
9
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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,14 +1,22 @@
1
- import type { ValidateRecordOptions, ValidateRecordResult } from "./types.js";
1
+ import { type ValidateBaseOptions, type ValidateBaseResult } from "@x12i/memorix-base-format";
2
+ import { type MemorixProfileName } from "./profiles.js";
3
+ export type ValidateMemorixOptions = ValidateBaseOptions & {
4
+ /** Built-in Memorix ContentTypeMeta profile. */
5
+ profile?: MemorixProfileName;
6
+ /** Object type used when resolving a built-in profile. */
7
+ objectType?: string;
8
+ /**
9
+ * When set and not `snapshots`, reject Memorix-known consumption buckets
10
+ * and associated* keys (SCOPE).
11
+ */
12
+ contentType?: string;
13
+ };
2
14
  /**
3
- * Validate a Memorix record against the clean envelope contract.
4
- * Does not require Mongo or Catalox — pure shape validation.
15
+ * Memorix product validation = base envelope + optional profile meta + ASSOC/SCOPE rules.
5
16
  */
6
- export declare function validateMemorixRecord(input: unknown, options?: ValidateRecordOptions): ValidateRecordResult;
7
- /** Validate many records; returns per-record results plus aggregate ok. */
8
- export declare function validateMemorixRecords(records: unknown[], options?: ValidateRecordOptions): {
17
+ export declare function validateMemorixRecord(input: unknown, options?: ValidateMemorixOptions): ValidateBaseResult;
18
+ export declare function validateMemorixRecords(records: unknown[], options?: ValidateMemorixOptions): {
9
19
  ok: boolean;
10
- results: ValidateRecordResult[];
20
+ results: ValidateBaseResult[];
11
21
  };
12
- /** Parse JSON text that is either one object or an array / NDJSON stream. */
13
- export declare function parseRecordsJson(text: string): unknown[];
14
22
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAgOpB;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAyFtB;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAAE,EAClB,OAAO,GAAE,qBAA0B,GAClC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAGlD;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CA2BxD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAExB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE/E,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG;IACzD,gDAAgD;IAChD,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAeF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,CA0EpB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAAE,EAClB,OAAO,GAAE,sBAA2B,GACnC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAGhD"}