@opensanctions/followthemoney 4.4.1 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/defaultModel.json
CHANGED
|
@@ -1086,6 +1086,7 @@
|
|
|
1086
1086
|
"caption": [
|
|
1087
1087
|
"name",
|
|
1088
1088
|
"alias",
|
|
1089
|
+
"abbreviation",
|
|
1089
1090
|
"weakAlias",
|
|
1090
1091
|
"previousName",
|
|
1091
1092
|
"registrationNumber"
|
|
@@ -3168,6 +3169,14 @@
|
|
|
3168
3169
|
"label": "Image",
|
|
3169
3170
|
"plural": "Images",
|
|
3170
3171
|
"properties": {
|
|
3172
|
+
"credit": {
|
|
3173
|
+
"description": "The credit or attribution for the image.",
|
|
3174
|
+
"label": "Credit",
|
|
3175
|
+
"maxLength": 1024,
|
|
3176
|
+
"name": "credit",
|
|
3177
|
+
"qname": "Image:credit",
|
|
3178
|
+
"type": "string"
|
|
3179
|
+
},
|
|
3171
3180
|
"pictured": {
|
|
3172
3181
|
"label": "Pictured",
|
|
3173
3182
|
"matchable": true,
|
|
@@ -3372,6 +3381,7 @@
|
|
|
3372
3381
|
"caption": [
|
|
3373
3382
|
"name",
|
|
3374
3383
|
"alias",
|
|
3384
|
+
"abbreviation",
|
|
3375
3385
|
"weakAlias",
|
|
3376
3386
|
"previousName",
|
|
3377
3387
|
"email",
|
|
@@ -3392,6 +3402,14 @@
|
|
|
3392
3402
|
"matchable": true,
|
|
3393
3403
|
"plural": "Legal entities",
|
|
3394
3404
|
"properties": {
|
|
3405
|
+
"abbreviation": {
|
|
3406
|
+
"description": "Abbreviated name or acronym",
|
|
3407
|
+
"label": "Abbreviation",
|
|
3408
|
+
"maxLength": 384,
|
|
3409
|
+
"name": "abbreviation",
|
|
3410
|
+
"qname": "LegalEntity:abbreviation",
|
|
3411
|
+
"type": "name"
|
|
3412
|
+
},
|
|
3395
3413
|
"agencyClient": {
|
|
3396
3414
|
"label": "Clients",
|
|
3397
3415
|
"matchable": true,
|
|
@@ -4569,6 +4587,7 @@
|
|
|
4569
4587
|
"caption": [
|
|
4570
4588
|
"name",
|
|
4571
4589
|
"alias",
|
|
4590
|
+
"abbreviation",
|
|
4572
4591
|
"weakAlias",
|
|
4573
4592
|
"previousName",
|
|
4574
4593
|
"registrationNumber"
|
|
@@ -5203,8 +5222,9 @@
|
|
|
5203
5222
|
"caption": [
|
|
5204
5223
|
"name",
|
|
5205
5224
|
"alias",
|
|
5206
|
-
"weakAlias",
|
|
5207
5225
|
"previousName",
|
|
5226
|
+
"weakAlias",
|
|
5227
|
+
"abbreviation",
|
|
5208
5228
|
"lastName",
|
|
5209
5229
|
"email",
|
|
5210
5230
|
"phone"
|
|
@@ -5817,6 +5837,7 @@
|
|
|
5817
5837
|
"caption": [
|
|
5818
5838
|
"name",
|
|
5819
5839
|
"alias",
|
|
5840
|
+
"abbreviation",
|
|
5820
5841
|
"weakAlias",
|
|
5821
5842
|
"previousName"
|
|
5822
5843
|
],
|
|
@@ -2330,6 +2330,7 @@ var schemata = {
|
|
|
2330
2330
|
caption: [
|
|
2331
2331
|
"name",
|
|
2332
2332
|
"alias",
|
|
2333
|
+
"abbreviation",
|
|
2333
2334
|
"weakAlias",
|
|
2334
2335
|
"previousName",
|
|
2335
2336
|
"registrationNumber"
|
|
@@ -4418,6 +4419,14 @@ var schemata = {
|
|
|
4418
4419
|
label: "Image",
|
|
4419
4420
|
plural: "Images",
|
|
4420
4421
|
properties: {
|
|
4422
|
+
credit: {
|
|
4423
|
+
description: "The credit or attribution for the image.",
|
|
4424
|
+
label: "Credit",
|
|
4425
|
+
maxLength: 1024,
|
|
4426
|
+
name: "credit",
|
|
4427
|
+
qname: "Image:credit",
|
|
4428
|
+
type: "string"
|
|
4429
|
+
},
|
|
4421
4430
|
pictured: {
|
|
4422
4431
|
label: "Pictured",
|
|
4423
4432
|
matchable: true,
|
|
@@ -4624,6 +4633,7 @@ var schemata = {
|
|
|
4624
4633
|
caption: [
|
|
4625
4634
|
"name",
|
|
4626
4635
|
"alias",
|
|
4636
|
+
"abbreviation",
|
|
4627
4637
|
"weakAlias",
|
|
4628
4638
|
"previousName",
|
|
4629
4639
|
"email",
|
|
@@ -4644,6 +4654,14 @@ var schemata = {
|
|
|
4644
4654
|
matchable: true,
|
|
4645
4655
|
plural: "Legal entities",
|
|
4646
4656
|
properties: {
|
|
4657
|
+
abbreviation: {
|
|
4658
|
+
description: "Abbreviated name or acronym",
|
|
4659
|
+
label: "Abbreviation",
|
|
4660
|
+
maxLength: 384,
|
|
4661
|
+
name: "abbreviation",
|
|
4662
|
+
qname: "LegalEntity:abbreviation",
|
|
4663
|
+
type: "name"
|
|
4664
|
+
},
|
|
4647
4665
|
agencyClient: {
|
|
4648
4666
|
label: "Clients",
|
|
4649
4667
|
matchable: true,
|
|
@@ -5823,6 +5841,7 @@ var schemata = {
|
|
|
5823
5841
|
caption: [
|
|
5824
5842
|
"name",
|
|
5825
5843
|
"alias",
|
|
5844
|
+
"abbreviation",
|
|
5826
5845
|
"weakAlias",
|
|
5827
5846
|
"previousName",
|
|
5828
5847
|
"registrationNumber"
|
|
@@ -6461,8 +6480,9 @@ var schemata = {
|
|
|
6461
6480
|
caption: [
|
|
6462
6481
|
"name",
|
|
6463
6482
|
"alias",
|
|
6464
|
-
"weakAlias",
|
|
6465
6483
|
"previousName",
|
|
6484
|
+
"weakAlias",
|
|
6485
|
+
"abbreviation",
|
|
6466
6486
|
"lastName",
|
|
6467
6487
|
"email",
|
|
6468
6488
|
"phone"
|
|
@@ -7077,6 +7097,7 @@ var schemata = {
|
|
|
7077
7097
|
caption: [
|
|
7078
7098
|
"name",
|
|
7079
7099
|
"alias",
|
|
7100
|
+
"abbreviation",
|
|
7080
7101
|
"weakAlias",
|
|
7081
7102
|
"previousName"
|
|
7082
7103
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followthemoney.es.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.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 { 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 { randomUUID as nodeRandomUUID } from 'crypto';\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 * Generate a new random UUID.\n * \n * @returns a new UUID.\n */\n generateRandomId(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID(); // Browser\n }\n return nodeRandomUUID(); // Node.js\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 = this.generateRandomId();\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":["nodeRandomUUID"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,MAAM,YAAY,GAAgB;;;;","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"followthemoney.es.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.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 { 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 { randomUUID as nodeRandomUUID } from 'crypto';\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 * Generate a new random UUID.\n * \n * @returns a new UUID.\n */\n generateRandomId(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID(); // Browser\n }\n return nodeRandomUUID(); // Node.js\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 = this.generateRandomId();\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":["nodeRandomUUID"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,MAAM,YAAY,GAAgB;;;;","x_google_ignoreList":[1]}
|
|
@@ -2334,6 +2334,7 @@
|
|
|
2334
2334
|
caption: [
|
|
2335
2335
|
"name",
|
|
2336
2336
|
"alias",
|
|
2337
|
+
"abbreviation",
|
|
2337
2338
|
"weakAlias",
|
|
2338
2339
|
"previousName",
|
|
2339
2340
|
"registrationNumber"
|
|
@@ -4422,6 +4423,14 @@
|
|
|
4422
4423
|
label: "Image",
|
|
4423
4424
|
plural: "Images",
|
|
4424
4425
|
properties: {
|
|
4426
|
+
credit: {
|
|
4427
|
+
description: "The credit or attribution for the image.",
|
|
4428
|
+
label: "Credit",
|
|
4429
|
+
maxLength: 1024,
|
|
4430
|
+
name: "credit",
|
|
4431
|
+
qname: "Image:credit",
|
|
4432
|
+
type: "string"
|
|
4433
|
+
},
|
|
4425
4434
|
pictured: {
|
|
4426
4435
|
label: "Pictured",
|
|
4427
4436
|
matchable: true,
|
|
@@ -4628,6 +4637,7 @@
|
|
|
4628
4637
|
caption: [
|
|
4629
4638
|
"name",
|
|
4630
4639
|
"alias",
|
|
4640
|
+
"abbreviation",
|
|
4631
4641
|
"weakAlias",
|
|
4632
4642
|
"previousName",
|
|
4633
4643
|
"email",
|
|
@@ -4648,6 +4658,14 @@
|
|
|
4648
4658
|
matchable: true,
|
|
4649
4659
|
plural: "Legal entities",
|
|
4650
4660
|
properties: {
|
|
4661
|
+
abbreviation: {
|
|
4662
|
+
description: "Abbreviated name or acronym",
|
|
4663
|
+
label: "Abbreviation",
|
|
4664
|
+
maxLength: 384,
|
|
4665
|
+
name: "abbreviation",
|
|
4666
|
+
qname: "LegalEntity:abbreviation",
|
|
4667
|
+
type: "name"
|
|
4668
|
+
},
|
|
4651
4669
|
agencyClient: {
|
|
4652
4670
|
label: "Clients",
|
|
4653
4671
|
matchable: true,
|
|
@@ -5827,6 +5845,7 @@
|
|
|
5827
5845
|
caption: [
|
|
5828
5846
|
"name",
|
|
5829
5847
|
"alias",
|
|
5848
|
+
"abbreviation",
|
|
5830
5849
|
"weakAlias",
|
|
5831
5850
|
"previousName",
|
|
5832
5851
|
"registrationNumber"
|
|
@@ -6465,8 +6484,9 @@
|
|
|
6465
6484
|
caption: [
|
|
6466
6485
|
"name",
|
|
6467
6486
|
"alias",
|
|
6468
|
-
"weakAlias",
|
|
6469
6487
|
"previousName",
|
|
6488
|
+
"weakAlias",
|
|
6489
|
+
"abbreviation",
|
|
6470
6490
|
"lastName",
|
|
6471
6491
|
"email",
|
|
6472
6492
|
"phone"
|
|
@@ -7081,6 +7101,7 @@
|
|
|
7081
7101
|
caption: [
|
|
7082
7102
|
"name",
|
|
7083
7103
|
"alias",
|
|
7104
|
+
"abbreviation",
|
|
7084
7105
|
"weakAlias",
|
|
7085
7106
|
"previousName"
|
|
7086
7107
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followthemoney.umd.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.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 { 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 { randomUUID as nodeRandomUUID } from 'crypto';\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 * Generate a new random UUID.\n * \n * @returns a new UUID.\n */\n generateRandomId(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID(); // Browser\n }\n return nodeRandomUUID(); // Node.js\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 = this.generateRandomId();\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":["nodeRandomUUID"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,UAAM,YAAY,GAAgB;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"followthemoney.umd.js","sources":["../src/entity.ts","../node_modules/tslib/tslib.es6.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 { 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 { randomUUID as nodeRandomUUID } from 'crypto';\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 * Generate a new random UUID.\n * \n * @returns a new UUID.\n */\n generateRandomId(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID(); // Browser\n }\n return nodeRandomUUID(); // Node.js\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 = this.generateRandomId();\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":["nodeRandomUUID"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPK,UAAM,YAAY,GAAgB;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensanctions/followthemoney",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "JavaScript version of the followthemoney data model",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"main": "dist/followthemoney.umd.js",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
68
68
|
"@rollup/plugin-typescript": "^12.1.4",
|
|
69
69
|
"@types/jest": "^30.0.0",
|
|
70
|
-
"@types/node": "^
|
|
70
|
+
"@types/node": "^25.0.3",
|
|
71
71
|
"colors": "^1.4.0",
|
|
72
72
|
"cross-env": "^10.0.0",
|
|
73
73
|
"eslint": "^9.32.0",
|