@memberjunction/core-entities 5.29.0 → 5.30.1
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/custom/MJConversationDetailEntityExtended.d.ts +31 -0
- package/dist/custom/MJConversationDetailEntityExtended.d.ts.map +1 -0
- package/dist/custom/MJConversationDetailEntityExtended.js +106 -0
- package/dist/custom/MJConversationDetailEntityExtended.js.map +1 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts +31 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js +151 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts +45 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.js +253 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts +28 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js +144 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts +45 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js +169 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts +40 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.js +220 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts +47 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.js +218 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts +25 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.js +129 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts +24 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.js +123 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts +39 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.js +193 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/index.d.ts +16 -0
- package/dist/custom/PermissionProviders/index.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/index.js +41 -0
- package/dist/custom/PermissionProviders/index.js.map +1 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.d.ts +105 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.js +162 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts +22 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js +75 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts +22 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js +114 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts +25 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js +101 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts +32 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js +95 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/index.d.ts +13 -0
- package/dist/custom/Permissions/index.d.ts.map +1 -0
- package/dist/custom/Permissions/index.js +22 -0
- package/dist/custom/Permissions/index.js.map +1 -0
- package/dist/custom/Permissions/shareNotification.d.ts +72 -0
- package/dist/custom/Permissions/shareNotification.d.ts.map +1 -0
- package/dist/custom/Permissions/shareNotification.js +98 -0
- package/dist/custom/Permissions/shareNotification.js.map +1 -0
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts +63 -1
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts.map +1 -1
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js +244 -27
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js.map +1 -1
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts +7 -0
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts.map +1 -1
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +13 -0
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
- package/dist/engines/GeoDataEngine.d.ts +42 -8
- package/dist/engines/GeoDataEngine.d.ts.map +1 -1
- package/dist/engines/GeoDataEngine.js +191 -36
- package/dist/engines/GeoDataEngine.js.map +1 -1
- package/dist/engines/PermissionEngine.d.ts +142 -0
- package/dist/engines/PermissionEngine.d.ts.map +1 -0
- package/dist/engines/PermissionEngine.js +343 -0
- package/dist/engines/PermissionEngine.js.map +1 -0
- package/dist/engines/UserInfoEngine.d.ts +6 -1
- package/dist/engines/UserInfoEngine.d.ts.map +1 -1
- package/dist/engines/UserInfoEngine.js +21 -5
- package/dist/engines/UserInfoEngine.js.map +1 -1
- package/dist/engines/conversations.d.ts +35 -0
- package/dist/engines/conversations.d.ts.map +1 -1
- package/dist/engines/conversations.js +103 -16
- package/dist/engines/conversations.js.map +1 -1
- package/dist/generated/entity_subclasses.d.ts +579 -52
- package/dist/generated/entity_subclasses.d.ts.map +1 -1
- package/dist/generated/entity_subclasses.js +697 -66
- package/dist/generated/entity_subclasses.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { BaseEngine, LogStatus } from "@memberjunction/core";
|
|
8
|
-
import { RegisterForStartup } from "@memberjunction/core";
|
|
1
|
+
import { BaseEngine, Metadata, LogStatus } from "@memberjunction/core";
|
|
9
2
|
/**
|
|
10
3
|
* GeoDataEngine provides cached, in-memory access to Country and StateProvince
|
|
11
|
-
* reference data
|
|
12
|
-
* are O(1) via pre-built Maps keyed by common lookup patterns.
|
|
4
|
+
* reference data, plus point-in-polygon resolution against country/state boundaries.
|
|
5
|
+
* All lookups are O(1) via pre-built Maps keyed by common lookup patterns.
|
|
6
|
+
*
|
|
7
|
+
* **Loaded on demand**, not at app startup. The dataset is large (~3,000+ rows
|
|
8
|
+
* with BoundaryGeoJSON blobs) and parsing the geometry takes ~3–4s synchronously,
|
|
9
|
+
* so we only pay that cost when geocoding or geo lookups are actually needed.
|
|
10
|
+
*
|
|
11
|
+
* **Caller contract**: `await GeoDataEngine.Instance.Config(...)` once before
|
|
12
|
+
* calling any sync lookup method. `Config()` is idempotent — concurrent calls
|
|
13
|
+
* dedup against a single in-flight load (see `BaseEngine.Load`), and repeated
|
|
14
|
+
* calls after load complete return immediately. If no entity in the tenant has
|
|
15
|
+
* `SupportsGeoCoding=1`, `Config()` returns early and lookups will return
|
|
16
|
+
* `undefined` — callers already handle the not-found case so the empty state
|
|
17
|
+
* is safe to leave in place.
|
|
13
18
|
*
|
|
14
19
|
* Usage:
|
|
15
20
|
* ```typescript
|
|
16
|
-
*
|
|
17
|
-
* const country =
|
|
18
|
-
* const state =
|
|
21
|
+
* await GeoDataEngine.Instance.Config(false, contextUser);
|
|
22
|
+
* const country = GeoDataEngine.Instance.GetCountryByISO2('US');
|
|
23
|
+
* const state = GeoDataEngine.Instance.GetStateByCode(country.ID, 'CO');
|
|
19
24
|
* ```
|
|
20
25
|
*/
|
|
21
|
-
|
|
26
|
+
export class GeoDataEngine extends BaseEngine {
|
|
22
27
|
constructor() {
|
|
23
28
|
super(...arguments);
|
|
24
29
|
this._countries = [];
|
|
@@ -41,6 +46,15 @@ let GeoDataEngine = class GeoDataEngine extends BaseEngine {
|
|
|
41
46
|
return super.getInstance();
|
|
42
47
|
}
|
|
43
48
|
async Config(forceRefresh, contextUser, provider) {
|
|
49
|
+
// Skip the load entirely if no entity in this tenant has SupportsGeoCoding=1.
|
|
50
|
+
// The country/state-province dataset is large (~3,000+ rows with BoundaryGeoJSON
|
|
51
|
+
// blobs) and parsing the geometry for point-in-polygon takes ~3-4s synchronously.
|
|
52
|
+
// None of that work is useful unless at least one entity opts into geocoding.
|
|
53
|
+
const entities = (provider ?? Metadata.Provider)?.Entities;
|
|
54
|
+
if (entities && !entities.some(e => e.SupportsGeoCoding)) {
|
|
55
|
+
LogStatus('GeoDataEngine: no entities have SupportsGeoCoding=1 — skipping country/state-province load and geometry parsing');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
44
58
|
const configs = [
|
|
45
59
|
{
|
|
46
60
|
Type: 'entity',
|
|
@@ -59,7 +73,10 @@ let GeoDataEngine = class GeoDataEngine extends BaseEngine {
|
|
|
59
73
|
}
|
|
60
74
|
async AdditionalLoading(_contextUser) {
|
|
61
75
|
this.buildLookupMaps();
|
|
62
|
-
|
|
76
|
+
// Use synchronous main-thread parsing. The Web Worker approach was slower because
|
|
77
|
+
// postMessage structured-clone of 3,092 parsed polygons back to main thread took
|
|
78
|
+
// 11+ seconds, blocking all other engines' promise continuations.
|
|
79
|
+
this.buildGeometryCachesSync();
|
|
63
80
|
}
|
|
64
81
|
// ================================================================
|
|
65
82
|
// Cached data getters
|
|
@@ -283,19 +300,165 @@ let GeoDataEngine = class GeoDataEngine extends BaseEngine {
|
|
|
283
300
|
return inside;
|
|
284
301
|
}
|
|
285
302
|
// ================================================================
|
|
286
|
-
// Private — geometry cache building
|
|
303
|
+
// Private — geometry cache building (Web Worker accelerated)
|
|
287
304
|
// ================================================================
|
|
288
305
|
/**
|
|
289
|
-
*
|
|
290
|
-
*
|
|
306
|
+
* The Web Worker source code for GeoJSON parsing. This is embedded as a string
|
|
307
|
+
* so we can create an inline Worker via Blob URL — no separate file needed.
|
|
308
|
+
* The worker receives raw BoundaryGeoJSON strings and returns parsed geometries.
|
|
309
|
+
*/
|
|
310
|
+
static { this.GEO_WORKER_SOURCE = `
|
|
311
|
+
function parsePolygonCoordinates(coordinates) {
|
|
312
|
+
if (!coordinates || coordinates.length === 0) return null;
|
|
313
|
+
let minLng = Infinity, minLat = Infinity, maxLng = -Infinity, maxLat = -Infinity;
|
|
314
|
+
for (const point of coordinates[0]) {
|
|
315
|
+
if (point[0] < minLng) minLng = point[0];
|
|
316
|
+
if (point[1] < minLat) minLat = point[1];
|
|
317
|
+
if (point[0] > maxLng) maxLng = point[0];
|
|
318
|
+
if (point[1] > maxLat) maxLat = point[1];
|
|
319
|
+
}
|
|
320
|
+
return { rings: coordinates, bbox: [minLng, minLat, maxLng, maxLat] };
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
function parseEntityBoundary(entityId, boundaryGeoJSON) {
|
|
324
|
+
if (!boundaryGeoJSON) return null;
|
|
325
|
+
try {
|
|
326
|
+
const raw = typeof boundaryGeoJSON === 'string' ? JSON.parse(boundaryGeoJSON) : boundaryGeoJSON;
|
|
327
|
+
const geometry = raw.type === 'Feature' ? raw.geometry : raw;
|
|
328
|
+
if (!geometry || !geometry.coordinates) return null;
|
|
329
|
+
const polygons = [];
|
|
330
|
+
if (geometry.type === 'Polygon') {
|
|
331
|
+
const parsed = parsePolygonCoordinates(geometry.coordinates);
|
|
332
|
+
if (parsed) polygons.push(parsed);
|
|
333
|
+
} else if (geometry.type === 'MultiPolygon') {
|
|
334
|
+
for (const polyCoords of geometry.coordinates) {
|
|
335
|
+
const parsed = parsePolygonCoordinates(polyCoords);
|
|
336
|
+
if (parsed) polygons.push(parsed);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
if (polygons.length === 0) return null;
|
|
340
|
+
const overallBbox = [
|
|
341
|
+
Math.min(...polygons.map(p => p.bbox[0])),
|
|
342
|
+
Math.min(...polygons.map(p => p.bbox[1])),
|
|
343
|
+
Math.max(...polygons.map(p => p.bbox[2])),
|
|
344
|
+
Math.max(...polygons.map(p => p.bbox[3]))
|
|
345
|
+
];
|
|
346
|
+
return { entityId: entityId.toLowerCase(), polygons, bbox: overallBbox };
|
|
347
|
+
} catch {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
self.onmessage = function(e) {
|
|
353
|
+
const { countries, stateProvinces } = e.data;
|
|
354
|
+
const countryGeometries = [];
|
|
355
|
+
const stateGeometries = [];
|
|
356
|
+
|
|
357
|
+
for (const c of countries) {
|
|
358
|
+
const geom = parseEntityBoundary(c.id, c.boundaryGeoJSON);
|
|
359
|
+
if (geom) countryGeometries.push(geom);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
for (const s of stateProvinces) {
|
|
363
|
+
const geom = parseEntityBoundary(s.id, s.boundaryGeoJSON);
|
|
364
|
+
if (geom) {
|
|
365
|
+
geom._countryId = s.countryId.toLowerCase();
|
|
366
|
+
stateGeometries.push(geom);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
self.postMessage({ countryGeometries, stateGeometries });
|
|
371
|
+
};
|
|
372
|
+
`; }
|
|
373
|
+
/**
|
|
374
|
+
* Parse all BoundaryGeoJSON data using a Web Worker (off main thread).
|
|
375
|
+
* Falls back to synchronous parsing if Workers are unavailable.
|
|
291
376
|
*/
|
|
292
|
-
|
|
377
|
+
async buildGeometryCachesAsync() {
|
|
293
378
|
this._countryGeometries = [];
|
|
294
379
|
this._stateGeometries = [];
|
|
295
380
|
this._stateGeometriesByCountry.clear();
|
|
381
|
+
// Try Web Worker first (browser environment)
|
|
382
|
+
if (typeof Worker !== 'undefined' && typeof Blob !== 'undefined') {
|
|
383
|
+
try {
|
|
384
|
+
const result = await this.parseInWorker();
|
|
385
|
+
this._countryGeometries = result.countryGeometries;
|
|
386
|
+
this.indexStateGeometries(result.stateGeometries);
|
|
387
|
+
LogStatus(`GeoDataEngine: parsed ${result.countryGeometries.length} country and ${result.stateGeometries.length} state/province boundaries for point-in-polygon (Web Worker)`);
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
catch (err) {
|
|
391
|
+
LogStatus(`GeoDataEngine: Web Worker failed (${err instanceof Error ? err.message : String(err)}), falling back to main thread`);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
// Fallback: synchronous parsing on main thread
|
|
395
|
+
this.buildGeometryCachesSync();
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Offload GeoJSON parsing to an inline Web Worker.
|
|
399
|
+
* Returns a promise that resolves with the parsed geometry arrays.
|
|
400
|
+
*/
|
|
401
|
+
parseInWorker() {
|
|
402
|
+
return new Promise((resolve, reject) => {
|
|
403
|
+
const blob = new Blob([GeoDataEngine.GEO_WORKER_SOURCE], { type: 'application/javascript' });
|
|
404
|
+
const url = URL.createObjectURL(blob);
|
|
405
|
+
const worker = new Worker(url);
|
|
406
|
+
// Timeout — if the worker takes longer than 30s, fall back
|
|
407
|
+
const timeout = setTimeout(() => {
|
|
408
|
+
worker.terminate();
|
|
409
|
+
URL.revokeObjectURL(url);
|
|
410
|
+
reject(new Error('Worker timeout'));
|
|
411
|
+
}, 30000);
|
|
412
|
+
worker.onmessage = (e) => {
|
|
413
|
+
clearTimeout(timeout);
|
|
414
|
+
worker.terminate();
|
|
415
|
+
URL.revokeObjectURL(url);
|
|
416
|
+
resolve(e.data);
|
|
417
|
+
};
|
|
418
|
+
worker.onerror = (e) => {
|
|
419
|
+
clearTimeout(timeout);
|
|
420
|
+
worker.terminate();
|
|
421
|
+
URL.revokeObjectURL(url);
|
|
422
|
+
reject(new Error(e.message));
|
|
423
|
+
};
|
|
424
|
+
// Send raw data to the worker — only the fields needed for parsing
|
|
425
|
+
const countries = this._countries.map(c => ({
|
|
426
|
+
id: c.ID,
|
|
427
|
+
boundaryGeoJSON: c.BoundaryGeoJSON
|
|
428
|
+
}));
|
|
429
|
+
const stateProvinces = this._stateProvinces.map(s => ({
|
|
430
|
+
id: s.ID,
|
|
431
|
+
countryId: s.CountryID,
|
|
432
|
+
boundaryGeoJSON: s.BoundaryGeoJSON
|
|
433
|
+
}));
|
|
434
|
+
worker.postMessage({ countries, stateProvinces });
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Index state geometries by country for fast lookup.
|
|
439
|
+
* Used after both worker and sync parsing paths.
|
|
440
|
+
*/
|
|
441
|
+
indexStateGeometries(stateGeometries) {
|
|
442
|
+
this._stateGeometries = [];
|
|
443
|
+
this._stateGeometriesByCountry.clear();
|
|
444
|
+
for (const geom of stateGeometries) {
|
|
445
|
+
this._stateGeometries.push(geom);
|
|
446
|
+
const countryKey = geom._countryId || '';
|
|
447
|
+
let arr = this._stateGeometriesByCountry.get(countryKey);
|
|
448
|
+
if (!arr) {
|
|
449
|
+
arr = [];
|
|
450
|
+
this._stateGeometriesByCountry.set(countryKey, arr);
|
|
451
|
+
}
|
|
452
|
+
arr.push(geom);
|
|
453
|
+
delete geom._countryId; // Clean up the temporary field
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Synchronous fallback for environments without Web Workers (e.g., Node.js, SSR).
|
|
458
|
+
*/
|
|
459
|
+
buildGeometryCachesSync() {
|
|
296
460
|
let countryParsed = 0;
|
|
297
461
|
let stateParsed = 0;
|
|
298
|
-
// Parse country boundaries
|
|
299
462
|
for (const country of this._countries) {
|
|
300
463
|
const geom = this.parseEntityBoundary(country.ID, country.BoundaryGeoJSON);
|
|
301
464
|
if (geom) {
|
|
@@ -303,27 +466,23 @@ let GeoDataEngine = class GeoDataEngine extends BaseEngine {
|
|
|
303
466
|
countryParsed++;
|
|
304
467
|
}
|
|
305
468
|
}
|
|
306
|
-
|
|
469
|
+
const stateGeoms = [];
|
|
307
470
|
for (const state of this._stateProvinces) {
|
|
308
471
|
const geom = this.parseEntityBoundary(state.ID, state.BoundaryGeoJSON);
|
|
309
472
|
if (geom) {
|
|
310
|
-
|
|
473
|
+
geom._countryId = state.CountryID.toLowerCase();
|
|
474
|
+
stateGeoms.push(geom);
|
|
311
475
|
stateParsed++;
|
|
312
|
-
const countryKey = state.CountryID.toLowerCase();
|
|
313
|
-
let arr = this._stateGeometriesByCountry.get(countryKey);
|
|
314
|
-
if (!arr) {
|
|
315
|
-
arr = [];
|
|
316
|
-
this._stateGeometriesByCountry.set(countryKey, arr);
|
|
317
|
-
}
|
|
318
|
-
arr.push(geom);
|
|
319
476
|
}
|
|
320
477
|
}
|
|
321
|
-
|
|
478
|
+
this.indexStateGeometries(stateGeoms);
|
|
479
|
+
LogStatus(`GeoDataEngine: parsed ${countryParsed} country and ${stateParsed} state/province boundaries for point-in-polygon (main thread)`);
|
|
322
480
|
}
|
|
323
481
|
/**
|
|
324
482
|
* Parse a BoundaryGeoJSON value into a CachedGeometry.
|
|
325
483
|
* Supports GeoJSON Feature, Polygon, and MultiPolygon types.
|
|
326
484
|
* Returns null if the boundary is missing or unparseable.
|
|
485
|
+
* Used by the synchronous fallback path.
|
|
327
486
|
*/
|
|
328
487
|
parseEntityBoundary(entityId, boundaryGeoJSON) {
|
|
329
488
|
if (!boundaryGeoJSON)
|
|
@@ -348,7 +507,6 @@ let GeoDataEngine = class GeoDataEngine extends BaseEngine {
|
|
|
348
507
|
}
|
|
349
508
|
if (polygons.length === 0)
|
|
350
509
|
return null;
|
|
351
|
-
// Compute overall bounding box across all polygons
|
|
352
510
|
const overallBbox = [
|
|
353
511
|
Math.min(...polygons.map(p => p.bbox[0])),
|
|
354
512
|
Math.min(...polygons.map(p => p.bbox[1])),
|
|
@@ -365,6 +523,7 @@ let GeoDataEngine = class GeoDataEngine extends BaseEngine {
|
|
|
365
523
|
* Parse a single Polygon's coordinate rings and compute its bounding box.
|
|
366
524
|
* GeoJSON Polygon coordinates: [ outerRing, ...holeRings ]
|
|
367
525
|
* Each ring is an array of [lng, lat] pairs.
|
|
526
|
+
* Used by the synchronous fallback path.
|
|
368
527
|
*/
|
|
369
528
|
parsePolygonCoordinates(coordinates) {
|
|
370
529
|
if (!coordinates || coordinates.length === 0)
|
|
@@ -417,9 +576,5 @@ let GeoDataEngine = class GeoDataEngine extends BaseEngine {
|
|
|
417
576
|
this._statesById.set(s.ID.toLowerCase(), s);
|
|
418
577
|
}
|
|
419
578
|
}
|
|
420
|
-
}
|
|
421
|
-
GeoDataEngine = __decorate([
|
|
422
|
-
RegisterForStartup()
|
|
423
|
-
], GeoDataEngine);
|
|
424
|
-
export { GeoDataEngine };
|
|
579
|
+
}
|
|
425
580
|
//# sourceMappingURL=GeoDataEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoDataEngine.js","sourceRoot":"","sources":["../../src/engines/GeoDataEngine.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAyD,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAqC1D;;;;;;;;;;;GAWG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAyB;IAArD;;QAKK,eAAU,GAAsB,EAAE,CAAC;QACnC,oBAAe,GAA4B,EAAE,CAAC;QAEtD,wCAAwC;QAChC,qBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;QACtD,qBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;QACtD,qBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;QACtD,mBAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;QACpD,4BAAuB,GAAG,IAAI,GAAG,EAAiC,CAAC;QACnE,4BAAuB,GAAG,IAAI,GAAG,EAAiC,CAAC;QACnE,gBAAW,GAAG,IAAI,GAAG,EAAiC,CAAC;QAE/D,0DAA0D;QAClD,uBAAkB,GAAqB,EAAE,CAAC;QAC1C,qBAAgB,GAAqB,EAAE,CAAC;QAChD,kEAAkE;QAC1D,8BAAyB,GAAG,IAAI,GAAG,EAA4B,CAAC;IA+Y5E,CAAC;IAnaU,MAAM,KAAK,QAAQ;QACtB,OAAO,KAAK,CAAC,WAAW,EAAiB,CAAC;IAC9C,CAAC;IAoBM,KAAK,CAAC,MAAM,CAAC,YAAsB,EAAE,WAAsB,EAAE,QAA4B;QAC5F,MAAM,OAAO,GAAwC;YACjD;gBACI,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,eAAe;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,UAAU,EAAE,IAAI;aACnB;YACD;gBACI,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,qBAAqB;gBACjC,YAAY,EAAE,iBAAiB;gBAC/B,UAAU,EAAE,IAAI;aACnB;SACJ,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CAAC,YAAuB;QAC9D,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,mEAAmE;IACnE,sBAAsB;IACtB,mEAAmE;IAEnE,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,mEAAmE;IACnE,6BAA6B;IAC7B,mEAAmE;IAE5D,gBAAgB,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,KAAa;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,0CAA0C;QAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC9B,CAAC;QACD,4CAA4C;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC9B,CAAC;QACD,iBAAiB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,mEAAmE;IACnE,oCAAoC;IACpC,mEAAmE;IAEnE;;;;OAIG;IACI,cAAc,CAAC,SAAiB,EAAE,IAAY;QACjD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,SAAiB,EAAE,IAAY;QACjD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAEM,YAAY,CAAC,EAAU;QAC1B,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,SAAiB,EAAE,KAAa;QAChD,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,mEAAmE;IACnE,yDAAyD;IACzD,mEAAmE;IAEnE;;;;;;;;OAQG;IACI,sBAAsB,CAAC,GAAW,EAAE,GAAW;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,qBAAqB,CAAC,GAAW,EAAE,GAAW;QACjD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,mBAAmB,CAAC,GAAW,EAAE,GAAW,EAAE,SAAkB;QACnE,IAAI,iBAAiB,GAAG,SAAS,EAAE,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC/B,iBAAiB,GAAG,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,MAAsC;QACvD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,mEAAmE;IACnE,sCAAsC;IACtC,mEAAmE;IAEnE;;OAEG;IACK,qBAAqB,CAAC,GAAW,EAAE,GAAW,EAAE,IAAoB;QACxE,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzD,2CAA2C;QAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrD,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,GAAW,EAAE,GAAW,EAAE,IAAsC;QAChF,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAmB;QACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAErC,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEpD,8BAA8B;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,GAAW,EAAE,GAAW,EAAE,IAAgB;QACtD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;YAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;YAE/D,qCAAqC;YACrC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;gBACzB,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;gBAChD,MAAM,GAAG,CAAC,MAAM,CAAC;YACrB,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,mEAAmE;IACnE,oCAAoC;IACpC,mEAAmE;IAEnE;;;OAGG;IACK,mBAAmB;QACvB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;QAEvC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,2BAA2B;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3E,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnC,aAAa,EAAE,CAAC;YACpB,CAAC;QACL,CAAC;QAED,sDAAsD;QACtD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;YACvE,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,WAAW,EAAE,CAAC;gBAEd,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,GAAG,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACzD,IAAI,CAAC,GAAG,EAAE,CAAC;oBACP,GAAG,GAAG,EAAE,CAAC;oBACT,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBACxD,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QAED,SAAS,CAAC,yBAAyB,aAAa,gBAAgB,WAAW,iDAAiD,CAAC,CAAC;IAClI,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,QAAgB,EAAE,eAA8B;QACxE,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAElC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAChG,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;YAE7D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAEpD,MAAM,QAAQ,GAAoB,EAAE,CAAC;YAErC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClE,IAAI,MAAM;oBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC1C,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;oBACxD,IAAI,MAAM;wBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtC,CAAC;YACL,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEvC,mDAAmD;YACnD,MAAM,WAAW,GAAqC;gBAClD,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C,CAAC;YAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,WAAyB;QACrD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1D,IAAI,MAAM,GAAG,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,QAAQ,CAAC;QAEjF,gDAAgD;QAChD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;gBAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;gBAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;gBAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;gBAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO;YACH,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SACzC,CAAC;IACN,CAAC;IAED,mEAAmE;IACnE,mCAAmC;IACnC,mEAAmE;IAE3D,eAAe;QACnB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,IAAI;gBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,CAAC,IAAI;gBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,CAAC,IAAI;gBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;CACJ,CAAA;AApaY,aAAa;IADzB,kBAAkB,EAAE;GACR,aAAa,CAoazB"}
|
|
1
|
+
{"version":3,"file":"GeoDataEngine.js","sourceRoot":"","sources":["../../src/engines/GeoDataEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { BaseEngine, IMetadataProvider, NormalizedPermission, PermissionAction, PermissionAuditEntry, PermissionAuditFilter, PermissionCheckResult, PermissionProviderBase, UserInfo } from '@memberjunction/core';
|
|
2
|
+
import { MJPermissionDomainEntity } from '../generated/entity_subclasses.js';
|
|
3
|
+
/**
|
|
4
|
+
* Canonical Font Awesome class for each permission domain. Exported so the admin
|
|
5
|
+
* Permissions app and the end-user Sharing Center render the same glyph for each
|
|
6
|
+
* domain without drifting. Consumers should call
|
|
7
|
+
* {@link PermissionEngine.DomainIconFor} rather than reading the map directly so
|
|
8
|
+
* unknown domains get the lock fallback.
|
|
9
|
+
*/
|
|
10
|
+
export declare const PERMISSION_DOMAIN_ICONS: Record<string, string>;
|
|
11
|
+
/** Fallback icon used when a domain isn't in the catalog (e.g., a Phase-3 provider). */
|
|
12
|
+
export declare const PERMISSION_DOMAIN_ICON_FALLBACK = "fa-solid fa-lock";
|
|
13
|
+
/**
|
|
14
|
+
* PermissionEngine is the unified entry point for permission queries across every registered
|
|
15
|
+
* permission subsystem. At startup it loads the {@link MJPermissionDomainEntity} catalog, then
|
|
16
|
+
* instantiates each active domain's provider via ClassFactory (keyed on `ProviderClassName`).
|
|
17
|
+
*
|
|
18
|
+
* Typical usage:
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // "Can this user read entity X?"
|
|
21
|
+
* const result = PermissionEngine.Instance.CheckPermission(
|
|
22
|
+
* user, 'Entity Permissions', 'Users', null, 'Read'
|
|
23
|
+
* );
|
|
24
|
+
*
|
|
25
|
+
* // "Show me everything this user has access to"
|
|
26
|
+
* const all = PermissionEngine.Instance.GetAllUserPermissions(user);
|
|
27
|
+
*
|
|
28
|
+
* // "Who has access to this resource?"
|
|
29
|
+
* const rows = PermissionEngine.Instance.GetResourcePermissions(
|
|
30
|
+
* 'Dashboard Permissions', 'Dashboards', dashboardId
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* Priority 15 so it configures after default-priority engines (e.g., UserInfoEngine at 10);
|
|
35
|
+
* providers lazy-resolve their backing engines on first use, so even if a backing engine
|
|
36
|
+
* has not been configured yet at provider construction time, permission checks still work
|
|
37
|
+
* once the backing engine comes online.
|
|
38
|
+
*/
|
|
39
|
+
export declare class PermissionEngine extends BaseEngine<PermissionEngine> {
|
|
40
|
+
static get Instance(): PermissionEngine;
|
|
41
|
+
private _domains;
|
|
42
|
+
private _providers;
|
|
43
|
+
Config(forceRefresh?: boolean, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Walks the loaded domain catalog and instantiates each active provider via ClassFactory.
|
|
46
|
+
* Called on every `Config()` so a `forceRefresh` re-wires the provider map.
|
|
47
|
+
*/
|
|
48
|
+
private instantiateProviders;
|
|
49
|
+
/**
|
|
50
|
+
* Check whether a user has a specific permission on a specific resource within a domain.
|
|
51
|
+
* Returns `{Allowed: false, Reason: 'Unknown domain'}` if the domain is not registered
|
|
52
|
+
* (either because no catalog row exists or because its provider failed to load).
|
|
53
|
+
*/
|
|
54
|
+
CheckPermission(user: UserInfo, domainName: string, resourceType: string, resourceId: string | null, action: PermissionAction): Promise<PermissionCheckResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Aggregate every resource the user has access to across all registered providers.
|
|
57
|
+
* Providers are queried in parallel; failures from individual providers are logged and skipped.
|
|
58
|
+
* Powers the Sharing Center "User Access Report" view.
|
|
59
|
+
*/
|
|
60
|
+
GetAllUserPermissions(user: UserInfo): Promise<NormalizedPermission[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Aggregate every permission this user has granted to *other* users across all
|
|
63
|
+
* registered providers. Powers the end-user Sharing Center's "Shared by me" tab.
|
|
64
|
+
*
|
|
65
|
+
* Role-only providers (Entity Permissions, Application Roles, AI Agent Permissions,
|
|
66
|
+
* Query Permissions) contribute nothing — their base-class default returns `[]`.
|
|
67
|
+
* Providers are queried in parallel; failures are logged and skipped.
|
|
68
|
+
*/
|
|
69
|
+
GetPermissionsGrantedByUser(grantor: UserInfo): Promise<NormalizedPermission[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Aggregate every permission where this user is the grantee AND someone else is the
|
|
72
|
+
* grantor — the "shared with me" view. Excludes self-owned resources and role-inherited
|
|
73
|
+
* access. Providers are queried in parallel; failures are logged and skipped.
|
|
74
|
+
*/
|
|
75
|
+
GetPermissionsSharedWithUser(grantee: UserInfo): Promise<NormalizedPermission[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Get every grantee's permissions on a specific resource within a domain.
|
|
78
|
+
* Powers the Sharing Center "Resource Access Report" view.
|
|
79
|
+
*/
|
|
80
|
+
GetResourcePermissions(domainName: string, resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
|
|
81
|
+
/** All active, loaded domain catalog records. */
|
|
82
|
+
get Domains(): MJPermissionDomainEntity[];
|
|
83
|
+
/** Look up the provider for a specific domain by name; returns undefined when not loaded. */
|
|
84
|
+
GetProvider(domainName: string): PermissionProviderBase | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* The resource type names supported by the given permission domain — sourced
|
|
87
|
+
* from the provider's `GetResourceTypes()`. Returns `[]` when the domain is
|
|
88
|
+
* unknown or the provider doesn't enumerate its types. Used by admin UIs
|
|
89
|
+
* (e.g., the Resource Access Report) to populate the Resource Type picker
|
|
90
|
+
* after a Domain is selected.
|
|
91
|
+
*/
|
|
92
|
+
GetResourceTypes(domainName: string): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Font Awesome class for a permission domain, with a lock fallback for
|
|
95
|
+
* unknown domains. Drives the icon shown next to domain groups in both the
|
|
96
|
+
* admin Permissions app and the end-user Sharing Center.
|
|
97
|
+
*/
|
|
98
|
+
static DomainIconFor(domainName: string): string;
|
|
99
|
+
/** For unit tests: swap the provider map with a caller-supplied one. */
|
|
100
|
+
_SetProvidersForTesting(providers: Map<string, PermissionProviderBase>): void;
|
|
101
|
+
/**
|
|
102
|
+
* Convenience wrapper around {@link CheckPermission} that throws a typed
|
|
103
|
+
* {@link PermissionDeniedError} when the action is not permitted. Intended for
|
|
104
|
+
* programmatic callers — Actions, AI Agents, custom server code — that want
|
|
105
|
+
* "fail loudly on denial" semantics instead of branching on a boolean result.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* await PermissionEngine.Instance.AuthorizeOrThrow(
|
|
110
|
+
* user, 'Dashboard Permissions', 'Dashboards', dashboardId, 'Share'
|
|
111
|
+
* );
|
|
112
|
+
* // If we reach this line, the user can share the dashboard.
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* @throws {@link PermissionDeniedError} when the provider returns `Allowed: false`
|
|
116
|
+
* or when the domain is not registered.
|
|
117
|
+
*/
|
|
118
|
+
AuthorizeOrThrow(user: UserInfo, domainName: string, resourceType: string, resourceId: string | null, action: PermissionAction): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Query RecordChange for audit events against every permission-backing entity.
|
|
121
|
+
* Supports filtering by domain, date range, changed-by user, or a specific
|
|
122
|
+
* record. Results are sorted newest-first and capped at `filter.MaxRows`
|
|
123
|
+
* (default 500).
|
|
124
|
+
*
|
|
125
|
+
* Relies on each permission entity having `TrackRecordChanges=1` in its
|
|
126
|
+
* Entity metadata row. Domains whose backing entities do not track changes
|
|
127
|
+
* contribute nothing to the timeline.
|
|
128
|
+
*/
|
|
129
|
+
GetAuditTimeline(filter?: PermissionAuditFilter): Promise<PermissionAuditEntry[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Map a domain-name filter to the set of backing entity names to query.
|
|
132
|
+
* When no filter is given, every known permission entity is included.
|
|
133
|
+
*/
|
|
134
|
+
private resolveAuditEntityNames;
|
|
135
|
+
/**
|
|
136
|
+
* Reverse lookup: given a backing entity name, return the owning domain.
|
|
137
|
+
* Falls back to the entity name itself when we can't resolve (e.g., a
|
|
138
|
+
* caller added a new permission entity to the map but no provider yet).
|
|
139
|
+
*/
|
|
140
|
+
private resolveDomainForEntity;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=PermissionEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionEngine.d.ts","sourceRoot":"","sources":["../../src/engines/PermissionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EAEV,iBAAiB,EAGjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EAErB,sBAAsB,EAGtB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAmB1E;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAU1D,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,+BAA+B,qBAAqB,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,gBAAiB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAC9D,WAAkB,QAAQ,IAAI,gBAAgB,CAE7C;IAED,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,UAAU,CAAkD;IAEvD,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAchH;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;OAIG;IACU,eAAe,CACxB,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAYjC;;;;OAIG;IACU,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAgBnF;;;;;;;OAOG;IACU,2BAA2B,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAkB5F;;;;OAIG;IACU,4BAA4B,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAkB7F;;;OAGG;IACU,sBAAsB,CAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAMlC,iDAAiD;IACjD,IAAW,OAAO,IAAI,wBAAwB,EAAE,CAE/C;IAED,6FAA6F;IACtF,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS;IAI1E;;;;;;OAMG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAIrD;;;;OAIG;WACW,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIvD,wEAAwE;IACjE,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI;IAIpF;;;;;;;;;;;;;;;;OAgBG;IACU,gBAAgB,CACzB,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC;IAOhB;;;;;;;;;OASG;IACU,gBAAgB,CAAC,MAAM,GAAE,qBAA0B,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAkDlG;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAMjC"}
|