@memberjunction/core-entities 5.24.0 → 5.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/engines/FileStorageEngine.d.ts +21 -5
  2. package/dist/engines/FileStorageEngine.d.ts.map +1 -1
  3. package/dist/engines/FileStorageEngine.js +24 -4
  4. package/dist/engines/FileStorageEngine.js.map +1 -1
  5. package/dist/engines/GeoDataEngine.d.ts +141 -0
  6. package/dist/engines/GeoDataEngine.d.ts.map +1 -0
  7. package/dist/engines/GeoDataEngine.js +425 -0
  8. package/dist/engines/GeoDataEngine.js.map +1 -0
  9. package/dist/engines/InstanceConfigEngine.d.ts +105 -0
  10. package/dist/engines/InstanceConfigEngine.d.ts.map +1 -0
  11. package/dist/engines/InstanceConfigEngine.js +198 -0
  12. package/dist/engines/InstanceConfigEngine.js.map +1 -0
  13. package/dist/engines/SearchEngineBase.d.ts +76 -0
  14. package/dist/engines/SearchEngineBase.d.ts.map +1 -0
  15. package/dist/engines/SearchEngineBase.js +141 -0
  16. package/dist/engines/SearchEngineBase.js.map +1 -0
  17. package/dist/engines/UserInfoEngine.d.ts +15 -1
  18. package/dist/engines/UserInfoEngine.d.ts.map +1 -1
  19. package/dist/engines/UserInfoEngine.js +45 -0
  20. package/dist/engines/UserInfoEngine.js.map +1 -1
  21. package/dist/engines/artifacts.d.ts +13 -0
  22. package/dist/engines/artifacts.d.ts.map +1 -1
  23. package/dist/engines/artifacts.js +25 -0
  24. package/dist/engines/artifacts.js.map +1 -1
  25. package/dist/generated/entity_subclasses.d.ts +1653 -71
  26. package/dist/generated/entity_subclasses.d.ts.map +1 -1
  27. package/dist/generated/entity_subclasses.js +2476 -123
  28. package/dist/generated/entity_subclasses.js.map +1 -1
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +3 -0
  32. package/dist/index.js.map +1 -1
  33. package/package.json +6 -5
@@ -8,24 +8,28 @@ export interface StorageAccountWithProvider {
8
8
  provider: MJFileStorageProviderEntity;
9
9
  }
10
10
  /**
11
- * FileStorageEngine provides centralized, cached access to file storage accounts and providers.
11
+ * FileStorageEngineBase provides centralized, cached access to file storage accounts and providers.
12
12
  * This engine eliminates redundant database calls by caching the data and making it available
13
- * across the application.
13
+ * across the application. It is safe to use on both client and server — it only deals with
14
+ * cached metadata, not file I/O.
15
+ *
16
+ * For server-side file operations (upload, download, driver initialization), use the
17
+ * `FileStorageEngine` class from `@memberjunction/storage` which wraps this base via containment.
14
18
  *
15
19
  * Usage:
16
20
  * ```typescript
17
- * const engine = FileStorageEngine.Instance;
21
+ * const engine = FileStorageEngineBase.Instance;
18
22
  * await engine.Config(false); // Use cached data if available
19
23
  * const accounts = engine.AccountsWithProviders;
20
24
  * ```
21
25
  */
22
- export declare class FileStorageEngine extends BaseEngine<FileStorageEngine> {
26
+ export declare class FileStorageEngineBase extends BaseEngine<FileStorageEngineBase> {
23
27
  /**
24
28
  * Returns the global instance of the class. This is a singleton class, so there is only
25
29
  * one instance of it in the application. Do not directly create new instances of it,
26
30
  * always use this method to get the instance.
27
31
  */
28
- static get Instance(): FileStorageEngine;
32
+ static get Instance(): FileStorageEngineBase;
29
33
  private _accounts;
30
34
  private _providers;
31
35
  /**
@@ -61,6 +65,18 @@ export declare class FileStorageEngine extends BaseEngine<FileStorageEngine> {
61
65
  * @returns The provider entity or undefined if not found
62
66
  */
63
67
  GetProviderById(providerId: string): MJFileStorageProviderEntity | undefined;
68
+ /**
69
+ * Gets a file storage account by its name (case-insensitive).
70
+ * @param name - The name of the account to find
71
+ * @returns The account entity or undefined if not found
72
+ */
73
+ GetAccountByName(name: string): MJFileStorageAccountEntity | undefined;
74
+ /**
75
+ * Gets file storage accounts linked to a given provider ID.
76
+ * @param providerId - The provider ID to match against account.ProviderID
77
+ * @returns Array of matching accounts (may be empty)
78
+ */
79
+ GetAccountsByProviderID(providerId: string): MJFileStorageAccountEntity[];
64
80
  /**
65
81
  * Gets a storage account with its provider details by account ID
66
82
  * @param accountId - The ID of the account to find
@@ -1 +1 @@
1
- {"version":3,"file":"FileStorageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,0BAA0B,CAAC;IACpC,QAAQ,EAAE,2BAA2B,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IAChE;;;;OAIG;IACH,WAAkB,QAAQ,IAAI,iBAAiB,CAE9C;IAED,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAqC;IAEvD;;;;;OAKG;IACU,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhH;;OAEG;IACH,IAAW,QAAQ,IAAI,0BAA0B,EAAE,CAElD;IAED;;;OAGG;IACH,IAAW,SAAS,IAAI,2BAA2B,EAAE,CAEpD;IAED;;;OAGG;IACH,IAAW,qBAAqB,IAAI,0BAA0B,EAAE,CAW/D;IAMD;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAIhF;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAInF;;;;OAIG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI;CAOtF"}
1
+ {"version":3,"file":"FileStorageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,0BAA0B,CAAC;IACpC,QAAQ,EAAE,2BAA2B,CAAC;CACzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;IACxE;;;;OAIG;IACH,WAAkB,QAAQ,IAAI,qBAAqB,CAElD;IAED,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAqC;IAEvD;;;;;OAKG;IACU,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhH;;OAEG;IACH,IAAW,QAAQ,IAAI,0BAA0B,EAAE,CAElD;IAED;;;OAGG;IACH,IAAW,SAAS,IAAI,2BAA2B,EAAE,CAEpD;IAED;;;OAGG;IACH,IAAW,qBAAqB,IAAI,0BAA0B,EAAE,CAW/D;IAMD;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAIhF;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAInF;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAI7E;;;;OAIG;IACI,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAIhF;;;;OAIG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI;CAOtF"}
@@ -1,18 +1,22 @@
1
1
  import { BaseEngine } from "@memberjunction/core";
2
2
  import { UUIDsEqual } from "@memberjunction/global";
3
3
  /**
4
- * FileStorageEngine provides centralized, cached access to file storage accounts and providers.
4
+ * FileStorageEngineBase provides centralized, cached access to file storage accounts and providers.
5
5
  * This engine eliminates redundant database calls by caching the data and making it available
6
- * across the application.
6
+ * across the application. It is safe to use on both client and server — it only deals with
7
+ * cached metadata, not file I/O.
8
+ *
9
+ * For server-side file operations (upload, download, driver initialization), use the
10
+ * `FileStorageEngine` class from `@memberjunction/storage` which wraps this base via containment.
7
11
  *
8
12
  * Usage:
9
13
  * ```typescript
10
- * const engine = FileStorageEngine.Instance;
14
+ * const engine = FileStorageEngineBase.Instance;
11
15
  * await engine.Config(false); // Use cached data if available
12
16
  * const accounts = engine.AccountsWithProviders;
13
17
  * ```
14
18
  */
15
- export class FileStorageEngine extends BaseEngine {
19
+ export class FileStorageEngineBase extends BaseEngine {
16
20
  constructor() {
17
21
  super(...arguments);
18
22
  this._accounts = [];
@@ -100,6 +104,22 @@ export class FileStorageEngine extends BaseEngine {
100
104
  GetProviderById(providerId) {
101
105
  return this.Providers.find(p => UUIDsEqual(p.ID, providerId));
102
106
  }
107
+ /**
108
+ * Gets a file storage account by its name (case-insensitive).
109
+ * @param name - The name of the account to find
110
+ * @returns The account entity or undefined if not found
111
+ */
112
+ GetAccountByName(name) {
113
+ return this.Accounts.find(a => a.Name?.trim().toLowerCase() === name.trim().toLowerCase());
114
+ }
115
+ /**
116
+ * Gets file storage accounts linked to a given provider ID.
117
+ * @param providerId - The provider ID to match against account.ProviderID
118
+ * @returns Array of matching accounts (may be empty)
119
+ */
120
+ GetAccountsByProviderID(providerId) {
121
+ return this.Accounts.filter(a => UUIDsEqual(a.ProviderID, providerId));
122
+ }
103
123
  /**
104
124
  * Gets a storage account with its provider details by account ID
105
125
  * @param accountId - The ID of the account to find
@@ -1 +1 @@
1
- {"version":3,"file":"FileStorageEngine.js","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileStorageEngine.js","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { BaseEngine, IMetadataProvider, UserInfo } from "@memberjunction/core";
2
+ import { MJCountryEntity, MJStateProvinceEntity } from "../generated/entity_subclasses.js";
3
+ /**
4
+ * Result of a point-in-polygon resolution.
5
+ */
6
+ export interface GeoPointResolution {
7
+ /** The matched country, if any */
8
+ Country: MJCountryEntity | undefined;
9
+ /** The matched state/province, if any */
10
+ State: MJStateProvinceEntity | undefined;
11
+ }
12
+ /**
13
+ * GeoDataEngine provides cached, in-memory access to Country and StateProvince
14
+ * reference data. Loaded once at startup via @RegisterForStartup, all lookups
15
+ * are O(1) via pre-built Maps keyed by common lookup patterns.
16
+ *
17
+ * Usage:
18
+ * ```typescript
19
+ * const engine = GeoDataEngine.Instance;
20
+ * const country = engine.GetCountryByISO2('US');
21
+ * const state = engine.GetStateByCode('US-country-id', 'CO');
22
+ * ```
23
+ */
24
+ export declare class GeoDataEngine extends BaseEngine<GeoDataEngine> {
25
+ static get Instance(): GeoDataEngine;
26
+ private _countries;
27
+ private _stateProvinces;
28
+ private _countriesByISO2;
29
+ private _countriesByISO3;
30
+ private _countriesByName;
31
+ private _countriesById;
32
+ private _statesByCountryAndCode;
33
+ private _statesByCountryAndName;
34
+ private _statesById;
35
+ private _countryGeometries;
36
+ private _stateGeometries;
37
+ /** Maps countryId → array of state geometries for that country */
38
+ private _stateGeometriesByCountry;
39
+ Config(forceRefresh?: boolean, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void>;
40
+ protected AdditionalLoading(_contextUser?: UserInfo): Promise<void>;
41
+ get Countries(): MJCountryEntity[];
42
+ get StateProvinces(): MJStateProvinceEntity[];
43
+ GetCountryByISO2(iso2: string): MJCountryEntity | undefined;
44
+ GetCountryByISO3(iso3: string): MJCountryEntity | undefined;
45
+ GetCountryByName(name: string): MJCountryEntity | undefined;
46
+ GetCountryById(id: string): MJCountryEntity | undefined;
47
+ /**
48
+ * Resolve a country from a text value that could be a name, ISO2, or ISO3 code.
49
+ * Tries ISO2 first (most common), then ISO3, then name match.
50
+ */
51
+ ResolveCountry(value: string): MJCountryEntity | undefined;
52
+ /**
53
+ * Look up a state/province by its Code within a specific country.
54
+ * @param countryId - The country's UUID
55
+ * @param code - The state/province code (e.g., "CO", "ON", "NSW")
56
+ */
57
+ GetStateByCode(countryId: string, code: string): MJStateProvinceEntity | undefined;
58
+ /**
59
+ * Look up a state/province by its Name within a specific country.
60
+ * @param countryId - The country's UUID
61
+ * @param name - The state/province name (e.g., "Colorado", "Ontario")
62
+ */
63
+ GetStateByName(countryId: string, name: string): MJStateProvinceEntity | undefined;
64
+ GetStateById(id: string): MJStateProvinceEntity | undefined;
65
+ /**
66
+ * Resolve a state/province from a text value within a country.
67
+ * Tries code first, then name match.
68
+ */
69
+ ResolveState(countryId: string, value: string): MJStateProvinceEntity | undefined;
70
+ /**
71
+ * Resolve a lat/lng coordinate to its containing country and state/province
72
+ * using point-in-polygon testing against cached BoundaryGeoJSON data.
73
+ * No text matching — purely geometric.
74
+ *
75
+ * @param lat - Latitude (-90 to 90)
76
+ * @param lng - Longitude (-180 to 180)
77
+ * @returns The matched country and state/province, or undefined for each if no match
78
+ */
79
+ ResolvePointToLocation(lat: number, lng: number): GeoPointResolution;
80
+ /**
81
+ * Resolve a lat/lng coordinate to its containing country.
82
+ * Uses bounding-box pre-filtering then ray-casting point-in-polygon.
83
+ */
84
+ ResolvePointToCountry(lat: number, lng: number): MJCountryEntity | undefined;
85
+ /**
86
+ * Resolve a lat/lng coordinate to its containing state/province within a known country.
87
+ * If countryId is not provided, resolves the country first.
88
+ */
89
+ ResolvePointToState(lat: number, lng: number, countryId?: string): MJStateProvinceEntity | undefined;
90
+ /**
91
+ * Batch-resolve multiple lat/lng points in parallel.
92
+ * Each point is resolved independently — ideal for choropleth grouping.
93
+ *
94
+ * @param points - Array of {lat, lng} coordinates
95
+ * @returns Array of GeoPointResolution in the same order as input
96
+ */
97
+ ResolvePoints(points: {
98
+ lat: number;
99
+ lng: number;
100
+ }[]): GeoPointResolution[];
101
+ /**
102
+ * Test if a point falls inside a CachedGeometry (bbox pre-filter + ray-casting).
103
+ */
104
+ private pointInCachedGeometry;
105
+ /**
106
+ * Check if a point is inside a bounding box.
107
+ * BBox format: [minLng, minLat, maxLng, maxLat]
108
+ */
109
+ private pointInBBox;
110
+ /**
111
+ * Ray-casting point-in-polygon for a polygon with rings.
112
+ * First ring is the outer boundary (must be inside).
113
+ * Subsequent rings are holes (must NOT be inside).
114
+ */
115
+ private pointInPolygonRings;
116
+ /**
117
+ * Ray-casting algorithm: cast a horizontal ray from the point eastward,
118
+ * count how many polygon edges it crosses. Odd = inside.
119
+ * Coordinates are [lng, lat] pairs (GeoJSON convention).
120
+ */
121
+ private rayCast;
122
+ /**
123
+ * Parse all BoundaryGeoJSON data and build indexed geometry caches.
124
+ * Called once during AdditionalLoading after entities are loaded.
125
+ */
126
+ private buildGeometryCaches;
127
+ /**
128
+ * Parse a BoundaryGeoJSON value into a CachedGeometry.
129
+ * Supports GeoJSON Feature, Polygon, and MultiPolygon types.
130
+ * Returns null if the boundary is missing or unparseable.
131
+ */
132
+ private parseEntityBoundary;
133
+ /**
134
+ * Parse a single Polygon's coordinate rings and compute its bounding box.
135
+ * GeoJSON Polygon coordinates: [ outerRing, ...holeRings ]
136
+ * Each ring is an array of [lng, lat] pairs.
137
+ */
138
+ private parsePolygonCoordinates;
139
+ private buildLookupMaps;
140
+ }
141
+ //# sourceMappingURL=GeoDataEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoDataEngine.d.ts","sourceRoot":"","sources":["../../src/engines/GeoDataEngine.ts"],"names":[],"mappings":"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"}