@treeviz/gedcom-parser 2.1.5 → 2.1.7
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/dist/classes/common.d.ts.map +1 -1
- package/dist/classes/index.js +4 -1
- package/dist/cli/index.js +4 -1
- package/dist/constants/index.js +3 -0
- package/dist/factories/index.js +3 -0
- package/dist/index.js +4 -1
- package/dist/interfaces/common.d.ts +5 -0
- package/dist/interfaces/common.d.ts.map +1 -1
- package/dist/kinship-translator/index.js +3 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +254 -2
- package/dist/utils/structural.d.ts +43 -0
- package/dist/utils/structural.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/classes/common.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAO,MAAM,EAAE,QAAQ,EAAW,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,qBAAa,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,YAAW,OAAO,CAC5E,CAAC,EACD,CAAC,CACD;IACA,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAC3B,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEvB,UAAU,UAAQ;IAClB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEN,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAcvE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAKlC;IAED,IAAI,IAAI,IAAI,QAAQ,GAAG,SAAS,CAE/B;IAED,YAAY;IAMZ,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EASlC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,EAEvB;IAED,IAAI,EAAE,IAJK,CAAC,GAAG,SAAS,CAMvB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAE7B;IAED,IAAI,KAAK,IAJQ,CAAC,GAAG,SAAS,CAM7B;IAED;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,IAAI,aAAa,kBAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAalC;IAED,IAAI,IAAI,uCAEP;IAED,IAAI,MAAM,uCAET;IAED,MAAM,CAAC,OAAO,EAAE,MAAM;IActB,OAAO;IAIP,WAAW;IAIX,WAAW;IAIX,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EACnC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,CAAC,GAAG,MAAM;IAiBlB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EACtC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,CAAC,EACR,MAAM,UAAQ;IA+Bf,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ;IAuDpD,MAAM,CAAC,IAAI,EAAE,QAAQ;IAIrB,SAAS;IAIT,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EACrC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ;IAiChB,QAAQ;IAIR,OAAO;IAIP,MAAM,CAAC,GAAG,EAAE,QAAQ,GAGJ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAGxC,MAAM;IAON,KAAK,CAAC,CAAC,EAAE,MAAM;IAIf,WAAW;IASX,OAAO,CAAC,iBAAiB;IAyBzB,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc;IAM/C,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc;gBAOlC,MAAM;;gBAIJ,MAAM;;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/classes/common.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAO,MAAM,EAAE,QAAQ,EAAW,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,qBAAa,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,YAAW,OAAO,CAC5E,CAAC,EACD,CAAC,CACD;IACA,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAC3B,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEvB,UAAU,UAAQ;IAClB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEN,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAcvE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAKlC;IAED,IAAI,IAAI,IAAI,QAAQ,GAAG,SAAS,CAE/B;IAED,YAAY;IAMZ,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EASlC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,EAEvB;IAED,IAAI,EAAE,IAJK,CAAC,GAAG,SAAS,CAMvB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAE7B;IAED,IAAI,KAAK,IAJQ,CAAC,GAAG,SAAS,CAM7B;IAED;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,IAAI,aAAa,kBAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAalC;IAED,IAAI,IAAI,uCAEP;IAED,IAAI,MAAM,uCAET;IAED,MAAM,CAAC,OAAO,EAAE,MAAM;IActB,OAAO;IAIP,WAAW;IAIX,WAAW;IAIX,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EACnC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,CAAC,GAAG,MAAM;IAiBlB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EACtC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,CAAC,EACR,MAAM,UAAQ;IA+Bf,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ;IAuDpD,MAAM,CAAC,IAAI,EAAE,QAAQ;IAIrB,SAAS;IAIT,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,EACrC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ;IAiChB,QAAQ;IAIR,OAAO;IAIP,MAAM,CAAC,GAAG,EAAE,QAAQ,GAGJ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAGxC,MAAM;IAON,KAAK,CAAC,CAAC,EAAE,MAAM;IAIf,WAAW;IASX,OAAO,CAAC,iBAAiB;IAyBzB,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc;IAM/C,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc;gBAOlC,MAAM;;gBAIJ,MAAM;;IAsCvB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,UAAQ,EAAE,SAAS,GAAE,QAAQ,EAAO;IA6BvE,KAAK,CAAC,KAAK,UAAQ,EAAE,SAAS,GAAE,QAAQ,EAAO;IA2B/C,UAAU,CAAC,MAAM,EAAE,MAAM;IAIzB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,SAAI,EAAE,OAAO,CAAC,EAAE,cAAc;IAM5D,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,SAAI,EAAE,OAAO,CAAC,EAAE,cAAc;IAiCjE,aAAa,IAET,MAAM,GACN,SAAS;IAGb,qBAAqB,IAKf,MAAM,GAAG,SAAS;IAGxB,cAAc;IAOd,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAU5D,OAAO,CAAC,cAAc;IAOtB,SAAS;IAIT,YAAY;IAIZ,MAAM;IAIN,UAAU;IAIV,YAAY;IAIZ;;;OAGG;IACH,aAAa,IAAI,MAAM,GAAG,SAAS;IAWnC,cAAc;IAOd,SAAS;IAOT,iBAAiB;IAUjB,mBAAmB;IAUnB,SAAS;IAwCT,mBAAmB;IAUnB,qBAAqB;IAYrB,qBAAqB;IAgBrB,uBAAuB;IAmBvB,mBAAmB;IAcnB,qBAAqB;IAQrB,aAAa;IAcb,eAAe;IAQf,gBAAgB;IAchB,kBAAkB;IAQlB,gBAAgB;IAehB,kBAAkB;IAgBlB;;;OAGG;IACH,kBAAkB;IAqBlB;;;OAGG;IACH,oBAAoB;IAwCpB,WAAW;CAuCX;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,CAAC;AACnE,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,KAAG,CAkBzD,CAAC;AAEF,eAAO,MAAM,YAAY,GACxB,SAAS,UAAU,EACnB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,SAAS,MAAM,KACb,aAAa,CAAC,MAAM,CAItB,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,KAAK,MAAM,GAAG,MAAM,KAClB,GAAG,IAAI,QAAQ,GAAG,QAAQ,GAAG,OAW/B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,EAC3B,QAAQ,MAAM,CAAC,CAAC,CAAC,EACjB,KAAK,MAAM,GAAG,MAAM,KAClB,GAAG,IAAI,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,KAiBhD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,CAAC,KAG1C,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,CACxD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,WAEtC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAChB,OACrB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,IAAI,MAAM,WAElD,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI,MAE/C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,kBAqBhD,CAAC"}
|
package/dist/classes/index.js
CHANGED
|
@@ -768,6 +768,9 @@ var Common = class _Common {
|
|
|
768
768
|
const validKeys = getValidKeys(this);
|
|
769
769
|
let json = {};
|
|
770
770
|
validKeys.forEach((key) => {
|
|
771
|
+
if (options?.persist && (key === "DAY" || key === "MONTH" || key === "YEAR")) {
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
771
774
|
if (key === "id" && this.id !== void 0) {
|
|
772
775
|
json.id = this.id;
|
|
773
776
|
} else if (key === "_id" && this._id !== void 0) {
|
|
@@ -8153,7 +8156,7 @@ var ensureExtensionSchema = (gedcom, extraTags) => {
|
|
|
8153
8156
|
|
|
8154
8157
|
// package.json
|
|
8155
8158
|
var package_default = {
|
|
8156
|
-
version: "2.1.
|
|
8159
|
+
version: "2.1.7"};
|
|
8157
8160
|
|
|
8158
8161
|
// src/utils/get-product-details.ts
|
|
8159
8162
|
var getVersion = () => package_default.version;
|
package/dist/cli/index.js
CHANGED
|
@@ -704,6 +704,9 @@ var Common = class _Common {
|
|
|
704
704
|
const validKeys = getValidKeys(this);
|
|
705
705
|
let json = {};
|
|
706
706
|
validKeys.forEach((key) => {
|
|
707
|
+
if (options?.persist && (key === "DAY" || key === "MONTH" || key === "YEAR")) {
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
707
710
|
if (key === "id" && this.id !== void 0) {
|
|
708
711
|
json.id = this.id;
|
|
709
712
|
} else if (key === "_id" && this._id !== void 0) {
|
|
@@ -8149,7 +8152,7 @@ var ensureExtensionSchema = (gedcom, extraTags) => {
|
|
|
8149
8152
|
|
|
8150
8153
|
// package.json
|
|
8151
8154
|
var package_default = {
|
|
8152
|
-
version: "2.1.
|
|
8155
|
+
version: "2.1.7"};
|
|
8153
8156
|
|
|
8154
8157
|
// src/utils/get-product-details.ts
|
|
8155
8158
|
var isDevelopment = () => {
|
package/dist/constants/index.js
CHANGED
|
@@ -1216,6 +1216,9 @@ var Common = class _Common {
|
|
|
1216
1216
|
const validKeys = getValidKeys(this);
|
|
1217
1217
|
let json = {};
|
|
1218
1218
|
validKeys.forEach((key) => {
|
|
1219
|
+
if (options?.persist && (key === "DAY" || key === "MONTH" || key === "YEAR")) {
|
|
1220
|
+
return;
|
|
1221
|
+
}
|
|
1219
1222
|
if (key === "id" && this.id !== void 0) {
|
|
1220
1223
|
json.id = this.id;
|
|
1221
1224
|
} else if (key === "_id" && this._id !== void 0) {
|
package/dist/factories/index.js
CHANGED
|
@@ -1011,6 +1011,9 @@ var Common = class _Common {
|
|
|
1011
1011
|
const validKeys = getValidKeys(this);
|
|
1012
1012
|
let json = {};
|
|
1013
1013
|
validKeys.forEach((key) => {
|
|
1014
|
+
if (options?.persist && (key === "DAY" || key === "MONTH" || key === "YEAR")) {
|
|
1015
|
+
return;
|
|
1016
|
+
}
|
|
1014
1017
|
if (key === "id" && this.id !== void 0) {
|
|
1015
1018
|
json.id = this.id;
|
|
1016
1019
|
} else if (key === "_id" && this._id !== void 0) {
|
package/dist/index.js
CHANGED
|
@@ -698,6 +698,9 @@ var Common = class _Common {
|
|
|
698
698
|
const validKeys = getValidKeys(this);
|
|
699
699
|
let json = {};
|
|
700
700
|
validKeys.forEach((key) => {
|
|
701
|
+
if (options?.persist && (key === "DAY" || key === "MONTH" || key === "YEAR")) {
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
701
704
|
if (key === "id" && this.id !== void 0) {
|
|
702
705
|
json.id = this.id;
|
|
703
706
|
} else if (key === "_id" && this._id !== void 0) {
|
|
@@ -9069,7 +9072,7 @@ var collectExtensionTagsFrom = (node, into = /* @__PURE__ */ new Set()) => {
|
|
|
9069
9072
|
// package.json
|
|
9070
9073
|
var package_default = {
|
|
9071
9074
|
name: "@treeviz/gedcom-parser",
|
|
9072
|
-
version: "2.1.
|
|
9075
|
+
version: "2.1.7"};
|
|
9073
9076
|
|
|
9074
9077
|
// src/utils/get-product-details.ts
|
|
9075
9078
|
var isDevelopment = () => {
|
|
@@ -6,6 +6,11 @@ export interface ConvertOptions {
|
|
|
6
6
|
original?: boolean;
|
|
7
7
|
/** Target GEDCOM spec when serializing. Ignored when `original` is true. */
|
|
8
8
|
gedcomVersion?: "5.5.1" | "7.0";
|
|
9
|
+
/**
|
|
10
|
+
* When true, omit derived DATE fields (DAY/MONTH/YEAR) for structural
|
|
11
|
+
* persistence (Firebase/IDB). Not for GEDCOM export.
|
|
12
|
+
*/
|
|
13
|
+
persist?: boolean;
|
|
9
14
|
obje?: {
|
|
10
15
|
standardize?: boolean;
|
|
11
16
|
override?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/interfaces/common.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/interfaces/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -2514,6 +2514,9 @@ var Common = class _Common {
|
|
|
2514
2514
|
const validKeys = getValidKeys(this);
|
|
2515
2515
|
let json = {};
|
|
2516
2516
|
validKeys.forEach((key) => {
|
|
2517
|
+
if (options?.persist && (key === "DAY" || key === "MONTH" || key === "YEAR")) {
|
|
2518
|
+
return;
|
|
2519
|
+
}
|
|
2517
2520
|
if (key === "id" && this.id !== void 0) {
|
|
2518
2521
|
json.id = this.id;
|
|
2519
2522
|
} else if (key === "_id" && this._id !== void 0) {
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export * from "./ordinalize";
|
|
|
26
26
|
export { default as GedcomTree, createEmptyGedcom } from "./parser";
|
|
27
27
|
export * from "./place-parser";
|
|
28
28
|
export * from "./place-translator";
|
|
29
|
+
export * from "./structural";
|
|
29
30
|
export type { PrimitiveRange, Range, SplitResult } from "./range";
|
|
30
31
|
export * from "./range";
|
|
31
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACpE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACpE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAI7B,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClE,cAAc,SAAS,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -981,6 +981,9 @@ var Common = class _Common {
|
|
|
981
981
|
const validKeys = getValidKeys(this);
|
|
982
982
|
let json = {};
|
|
983
983
|
validKeys.forEach((key) => {
|
|
984
|
+
if (options?.persist && (key === "DAY" || key === "MONTH" || key === "YEAR")) {
|
|
985
|
+
return;
|
|
986
|
+
}
|
|
984
987
|
if (key === "id" && this.id !== void 0) {
|
|
985
988
|
json.id = this.id;
|
|
986
989
|
} else if (key === "_id" && this._id !== void 0) {
|
|
@@ -8903,7 +8906,7 @@ var collectExtensionTagsFrom = (node, into = /* @__PURE__ */ new Set()) => {
|
|
|
8903
8906
|
// package.json
|
|
8904
8907
|
var package_default = {
|
|
8905
8908
|
name: "@treeviz/gedcom-parser",
|
|
8906
|
-
version: "2.1.
|
|
8909
|
+
version: "2.1.7"};
|
|
8907
8910
|
|
|
8908
8911
|
// src/utils/get-product-details.ts
|
|
8909
8912
|
var isDevelopment = () => {
|
|
@@ -10306,4 +10309,253 @@ var createEmptyGedcom = (options) => {
|
|
|
10306
10309
|
return gedcom;
|
|
10307
10310
|
};
|
|
10308
10311
|
|
|
10309
|
-
|
|
10312
|
+
// src/utils/structural.ts
|
|
10313
|
+
var STRUCTURAL_FORMAT = "treeviz-structural";
|
|
10314
|
+
var STRUCTURAL_VERSION = 1;
|
|
10315
|
+
var ROOT_SKIP_KEYS = /* @__PURE__ */ new Set(["HEAD"]);
|
|
10316
|
+
var SKIP_KEYS = /* @__PURE__ */ new Set(["id"]);
|
|
10317
|
+
var asArray = (value) => {
|
|
10318
|
+
if (value === void 0 || value === null) {
|
|
10319
|
+
return [];
|
|
10320
|
+
}
|
|
10321
|
+
return Array.isArray(value) ? value : [value];
|
|
10322
|
+
};
|
|
10323
|
+
var isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10324
|
+
var isRecordItem = (value) => isPlainObject(value) && typeof value.id === "string";
|
|
10325
|
+
var topLevelRecordTags = (data) => {
|
|
10326
|
+
const found = [];
|
|
10327
|
+
for (const key of Object.keys(data)) {
|
|
10328
|
+
if (ROOT_SKIP_KEYS.has(key)) {
|
|
10329
|
+
continue;
|
|
10330
|
+
}
|
|
10331
|
+
if (asArray(data[key]).some(isRecordItem)) {
|
|
10332
|
+
found.push(key);
|
|
10333
|
+
}
|
|
10334
|
+
}
|
|
10335
|
+
return found;
|
|
10336
|
+
};
|
|
10337
|
+
var clearNodeChildren = (node) => {
|
|
10338
|
+
for (const key of getValidKeys(node)) {
|
|
10339
|
+
if (key === "id" || key === "_id" || key === "value" || key === "_value") {
|
|
10340
|
+
continue;
|
|
10341
|
+
}
|
|
10342
|
+
node.remove(key);
|
|
10343
|
+
}
|
|
10344
|
+
const mutable = node;
|
|
10345
|
+
if ("value" in mutable) {
|
|
10346
|
+
delete mutable.value;
|
|
10347
|
+
}
|
|
10348
|
+
if ("_value" in mutable) {
|
|
10349
|
+
delete mutable._value;
|
|
10350
|
+
}
|
|
10351
|
+
};
|
|
10352
|
+
var isStructuralEnvelope = (content) => {
|
|
10353
|
+
const trimmed = content.trimStart();
|
|
10354
|
+
return trimmed.startsWith("{") && trimmed.includes(`"format":"${STRUCTURAL_FORMAT}"`);
|
|
10355
|
+
};
|
|
10356
|
+
var parseStructuralEnvelope = (content) => {
|
|
10357
|
+
try {
|
|
10358
|
+
const parsed = JSON.parse(content);
|
|
10359
|
+
if (parsed?.format === STRUCTURAL_FORMAT && parsed.v === STRUCTURAL_VERSION && parsed.data && typeof parsed.data === "object") {
|
|
10360
|
+
return parsed;
|
|
10361
|
+
}
|
|
10362
|
+
} catch {
|
|
10363
|
+
}
|
|
10364
|
+
return void 0;
|
|
10365
|
+
};
|
|
10366
|
+
var serializeStructural = (gedcom, options) => {
|
|
10367
|
+
const data = gedcom.toObject(void 0, {
|
|
10368
|
+
...options,
|
|
10369
|
+
persist: true
|
|
10370
|
+
});
|
|
10371
|
+
const envelope = {
|
|
10372
|
+
v: STRUCTURAL_VERSION,
|
|
10373
|
+
format: STRUCTURAL_FORMAT,
|
|
10374
|
+
data
|
|
10375
|
+
};
|
|
10376
|
+
return JSON.stringify(envelope);
|
|
10377
|
+
};
|
|
10378
|
+
var buildXrefIndex = (data) => {
|
|
10379
|
+
const xrefTypes = /* @__PURE__ */ new Map();
|
|
10380
|
+
for (const tag of topLevelRecordTags(data)) {
|
|
10381
|
+
for (const item of asArray(data[tag])) {
|
|
10382
|
+
if (isRecordItem(item)) {
|
|
10383
|
+
xrefTypes.set(item.id, tag);
|
|
10384
|
+
}
|
|
10385
|
+
}
|
|
10386
|
+
}
|
|
10387
|
+
return xrefTypes;
|
|
10388
|
+
};
|
|
10389
|
+
var applyValue = (node, value, xrefTypes) => {
|
|
10390
|
+
node.value = value;
|
|
10391
|
+
if (isId(value) && xrefTypes.has(value)) {
|
|
10392
|
+
node.refType = xrefTypes.get(value);
|
|
10393
|
+
}
|
|
10394
|
+
};
|
|
10395
|
+
var DERIVED_NAME_PARTS = /* @__PURE__ */ new Set([
|
|
10396
|
+
"GIVN",
|
|
10397
|
+
"SURN",
|
|
10398
|
+
"NSFX",
|
|
10399
|
+
"NICK",
|
|
10400
|
+
"NPFX",
|
|
10401
|
+
"DISPLAY",
|
|
10402
|
+
"FORMAT"
|
|
10403
|
+
]);
|
|
10404
|
+
var applyProps = (gedcom, node, props, xrefTypes) => {
|
|
10405
|
+
const providedKeys = new Set(Object.keys(props));
|
|
10406
|
+
const entries = Object.entries(props);
|
|
10407
|
+
const ordered = [
|
|
10408
|
+
...entries.filter(([key]) => key === "value"),
|
|
10409
|
+
...entries.filter(([key]) => key !== "value")
|
|
10410
|
+
];
|
|
10411
|
+
ordered.forEach(([key, value]) => {
|
|
10412
|
+
if (SKIP_KEYS.has(key)) {
|
|
10413
|
+
return;
|
|
10414
|
+
}
|
|
10415
|
+
if (key === "value") {
|
|
10416
|
+
if (value === null || value === void 0 || typeof value === "object") {
|
|
10417
|
+
return;
|
|
10418
|
+
}
|
|
10419
|
+
applyValue(node, String(value), xrefTypes);
|
|
10420
|
+
return;
|
|
10421
|
+
}
|
|
10422
|
+
const tag = key;
|
|
10423
|
+
const main = node.main ?? node;
|
|
10424
|
+
const addOne = (childProps) => {
|
|
10425
|
+
if (typeof childProps === "string") {
|
|
10426
|
+
const { prevNode: prevNode2 } = create(gedcom, tag, void 0, {
|
|
10427
|
+
mainNode: main,
|
|
10428
|
+
curNode: node
|
|
10429
|
+
});
|
|
10430
|
+
applyValue(prevNode2, childProps, xrefTypes);
|
|
10431
|
+
node.assign(tag, prevNode2);
|
|
10432
|
+
return;
|
|
10433
|
+
}
|
|
10434
|
+
const { prevNode } = create(gedcom, tag, void 0, {
|
|
10435
|
+
mainNode: main,
|
|
10436
|
+
curNode: node
|
|
10437
|
+
});
|
|
10438
|
+
applyProps(gedcom, prevNode, childProps, xrefTypes);
|
|
10439
|
+
node.assign(tag, prevNode);
|
|
10440
|
+
};
|
|
10441
|
+
if (value === null || value === void 0) {
|
|
10442
|
+
return;
|
|
10443
|
+
}
|
|
10444
|
+
if (Array.isArray(value)) {
|
|
10445
|
+
value.forEach((item) => {
|
|
10446
|
+
if (typeof item === "string") {
|
|
10447
|
+
addOne(item);
|
|
10448
|
+
} else if (isPlainObject(item)) {
|
|
10449
|
+
addOne(item);
|
|
10450
|
+
}
|
|
10451
|
+
});
|
|
10452
|
+
return;
|
|
10453
|
+
}
|
|
10454
|
+
if (typeof value === "string" || typeof value === "number") {
|
|
10455
|
+
addOne(String(value));
|
|
10456
|
+
return;
|
|
10457
|
+
}
|
|
10458
|
+
if (isPlainObject(value)) {
|
|
10459
|
+
const existing = node.get(tag);
|
|
10460
|
+
if (existing && !existing.length) {
|
|
10461
|
+
node.remove(tag);
|
|
10462
|
+
}
|
|
10463
|
+
addOne(value);
|
|
10464
|
+
}
|
|
10465
|
+
});
|
|
10466
|
+
if (providedKeys.has("value")) {
|
|
10467
|
+
for (const derived of DERIVED_NAME_PARTS) {
|
|
10468
|
+
if (!providedKeys.has(derived) && node.get(derived)) {
|
|
10469
|
+
node.remove(derived);
|
|
10470
|
+
}
|
|
10471
|
+
}
|
|
10472
|
+
}
|
|
10473
|
+
};
|
|
10474
|
+
var applyHead = (gedcom, data, xrefTypes) => {
|
|
10475
|
+
const headNode = gedcom.get("HEAD");
|
|
10476
|
+
if (isPlainObject(data.HEAD)) {
|
|
10477
|
+
if (headNode) {
|
|
10478
|
+
clearNodeChildren(headNode);
|
|
10479
|
+
applyProps(gedcom, headNode, data.HEAD, xrefTypes);
|
|
10480
|
+
}
|
|
10481
|
+
return;
|
|
10482
|
+
}
|
|
10483
|
+
if (headNode) {
|
|
10484
|
+
gedcom.remove("HEAD");
|
|
10485
|
+
}
|
|
10486
|
+
};
|
|
10487
|
+
var yieldToMain = () => new Promise((resolve) => {
|
|
10488
|
+
setTimeout(resolve, 0);
|
|
10489
|
+
});
|
|
10490
|
+
var rebuildFromObjectData = (data) => {
|
|
10491
|
+
const gedcom = createEmptyGedcom();
|
|
10492
|
+
const xrefTypes = buildXrefIndex(data);
|
|
10493
|
+
applyHead(gedcom, data, xrefTypes);
|
|
10494
|
+
for (const tag of topLevelRecordTags(data)) {
|
|
10495
|
+
for (const item of asArray(data[tag])) {
|
|
10496
|
+
if (!isRecordItem(item)) {
|
|
10497
|
+
continue;
|
|
10498
|
+
}
|
|
10499
|
+
const id = item.id;
|
|
10500
|
+
const { prevNode } = create(gedcom, tag, id);
|
|
10501
|
+
parser_default.addToList(id, tag, gedcom, prevNode);
|
|
10502
|
+
applyProps(gedcom, prevNode, item, xrefTypes);
|
|
10503
|
+
}
|
|
10504
|
+
}
|
|
10505
|
+
return gedcom;
|
|
10506
|
+
};
|
|
10507
|
+
var fromObject = (data) => rebuildFromObjectData(data);
|
|
10508
|
+
var fromObjectAsync = async (data, options) => {
|
|
10509
|
+
const yieldEvery = options?.yieldEvery ?? 40;
|
|
10510
|
+
const signal = options?.signal;
|
|
10511
|
+
const gedcom = createEmptyGedcom();
|
|
10512
|
+
const xrefTypes = buildXrefIndex(data);
|
|
10513
|
+
applyHead(gedcom, data, xrefTypes);
|
|
10514
|
+
let n = 0;
|
|
10515
|
+
for (const tag of topLevelRecordTags(data)) {
|
|
10516
|
+
for (const item of asArray(data[tag])) {
|
|
10517
|
+
if (signal?.aborted) {
|
|
10518
|
+
throw new DOMException("Aborted", "AbortError");
|
|
10519
|
+
}
|
|
10520
|
+
if (!isRecordItem(item)) {
|
|
10521
|
+
continue;
|
|
10522
|
+
}
|
|
10523
|
+
const id = item.id;
|
|
10524
|
+
const { prevNode } = create(gedcom, tag, id);
|
|
10525
|
+
parser_default.addToList(id, tag, gedcom, prevNode);
|
|
10526
|
+
applyProps(gedcom, prevNode, item, xrefTypes);
|
|
10527
|
+
n += 1;
|
|
10528
|
+
if (n % yieldEvery === 0) {
|
|
10529
|
+
await yieldToMain();
|
|
10530
|
+
}
|
|
10531
|
+
}
|
|
10532
|
+
}
|
|
10533
|
+
return gedcom;
|
|
10534
|
+
};
|
|
10535
|
+
var hydrateFromContent = (content, options) => {
|
|
10536
|
+
const envelope = parseStructuralEnvelope(content);
|
|
10537
|
+
if (envelope) {
|
|
10538
|
+
return fromObject(envelope.data);
|
|
10539
|
+
}
|
|
10540
|
+
const { gedcom } = parser_default.parse(content, options);
|
|
10541
|
+
if (!gedcom) {
|
|
10542
|
+
throw new Error("Unable to parse GEDCOM content");
|
|
10543
|
+
}
|
|
10544
|
+
return gedcom;
|
|
10545
|
+
};
|
|
10546
|
+
var hydrateFromContentAsync = async (content, options) => {
|
|
10547
|
+
await yieldToMain();
|
|
10548
|
+
if (options?.signal?.aborted) {
|
|
10549
|
+
throw new DOMException("Aborted", "AbortError");
|
|
10550
|
+
}
|
|
10551
|
+
const envelope = parseStructuralEnvelope(content);
|
|
10552
|
+
if (envelope) {
|
|
10553
|
+
return fromObjectAsync(envelope.data, {
|
|
10554
|
+
yieldEvery: options?.yieldEvery,
|
|
10555
|
+
signal: options?.signal
|
|
10556
|
+
});
|
|
10557
|
+
}
|
|
10558
|
+
return hydrateFromContent(content, options);
|
|
10559
|
+
};
|
|
10560
|
+
|
|
10561
|
+
export { ACCEPTED_DATE_FORMATS, ACCEPTED_DATE_FORMATS_REGEX, DEFAULT_GEDCOM_EXPORT_VERSION, GEDCOM7_CALENDARS, GEDCOM7_PEDI_VALUES, GEDCOM7_RESN_VALUES, GEDCOM7_ROLE_VALUES, GEDCOM7_SEX_VALUES, GEDCOM_EXPORT_VERSIONS, GEDCOM_TRAILER_TAG, GEDZIP_EXTENSION, GEDZIP_GEDCOM_ENTRY, GEDZIP_MIME, parser_default as GedcomTree, PEDIGREE_VALUES, PlaceType, STRUCTURAL_FORMAT, STRUCTURAL_VERSION, TREEVIZ_EXTENSION_BASE_URI, TREEVIZ_EXTENSION_URIS, addFamilyFact, addIndividualFact, addNonEvent, appendGedcomTrailer, applyGedcom7DatePhrases, applyGedcom7Enumerations, applyGedcom7RecordMetadata, attachChildToFamily, attachSpouseToFamily, buildGedzip, buildGedzipBlob, bytesToDataUrl, cacheDiscoveredPath, canAttachAsSpouse, collectExtensionTagsFrom, commonDateFormatter, consolidateChildIntoFamily, coupleKeyForFam, create, createEmptyGedcom, createGedcomUid, dateFormatter, deleteIndividual, downloadGedzipMedia, ensureExtensionSchema, extractGedzip, extractGedzipGedcom, extractSeparationYears, extractSplitPoints, familyHasChild, familyHasParent, findDegenerateFamiliesForIndi, findDuplicateCoupleFamiliesForIndi, findMatchingRangeForSplitRange, findReusableParentChildFamily, firstPointerId, formatGedcom7Timestamp, fromObject, fromObjectAsync, fromTuple, generateSplitRanges, getAllProp, getExtensionSchema, getFamilyWith, getFileExtension, getName, getPlaceParts, getPlaces, getRawSize, getVersion, hungarianOrdinalize, hydrateFromContent, hydrateFromContentAsync, implemented, inRange, inferMediaForm, initializeCache, isDegenerateFamily, isDevelopment, isGedcom7, isGedcomTrailerLine, isGedcomTrailerTag, isGedzipContainer, isImageFormat, isIntersectedRange, isObjePointer, isRangeContained, isRemoteOrEmbeddedMediaUrl, isStructuralEnvelope, makePointer, marriageDateFormatter, mergeDuplicateCoupleFamilies, mergeMediaLists, nameFormatter, nextRecordId, normalizeGedcomVersion, notImplemented, noteDateFormatter, ordinalize, parseGedcom7CalendarPrefix, parseRangeBounds, parseStructuralEnvelope, pathCache, placeTranslator, pointerIds, profilePictureCache, pruneEmptyFamilies, pruneFamiliesByIds, registerExtensionTag, relativesCache, remountGedzipMediaAsDataUrls, removePointerByValue, resetRelativesCache, resolveLocalMediaUrl, resolveMediaContent, resolveObjeForm, rewriteGedcomFilePaths, serializeStructural, setCauseOfDeath, setChildPedigree, setDeceased, setFamilyMarriage, setLocalMediaResolver, setMediaContentResolver, setNestedGroup, splitOverlappingRanges, splitRange, spouseTagFor, toGedcomPedigree, unlinkRelative, updateFactRecord, withGedcom7Calendar };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { GedComType } from "../classes/gedcom";
|
|
2
|
+
import type { ConvertOptions } from "../interfaces/common";
|
|
3
|
+
import GedcomTree from "./parser";
|
|
4
|
+
export declare const STRUCTURAL_FORMAT: "treeviz-structural";
|
|
5
|
+
export declare const STRUCTURAL_VERSION: 1;
|
|
6
|
+
export type StructuralEnvelope = {
|
|
7
|
+
v: typeof STRUCTURAL_VERSION;
|
|
8
|
+
format: typeof STRUCTURAL_FORMAT;
|
|
9
|
+
data: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
export declare const isStructuralEnvelope: (content: string) => content is string;
|
|
12
|
+
export declare const parseStructuralEnvelope: (content: string) => StructuralEnvelope | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Persist live tree without GEDCOM text. Firebase/IDB store this envelope.
|
|
15
|
+
* Export/download still uses `toGedcom`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const serializeStructural: (gedcom: GedComType, options?: ConvertOptions) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Rebuild a live GedCom from `toObject(..., { persist: true })` output.
|
|
20
|
+
* Uses typed `create` + `addToList` (not `applyObject`).
|
|
21
|
+
*/
|
|
22
|
+
export declare const fromObject: (data: Record<string, unknown>) => GedComType;
|
|
23
|
+
/**
|
|
24
|
+
* Same as `fromObject`, but yields to the event loop every `yieldEvery` records
|
|
25
|
+
* so cold-start hydrate does not freeze the UI for multi-second stretches.
|
|
26
|
+
*/
|
|
27
|
+
export declare const fromObjectAsync: (data: Record<string, unknown>, options?: {
|
|
28
|
+
yieldEvery?: number;
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
}) => Promise<GedComType>;
|
|
31
|
+
/**
|
|
32
|
+
* Hydrate from either structural envelope JSON or classic GEDCOM text.
|
|
33
|
+
*/
|
|
34
|
+
export declare const hydrateFromContent: (content: string, options?: Parameters<typeof GedcomTree.parse>[1]) => GedComType;
|
|
35
|
+
/**
|
|
36
|
+
* Prefer for login / cold start. Structural trees yield during fromObject;
|
|
37
|
+
* classic GEDCOM still parses in one turn after a paint yield.
|
|
38
|
+
*/
|
|
39
|
+
export declare const hydrateFromContentAsync: (content: string, options?: Parameters<typeof GedcomTree.parse>[1] & {
|
|
40
|
+
yieldEvery?: number;
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
}) => Promise<GedComType>;
|
|
43
|
+
//# sourceMappingURL=structural.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structural.d.ts","sourceRoot":"","sources":["../../src/utils/structural.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,UAAiC,MAAM,UAAU,CAAC;AAEzD,eAAO,MAAM,iBAAiB,EAAG,oBAA6B,CAAC;AAC/D,eAAO,MAAM,kBAAkB,EAAG,CAAU,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAChC,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC7B,MAAM,EAAE,OAAO,iBAAiB,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B,CAAC;AA4DF,eAAO,MAAM,oBAAoB,GAChC,SAAS,MAAM,KACb,OAAO,IAAI,MAMb,CAAC;AAEF,eAAO,MAAM,uBAAuB,GACnC,SAAS,MAAM,KACb,kBAAkB,GAAG,SAevB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC/B,QAAQ,UAAU,EAClB,UAAU,cAAc,KACtB,MAWF,CAAC;AA8KF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,UAC/B,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC3B,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KACrD,OAAO,CAAC,UAAU,CA4BpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,SAAS,MAAM,EACf,UAAU,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAC9C,UAUF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GACnC,SAAS,MAAM,EACf,UAAU,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,KACC,OAAO,CAAC,UAAU,CAapB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@treeviz/gedcom-parser",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.7",
|
|
4
4
|
"description": "Lightweight, pluggable GEDCOM parser for JavaScript/TypeScript with optional caching and place matching. Zero browser dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|