@unisim/sdk 0.142.5 → 0.142.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -0
- package/dist/CompanyMenu.d.ts +13 -1
- package/dist/CompanyMenu.d.ts.map +1 -1
- package/dist/CompanyMenu.js +3 -2
- package/dist/CompanyMenu.js.map +1 -1
- package/dist/SuiteSwitcher.d.ts.map +1 -1
- package/dist/SuiteSwitcher.js +54 -5
- package/dist/SuiteSwitcher.js.map +1 -1
- package/dist/UniversalNavBar.d.ts +11 -1
- package/dist/UniversalNavBar.d.ts.map +1 -1
- package/dist/UniversalNavBar.js +10 -3
- package/dist/UniversalNavBar.js.map +1 -1
- package/dist/UserProfile.d.ts.map +1 -1
- package/dist/UserProfile.js +17 -5
- package/dist/UserProfile.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sessionStorage.d.ts +12 -0
- package/dist/sessionStorage.d.ts.map +1 -1
- package/dist/sessionStorage.js +23 -0
- package/dist/sessionStorage.js.map +1 -1
- package/dist/suiteApps.d.ts +73 -0
- package/dist/suiteApps.d.ts.map +1 -1
- package/dist/suiteApps.js +123 -2
- package/dist/suiteApps.js.map +1 -1
- package/package.json +3 -1
package/dist/suiteApps.js
CHANGED
|
@@ -31,8 +31,13 @@
|
|
|
31
31
|
// Both lists are therefore copies of this one, in formats that cannot import
|
|
32
32
|
// it. That is the thing to distrust: see `tests/suite-apps.mjs`, which fails if
|
|
33
33
|
// they drift.
|
|
34
|
+
//
|
|
35
|
+
// The tail of this file answers the other half of the same question — where to
|
|
36
|
+
// GET a suite app you have not got. It hangs off the same registry because the
|
|
37
|
+
// two are one decision per row: launch it, offer it, or leave the web link
|
|
38
|
+
// alone. See "You haven't got this one" below.
|
|
34
39
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
35
|
-
import { isNativeShell, capacitorPlugin } from './sessionStorage.js';
|
|
40
|
+
import { isNativeShell, capacitorPlugin, capacitorPlatform } from './sessionStorage.js';
|
|
36
41
|
/**
|
|
37
42
|
* Every suite product that has a native build, and only those.
|
|
38
43
|
*
|
|
@@ -76,7 +81,12 @@ import { isNativeShell, capacitorPlugin } from './sessionStorage.js';
|
|
|
76
81
|
* could even ask whether it was installed.
|
|
77
82
|
*/
|
|
78
83
|
export const SUITE_NATIVE_APPS = [
|
|
79
|
-
|
|
84
|
+
// iOS and Android ids differ: the iOS target is `…ergoassess` (ios/project.yml,
|
|
85
|
+
// and the live App Store listing), Android `…ergoassesscapture`. Until
|
|
86
|
+
// 2026-09-15 this said `…ergoassesscapture` for both, so
|
|
87
|
+
// add-suite-app-links.mjs could not recognise Ergo's own plist and would have
|
|
88
|
+
// rewritten it WITHOUT its own scheme on the next run.
|
|
89
|
+
{ id: 'ergo_assess', scheme: 'unisim-ergo-assess', iosBundleId: 'com.universalsimulation.ergoassess', androidPackage: 'com.universalsimulation.ergoassesscapture', appStoreId: '6811535068' },
|
|
80
90
|
{ id: 'cyber_assess', scheme: 'unisim-cyber-assess', iosBundleId: 'uk.co.unisim.cyberassess', androidPackage: 'uk.co.unisim.cyberassess' },
|
|
81
91
|
{ id: 'workplace_assess', scheme: 'unisim-workplace-assess', iosBundleId: 'uk.co.unisim.wfhassess', androidPackage: 'uk.co.unisim.wfhassess' },
|
|
82
92
|
{ id: 'fire_assess', scheme: 'unisim-fire-assess', iosBundleId: 'uk.co.unisim.fireassess', androidPackage: 'uk.co.unisim.fireassess' },
|
|
@@ -190,4 +200,115 @@ export async function openSuiteApp(id) {
|
|
|
190
200
|
return false;
|
|
191
201
|
}
|
|
192
202
|
}
|
|
203
|
+
// ── "You haven't got this one" ───────────────────────────────────────────────
|
|
204
|
+
//
|
|
205
|
+
// The other half of the same question. `installedSuiteApps` answers which
|
|
206
|
+
// sibling apps are on the device; everything below is for the ones that are
|
|
207
|
+
// not, on a device that could install them.
|
|
208
|
+
//
|
|
209
|
+
// ⚠️ **The two store URLs per platform are not interchangeable, and picking the
|
|
210
|
+
// wrong one reproduces the exact bug this whole module exists to avoid.** An
|
|
211
|
+
// `https://apps.apple.com/…` link tapped inside a Capacitor webview loads the
|
|
212
|
+
// App Store's *web page* in that webview — the website, inside the app the
|
|
213
|
+
// person was already in. The `itms-apps:` / `market:` schemes cannot do that:
|
|
214
|
+
// they are not http(s), so Capacitor's navigation delegate hands them to the
|
|
215
|
+
// OS instead of loading them, on both platforms. In a real browser the https
|
|
216
|
+
// forms are the right ones — they deep-link into the store app when it is
|
|
217
|
+
// there and render a usable page when it is not (a desktop, or a locked-down
|
|
218
|
+
// device with no store).
|
|
219
|
+
//
|
|
220
|
+
// So: scheme URL in the shell, https URL on the web. Neither is a fallback for
|
|
221
|
+
// the other.
|
|
222
|
+
/**
|
|
223
|
+
* Which mobile platform's store this device can be sent to, or null.
|
|
224
|
+
*
|
|
225
|
+
* Null covers every desktop browser and anything we cannot place — and null
|
|
226
|
+
* means *show nothing*, never "guess iOS". A store chip on a Linux desktop is
|
|
227
|
+
* not a small cosmetic miss: it is an offer to install software the machine
|
|
228
|
+
* cannot run.
|
|
229
|
+
*
|
|
230
|
+
* ⚠️ **iPadOS lies in the user-agent string.** Since iPadOS 13 Safari reports
|
|
231
|
+
* `Macintosh; Intel Mac OS X`, identical to a desktop Mac, and the only thing
|
|
232
|
+
* that separates them is the touch screen — hence the `maxTouchPoints` arm. A
|
|
233
|
+
* Mac with a drawing tablet plugged in can report >1 here, which would offer a
|
|
234
|
+
* desktop an iOS store link; that is the accepted cost of not failing every
|
|
235
|
+
* iPad, and it is why the check is `> 1` rather than `> 0`.
|
|
236
|
+
*/
|
|
237
|
+
export function suiteStorePlatform() {
|
|
238
|
+
// The shell knows for certain; ask it before reading any string.
|
|
239
|
+
const native = capacitorPlatform();
|
|
240
|
+
if (native)
|
|
241
|
+
return native;
|
|
242
|
+
if (typeof navigator === 'undefined')
|
|
243
|
+
return null;
|
|
244
|
+
const ua = navigator.userAgent || '';
|
|
245
|
+
if (/android/i.test(ua))
|
|
246
|
+
return 'android';
|
|
247
|
+
if (/iPad|iPhone|iPod/.test(ua))
|
|
248
|
+
return 'ios';
|
|
249
|
+
if (/Macintosh/.test(ua) && (navigator.maxTouchPoints ?? 0) > 1)
|
|
250
|
+
return 'ios';
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Where to get `id` on this device, or null when there is nowhere to send
|
|
255
|
+
* anyone.
|
|
256
|
+
*
|
|
257
|
+
* Null is the answer far more often than not, and every one of these is a
|
|
258
|
+
* deliberate no-offer rather than a gap to fill in later:
|
|
259
|
+
*
|
|
260
|
+
* • the product has no native build at all (not in {@link SUITE_NATIVE_APPS})
|
|
261
|
+
* • this device is not a phone or tablet we can name
|
|
262
|
+
* • the listing is not live yet on *this* platform — `appStoreId` unset, or
|
|
263
|
+
* `playListed` false. The two ship weeks apart in practice, so an app can
|
|
264
|
+
* be honestly offerable on one platform and not the other.
|
|
265
|
+
*
|
|
266
|
+
* ⚠️ **Callers must not offer this to someone who already has the app.** It
|
|
267
|
+
* takes no view on that — `installedSuiteApps()` is the one that knows, and
|
|
268
|
+
* sending an existing user to a store page reading "Open" is a worse tap than
|
|
269
|
+
* the website link it replaced.
|
|
270
|
+
*/
|
|
271
|
+
export function suiteAppStore(id) {
|
|
272
|
+
const app = suiteNativeApp(id);
|
|
273
|
+
if (!app)
|
|
274
|
+
return null;
|
|
275
|
+
const platform = suiteStorePlatform();
|
|
276
|
+
if (!platform)
|
|
277
|
+
return null;
|
|
278
|
+
return suiteStoreUrl(app, platform, isNativeShell());
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* The URL half of {@link suiteAppStore}, with the two environment questions
|
|
282
|
+
* (which platform, in a shell or not) passed in rather than sniffed.
|
|
283
|
+
*
|
|
284
|
+
* Split out to be testable. The four URL shapes below are the part of this
|
|
285
|
+
* module most likely to be quietly wrong — they cannot be checked by reading,
|
|
286
|
+
* only by construction, and three of the four are unreachable from a node test
|
|
287
|
+
* that has to sniff its own environment and correctly finds nothing. Exported
|
|
288
|
+
* for the same reason the launch helpers are: a product putting the offer
|
|
289
|
+
* behind its own affordance already knows its platform.
|
|
290
|
+
*/
|
|
291
|
+
export function suiteStoreUrl(app, platform, inShell) {
|
|
292
|
+
if (platform === 'ios') {
|
|
293
|
+
if (!app.appStoreId)
|
|
294
|
+
return null;
|
|
295
|
+
return {
|
|
296
|
+
name: 'App Store',
|
|
297
|
+
// No country segment: Apple resolves the visitor's own storefront, and a
|
|
298
|
+
// hard-coded `/gb/` would send everyone outside the UK to a page that
|
|
299
|
+
// tells them the app is unavailable in their region.
|
|
300
|
+
url: inShell
|
|
301
|
+
? `itms-apps://itunes.apple.com/app/id${app.appStoreId}`
|
|
302
|
+
: `https://apps.apple.com/app/id${app.appStoreId}`,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
if (!app.playListed)
|
|
306
|
+
return null;
|
|
307
|
+
return {
|
|
308
|
+
name: 'Google Play',
|
|
309
|
+
url: inShell
|
|
310
|
+
? `market://details?id=${app.androidPackage}`
|
|
311
|
+
: `https://play.google.com/store/apps/details?id=${app.androidPackage}`,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
193
314
|
//# sourceMappingURL=suiteApps.js.map
|
package/dist/suiteApps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suiteApps.js","sourceRoot":"","sources":["../src/suiteApps.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,sEAAsE;AACtE,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,0DAA0D;AAC1D,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,yEAAyE;AACzE,0EAA0E;AAC1E,+CAA+C;AAC/C,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,wEAAwE;AACxE,2EAA2E;AAC3E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,iDAAiD;AACjD,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,cAAc;AACd,iFAAiF;AAEjF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"suiteApps.js","sourceRoot":"","sources":["../src/suiteApps.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unisim/sdk",
|
|
3
|
-
"version": "0.142.
|
|
3
|
+
"version": "0.142.7",
|
|
4
4
|
"description": "Shared React SDK for the Universal Suite — auth, entitlements, usage telemetry, changelog, org admin.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Universal Simulation Ltd",
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"test:session-storage": "npm run build && node tests/session-storage.browser.mjs",
|
|
62
62
|
"test:shared-signout": "node tests/shared-signout.mjs",
|
|
63
63
|
"test:suite-apps": "npm run build && node tests/suite-apps.mjs",
|
|
64
|
+
"test:suite-store": "npm run build && node tests/suite-store.browser.mjs",
|
|
64
65
|
"test:suite-switcher": "npm run build && node tests/suite-switcher-close.browser.mjs",
|
|
65
66
|
"test:hover-click": "npm run build && node tests/hover-click.browser.mjs",
|
|
66
67
|
"test:multi-org": "npm run build && node tests/multi-org.mjs",
|
|
@@ -68,6 +69,7 @@
|
|
|
68
69
|
"test:about-credits": "npm run build && node tests/about-credits.browser.mjs",
|
|
69
70
|
"test:profile-menu-order": "npm run build && node tests/profile-menu-order.browser.mjs",
|
|
70
71
|
"test:delete-account": "npm run build && node tests/delete-account.browser.mjs",
|
|
72
|
+
"test:native-purchase-links": "npm run build && node tests/native-purchase-links.browser.mjs",
|
|
71
73
|
"test:reveal-on-expand": "npm run build && node tests/reveal-on-expand.browser.mjs",
|
|
72
74
|
"test:dropdown-scroll": "npm run build && node tests/dropdown-scroll.browser.mjs",
|
|
73
75
|
"test:about-authorship": "npm run build && node tests/about-authorship.browser.mjs",
|