@opensanctions/followthemoney 4.2.2 → 4.3.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.
@@ -1104,10 +1104,11 @@
1104
1104
  "bikCode": {
1105
1105
  "description": "Russian bank account code",
1106
1106
  "label": "BIK",
1107
- "maxLength": 1024,
1107
+ "matchable": true,
1108
+ "maxLength": 64,
1108
1109
  "name": "bikCode",
1109
1110
  "qname": "Company:bikCode",
1110
- "type": "string"
1111
+ "type": "identifier"
1111
1112
  },
1112
1113
  "caemCode": {
1113
1114
  "description": "Romanian classifier used to identify the types of economic activities that a business can provide in Romania",
@@ -3397,6 +3398,22 @@
3397
3398
  "stub": true,
3398
3399
  "type": "entity"
3399
3400
  },
3401
+ "brightQueryId": {
3402
+ "label": "BrightQuery ID",
3403
+ "matchable": true,
3404
+ "maxLength": 64,
3405
+ "name": "brightQueryId",
3406
+ "qname": "LegalEntity:brightQueryId",
3407
+ "type": "identifier"
3408
+ },
3409
+ "brightQueryOrgId": {
3410
+ "hidden": true,
3411
+ "label": "BrightQuery Organization ID",
3412
+ "maxLength": 64,
3413
+ "name": "brightQueryOrgId",
3414
+ "qname": "LegalEntity:brightQueryOrgId",
3415
+ "type": "identifier"
3416
+ },
3400
3417
  "bvdId": {
3401
3418
  "label": "Bureau van Dijk ID",
3402
3419
  "matchable": true,
@@ -3915,6 +3932,14 @@
3915
3932
  "qname": "LegalEntity:registrationNumber",
3916
3933
  "type": "identifier"
3917
3934
  },
3935
+ "sayariId": {
3936
+ "label": "Sayari Entity ID",
3937
+ "matchable": true,
3938
+ "maxLength": 64,
3939
+ "name": "sayariId",
3940
+ "qname": "LegalEntity:sayariId",
3941
+ "type": "identifier"
3942
+ },
3918
3943
  "sector": {
3919
3944
  "label": "Sector",
3920
3945
  "maxLength": 1024,
@@ -5297,6 +5322,7 @@
5297
5322
  "type": "entity"
5298
5323
  },
5299
5324
  "fatherName": {
5325
+ "description": "The part of a name based on the given name of one's father",
5300
5326
  "label": "Patronymic",
5301
5327
  "maxLength": 1024,
5302
5328
  "name": "fatherName",
@@ -5304,6 +5330,7 @@
5304
5330
  "type": "string"
5305
5331
  },
5306
5332
  "firstName": {
5333
+ "description": "The part of a name that indicates the person, also often called given name or forename",
5307
5334
  "label": "First name",
5308
5335
  "maxLength": 1024,
5309
5336
  "name": "firstName",
@@ -5343,6 +5370,7 @@
5343
5370
  "type": "entity"
5344
5371
  },
5345
5372
  "lastName": {
5373
+ "description": "The part of a name that indicates one's family, also often called surname or family name",
5346
5374
  "label": "Last name",
5347
5375
  "maxLength": 1024,
5348
5376
  "name": "lastName",
@@ -5350,6 +5378,7 @@
5350
5378
  "type": "string"
5351
5379
  },
5352
5380
  "middleName": {
5381
+ "description": "The part of name written between a person's given name and family name. Often abbreviated as a middle initial.",
5353
5382
  "label": "Middle name",
5354
5383
  "maxLength": 1024,
5355
5384
  "name": "middleName",
@@ -5357,6 +5386,7 @@
5357
5386
  "type": "string"
5358
5387
  },
5359
5388
  "motherName": {
5389
+ "description": "The part of a name based on the given name of one's mother",
5360
5390
  "label": "Matronymic",
5361
5391
  "maxLength": 1024,
5362
5392
  "name": "motherName",
@@ -5411,6 +5441,13 @@
5411
5441
  "stub": true,
5412
5442
  "type": "entity"
5413
5443
  },
5444
+ "profession": {
5445
+ "label": "Profession",
5446
+ "maxLength": 1024,
5447
+ "name": "profession",
5448
+ "qname": "Person:profession",
5449
+ "type": "string"
5450
+ },
5414
5451
  "religion": {
5415
5452
  "label": "Religion",
5416
5453
  "maxLength": 1024,
@@ -5419,6 +5456,8 @@
5419
5456
  "type": "string"
5420
5457
  },
5421
5458
  "secondName": {
5459
+ "deprecated": true,
5460
+ "description": "Deprecated, use one of the other more specific name properties instead.",
5422
5461
  "label": "Second name",
5423
5462
  "maxLength": 1024,
5424
5463
  "name": "secondName",
@@ -7690,6 +7729,7 @@
7690
7729
  "im": "Isle of Man",
7691
7730
  "in": "India",
7692
7731
  "io": "British Indian Ocean Territory",
7732
+ "ip": "Cyberspace",
7693
7733
  "iq": "Iraq",
7694
7734
  "iq-kr": "Kurdistan",
7695
7735
  "ir": "Iran",
@@ -7724,7 +7764,7 @@
7724
7764
  "ma": "Morocco",
7725
7765
  "mc": "Monaco",
7726
7766
  "md": "Moldova",
7727
- "md-pmr": "Transnistria (PMR)",
7767
+ "md-pmr": "Transnistria",
7728
7768
  "me": "Montenegro",
7729
7769
  "mf": "Saint Martin",
7730
7770
  "mg": "Madagascar",
@@ -7769,7 +7809,7 @@
7769
7809
  "pm": "Saint Pierre and Miquelon",
7770
7810
  "pn": "Pitcairn",
7771
7811
  "pr": "Puerto Rico",
7772
- "ps": "Palestinian territories",
7812
+ "ps": "Palestine",
7773
7813
  "pt": "Portugal",
7774
7814
  "pw": "Palau",
7775
7815
  "py": "Paraguay",
@@ -7826,7 +7866,7 @@
7826
7866
  "ug": "Uganda",
7827
7867
  "um": "U.S. Outlying Islands",
7828
7868
  "un": "United Nations",
7829
- "us": "United States of America",
7869
+ "us": "United States",
7830
7870
  "uy": "Uruguay",
7831
7871
  "uz": "Uzbekistan",
7832
7872
  "va": "Holy See",
@@ -2391,10 +2391,11 @@ var schemata = {
2391
2391
  bikCode: {
2392
2392
  description: "Russian bank account code",
2393
2393
  label: "BIK",
2394
- maxLength: 1024,
2394
+ matchable: true,
2395
+ maxLength: 64,
2395
2396
  name: "bikCode",
2396
2397
  qname: "Company:bikCode",
2397
- type: "string"
2398
+ type: "identifier"
2398
2399
  },
2399
2400
  caemCode: {
2400
2401
  description: "Romanian classifier used to identify the types of economic activities that a business can provide in Romania",
@@ -4692,6 +4693,22 @@ var schemata = {
4692
4693
  stub: true,
4693
4694
  type: "entity"
4694
4695
  },
4696
+ brightQueryId: {
4697
+ label: "BrightQuery ID",
4698
+ matchable: true,
4699
+ maxLength: 64,
4700
+ name: "brightQueryId",
4701
+ qname: "LegalEntity:brightQueryId",
4702
+ type: "identifier"
4703
+ },
4704
+ brightQueryOrgId: {
4705
+ hidden: true,
4706
+ label: "BrightQuery Organization ID",
4707
+ maxLength: 64,
4708
+ name: "brightQueryOrgId",
4709
+ qname: "LegalEntity:brightQueryOrgId",
4710
+ type: "identifier"
4711
+ },
4695
4712
  bvdId: {
4696
4713
  label: "Bureau van Dijk ID",
4697
4714
  matchable: true,
@@ -5210,6 +5227,14 @@ var schemata = {
5210
5227
  qname: "LegalEntity:registrationNumber",
5211
5228
  type: "identifier"
5212
5229
  },
5230
+ sayariId: {
5231
+ label: "Sayari Entity ID",
5232
+ matchable: true,
5233
+ maxLength: 64,
5234
+ name: "sayariId",
5235
+ qname: "LegalEntity:sayariId",
5236
+ type: "identifier"
5237
+ },
5213
5238
  sector: {
5214
5239
  label: "Sector",
5215
5240
  maxLength: 1024,
@@ -6598,6 +6623,7 @@ var schemata = {
6598
6623
  type: "entity"
6599
6624
  },
6600
6625
  fatherName: {
6626
+ description: "The part of a name based on the given name of one's father",
6601
6627
  label: "Patronymic",
6602
6628
  maxLength: 1024,
6603
6629
  name: "fatherName",
@@ -6605,6 +6631,7 @@ var schemata = {
6605
6631
  type: "string"
6606
6632
  },
6607
6633
  firstName: {
6634
+ description: "The part of a name that indicates the person, also often called given name or forename",
6608
6635
  label: "First name",
6609
6636
  maxLength: 1024,
6610
6637
  name: "firstName",
@@ -6644,6 +6671,7 @@ var schemata = {
6644
6671
  type: "entity"
6645
6672
  },
6646
6673
  lastName: {
6674
+ description: "The part of a name that indicates one's family, also often called surname or family name",
6647
6675
  label: "Last name",
6648
6676
  maxLength: 1024,
6649
6677
  name: "lastName",
@@ -6651,6 +6679,7 @@ var schemata = {
6651
6679
  type: "string"
6652
6680
  },
6653
6681
  middleName: {
6682
+ description: "The part of name written between a person's given name and family name. Often abbreviated as a middle initial.",
6654
6683
  label: "Middle name",
6655
6684
  maxLength: 1024,
6656
6685
  name: "middleName",
@@ -6658,6 +6687,7 @@ var schemata = {
6658
6687
  type: "string"
6659
6688
  },
6660
6689
  motherName: {
6690
+ description: "The part of a name based on the given name of one's mother",
6661
6691
  label: "Matronymic",
6662
6692
  maxLength: 1024,
6663
6693
  name: "motherName",
@@ -6712,6 +6742,13 @@ var schemata = {
6712
6742
  stub: true,
6713
6743
  type: "entity"
6714
6744
  },
6745
+ profession: {
6746
+ label: "Profession",
6747
+ maxLength: 1024,
6748
+ name: "profession",
6749
+ qname: "Person:profession",
6750
+ type: "string"
6751
+ },
6715
6752
  religion: {
6716
6753
  label: "Religion",
6717
6754
  maxLength: 1024,
@@ -6720,6 +6757,8 @@ var schemata = {
6720
6757
  type: "string"
6721
6758
  },
6722
6759
  secondName: {
6760
+ deprecated: true,
6761
+ description: "Deprecated, use one of the other more specific name properties instead.",
6723
6762
  label: "Second name",
6724
6763
  maxLength: 1024,
6725
6764
  name: "secondName",
@@ -9001,6 +9040,7 @@ var types = {
9001
9040
  im: "Isle of Man",
9002
9041
  "in": "India",
9003
9042
  io: "British Indian Ocean Territory",
9043
+ ip: "Cyberspace",
9004
9044
  iq: "Iraq",
9005
9045
  "iq-kr": "Kurdistan",
9006
9046
  ir: "Iran",
@@ -9035,7 +9075,7 @@ var types = {
9035
9075
  ma: "Morocco",
9036
9076
  mc: "Monaco",
9037
9077
  md: "Moldova",
9038
- "md-pmr": "Transnistria (PMR)",
9078
+ "md-pmr": "Transnistria",
9039
9079
  me: "Montenegro",
9040
9080
  mf: "Saint Martin",
9041
9081
  mg: "Madagascar",
@@ -9080,7 +9120,7 @@ var types = {
9080
9120
  pm: "Saint Pierre and Miquelon",
9081
9121
  pn: "Pitcairn",
9082
9122
  pr: "Puerto Rico",
9083
- ps: "Palestinian territories",
9123
+ ps: "Palestine",
9084
9124
  pt: "Portugal",
9085
9125
  pw: "Palau",
9086
9126
  py: "Paraguay",
@@ -9137,7 +9177,7 @@ var types = {
9137
9177
  ug: "Uganda",
9138
9178
  um: "U.S. Outlying Islands",
9139
9179
  un: "United Nations",
9140
- us: "United States of America",
9180
+ us: "United States",
9141
9181
  uy: "Uruguay",
9142
9182
  uz: "Uzbekistan",
9143
9183
  va: "Holy See",
@@ -1 +1 @@
1
- {"version":3,"file":"followthemoney.es5.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/property.ts","../src/schema.ts","../src/type.ts","../src/model.ts","../src/namespace.ts","../src/icons.ts","../src/followthemoney.ts"],"sourcesContent":["import { Schema } from './schema'\nimport { Model } from './model'\nimport { Property } from './property'\nimport { PropertyType } from './type'\n\nexport type Value = string | Entity\nexport type Values = Array<Value>\nexport type EntityProperties = { [prop: string]: Array<Value | IEntityDatum> }\n\nexport interface IEntityDatum {\n schema: Schema | string\n properties?: EntityProperties\n id: string\n}\n\n/**\n * An entity proxy which provides simplified access to the\n * properties and schema associated with an entity.\n */\nexport class Entity {\n public id: string\n public properties: Map<Property, Values> = new Map()\n public readonly schema: Schema\n\n constructor(model: Model, data: IEntityDatum) {\n this.schema = model.getSchema(data.schema)\n this.id = data.id\n\n if (data.properties) {\n Object.entries(data.properties).forEach(([prop, values]) => {\n values.forEach((value) => {\n this.setProperty(prop, value)\n })\n })\n }\n }\n\n setProperty(prop: string | Property, value: Value | IEntityDatum | undefined | null): Values {\n const property = this.schema.getProperty(prop)\n const values = this.properties.get(property) || []\n if (value === undefined || value === null) {\n return values\n }\n if (typeof (value) === 'string' && value.trim().length === 0) {\n return values\n }\n if (typeof (value) !== 'string') {\n value = this.schema.model.getEntity(value)\n }\n values.push(value)\n this.properties.set(property, values)\n return values\n }\n\n hasProperty(prop: string | Property): boolean {\n try {\n const property = this.schema.getProperty(prop)\n return this.properties.has(property)\n } catch {\n return false\n }\n }\n\n getProperty(prop: string | Property): Values {\n try {\n const property = this.schema.getProperty(prop)\n if (!this.properties.has(property)) {\n return []\n }\n return this.properties.get(property) as Values\n } catch {\n return []\n }\n }\n\n /**\n * The first value of a property only.\n *\n * @param prop A property name or object\n */\n getFirst(prop: string | Property): Value | null {\n for (const value of this.getProperty(prop)) {\n return value\n }\n return null\n }\n\n /**\n * List all properties for which this entity has values set. This\n * does not include unset properties.\n */\n getProperties(): Array<Property> {\n return Array.from(this.properties.keys())\n }\n\n /**\n * Copy the properties from a given entity that match the local\n * schema to this entity.\n */\n copyProperties(entity: Entity): void {\n entity.getProperties().forEach((prop) => {\n if (this.schema.hasProperty(prop)) {\n const localProp = this.schema.getProperty(prop.name)\n if (localProp.qname === prop.qname) {\n entity.getProperty(prop).forEach((value) => {\n this.setProperty(localProp, value)\n })\n }\n }\n })\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getCaption(): string {\n for (const property of this.schema.caption) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Set the designated label as the first caption prop for the given entity.\n */\n setCaption(value: string): void {\n const captionProperties = this.schema.caption\n if (captionProperties && captionProperties.length > 0) {\n this.setProperty(captionProperties[0], value)\n }\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getEdgeCaption(): string {\n const captions = this.schema.edge ? this.schema.edge.caption : []\n for (const property of captions) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Get a date that can be used to represent the start of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalStart(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalStartProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => a.value < b.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /** \n * Get a date that can be used to represent the end of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalEnd(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalEndProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => b.value < a.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /**\n * Get all the values of a particular type, irrespective of\n * which property it is associated with.\n */\n getTypeValues(type: string | PropertyType, matchableOnly = false): Values {\n const propType = this.schema.model.getType(type)\n const values = new Array<Value>()\n for (const property of this.getProperties()) {\n if (!matchableOnly || property.matchable) {\n if (property.type.toString() === propType.toString()) {\n for (const value of this.getProperty(property)) {\n if (values.indexOf(value) === -1) {\n values.push(value)\n }\n }\n }\n }\n }\n return values\n }\n\n /**\n * Serialise the entity to a plain JSON object, suitable for feeding to the\n * JSON.stringify() call.\n */\n toJSON(): IEntityDatum {\n const properties: EntityProperties = {}\n this.properties.forEach((values, prop) => {\n properties[prop.name] = values.map((value) =>\n Entity.isEntity(value) ? (value as Entity).toJSON() : value\n )\n })\n return {\n id: this.id,\n schema: this.schema.name,\n properties: properties\n }\n }\n\n /**\n * Make a copy of the entity with no shared object identity.\n */\n clone(): Entity {\n return Entity.fromJSON(this.schema.model, this.toJSON())\n }\n\n /**\n * Shortcut helper function.\n *\n * @param model active FollowTheMoney model\n * @param data the raw blob, which must match IEntityDatum\n */\n static fromJSON(model: Model, data: any): Entity { // eslint-disable-line\n return model.getEntity(data)\n }\n\n static isEntity(value: Value): boolean {\n return typeof (value) !== 'string'\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import { Schema } from './schema'\nimport { PropertyType } from './type'\n\nexport interface IPropertyDatum {\n name: string\n qname: string\n label: string\n type: string\n description?: string\n maxLength?: number\n format?: string\n stub?: boolean\n hidden?: boolean\n matchable?: boolean\n deprecated?: boolean\n range?: string | null\n reverse?: string\n}\n\n/**\n * Definition of a property, with relevant metadata for type,\n * labels and other useful criteria.\n */\nexport class Property {\n public readonly schema: Schema\n public readonly name: string\n public readonly qname: string\n public readonly label: string\n public readonly type: PropertyType\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly format: string | null\n public readonly stub: boolean\n public readonly maxLength: number\n public readonly hasReverse: boolean\n public readonly hasRange: boolean\n private readonly range: string | null\n private readonly reverse: string | null\n\n constructor(schema: Schema, property: IPropertyDatum) {\n this.schema = schema\n this.name = property.name\n this.qname = property.qname\n this.label = property.label || property.name\n this.hidden = !!property.hidden\n this.description = property.description || null\n this.format = property.format || null\n this.stub = !!property.stub\n this.maxLength = property.maxLength || 0\n this.matchable = !!property.matchable\n this.deprecated = !!property.deprecated\n this.range = property.range || null\n this.reverse = property.reverse || null\n this.type = schema.model.getType(property.type)\n this.hasRange = this.range !== null\n this.hasReverse = this.range !== null && this.reverse !== null\n }\n\n getRange(): Schema {\n return this.schema.model.getSchema(this.range)\n }\n\n getReverse(): Property {\n if (this.range === null || this.reverse === null) {\n throw new Error(\"This property has no reverse\")\n }\n return this.getRange().getProperty(this.reverse)\n }\n\n static isProperty = (item: Property | undefined): item is Property => {\n return !!item\n }\n\n toString(): string {\n return this.qname\n }\n}\n","import { IPropertyDatum, Property } from './property'\nimport { Model } from './model'\n\ninterface IEdgeSpecification {\n source: string\n target: string\n directed: boolean\n label?: string\n caption: string[]\n required?: string[]\n}\n\ninterface ITemporalExtentSpecification {\n start: string[]\n end: string[]\n}\n\nexport type SchemaSpec = string | null | undefined | Schema;\n\nexport interface ISchemaDatum {\n label: string\n plural: string\n schemata: string[]\n extends: string[]\n abstract?: boolean\n hidden?: boolean\n matchable?: boolean\n generated?: boolean\n deprecated?: boolean\n description?: string\n edge?: IEdgeSpecification\n temporalExtent?: ITemporalExtentSpecification\n featured?: string[]\n caption?: string[]\n required?: string[]\n properties: {\n [x: string]: IPropertyDatum\n }\n}\n\nexport class Schema {\n static readonly THING = 'Thing'\n static readonly DOCUMENT = 'Document'\n\n public readonly model: Model\n public readonly name: string\n public readonly label: string\n public readonly plural: string\n public readonly abstract: boolean\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly generated: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly featured: string[]\n public readonly schemata: string[]\n public readonly extends: string[]\n public readonly caption: string[]\n public readonly required: string[]\n public readonly edge?: IEdgeSpecification\n public readonly isEdge: boolean\n public readonly temporalStart: string[]\n public readonly temporalEnd: string[]\n private properties: Map<string, Property> = new Map()\n\n constructor(model: Model, schemaName: string, config: ISchemaDatum) {\n this.model = model\n this.name = schemaName\n this.label = config.label || this.name;\n this.plural = config.plural || this.label;\n this.schemata = config.schemata\n this.extends = config.extends\n this.featured = config.featured || []\n this.caption = config.caption || []\n this.required = config.required || []\n this.abstract = !!config.abstract\n this.hidden = !!config.hidden\n this.matchable = !!config.matchable\n this.generated = !!config.generated\n this.deprecated = !!config.deprecated\n this.description = config.description || null\n this.isEdge = !!config.edge\n this.edge = config.edge\n this.temporalStart = config.temporalExtent?.start || []\n this.temporalEnd = config.temporalExtent?.end || []\n\n Object.entries(config.properties).forEach(\n ([propertyName, property]) => {\n this.properties.set(propertyName, new Property(this, property))\n }\n )\n }\n\n isThing(): boolean {\n return this.isA(Schema.THING)\n }\n\n isDocument(): boolean {\n return this.isA(Schema.DOCUMENT)\n }\n\n getExtends(): Array<Schema> {\n return this.extends.map(name => this.model.getSchema(name))\n }\n\n getParents(): Array<Schema> {\n const parents = new Map<string, Schema>()\n for (const ext of this.getExtends()) {\n parents.set(ext.name, ext)\n for (const parent of ext.getParents()) {\n parents.set(parent.name, parent)\n }\n }\n return Array.from(parents.values())\n }\n\n getChildren(): Array<Schema> {\n const children = new Array<Schema>()\n for (const schema of this.model.getSchemata()) {\n const parents = schema.getParents().map(s => s.name)\n if (parents.indexOf(this.name) !== -1) {\n children.push(schema)\n }\n }\n return children;\n }\n\n getProperties(qualified = false): Map<string, Property> {\n const properties = new Map<string, Property>()\n this.getExtends().forEach((schema) => {\n schema.getProperties(qualified).forEach((prop, name) => {\n properties.set(name, prop)\n })\n })\n this.properties.forEach((prop, name) => {\n properties.set(qualified ? prop.qname : name, prop)\n })\n return properties\n }\n\n getEditableProperties(): Array<Property> {\n return Array.from(this.getProperties().values())\n .filter(prop => !prop.hidden && !prop.stub)\n }\n\n getFeaturedProperties(): Array<Property> {\n return this.featured.map(name => this.getProperty(name))\n }\n\n getTemporalStartProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalStart);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalStartProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n getTemporalEndProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalEnd);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalEndProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n hasProperty(prop: string | Property): boolean {\n if (prop instanceof Property) {\n return this.getProperties(true).has(prop.qname)\n }\n return this.getProperties().has(prop)\n }\n\n /**\n * Get the value of a property. If it's not defined, return an\n * empty array. If it's not a valid property, raise an error.\n *\n * @param prop name or Property\n */\n getProperty(prop: string | Property): Property {\n if (prop instanceof Property) {\n return prop\n }\n if (this.hasProperty(prop)) {\n return this.getProperties().get(prop) as Property\n } else {\n throw new Error('Property does not exist: ' + prop)\n }\n }\n\n isA(schema: SchemaSpec): boolean {\n try {\n schema = this.model.getSchema(schema)\n return !!~this.schemata.indexOf(schema.name)\n } catch {\n return false;\n }\n }\n\n isAny(schemata: Array<SchemaSpec>): boolean {\n for (const schema of schemata) {\n if (this.isA(schema)) {\n return true;\n }\n }\n return false;\n }\n\n static isSchema = (item: Schema | undefined): item is Schema => {\n return !!item\n }\n\n toString(): string {\n return this.name\n }\n}\n","\nexport interface IPropertyTypeDatum {\n group?: string\n label?: string\n description?: string\n maxLength?: number\n plural?: string | null\n matchable?: boolean,\n pivot?: boolean,\n values?: { [name: string]: string }\n}\n\n/**\n * A property type, such as a string, email address, phone number,\n * URL or a related entity.\n */\nexport class PropertyType {\n static ENTITY = 'entity';\n\n public name: string\n public group: string | null\n public grouped: boolean\n public label: string\n public plural: string\n public description: string | null\n public maxLength: number\n public matchable: boolean\n public pivot: boolean\n public values: Map<string, string>\n public isEntity: boolean\n\n constructor(name: string, data: IPropertyTypeDatum) {\n this.name = name\n this.label = data.label || name\n this.description = data.description || null\n this.maxLength = data.maxLength || 0\n this.plural = data.plural || this.label\n this.group = data.group || null\n this.grouped = data.group !== undefined\n this.matchable = !!data.matchable\n this.pivot = !!data.pivot\n this.isEntity = name === PropertyType.ENTITY\n this.values = new Map<string, string>()\n\n if (data.values) {\n Object.entries(data.values).forEach(([value, label]) => {\n this.values.set(value, label)\n })\n }\n }\n\n getLabel(value: string | undefined | null): string {\n if (!value) {\n return ''\n }\n return this.values.get(value) || value\n }\n\n toString(): string {\n return this.name\n }\n}","import { v4 as uuidv4 } from 'uuid';\nimport { Entity, IEntityDatum } from './entity';\nimport { Namespace } from './namespace';\nimport { Property } from './property';\nimport { ISchemaDatum, Schema } from './schema';\nimport { IPropertyTypeDatum, PropertyType } from './type';\n\n\nexport interface IModelDatum {\n schemata: { [name: string]: ISchemaDatum }\n types: { [name: string]: IPropertyTypeDatum }\n}\n\nexport class Model {\n public readonly schemata: { [x: string]: Schema | undefined } = {}\n public readonly types: { [x: string]: PropertyType } = {}\n\n constructor(config: IModelDatum) {\n this.types = {}\n Object.entries(config.types).forEach(\n ([typeName, typeData]) => {\n this.types[typeName] = new PropertyType(typeName, typeData)\n }\n )\n\n this.schemata = {}\n Object.entries(config.schemata).forEach(\n ([schemaName, schema]) => {\n this.schemata[schemaName] = new Schema(this, schemaName, schema)\n }\n )\n }\n\n getSchema(schemaName: string | null | undefined | Schema): Schema {\n if (schemaName === null || schemaName === undefined) {\n throw new Error('Invalid schema.')\n }\n if (schemaName instanceof Schema) {\n return schemaName\n }\n const schema = this.schemata[schemaName];\n if (schema === undefined) {\n throw new Error('No such schema: ' + schemaName)\n }\n return schema;\n }\n\n /**\n * Get a list of all schemata.\n */\n getSchemata(): Schema[] {\n return Object.keys(this.schemata)\n .map((name) => this.schemata[name])\n .filter(Schema.isSchema)\n }\n\n /**\n * Get a list of all unique properties.\n */\n getProperties(): Property[] {\n const qnames = new Map<string, Property>()\n this.getSchemata().forEach((schema) => {\n schema.getProperties().forEach((prop) => {\n qnames.set(prop.qname, prop)\n })\n })\n return Array.from(qnames.values())\n }\n\n /**\n * Get a particular property type.\n *\n * @param type name of the type\n */\n getType(type: string | PropertyType): PropertyType {\n if (type instanceof PropertyType) {\n return type;\n }\n return this.types[type]\n }\n\n /**\n * Convert a raw JSON object to an entity proxy.\n *\n * @param raw entity source data\n */\n getEntity(raw: IEntityDatum | Entity): Entity {\n if (raw instanceof Entity) {\n return raw\n } else {\n return new Entity(this, raw)\n }\n }\n\n /**\n * Make a new object with the given schema, and generate a random ID for\n * it.\n *\n * @param schema Schema name or object\n */\n async createEntity(schema: string | Schema, namespace?: Namespace): Promise<Entity> {\n const rawId = uuidv4();\n const id = namespace ? await namespace.sign(rawId) : rawId;\n return this.getEntity({\n id,\n schema: schema,\n properties: {}\n })\n }\n}\n","\nexport class Namespace {\n private separator = '.'\n private namespaceKey: string\n\n constructor(namespaceKey: string) {\n this.namespaceKey = namespaceKey;\n }\n\n parse(id: string): string[] {\n return id.split(this.separator);\n }\n\n async signature(id: string): Promise<string> {\n // Generate an HMAC signature for the given ID using the namespace key, using \n // SHA-1 as the hashing algorithm and returning the result as a hexadecimal string.\n // Use in-browser crypto library for compatibility with browsers.\n if (!this.namespaceKey.length) {\n return id;\n }\n // Convert strings to ArrayBuffers\n const encoder = new TextEncoder();\n const keyData = encoder.encode(this.namespaceKey);\n const data = encoder.encode(id);\n\n // Import the key\n const key = await crypto.subtle.importKey(\n 'raw',\n keyData,\n { name: 'HMAC', hash: 'SHA-1' },\n false,\n ['sign']\n );\n\n // Generate the signature\n const signature = await crypto.subtle.sign('HMAC', key, data);\n\n // Convert to hexadecimal string\n const hashArray = Array.from(new Uint8Array(signature));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n return hashHex;\n }\n\n async sign(id: string): Promise<string> {\n const entityId = this.parse(id)[0];\n if (!entityId) {\n return id;\n }\n if (!this.namespaceKey.length) {\n return entityId;\n }\n const digest = await this.signature(entityId);\n\n return [entityId, digest].join(this.separator);\n }\n}\n","import icons from './generated/icons.json'\nimport { Schema } from './schema'\n\ninterface IIconStorage {\n [iconName:string]: string[]\n}\n\nexport const IconRegistry = {\n SIZE: 24,\n storage: icons as IIconStorage,\n\n getIcon(iconName: string): string[] {\n return this.storage[iconName];\n },\n\n getSchemaIcon(schema: Schema): string[] {\n const iconName = schema.name.toLowerCase()\n return this.getIcon(iconName) || this.getIcon('info')\n }\n}\n","export * from './entity'\nexport * from './model'\nexport * from './namespace'\nexport * from './property'\nexport * from './schema'\nexport * from './type'\nexport * from './icons'\n\n\nimport defaultModel_ from './defaultModel.json';\nimport { IModelDatum } from './model';\nexport const defaultModel: IModelDatum = defaultModel_;\n"],"names":["uuidv4"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,MAAM,YAAY,GAAgB;;;;","x_google_ignoreList":[1,2,3,4,5]}
1
+ {"version":3,"file":"followthemoney.es5.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/property.ts","../src/schema.ts","../src/type.ts","../src/model.ts","../src/namespace.ts","../src/icons.ts","../src/followthemoney.ts"],"sourcesContent":["import { Schema } from './schema'\nimport { Model } from './model'\nimport { Property } from './property'\nimport { PropertyType } from './type'\n\nexport type Value = string | Entity\nexport type Values = Array<Value>\nexport type EntityProperties = { [prop: string]: Array<Value | IEntityDatum> }\n\nexport interface IEntityDatum {\n schema: Schema | string\n properties?: EntityProperties\n id: string\n}\n\n/**\n * An entity proxy which provides simplified access to the\n * properties and schema associated with an entity.\n */\nexport class Entity {\n public id: string\n public properties: Map<Property, Values> = new Map()\n public readonly schema: Schema\n\n constructor(model: Model, data: IEntityDatum) {\n this.schema = model.getSchema(data.schema)\n this.id = data.id\n\n if (data.properties) {\n Object.entries(data.properties).forEach(([prop, values]) => {\n values.forEach((value) => {\n this.setProperty(prop, value)\n })\n })\n }\n }\n\n setProperty(prop: string | Property, value: Value | IEntityDatum | undefined | null): Values {\n const property = this.schema.getProperty(prop)\n const values = this.properties.get(property) || []\n if (value === undefined || value === null) {\n return values\n }\n if (typeof (value) === 'string' && value.trim().length === 0) {\n return values\n }\n if (typeof (value) !== 'string') {\n value = this.schema.model.getEntity(value)\n }\n values.push(value)\n this.properties.set(property, values)\n return values\n }\n\n hasProperty(prop: string | Property): boolean {\n try {\n const property = this.schema.getProperty(prop)\n return this.properties.has(property)\n } catch {\n return false\n }\n }\n\n getProperty(prop: string | Property): Values {\n try {\n const property = this.schema.getProperty(prop)\n if (!this.properties.has(property)) {\n return []\n }\n return this.properties.get(property) as Values\n } catch {\n return []\n }\n }\n\n /**\n * The first value of a property only.\n *\n * @param prop A property name or object\n */\n getFirst(prop: string | Property): Value | null {\n for (const value of this.getProperty(prop)) {\n return value\n }\n return null\n }\n\n /**\n * List all properties for which this entity has values set. This\n * does not include unset properties.\n */\n getProperties(): Array<Property> {\n return Array.from(this.properties.keys())\n }\n\n /**\n * Copy the properties from a given entity that match the local\n * schema to this entity.\n */\n copyProperties(entity: Entity): void {\n entity.getProperties().forEach((prop) => {\n if (this.schema.hasProperty(prop)) {\n const localProp = this.schema.getProperty(prop.name)\n if (localProp.qname === prop.qname) {\n entity.getProperty(prop).forEach((value) => {\n this.setProperty(localProp, value)\n })\n }\n }\n })\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getCaption(): string {\n for (const property of this.schema.caption) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Set the designated label as the first caption prop for the given entity.\n */\n setCaption(value: string): void {\n const captionProperties = this.schema.caption\n if (captionProperties && captionProperties.length > 0) {\n this.setProperty(captionProperties[0], value)\n }\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getEdgeCaption(): string {\n const captions = this.schema.edge ? this.schema.edge.caption : []\n for (const property of captions) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Get a date that can be used to represent the start of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalStart(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalStartProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => a.value < b.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /** \n * Get a date that can be used to represent the end of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalEnd(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalEndProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => b.value < a.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /**\n * Get all the values of a particular type, irrespective of\n * which property it is associated with.\n */\n getTypeValues(type: string | PropertyType, matchableOnly = false): Values {\n const propType = this.schema.model.getType(type)\n const values = new Array<Value>()\n for (const property of this.getProperties()) {\n if (!matchableOnly || property.matchable) {\n if (property.type.toString() === propType.toString()) {\n for (const value of this.getProperty(property)) {\n if (values.indexOf(value) === -1) {\n values.push(value)\n }\n }\n }\n }\n }\n return values\n }\n\n /**\n * Serialise the entity to a plain JSON object, suitable for feeding to the\n * JSON.stringify() call.\n */\n toJSON(): IEntityDatum {\n const properties: EntityProperties = {}\n this.properties.forEach((values, prop) => {\n properties[prop.name] = values.map((value) =>\n Entity.isEntity(value) ? (value as Entity).toJSON() : value\n )\n })\n return {\n id: this.id,\n schema: this.schema.name,\n properties: properties\n }\n }\n\n /**\n * Make a copy of the entity with no shared object identity.\n */\n clone(): Entity {\n return Entity.fromJSON(this.schema.model, this.toJSON())\n }\n\n /**\n * Shortcut helper function.\n *\n * @param model active FollowTheMoney model\n * @param data the raw blob, which must match IEntityDatum\n */\n static fromJSON(model: Model, data: any): Entity { // eslint-disable-line\n return model.getEntity(data)\n }\n\n static isEntity(value: Value): boolean {\n return typeof (value) !== 'string'\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import { Schema } from './schema'\nimport { PropertyType } from './type'\n\nexport interface IPropertyDatum {\n name: string\n qname: string\n label: string\n type: string\n description?: string\n maxLength?: number\n format?: string\n stub?: boolean\n hidden?: boolean\n matchable?: boolean\n deprecated?: boolean\n range?: string | null\n reverse?: string\n}\n\n/**\n * Definition of a property, with relevant metadata for type,\n * labels and other useful criteria.\n */\nexport class Property {\n public readonly schema: Schema\n public readonly name: string\n public readonly qname: string\n public readonly label: string\n public readonly type: PropertyType\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly format: string | null\n public readonly stub: boolean\n public readonly maxLength: number\n public readonly hasReverse: boolean\n public readonly hasRange: boolean\n private readonly range: string | null\n private readonly reverse: string | null\n\n constructor(schema: Schema, property: IPropertyDatum) {\n this.schema = schema\n this.name = property.name\n this.qname = property.qname\n this.label = property.label || property.name\n this.hidden = !!property.hidden\n this.description = property.description || null\n this.format = property.format || null\n this.stub = !!property.stub\n this.maxLength = property.maxLength || 0\n this.matchable = !!property.matchable\n this.deprecated = !!property.deprecated\n this.range = property.range || null\n this.reverse = property.reverse || null\n this.type = schema.model.getType(property.type)\n this.hasRange = this.range !== null\n this.hasReverse = this.range !== null && this.reverse !== null\n }\n\n getRange(): Schema {\n return this.schema.model.getSchema(this.range)\n }\n\n getReverse(): Property {\n if (this.range === null || this.reverse === null) {\n throw new Error(\"This property has no reverse\")\n }\n return this.getRange().getProperty(this.reverse)\n }\n\n static isProperty = (item: Property | undefined): item is Property => {\n return !!item\n }\n\n toString(): string {\n return this.qname\n }\n}\n","import { IPropertyDatum, Property } from './property'\nimport { Model } from './model'\n\ninterface IEdgeSpecification {\n source: string\n target: string\n directed: boolean\n label?: string\n caption: string[]\n required?: string[]\n}\n\ninterface ITemporalExtentSpecification {\n start: string[]\n end: string[]\n}\n\nexport type SchemaSpec = string | null | undefined | Schema;\n\nexport interface ISchemaDatum {\n label: string\n plural: string\n schemata: string[]\n extends: string[]\n abstract?: boolean\n hidden?: boolean\n matchable?: boolean\n generated?: boolean\n deprecated?: boolean\n description?: string\n edge?: IEdgeSpecification\n temporalExtent?: ITemporalExtentSpecification\n featured?: string[]\n caption?: string[]\n required?: string[]\n properties: {\n [x: string]: IPropertyDatum\n }\n}\n\nexport class Schema {\n static readonly THING = 'Thing'\n static readonly DOCUMENT = 'Document'\n\n public readonly model: Model\n public readonly name: string\n public readonly label: string\n public readonly plural: string\n public readonly abstract: boolean\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly generated: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly featured: string[]\n public readonly schemata: string[]\n public readonly extends: string[]\n public readonly caption: string[]\n public readonly required: string[]\n public readonly edge?: IEdgeSpecification\n public readonly isEdge: boolean\n public readonly temporalStart: string[]\n public readonly temporalEnd: string[]\n private properties: Map<string, Property> = new Map()\n\n constructor(model: Model, schemaName: string, config: ISchemaDatum) {\n this.model = model\n this.name = schemaName\n this.label = config.label || this.name;\n this.plural = config.plural || this.label;\n this.schemata = config.schemata\n this.extends = config.extends\n this.featured = config.featured || []\n this.caption = config.caption || []\n this.required = config.required || []\n this.abstract = !!config.abstract\n this.hidden = !!config.hidden\n this.matchable = !!config.matchable\n this.generated = !!config.generated\n this.deprecated = !!config.deprecated\n this.description = config.description || null\n this.isEdge = !!config.edge\n this.edge = config.edge\n this.temporalStart = config.temporalExtent?.start || []\n this.temporalEnd = config.temporalExtent?.end || []\n\n Object.entries(config.properties).forEach(\n ([propertyName, property]) => {\n this.properties.set(propertyName, new Property(this, property))\n }\n )\n }\n\n isThing(): boolean {\n return this.isA(Schema.THING)\n }\n\n isDocument(): boolean {\n return this.isA(Schema.DOCUMENT)\n }\n\n getExtends(): Array<Schema> {\n return this.extends.map(name => this.model.getSchema(name))\n }\n\n getParents(): Array<Schema> {\n const parents = new Map<string, Schema>()\n for (const ext of this.getExtends()) {\n parents.set(ext.name, ext)\n for (const parent of ext.getParents()) {\n parents.set(parent.name, parent)\n }\n }\n return Array.from(parents.values())\n }\n\n getChildren(): Array<Schema> {\n const children = new Array<Schema>()\n for (const schema of this.model.getSchemata()) {\n const parents = schema.getParents().map(s => s.name)\n if (parents.indexOf(this.name) !== -1) {\n children.push(schema)\n }\n }\n return children;\n }\n\n getProperties(qualified = false): Map<string, Property> {\n const properties = new Map<string, Property>()\n this.getExtends().forEach((schema) => {\n schema.getProperties(qualified).forEach((prop, name) => {\n properties.set(name, prop)\n })\n })\n this.properties.forEach((prop, name) => {\n properties.set(qualified ? prop.qname : name, prop)\n })\n return properties\n }\n\n getEditableProperties(): Array<Property> {\n return Array.from(this.getProperties().values())\n .filter(prop => !prop.hidden && !prop.stub)\n }\n\n getFeaturedProperties(): Array<Property> {\n return this.featured.map(name => this.getProperty(name))\n }\n\n getTemporalStartProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalStart);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalStartProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n getTemporalEndProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalEnd);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalEndProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n hasProperty(prop: string | Property): boolean {\n if (prop instanceof Property) {\n return this.getProperties(true).has(prop.qname)\n }\n return this.getProperties().has(prop)\n }\n\n /**\n * Get the value of a property. If it's not defined, return an\n * empty array. If it's not a valid property, raise an error.\n *\n * @param prop name or Property\n */\n getProperty(prop: string | Property): Property {\n if (prop instanceof Property) {\n return prop\n }\n if (this.hasProperty(prop)) {\n return this.getProperties().get(prop) as Property\n } else {\n throw new Error('Property does not exist: ' + prop)\n }\n }\n\n isA(schema: SchemaSpec): boolean {\n try {\n schema = this.model.getSchema(schema)\n return !!~this.schemata.indexOf(schema.name)\n } catch {\n return false;\n }\n }\n\n isAny(schemata: Array<SchemaSpec>): boolean {\n for (const schema of schemata) {\n if (this.isA(schema)) {\n return true;\n }\n }\n return false;\n }\n\n static isSchema = (item: Schema | undefined): item is Schema => {\n return !!item\n }\n\n toString(): string {\n return this.name\n }\n}\n","\nexport interface IPropertyTypeDatum {\n group?: string\n label?: string\n description?: string\n maxLength?: number\n plural?: string | null\n matchable?: boolean,\n pivot?: boolean,\n values?: { [name: string]: string }\n}\n\n/**\n * A property type, such as a string, email address, phone number,\n * URL or a related entity.\n */\nexport class PropertyType {\n static ENTITY = 'entity';\n\n public name: string\n public group: string | null\n public grouped: boolean\n public label: string\n public plural: string\n public description: string | null\n public maxLength: number\n public matchable: boolean\n public pivot: boolean\n public values: Map<string, string>\n public isEntity: boolean\n\n constructor(name: string, data: IPropertyTypeDatum) {\n this.name = name\n this.label = data.label || name\n this.description = data.description || null\n this.maxLength = data.maxLength || 0\n this.plural = data.plural || this.label\n this.group = data.group || null\n this.grouped = data.group !== undefined\n this.matchable = !!data.matchable\n this.pivot = !!data.pivot\n this.isEntity = name === PropertyType.ENTITY\n this.values = new Map<string, string>()\n\n if (data.values) {\n Object.entries(data.values).forEach(([value, label]) => {\n this.values.set(value, label)\n })\n }\n }\n\n getLabel(value: string | undefined | null): string {\n if (!value) {\n return ''\n }\n return this.values.get(value) || value\n }\n\n toString(): string {\n return this.name\n }\n}","import { v4 as uuidv4 } from 'uuid';\nimport { Entity, IEntityDatum } from './entity';\nimport { Namespace } from './namespace';\nimport { Property } from './property';\nimport { ISchemaDatum, Schema } from './schema';\nimport { IPropertyTypeDatum, PropertyType } from './type';\n\n\nexport interface IModelDatum {\n schemata: { [name: string]: ISchemaDatum }\n types: { [name: string]: IPropertyTypeDatum }\n}\n\nexport class Model {\n public readonly schemata: { [x: string]: Schema | undefined } = {}\n public readonly types: { [x: string]: PropertyType } = {}\n\n constructor(config: IModelDatum) {\n this.types = {}\n Object.entries(config.types).forEach(\n ([typeName, typeData]) => {\n this.types[typeName] = new PropertyType(typeName, typeData)\n }\n )\n\n this.schemata = {}\n Object.entries(config.schemata).forEach(\n ([schemaName, schema]) => {\n this.schemata[schemaName] = new Schema(this, schemaName, schema)\n }\n )\n }\n\n getSchema(schemaName: string | null | undefined | Schema): Schema {\n if (schemaName === null || schemaName === undefined) {\n throw new Error('Invalid schema.')\n }\n if (schemaName instanceof Schema) {\n return schemaName\n }\n const schema = this.schemata[schemaName];\n if (schema === undefined) {\n throw new Error('No such schema: ' + schemaName)\n }\n return schema;\n }\n\n /**\n * Get a list of all schemata.\n */\n getSchemata(): Schema[] {\n return Object.keys(this.schemata)\n .map((name) => this.schemata[name])\n .filter(Schema.isSchema)\n }\n\n /**\n * Get a list of all unique properties.\n */\n getProperties(): Property[] {\n const qnames = new Map<string, Property>()\n this.getSchemata().forEach((schema) => {\n schema.getProperties().forEach((prop) => {\n qnames.set(prop.qname, prop)\n })\n })\n return Array.from(qnames.values())\n }\n\n /**\n * Get a particular property type.\n *\n * @param type name of the type\n */\n getType(type: string | PropertyType): PropertyType {\n if (type instanceof PropertyType) {\n return type;\n }\n return this.types[type]\n }\n\n /**\n * Convert a raw JSON object to an entity proxy.\n *\n * @param raw entity source data\n */\n getEntity(raw: IEntityDatum | Entity): Entity {\n if (raw instanceof Entity) {\n return raw\n } else {\n return new Entity(this, raw)\n }\n }\n\n /**\n * Make a new object with the given schema, and generate a random ID for\n * it.\n *\n * @param schema Schema name or object\n */\n async createEntity(schema: string | Schema, namespace?: Namespace): Promise<Entity> {\n const rawId = uuidv4();\n const id = namespace ? await namespace.sign(rawId) : rawId;\n return this.getEntity({\n id,\n schema: schema,\n properties: {}\n })\n }\n}\n","\nexport class Namespace {\n private separator = '.'\n private namespaceKey: string\n\n constructor(namespaceKey: string) {\n this.namespaceKey = namespaceKey;\n }\n\n parse(id: string): string[] {\n return id.split(this.separator);\n }\n\n async signature(id: string): Promise<string> {\n // Generate an HMAC signature for the given ID using the namespace key, using \n // SHA-1 as the hashing algorithm and returning the result as a hexadecimal string.\n // Use in-browser crypto library for compatibility with browsers.\n if (!this.namespaceKey.length) {\n return id;\n }\n // Convert strings to ArrayBuffers\n const encoder = new TextEncoder();\n const keyData = encoder.encode(this.namespaceKey);\n const data = encoder.encode(id);\n\n // Import the key\n const key = await crypto.subtle.importKey(\n 'raw',\n keyData,\n { name: 'HMAC', hash: 'SHA-1' },\n false,\n ['sign']\n );\n\n // Generate the signature\n const signature = await crypto.subtle.sign('HMAC', key, data);\n\n // Convert to hexadecimal string\n const hashArray = Array.from(new Uint8Array(signature));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n return hashHex;\n }\n\n async sign(id: string): Promise<string> {\n const entityId = this.parse(id)[0];\n if (!entityId) {\n return id;\n }\n if (!this.namespaceKey.length) {\n return entityId;\n }\n const digest = await this.signature(entityId);\n\n return [entityId, digest].join(this.separator);\n }\n}\n","import icons from './generated/icons.json'\nimport { Schema } from './schema'\n\ninterface IIconStorage {\n [iconName:string]: string[]\n}\n\nexport const IconRegistry = {\n SIZE: 24,\n storage: icons as IIconStorage,\n\n getIcon(iconName: string): string[] {\n return this.storage[iconName];\n },\n\n getSchemaIcon(schema: Schema): string[] {\n const iconName = schema.name.toLowerCase()\n return this.getIcon(iconName) || this.getIcon('info')\n }\n}\n","export * from './entity'\nexport * from './model'\nexport * from './namespace'\nexport * from './property'\nexport * from './schema'\nexport * from './type'\nexport * from './icons'\n\n\nimport defaultModel_ from './defaultModel.json';\nimport { IModelDatum } from './model';\nexport const defaultModel: IModelDatum = defaultModel_;\n"],"names":["uuidv4"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,MAAM,YAAY,GAAgB;;;;","x_google_ignoreList":[1,2,3,4,5]}
@@ -2397,10 +2397,11 @@
2397
2397
  bikCode: {
2398
2398
  description: "Russian bank account code",
2399
2399
  label: "BIK",
2400
- maxLength: 1024,
2400
+ matchable: true,
2401
+ maxLength: 64,
2401
2402
  name: "bikCode",
2402
2403
  qname: "Company:bikCode",
2403
- type: "string"
2404
+ type: "identifier"
2404
2405
  },
2405
2406
  caemCode: {
2406
2407
  description: "Romanian classifier used to identify the types of economic activities that a business can provide in Romania",
@@ -4698,6 +4699,22 @@
4698
4699
  stub: true,
4699
4700
  type: "entity"
4700
4701
  },
4702
+ brightQueryId: {
4703
+ label: "BrightQuery ID",
4704
+ matchable: true,
4705
+ maxLength: 64,
4706
+ name: "brightQueryId",
4707
+ qname: "LegalEntity:brightQueryId",
4708
+ type: "identifier"
4709
+ },
4710
+ brightQueryOrgId: {
4711
+ hidden: true,
4712
+ label: "BrightQuery Organization ID",
4713
+ maxLength: 64,
4714
+ name: "brightQueryOrgId",
4715
+ qname: "LegalEntity:brightQueryOrgId",
4716
+ type: "identifier"
4717
+ },
4701
4718
  bvdId: {
4702
4719
  label: "Bureau van Dijk ID",
4703
4720
  matchable: true,
@@ -5216,6 +5233,14 @@
5216
5233
  qname: "LegalEntity:registrationNumber",
5217
5234
  type: "identifier"
5218
5235
  },
5236
+ sayariId: {
5237
+ label: "Sayari Entity ID",
5238
+ matchable: true,
5239
+ maxLength: 64,
5240
+ name: "sayariId",
5241
+ qname: "LegalEntity:sayariId",
5242
+ type: "identifier"
5243
+ },
5219
5244
  sector: {
5220
5245
  label: "Sector",
5221
5246
  maxLength: 1024,
@@ -6604,6 +6629,7 @@
6604
6629
  type: "entity"
6605
6630
  },
6606
6631
  fatherName: {
6632
+ description: "The part of a name based on the given name of one's father",
6607
6633
  label: "Patronymic",
6608
6634
  maxLength: 1024,
6609
6635
  name: "fatherName",
@@ -6611,6 +6637,7 @@
6611
6637
  type: "string"
6612
6638
  },
6613
6639
  firstName: {
6640
+ description: "The part of a name that indicates the person, also often called given name or forename",
6614
6641
  label: "First name",
6615
6642
  maxLength: 1024,
6616
6643
  name: "firstName",
@@ -6650,6 +6677,7 @@
6650
6677
  type: "entity"
6651
6678
  },
6652
6679
  lastName: {
6680
+ description: "The part of a name that indicates one's family, also often called surname or family name",
6653
6681
  label: "Last name",
6654
6682
  maxLength: 1024,
6655
6683
  name: "lastName",
@@ -6657,6 +6685,7 @@
6657
6685
  type: "string"
6658
6686
  },
6659
6687
  middleName: {
6688
+ description: "The part of name written between a person's given name and family name. Often abbreviated as a middle initial.",
6660
6689
  label: "Middle name",
6661
6690
  maxLength: 1024,
6662
6691
  name: "middleName",
@@ -6664,6 +6693,7 @@
6664
6693
  type: "string"
6665
6694
  },
6666
6695
  motherName: {
6696
+ description: "The part of a name based on the given name of one's mother",
6667
6697
  label: "Matronymic",
6668
6698
  maxLength: 1024,
6669
6699
  name: "motherName",
@@ -6718,6 +6748,13 @@
6718
6748
  stub: true,
6719
6749
  type: "entity"
6720
6750
  },
6751
+ profession: {
6752
+ label: "Profession",
6753
+ maxLength: 1024,
6754
+ name: "profession",
6755
+ qname: "Person:profession",
6756
+ type: "string"
6757
+ },
6721
6758
  religion: {
6722
6759
  label: "Religion",
6723
6760
  maxLength: 1024,
@@ -6726,6 +6763,8 @@
6726
6763
  type: "string"
6727
6764
  },
6728
6765
  secondName: {
6766
+ deprecated: true,
6767
+ description: "Deprecated, use one of the other more specific name properties instead.",
6729
6768
  label: "Second name",
6730
6769
  maxLength: 1024,
6731
6770
  name: "secondName",
@@ -9007,6 +9046,7 @@
9007
9046
  im: "Isle of Man",
9008
9047
  "in": "India",
9009
9048
  io: "British Indian Ocean Territory",
9049
+ ip: "Cyberspace",
9010
9050
  iq: "Iraq",
9011
9051
  "iq-kr": "Kurdistan",
9012
9052
  ir: "Iran",
@@ -9041,7 +9081,7 @@
9041
9081
  ma: "Morocco",
9042
9082
  mc: "Monaco",
9043
9083
  md: "Moldova",
9044
- "md-pmr": "Transnistria (PMR)",
9084
+ "md-pmr": "Transnistria",
9045
9085
  me: "Montenegro",
9046
9086
  mf: "Saint Martin",
9047
9087
  mg: "Madagascar",
@@ -9086,7 +9126,7 @@
9086
9126
  pm: "Saint Pierre and Miquelon",
9087
9127
  pn: "Pitcairn",
9088
9128
  pr: "Puerto Rico",
9089
- ps: "Palestinian territories",
9129
+ ps: "Palestine",
9090
9130
  pt: "Portugal",
9091
9131
  pw: "Palau",
9092
9132
  py: "Paraguay",
@@ -9143,7 +9183,7 @@
9143
9183
  ug: "Uganda",
9144
9184
  um: "U.S. Outlying Islands",
9145
9185
  un: "United Nations",
9146
- us: "United States of America",
9186
+ us: "United States",
9147
9187
  uy: "Uruguay",
9148
9188
  uz: "Uzbekistan",
9149
9189
  va: "Holy See",
@@ -1 +1 @@
1
- {"version":3,"file":"followthemoney.umd.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/property.ts","../src/schema.ts","../src/type.ts","../src/model.ts","../src/namespace.ts","../src/icons.ts","../src/followthemoney.ts"],"sourcesContent":["import { Schema } from './schema'\nimport { Model } from './model'\nimport { Property } from './property'\nimport { PropertyType } from './type'\n\nexport type Value = string | Entity\nexport type Values = Array<Value>\nexport type EntityProperties = { [prop: string]: Array<Value | IEntityDatum> }\n\nexport interface IEntityDatum {\n schema: Schema | string\n properties?: EntityProperties\n id: string\n}\n\n/**\n * An entity proxy which provides simplified access to the\n * properties and schema associated with an entity.\n */\nexport class Entity {\n public id: string\n public properties: Map<Property, Values> = new Map()\n public readonly schema: Schema\n\n constructor(model: Model, data: IEntityDatum) {\n this.schema = model.getSchema(data.schema)\n this.id = data.id\n\n if (data.properties) {\n Object.entries(data.properties).forEach(([prop, values]) => {\n values.forEach((value) => {\n this.setProperty(prop, value)\n })\n })\n }\n }\n\n setProperty(prop: string | Property, value: Value | IEntityDatum | undefined | null): Values {\n const property = this.schema.getProperty(prop)\n const values = this.properties.get(property) || []\n if (value === undefined || value === null) {\n return values\n }\n if (typeof (value) === 'string' && value.trim().length === 0) {\n return values\n }\n if (typeof (value) !== 'string') {\n value = this.schema.model.getEntity(value)\n }\n values.push(value)\n this.properties.set(property, values)\n return values\n }\n\n hasProperty(prop: string | Property): boolean {\n try {\n const property = this.schema.getProperty(prop)\n return this.properties.has(property)\n } catch {\n return false\n }\n }\n\n getProperty(prop: string | Property): Values {\n try {\n const property = this.schema.getProperty(prop)\n if (!this.properties.has(property)) {\n return []\n }\n return this.properties.get(property) as Values\n } catch {\n return []\n }\n }\n\n /**\n * The first value of a property only.\n *\n * @param prop A property name or object\n */\n getFirst(prop: string | Property): Value | null {\n for (const value of this.getProperty(prop)) {\n return value\n }\n return null\n }\n\n /**\n * List all properties for which this entity has values set. This\n * does not include unset properties.\n */\n getProperties(): Array<Property> {\n return Array.from(this.properties.keys())\n }\n\n /**\n * Copy the properties from a given entity that match the local\n * schema to this entity.\n */\n copyProperties(entity: Entity): void {\n entity.getProperties().forEach((prop) => {\n if (this.schema.hasProperty(prop)) {\n const localProp = this.schema.getProperty(prop.name)\n if (localProp.qname === prop.qname) {\n entity.getProperty(prop).forEach((value) => {\n this.setProperty(localProp, value)\n })\n }\n }\n })\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getCaption(): string {\n for (const property of this.schema.caption) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Set the designated label as the first caption prop for the given entity.\n */\n setCaption(value: string): void {\n const captionProperties = this.schema.caption\n if (captionProperties && captionProperties.length > 0) {\n this.setProperty(captionProperties[0], value)\n }\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getEdgeCaption(): string {\n const captions = this.schema.edge ? this.schema.edge.caption : []\n for (const property of captions) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Get a date that can be used to represent the start of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalStart(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalStartProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => a.value < b.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /** \n * Get a date that can be used to represent the end of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalEnd(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalEndProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => b.value < a.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /**\n * Get all the values of a particular type, irrespective of\n * which property it is associated with.\n */\n getTypeValues(type: string | PropertyType, matchableOnly = false): Values {\n const propType = this.schema.model.getType(type)\n const values = new Array<Value>()\n for (const property of this.getProperties()) {\n if (!matchableOnly || property.matchable) {\n if (property.type.toString() === propType.toString()) {\n for (const value of this.getProperty(property)) {\n if (values.indexOf(value) === -1) {\n values.push(value)\n }\n }\n }\n }\n }\n return values\n }\n\n /**\n * Serialise the entity to a plain JSON object, suitable for feeding to the\n * JSON.stringify() call.\n */\n toJSON(): IEntityDatum {\n const properties: EntityProperties = {}\n this.properties.forEach((values, prop) => {\n properties[prop.name] = values.map((value) =>\n Entity.isEntity(value) ? (value as Entity).toJSON() : value\n )\n })\n return {\n id: this.id,\n schema: this.schema.name,\n properties: properties\n }\n }\n\n /**\n * Make a copy of the entity with no shared object identity.\n */\n clone(): Entity {\n return Entity.fromJSON(this.schema.model, this.toJSON())\n }\n\n /**\n * Shortcut helper function.\n *\n * @param model active FollowTheMoney model\n * @param data the raw blob, which must match IEntityDatum\n */\n static fromJSON(model: Model, data: any): Entity { // eslint-disable-line\n return model.getEntity(data)\n }\n\n static isEntity(value: Value): boolean {\n return typeof (value) !== 'string'\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import { Schema } from './schema'\nimport { PropertyType } from './type'\n\nexport interface IPropertyDatum {\n name: string\n qname: string\n label: string\n type: string\n description?: string\n maxLength?: number\n format?: string\n stub?: boolean\n hidden?: boolean\n matchable?: boolean\n deprecated?: boolean\n range?: string | null\n reverse?: string\n}\n\n/**\n * Definition of a property, with relevant metadata for type,\n * labels and other useful criteria.\n */\nexport class Property {\n public readonly schema: Schema\n public readonly name: string\n public readonly qname: string\n public readonly label: string\n public readonly type: PropertyType\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly format: string | null\n public readonly stub: boolean\n public readonly maxLength: number\n public readonly hasReverse: boolean\n public readonly hasRange: boolean\n private readonly range: string | null\n private readonly reverse: string | null\n\n constructor(schema: Schema, property: IPropertyDatum) {\n this.schema = schema\n this.name = property.name\n this.qname = property.qname\n this.label = property.label || property.name\n this.hidden = !!property.hidden\n this.description = property.description || null\n this.format = property.format || null\n this.stub = !!property.stub\n this.maxLength = property.maxLength || 0\n this.matchable = !!property.matchable\n this.deprecated = !!property.deprecated\n this.range = property.range || null\n this.reverse = property.reverse || null\n this.type = schema.model.getType(property.type)\n this.hasRange = this.range !== null\n this.hasReverse = this.range !== null && this.reverse !== null\n }\n\n getRange(): Schema {\n return this.schema.model.getSchema(this.range)\n }\n\n getReverse(): Property {\n if (this.range === null || this.reverse === null) {\n throw new Error(\"This property has no reverse\")\n }\n return this.getRange().getProperty(this.reverse)\n }\n\n static isProperty = (item: Property | undefined): item is Property => {\n return !!item\n }\n\n toString(): string {\n return this.qname\n }\n}\n","import { IPropertyDatum, Property } from './property'\nimport { Model } from './model'\n\ninterface IEdgeSpecification {\n source: string\n target: string\n directed: boolean\n label?: string\n caption: string[]\n required?: string[]\n}\n\ninterface ITemporalExtentSpecification {\n start: string[]\n end: string[]\n}\n\nexport type SchemaSpec = string | null | undefined | Schema;\n\nexport interface ISchemaDatum {\n label: string\n plural: string\n schemata: string[]\n extends: string[]\n abstract?: boolean\n hidden?: boolean\n matchable?: boolean\n generated?: boolean\n deprecated?: boolean\n description?: string\n edge?: IEdgeSpecification\n temporalExtent?: ITemporalExtentSpecification\n featured?: string[]\n caption?: string[]\n required?: string[]\n properties: {\n [x: string]: IPropertyDatum\n }\n}\n\nexport class Schema {\n static readonly THING = 'Thing'\n static readonly DOCUMENT = 'Document'\n\n public readonly model: Model\n public readonly name: string\n public readonly label: string\n public readonly plural: string\n public readonly abstract: boolean\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly generated: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly featured: string[]\n public readonly schemata: string[]\n public readonly extends: string[]\n public readonly caption: string[]\n public readonly required: string[]\n public readonly edge?: IEdgeSpecification\n public readonly isEdge: boolean\n public readonly temporalStart: string[]\n public readonly temporalEnd: string[]\n private properties: Map<string, Property> = new Map()\n\n constructor(model: Model, schemaName: string, config: ISchemaDatum) {\n this.model = model\n this.name = schemaName\n this.label = config.label || this.name;\n this.plural = config.plural || this.label;\n this.schemata = config.schemata\n this.extends = config.extends\n this.featured = config.featured || []\n this.caption = config.caption || []\n this.required = config.required || []\n this.abstract = !!config.abstract\n this.hidden = !!config.hidden\n this.matchable = !!config.matchable\n this.generated = !!config.generated\n this.deprecated = !!config.deprecated\n this.description = config.description || null\n this.isEdge = !!config.edge\n this.edge = config.edge\n this.temporalStart = config.temporalExtent?.start || []\n this.temporalEnd = config.temporalExtent?.end || []\n\n Object.entries(config.properties).forEach(\n ([propertyName, property]) => {\n this.properties.set(propertyName, new Property(this, property))\n }\n )\n }\n\n isThing(): boolean {\n return this.isA(Schema.THING)\n }\n\n isDocument(): boolean {\n return this.isA(Schema.DOCUMENT)\n }\n\n getExtends(): Array<Schema> {\n return this.extends.map(name => this.model.getSchema(name))\n }\n\n getParents(): Array<Schema> {\n const parents = new Map<string, Schema>()\n for (const ext of this.getExtends()) {\n parents.set(ext.name, ext)\n for (const parent of ext.getParents()) {\n parents.set(parent.name, parent)\n }\n }\n return Array.from(parents.values())\n }\n\n getChildren(): Array<Schema> {\n const children = new Array<Schema>()\n for (const schema of this.model.getSchemata()) {\n const parents = schema.getParents().map(s => s.name)\n if (parents.indexOf(this.name) !== -1) {\n children.push(schema)\n }\n }\n return children;\n }\n\n getProperties(qualified = false): Map<string, Property> {\n const properties = new Map<string, Property>()\n this.getExtends().forEach((schema) => {\n schema.getProperties(qualified).forEach((prop, name) => {\n properties.set(name, prop)\n })\n })\n this.properties.forEach((prop, name) => {\n properties.set(qualified ? prop.qname : name, prop)\n })\n return properties\n }\n\n getEditableProperties(): Array<Property> {\n return Array.from(this.getProperties().values())\n .filter(prop => !prop.hidden && !prop.stub)\n }\n\n getFeaturedProperties(): Array<Property> {\n return this.featured.map(name => this.getProperty(name))\n }\n\n getTemporalStartProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalStart);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalStartProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n getTemporalEndProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalEnd);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalEndProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n hasProperty(prop: string | Property): boolean {\n if (prop instanceof Property) {\n return this.getProperties(true).has(prop.qname)\n }\n return this.getProperties().has(prop)\n }\n\n /**\n * Get the value of a property. If it's not defined, return an\n * empty array. If it's not a valid property, raise an error.\n *\n * @param prop name or Property\n */\n getProperty(prop: string | Property): Property {\n if (prop instanceof Property) {\n return prop\n }\n if (this.hasProperty(prop)) {\n return this.getProperties().get(prop) as Property\n } else {\n throw new Error('Property does not exist: ' + prop)\n }\n }\n\n isA(schema: SchemaSpec): boolean {\n try {\n schema = this.model.getSchema(schema)\n return !!~this.schemata.indexOf(schema.name)\n } catch {\n return false;\n }\n }\n\n isAny(schemata: Array<SchemaSpec>): boolean {\n for (const schema of schemata) {\n if (this.isA(schema)) {\n return true;\n }\n }\n return false;\n }\n\n static isSchema = (item: Schema | undefined): item is Schema => {\n return !!item\n }\n\n toString(): string {\n return this.name\n }\n}\n","\nexport interface IPropertyTypeDatum {\n group?: string\n label?: string\n description?: string\n maxLength?: number\n plural?: string | null\n matchable?: boolean,\n pivot?: boolean,\n values?: { [name: string]: string }\n}\n\n/**\n * A property type, such as a string, email address, phone number,\n * URL or a related entity.\n */\nexport class PropertyType {\n static ENTITY = 'entity';\n\n public name: string\n public group: string | null\n public grouped: boolean\n public label: string\n public plural: string\n public description: string | null\n public maxLength: number\n public matchable: boolean\n public pivot: boolean\n public values: Map<string, string>\n public isEntity: boolean\n\n constructor(name: string, data: IPropertyTypeDatum) {\n this.name = name\n this.label = data.label || name\n this.description = data.description || null\n this.maxLength = data.maxLength || 0\n this.plural = data.plural || this.label\n this.group = data.group || null\n this.grouped = data.group !== undefined\n this.matchable = !!data.matchable\n this.pivot = !!data.pivot\n this.isEntity = name === PropertyType.ENTITY\n this.values = new Map<string, string>()\n\n if (data.values) {\n Object.entries(data.values).forEach(([value, label]) => {\n this.values.set(value, label)\n })\n }\n }\n\n getLabel(value: string | undefined | null): string {\n if (!value) {\n return ''\n }\n return this.values.get(value) || value\n }\n\n toString(): string {\n return this.name\n }\n}","import { v4 as uuidv4 } from 'uuid';\nimport { Entity, IEntityDatum } from './entity';\nimport { Namespace } from './namespace';\nimport { Property } from './property';\nimport { ISchemaDatum, Schema } from './schema';\nimport { IPropertyTypeDatum, PropertyType } from './type';\n\n\nexport interface IModelDatum {\n schemata: { [name: string]: ISchemaDatum }\n types: { [name: string]: IPropertyTypeDatum }\n}\n\nexport class Model {\n public readonly schemata: { [x: string]: Schema | undefined } = {}\n public readonly types: { [x: string]: PropertyType } = {}\n\n constructor(config: IModelDatum) {\n this.types = {}\n Object.entries(config.types).forEach(\n ([typeName, typeData]) => {\n this.types[typeName] = new PropertyType(typeName, typeData)\n }\n )\n\n this.schemata = {}\n Object.entries(config.schemata).forEach(\n ([schemaName, schema]) => {\n this.schemata[schemaName] = new Schema(this, schemaName, schema)\n }\n )\n }\n\n getSchema(schemaName: string | null | undefined | Schema): Schema {\n if (schemaName === null || schemaName === undefined) {\n throw new Error('Invalid schema.')\n }\n if (schemaName instanceof Schema) {\n return schemaName\n }\n const schema = this.schemata[schemaName];\n if (schema === undefined) {\n throw new Error('No such schema: ' + schemaName)\n }\n return schema;\n }\n\n /**\n * Get a list of all schemata.\n */\n getSchemata(): Schema[] {\n return Object.keys(this.schemata)\n .map((name) => this.schemata[name])\n .filter(Schema.isSchema)\n }\n\n /**\n * Get a list of all unique properties.\n */\n getProperties(): Property[] {\n const qnames = new Map<string, Property>()\n this.getSchemata().forEach((schema) => {\n schema.getProperties().forEach((prop) => {\n qnames.set(prop.qname, prop)\n })\n })\n return Array.from(qnames.values())\n }\n\n /**\n * Get a particular property type.\n *\n * @param type name of the type\n */\n getType(type: string | PropertyType): PropertyType {\n if (type instanceof PropertyType) {\n return type;\n }\n return this.types[type]\n }\n\n /**\n * Convert a raw JSON object to an entity proxy.\n *\n * @param raw entity source data\n */\n getEntity(raw: IEntityDatum | Entity): Entity {\n if (raw instanceof Entity) {\n return raw\n } else {\n return new Entity(this, raw)\n }\n }\n\n /**\n * Make a new object with the given schema, and generate a random ID for\n * it.\n *\n * @param schema Schema name or object\n */\n async createEntity(schema: string | Schema, namespace?: Namespace): Promise<Entity> {\n const rawId = uuidv4();\n const id = namespace ? await namespace.sign(rawId) : rawId;\n return this.getEntity({\n id,\n schema: schema,\n properties: {}\n })\n }\n}\n","\nexport class Namespace {\n private separator = '.'\n private namespaceKey: string\n\n constructor(namespaceKey: string) {\n this.namespaceKey = namespaceKey;\n }\n\n parse(id: string): string[] {\n return id.split(this.separator);\n }\n\n async signature(id: string): Promise<string> {\n // Generate an HMAC signature for the given ID using the namespace key, using \n // SHA-1 as the hashing algorithm and returning the result as a hexadecimal string.\n // Use in-browser crypto library for compatibility with browsers.\n if (!this.namespaceKey.length) {\n return id;\n }\n // Convert strings to ArrayBuffers\n const encoder = new TextEncoder();\n const keyData = encoder.encode(this.namespaceKey);\n const data = encoder.encode(id);\n\n // Import the key\n const key = await crypto.subtle.importKey(\n 'raw',\n keyData,\n { name: 'HMAC', hash: 'SHA-1' },\n false,\n ['sign']\n );\n\n // Generate the signature\n const signature = await crypto.subtle.sign('HMAC', key, data);\n\n // Convert to hexadecimal string\n const hashArray = Array.from(new Uint8Array(signature));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n return hashHex;\n }\n\n async sign(id: string): Promise<string> {\n const entityId = this.parse(id)[0];\n if (!entityId) {\n return id;\n }\n if (!this.namespaceKey.length) {\n return entityId;\n }\n const digest = await this.signature(entityId);\n\n return [entityId, digest].join(this.separator);\n }\n}\n","import icons from './generated/icons.json'\nimport { Schema } from './schema'\n\ninterface IIconStorage {\n [iconName:string]: string[]\n}\n\nexport const IconRegistry = {\n SIZE: 24,\n storage: icons as IIconStorage,\n\n getIcon(iconName: string): string[] {\n return this.storage[iconName];\n },\n\n getSchemaIcon(schema: Schema): string[] {\n const iconName = schema.name.toLowerCase()\n return this.getIcon(iconName) || this.getIcon('info')\n }\n}\n","export * from './entity'\nexport * from './model'\nexport * from './namespace'\nexport * from './property'\nexport * from './schema'\nexport * from './type'\nexport * from './icons'\n\n\nimport defaultModel_ from './defaultModel.json';\nimport { IModelDatum } from './model';\nexport const defaultModel: IModelDatum = defaultModel_;\n"],"names":["uuidv4"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,UAAM,YAAY,GAAgB;;;;;;;;;;;;;;;","x_google_ignoreList":[1,2,3,4,5]}
1
+ {"version":3,"file":"followthemoney.umd.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/property.ts","../src/schema.ts","../src/type.ts","../src/model.ts","../src/namespace.ts","../src/icons.ts","../src/followthemoney.ts"],"sourcesContent":["import { Schema } from './schema'\nimport { Model } from './model'\nimport { Property } from './property'\nimport { PropertyType } from './type'\n\nexport type Value = string | Entity\nexport type Values = Array<Value>\nexport type EntityProperties = { [prop: string]: Array<Value | IEntityDatum> }\n\nexport interface IEntityDatum {\n schema: Schema | string\n properties?: EntityProperties\n id: string\n}\n\n/**\n * An entity proxy which provides simplified access to the\n * properties and schema associated with an entity.\n */\nexport class Entity {\n public id: string\n public properties: Map<Property, Values> = new Map()\n public readonly schema: Schema\n\n constructor(model: Model, data: IEntityDatum) {\n this.schema = model.getSchema(data.schema)\n this.id = data.id\n\n if (data.properties) {\n Object.entries(data.properties).forEach(([prop, values]) => {\n values.forEach((value) => {\n this.setProperty(prop, value)\n })\n })\n }\n }\n\n setProperty(prop: string | Property, value: Value | IEntityDatum | undefined | null): Values {\n const property = this.schema.getProperty(prop)\n const values = this.properties.get(property) || []\n if (value === undefined || value === null) {\n return values\n }\n if (typeof (value) === 'string' && value.trim().length === 0) {\n return values\n }\n if (typeof (value) !== 'string') {\n value = this.schema.model.getEntity(value)\n }\n values.push(value)\n this.properties.set(property, values)\n return values\n }\n\n hasProperty(prop: string | Property): boolean {\n try {\n const property = this.schema.getProperty(prop)\n return this.properties.has(property)\n } catch {\n return false\n }\n }\n\n getProperty(prop: string | Property): Values {\n try {\n const property = this.schema.getProperty(prop)\n if (!this.properties.has(property)) {\n return []\n }\n return this.properties.get(property) as Values\n } catch {\n return []\n }\n }\n\n /**\n * The first value of a property only.\n *\n * @param prop A property name or object\n */\n getFirst(prop: string | Property): Value | null {\n for (const value of this.getProperty(prop)) {\n return value\n }\n return null\n }\n\n /**\n * List all properties for which this entity has values set. This\n * does not include unset properties.\n */\n getProperties(): Array<Property> {\n return Array.from(this.properties.keys())\n }\n\n /**\n * Copy the properties from a given entity that match the local\n * schema to this entity.\n */\n copyProperties(entity: Entity): void {\n entity.getProperties().forEach((prop) => {\n if (this.schema.hasProperty(prop)) {\n const localProp = this.schema.getProperty(prop.name)\n if (localProp.qname === prop.qname) {\n entity.getProperty(prop).forEach((value) => {\n this.setProperty(localProp, value)\n })\n }\n }\n })\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getCaption(): string {\n for (const property of this.schema.caption) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Set the designated label as the first caption prop for the given entity.\n */\n setCaption(value: string): void {\n const captionProperties = this.schema.caption\n if (captionProperties && captionProperties.length > 0) {\n this.setProperty(captionProperties[0], value)\n }\n }\n\n /**\n * Get the designated label for the given entity.\n */\n getEdgeCaption(): string {\n const captions = this.schema.edge ? this.schema.edge.caption : []\n for (const property of captions) {\n for (const value of this.getProperty(property)) {\n return value as string\n }\n }\n return this.schema.label\n }\n\n /**\n * Get a date that can be used to represent the start of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalStart(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalStartProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => a.value < b.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /** \n * Get a date that can be used to represent the end of the entity in a timeline.\n * If there are multiple possible dates, the earliest date is returned.\n */\n getTemporalEnd(): { property: Property, value: string } | null {\n const values = []\n const properties = this.schema.getTemporalEndProperties()\n\n for (const property of properties) {\n for (const value of this.getProperty(property)) {\n if (typeof value === 'string') {\n values.push({ property, value })\n }\n }\n }\n\n const sortedValues = values.sort(\n (a, b) => b.value < a.value ? -1 : 1\n )\n\n return sortedValues[0] || null\n }\n\n /**\n * Get all the values of a particular type, irrespective of\n * which property it is associated with.\n */\n getTypeValues(type: string | PropertyType, matchableOnly = false): Values {\n const propType = this.schema.model.getType(type)\n const values = new Array<Value>()\n for (const property of this.getProperties()) {\n if (!matchableOnly || property.matchable) {\n if (property.type.toString() === propType.toString()) {\n for (const value of this.getProperty(property)) {\n if (values.indexOf(value) === -1) {\n values.push(value)\n }\n }\n }\n }\n }\n return values\n }\n\n /**\n * Serialise the entity to a plain JSON object, suitable for feeding to the\n * JSON.stringify() call.\n */\n toJSON(): IEntityDatum {\n const properties: EntityProperties = {}\n this.properties.forEach((values, prop) => {\n properties[prop.name] = values.map((value) =>\n Entity.isEntity(value) ? (value as Entity).toJSON() : value\n )\n })\n return {\n id: this.id,\n schema: this.schema.name,\n properties: properties\n }\n }\n\n /**\n * Make a copy of the entity with no shared object identity.\n */\n clone(): Entity {\n return Entity.fromJSON(this.schema.model, this.toJSON())\n }\n\n /**\n * Shortcut helper function.\n *\n * @param model active FollowTheMoney model\n * @param data the raw blob, which must match IEntityDatum\n */\n static fromJSON(model: Model, data: any): Entity { // eslint-disable-line\n return model.getEntity(data)\n }\n\n static isEntity(value: Value): boolean {\n return typeof (value) !== 'string'\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import { Schema } from './schema'\nimport { PropertyType } from './type'\n\nexport interface IPropertyDatum {\n name: string\n qname: string\n label: string\n type: string\n description?: string\n maxLength?: number\n format?: string\n stub?: boolean\n hidden?: boolean\n matchable?: boolean\n deprecated?: boolean\n range?: string | null\n reverse?: string\n}\n\n/**\n * Definition of a property, with relevant metadata for type,\n * labels and other useful criteria.\n */\nexport class Property {\n public readonly schema: Schema\n public readonly name: string\n public readonly qname: string\n public readonly label: string\n public readonly type: PropertyType\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly format: string | null\n public readonly stub: boolean\n public readonly maxLength: number\n public readonly hasReverse: boolean\n public readonly hasRange: boolean\n private readonly range: string | null\n private readonly reverse: string | null\n\n constructor(schema: Schema, property: IPropertyDatum) {\n this.schema = schema\n this.name = property.name\n this.qname = property.qname\n this.label = property.label || property.name\n this.hidden = !!property.hidden\n this.description = property.description || null\n this.format = property.format || null\n this.stub = !!property.stub\n this.maxLength = property.maxLength || 0\n this.matchable = !!property.matchable\n this.deprecated = !!property.deprecated\n this.range = property.range || null\n this.reverse = property.reverse || null\n this.type = schema.model.getType(property.type)\n this.hasRange = this.range !== null\n this.hasReverse = this.range !== null && this.reverse !== null\n }\n\n getRange(): Schema {\n return this.schema.model.getSchema(this.range)\n }\n\n getReverse(): Property {\n if (this.range === null || this.reverse === null) {\n throw new Error(\"This property has no reverse\")\n }\n return this.getRange().getProperty(this.reverse)\n }\n\n static isProperty = (item: Property | undefined): item is Property => {\n return !!item\n }\n\n toString(): string {\n return this.qname\n }\n}\n","import { IPropertyDatum, Property } from './property'\nimport { Model } from './model'\n\ninterface IEdgeSpecification {\n source: string\n target: string\n directed: boolean\n label?: string\n caption: string[]\n required?: string[]\n}\n\ninterface ITemporalExtentSpecification {\n start: string[]\n end: string[]\n}\n\nexport type SchemaSpec = string | null | undefined | Schema;\n\nexport interface ISchemaDatum {\n label: string\n plural: string\n schemata: string[]\n extends: string[]\n abstract?: boolean\n hidden?: boolean\n matchable?: boolean\n generated?: boolean\n deprecated?: boolean\n description?: string\n edge?: IEdgeSpecification\n temporalExtent?: ITemporalExtentSpecification\n featured?: string[]\n caption?: string[]\n required?: string[]\n properties: {\n [x: string]: IPropertyDatum\n }\n}\n\nexport class Schema {\n static readonly THING = 'Thing'\n static readonly DOCUMENT = 'Document'\n\n public readonly model: Model\n public readonly name: string\n public readonly label: string\n public readonly plural: string\n public readonly abstract: boolean\n public readonly hidden: boolean\n public readonly matchable: boolean\n public readonly generated: boolean\n public readonly deprecated: boolean\n public readonly description: string | null\n public readonly featured: string[]\n public readonly schemata: string[]\n public readonly extends: string[]\n public readonly caption: string[]\n public readonly required: string[]\n public readonly edge?: IEdgeSpecification\n public readonly isEdge: boolean\n public readonly temporalStart: string[]\n public readonly temporalEnd: string[]\n private properties: Map<string, Property> = new Map()\n\n constructor(model: Model, schemaName: string, config: ISchemaDatum) {\n this.model = model\n this.name = schemaName\n this.label = config.label || this.name;\n this.plural = config.plural || this.label;\n this.schemata = config.schemata\n this.extends = config.extends\n this.featured = config.featured || []\n this.caption = config.caption || []\n this.required = config.required || []\n this.abstract = !!config.abstract\n this.hidden = !!config.hidden\n this.matchable = !!config.matchable\n this.generated = !!config.generated\n this.deprecated = !!config.deprecated\n this.description = config.description || null\n this.isEdge = !!config.edge\n this.edge = config.edge\n this.temporalStart = config.temporalExtent?.start || []\n this.temporalEnd = config.temporalExtent?.end || []\n\n Object.entries(config.properties).forEach(\n ([propertyName, property]) => {\n this.properties.set(propertyName, new Property(this, property))\n }\n )\n }\n\n isThing(): boolean {\n return this.isA(Schema.THING)\n }\n\n isDocument(): boolean {\n return this.isA(Schema.DOCUMENT)\n }\n\n getExtends(): Array<Schema> {\n return this.extends.map(name => this.model.getSchema(name))\n }\n\n getParents(): Array<Schema> {\n const parents = new Map<string, Schema>()\n for (const ext of this.getExtends()) {\n parents.set(ext.name, ext)\n for (const parent of ext.getParents()) {\n parents.set(parent.name, parent)\n }\n }\n return Array.from(parents.values())\n }\n\n getChildren(): Array<Schema> {\n const children = new Array<Schema>()\n for (const schema of this.model.getSchemata()) {\n const parents = schema.getParents().map(s => s.name)\n if (parents.indexOf(this.name) !== -1) {\n children.push(schema)\n }\n }\n return children;\n }\n\n getProperties(qualified = false): Map<string, Property> {\n const properties = new Map<string, Property>()\n this.getExtends().forEach((schema) => {\n schema.getProperties(qualified).forEach((prop, name) => {\n properties.set(name, prop)\n })\n })\n this.properties.forEach((prop, name) => {\n properties.set(qualified ? prop.qname : name, prop)\n })\n return properties\n }\n\n getEditableProperties(): Array<Property> {\n return Array.from(this.getProperties().values())\n .filter(prop => !prop.hidden && !prop.stub)\n }\n\n getFeaturedProperties(): Array<Property> {\n return this.featured.map(name => this.getProperty(name))\n }\n\n getTemporalStartProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalStart);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalStartProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n getTemporalEndProperties(): Array<Property> {\n const properties: Set<string> = new Set(this.temporalEnd);\n\n for (const ext of this.getExtends()) {\n for (const property of ext.getTemporalEndProperties()) {\n properties.add(property.name);\n }\n }\n\n return Array.from(properties).map((name) => this.getProperty(name));\n }\n\n hasProperty(prop: string | Property): boolean {\n if (prop instanceof Property) {\n return this.getProperties(true).has(prop.qname)\n }\n return this.getProperties().has(prop)\n }\n\n /**\n * Get the value of a property. If it's not defined, return an\n * empty array. If it's not a valid property, raise an error.\n *\n * @param prop name or Property\n */\n getProperty(prop: string | Property): Property {\n if (prop instanceof Property) {\n return prop\n }\n if (this.hasProperty(prop)) {\n return this.getProperties().get(prop) as Property\n } else {\n throw new Error('Property does not exist: ' + prop)\n }\n }\n\n isA(schema: SchemaSpec): boolean {\n try {\n schema = this.model.getSchema(schema)\n return !!~this.schemata.indexOf(schema.name)\n } catch {\n return false;\n }\n }\n\n isAny(schemata: Array<SchemaSpec>): boolean {\n for (const schema of schemata) {\n if (this.isA(schema)) {\n return true;\n }\n }\n return false;\n }\n\n static isSchema = (item: Schema | undefined): item is Schema => {\n return !!item\n }\n\n toString(): string {\n return this.name\n }\n}\n","\nexport interface IPropertyTypeDatum {\n group?: string\n label?: string\n description?: string\n maxLength?: number\n plural?: string | null\n matchable?: boolean,\n pivot?: boolean,\n values?: { [name: string]: string }\n}\n\n/**\n * A property type, such as a string, email address, phone number,\n * URL or a related entity.\n */\nexport class PropertyType {\n static ENTITY = 'entity';\n\n public name: string\n public group: string | null\n public grouped: boolean\n public label: string\n public plural: string\n public description: string | null\n public maxLength: number\n public matchable: boolean\n public pivot: boolean\n public values: Map<string, string>\n public isEntity: boolean\n\n constructor(name: string, data: IPropertyTypeDatum) {\n this.name = name\n this.label = data.label || name\n this.description = data.description || null\n this.maxLength = data.maxLength || 0\n this.plural = data.plural || this.label\n this.group = data.group || null\n this.grouped = data.group !== undefined\n this.matchable = !!data.matchable\n this.pivot = !!data.pivot\n this.isEntity = name === PropertyType.ENTITY\n this.values = new Map<string, string>()\n\n if (data.values) {\n Object.entries(data.values).forEach(([value, label]) => {\n this.values.set(value, label)\n })\n }\n }\n\n getLabel(value: string | undefined | null): string {\n if (!value) {\n return ''\n }\n return this.values.get(value) || value\n }\n\n toString(): string {\n return this.name\n }\n}","import { v4 as uuidv4 } from 'uuid';\nimport { Entity, IEntityDatum } from './entity';\nimport { Namespace } from './namespace';\nimport { Property } from './property';\nimport { ISchemaDatum, Schema } from './schema';\nimport { IPropertyTypeDatum, PropertyType } from './type';\n\n\nexport interface IModelDatum {\n schemata: { [name: string]: ISchemaDatum }\n types: { [name: string]: IPropertyTypeDatum }\n}\n\nexport class Model {\n public readonly schemata: { [x: string]: Schema | undefined } = {}\n public readonly types: { [x: string]: PropertyType } = {}\n\n constructor(config: IModelDatum) {\n this.types = {}\n Object.entries(config.types).forEach(\n ([typeName, typeData]) => {\n this.types[typeName] = new PropertyType(typeName, typeData)\n }\n )\n\n this.schemata = {}\n Object.entries(config.schemata).forEach(\n ([schemaName, schema]) => {\n this.schemata[schemaName] = new Schema(this, schemaName, schema)\n }\n )\n }\n\n getSchema(schemaName: string | null | undefined | Schema): Schema {\n if (schemaName === null || schemaName === undefined) {\n throw new Error('Invalid schema.')\n }\n if (schemaName instanceof Schema) {\n return schemaName\n }\n const schema = this.schemata[schemaName];\n if (schema === undefined) {\n throw new Error('No such schema: ' + schemaName)\n }\n return schema;\n }\n\n /**\n * Get a list of all schemata.\n */\n getSchemata(): Schema[] {\n return Object.keys(this.schemata)\n .map((name) => this.schemata[name])\n .filter(Schema.isSchema)\n }\n\n /**\n * Get a list of all unique properties.\n */\n getProperties(): Property[] {\n const qnames = new Map<string, Property>()\n this.getSchemata().forEach((schema) => {\n schema.getProperties().forEach((prop) => {\n qnames.set(prop.qname, prop)\n })\n })\n return Array.from(qnames.values())\n }\n\n /**\n * Get a particular property type.\n *\n * @param type name of the type\n */\n getType(type: string | PropertyType): PropertyType {\n if (type instanceof PropertyType) {\n return type;\n }\n return this.types[type]\n }\n\n /**\n * Convert a raw JSON object to an entity proxy.\n *\n * @param raw entity source data\n */\n getEntity(raw: IEntityDatum | Entity): Entity {\n if (raw instanceof Entity) {\n return raw\n } else {\n return new Entity(this, raw)\n }\n }\n\n /**\n * Make a new object with the given schema, and generate a random ID for\n * it.\n *\n * @param schema Schema name or object\n */\n async createEntity(schema: string | Schema, namespace?: Namespace): Promise<Entity> {\n const rawId = uuidv4();\n const id = namespace ? await namespace.sign(rawId) : rawId;\n return this.getEntity({\n id,\n schema: schema,\n properties: {}\n })\n }\n}\n","\nexport class Namespace {\n private separator = '.'\n private namespaceKey: string\n\n constructor(namespaceKey: string) {\n this.namespaceKey = namespaceKey;\n }\n\n parse(id: string): string[] {\n return id.split(this.separator);\n }\n\n async signature(id: string): Promise<string> {\n // Generate an HMAC signature for the given ID using the namespace key, using \n // SHA-1 as the hashing algorithm and returning the result as a hexadecimal string.\n // Use in-browser crypto library for compatibility with browsers.\n if (!this.namespaceKey.length) {\n return id;\n }\n // Convert strings to ArrayBuffers\n const encoder = new TextEncoder();\n const keyData = encoder.encode(this.namespaceKey);\n const data = encoder.encode(id);\n\n // Import the key\n const key = await crypto.subtle.importKey(\n 'raw',\n keyData,\n { name: 'HMAC', hash: 'SHA-1' },\n false,\n ['sign']\n );\n\n // Generate the signature\n const signature = await crypto.subtle.sign('HMAC', key, data);\n\n // Convert to hexadecimal string\n const hashArray = Array.from(new Uint8Array(signature));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n return hashHex;\n }\n\n async sign(id: string): Promise<string> {\n const entityId = this.parse(id)[0];\n if (!entityId) {\n return id;\n }\n if (!this.namespaceKey.length) {\n return entityId;\n }\n const digest = await this.signature(entityId);\n\n return [entityId, digest].join(this.separator);\n }\n}\n","import icons from './generated/icons.json'\nimport { Schema } from './schema'\n\ninterface IIconStorage {\n [iconName:string]: string[]\n}\n\nexport const IconRegistry = {\n SIZE: 24,\n storage: icons as IIconStorage,\n\n getIcon(iconName: string): string[] {\n return this.storage[iconName];\n },\n\n getSchemaIcon(schema: Schema): string[] {\n const iconName = schema.name.toLowerCase()\n return this.getIcon(iconName) || this.getIcon('info')\n }\n}\n","export * from './entity'\nexport * from './model'\nexport * from './namespace'\nexport * from './property'\nexport * from './schema'\nexport * from './type'\nexport * from './icons'\n\n\nimport defaultModel_ from './defaultModel.json';\nimport { IModelDatum } from './model';\nexport const defaultModel: IModelDatum = defaultModel_;\n"],"names":["uuidv4"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,UAAM,YAAY,GAAgB;;;;;;;;;;;;;;;","x_google_ignoreList":[1,2,3,4,5]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensanctions/followthemoney",
3
- "version": "4.2.2",
3
+ "version": "4.3.0",
4
4
  "description": "JavaScript version of the followthemoney data model",
5
5
  "keywords": [],
6
6
  "main": "dist/followthemoney.umd.js",