jmapcloud-ng-core-types 2.0.1 → 2.0.6-qa.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jmapcloud-ng-core-types",
3
- "version": "2.0.1",
3
+ "version": "2.0.6-qa.4",
4
4
  "description": "JMap Cloud specific version of JMap Cloud NG Core types and interfaces",
5
5
  "main": "index.js",
6
6
  "types": "ambient.d.ts",
package/public/core.d.ts CHANGED
@@ -139,7 +139,7 @@ export {}
139
139
  *
140
140
  * After being loaded, the **NG Core** library is accessible through the namespace **JMap** in the javascript console. For example :
141
141
  * ```ts
142
- * // returns the JMap Cloud NG Core version.
142
+ * // returns the JMap Cloud NG package version.
143
143
  * JMap.getVersion()
144
144
  * ```
145
145
  */
@@ -147,11 +147,11 @@ export namespace JMap {
147
147
  /**
148
148
  * **JMap.getVersion**
149
149
  *
150
- * Returns the JMap Cloud NG Core library build version.
150
+ * Returns the JMap Cloud NG npm package version.
151
151
  *
152
152
  * @example
153
153
  * ```ts
154
- * // returns the build version, for example "1.0.1"
154
+ * // returns the package version, for example "2.0.5-qa.10"
155
155
  * JMap.getVersion()
156
156
  * ```
157
157
  */
@@ -159,13 +159,11 @@ export namespace JMap {
159
159
  /**
160
160
  * **JMap.getApiVersion**
161
161
  *
162
- * Returns the JMap Cloud NG Core library API (typescript interfaces) version.
163
- *
164
- * For the same API version, multiple implementation versions can exist.
162
+ * Returns the JMap Cloud NG npm package version.
165
163
  *
166
164
  * @example
167
165
  * ```ts
168
- * // returns the API version, for example "1.0.1"
166
+ * // returns the package version, for example "2.0.5-qa.10"
169
167
  * JMap.getApiVersion()
170
168
  * ```
171
169
  */
@@ -5806,14 +5804,7 @@ export namespace JMap {
5806
5804
  /**
5807
5805
  * **JMap.Project.getMapUnit**
5808
5806
  *
5809
- * Returns the project map unit.
5810
- *
5811
- * @throws if no project is loaded
5812
- * @example
5813
- * ```ts
5814
- * // return "meters", or "kilometers", or "miles", or "yards"...
5815
- * JMap.Project.getMapUnit()
5816
- * ```
5807
+ * @deprecated Use {@link getDefaultDistanceUnit} instead. mapUnit has been removed from projects. Always returns "meters".
5817
5808
  */
5818
5809
  function getMapUnit(): JMAP_DISTANCE_UNITS
5819
5810
  /**
@@ -31,11 +31,9 @@ export interface JProjectServerExtension {
31
31
  version: string
32
32
  }
33
33
 
34
- export interface JProject extends Omit<McsComponents["schemas"]["LocalizedProjectDTO"], "mapUnit" | "distanceUnit" | "displayUnit" | "initialExtent" | "maximumExtent" | "terrain"> {
34
+ export interface JProject extends Omit<McsComponents["schemas"]["LocalizedProjectDTO"], "distanceUnit" | "initialExtent" | "maximumExtent" | "terrain"> {
35
35
  defaultLanguage: LOCALES
36
- mapUnit: JMAP_DISTANCE_UNITS
37
36
  distanceUnit: JMAP_DISTANCE_UNITS
38
- displayUnit: JMAP_DISTANCE_UNITS
39
37
  initialExtent: JBounds | null
40
38
  maximumExtent: JBounds | null
41
39
  terrain?: JTerrainSpecification
@@ -16,100 +16,42 @@ export type JWindow = globalThis.Window & {
16
16
  }
17
17
 
18
18
  /**
19
- * This section is about the JMAP Library startup options.
19
+ * Startup options for JMap Cloud NG.
20
20
  *
21
- * JMap library executable is available through a CDN url.
21
+ * Set `window.JMAP_OPTIONS` before loading the JMap Cloud NG script. The same
22
+ * package can start with the full interface (`ui: "full"`, the default) or with
23
+ * a minimal interface (`ui: "minimal"`).
22
24
  *
23
- * The URL is like "https://cdn.jsdelivr.net/npm/jmap-core-js@0.5.0/public/",
24
- * but it depends on the version you want to use.
25
- *
26
- * First you need to import our JS file in your http file, in order to load the JMap Cloud NG Core library.
27
- * It's recommended to put the CDN import at the end of the body tag, like that :
28
25
  * ```html
29
- * ...
30
26
  * <html>
31
- * ...
32
27
  * <body>
33
- * ...
34
- * <!-- !!! Insert the import at the end of the body tag !!! -->
35
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/"></script>
36
- * </body>
37
- * </html>
38
- * ```
39
- * To make the JMap Cloud NG Core library working you need to provide some required information like :
40
- *
41
- * - Your JMap Server Rest API URL
42
- * - The project id to open
43
- * - A valid JMap user session token, **or** set the JMap Cloud NG Core library to log as "anonymous"
44
- *
45
- * It can be passed by setting a global JS variable named "JMAP_OPTIONS" :
46
- *
47
- * ```html
48
- * <html>
49
- * <body>
50
- * <script type="text/javascript">
51
- * window.JMAP_OPTIONS = {
52
- * // a valid project id
53
- * projectId: 10,
54
- * // a valid JMap server Rest url
55
- * restBaseUrl: "http://my-jmap-server/services/rest/v2.0",
56
- * session: {
57
- * // a valid session token
58
- * token: 2345677654
59
- * }
60
- * ... // other optional JMAP params
61
- * }
62
- * </script>
63
- * ... your web page
64
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/"></script>
65
- * </body>
66
- * </html>
67
- * ```
68
- *
69
- * Below a full example of how to start the JMap library in a web page,
70
- * where parameters ***ngToken*** and ***ngProjectId*** are get from the url :
71
- * ```html
72
- * <!DOCTYPE html>
73
- * <html>
74
- * <head>
75
- * <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
76
- * <meta charset="UTF-8">
77
- * </head>
78
- * <body class="jmap_wrapper">
79
- * <script type="text/javascript">
80
- * const url = new URL(window.location.href)
81
- * const token = url.searchParams.get("ngToken")
82
- * let projectId = Number(url.searchParams.get("ngProjectId"))
83
- * if (isNaN(projectId)) {
84
- * projectId = 0
85
- * }
28
+ * <script>
86
29
  * window.JMAP_OPTIONS = {
87
- * projectId: Number(projectId),
88
- * restBaseUrl: "http://your-jmap-server-url/services/rest/v2.0",
89
- * token: token
30
+ * restBaseUrl: "https://api.example.com",
31
+ * ui: "minimal",
32
+ * projectId: "my-project-id",
33
+ * organizationId: "my-organization-id",
34
+ * anonymous: true
90
35
  * }
91
36
  * </script>
92
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/index.js">
93
- * </script>
37
+ * <script defer src="https://cdn.jsdelivr.net/npm/jmapcloud-ng@x.x.x/public/index.js"></script>
94
38
  * </body>
95
39
  * </html>
96
40
  * ```
97
41
  *
98
- * For example, you can pass this parameters like that :
99
- * - **http:// my-company/my-custom-page-using-jmap?ngToken=95423672742&ngProjectId=10**.
100
- *
101
- * When JMap Cloud NG Core library starts, if the **JMap token "*95423672742*"** is valid, it will automatically load
102
- * the **JMap project id=*10***, then load the map in the **div id="*jmap-map*"**.
42
+ * `restBaseUrl` is required. It must point to the JMap Cloud API used by this
43
+ * NG instance. Project and authentication options depend on the integration:
44
+ * a page can open a known project directly, start anonymously for a public
45
+ * project, or rely on the normal interactive authentication flow.
103
46
  */
104
47
  export interface JCoreOptions {
105
48
  /**
106
- * The JMap project id.
49
+ * The JMap Cloud project id to open at startup.
107
50
  *
108
- * If both a project id and a project name are provided, project id will be used.
51
+ * If both a project id and a project name are provided, the project id is used.
109
52
  *
110
- * If no project name or id are set, the library will do noting, you will have a blank page.
111
- *
112
- * So if you want the library to load the project automatically, you need to set the project id.
53
+ * If no project name or id is set, NG starts without automatically opening a
54
+ * project. The full UI can still let the user choose a project when available.
113
55
  *
114
56
  * ```html
115
57
  * <html>
@@ -129,15 +71,15 @@ export interface JCoreOptions {
129
71
  */
130
72
  projectId?: JId
131
73
  /**
132
- * A JMap project name.
133
- *
134
- * If you can prefer using the project id over the name.
74
+ * The JMap Cloud project name to open at startup.
135
75
  *
136
- * If both a project id and a project name are provided, project id will be used.
76
+ * Prefer using `projectId` when possible because names are not guaranteed to
77
+ * be stable.
137
78
  *
138
- * If no project name or id are set, the library will do noting, you will have a blank page.
79
+ * If both a project id and a project name are provided, the project id is used.
139
80
  *
140
- * So if you want the library to load the project automatically, you need to set the project name (or id).
81
+ * If no project name or id is set, NG starts without automatically opening a
82
+ * project. The full UI can still let the user choose a project when available.
141
83
  *
142
84
  * ```html
143
85
  * <html>
@@ -157,9 +99,9 @@ export interface JCoreOptions {
157
99
  */
158
100
  projectName?: string
159
101
  /**
160
- * If provided this function will be processed when the list of projects is received from the server :
102
+ * Called when the project list is received from the JMap Cloud API.
161
103
  *
162
- * the event receives a JProjectAllEventParams object
104
+ * The event receives a `JProjectAllEventParams` object.
163
105
  *
164
106
  * ```html
165
107
  * <html>
@@ -181,11 +123,12 @@ export interface JCoreOptions {
181
123
  */
182
124
  onProjectsChange?(params: JProjectAllEventParams): void
183
125
  /**
184
- * By default project thumbnails are not loaded, because they are not useful if JMap Cloud NG Core lib is used alone.
126
+ * By default, project thumbnails are not loaded because they are only needed
127
+ * when the integration displays project choices.
185
128
  *
186
- * To load asynchronously project thumbnails, set startup option "loadProjectThumbnails" to true.
129
+ * To load project thumbnails asynchronously, set `loadProjectThumbnails` to true.
187
130
  *
188
- * JMap Cloud NG Core lib will load all project thumbnails (or preview) in project objects (property "base64ImageThumbnail").
131
+ * NG will load project thumbnails into the `base64ImageThumbnail` property.
189
132
  *
190
133
  * The thumbnail is stored as a base64 string image, that you can use to set an img src attribute directly.
191
134
  *
@@ -214,11 +157,12 @@ export interface JCoreOptions {
214
157
  */
215
158
  loadProjectThumbnails?: boolean
216
159
  /**
217
- * The JMap Server Rest API url.
160
+ * The JMap Cloud API base URL.
218
161
  *
219
- * Default value is : http://localhost:8080/services/rest/v2.0 (for test only).
162
+ * This option is required. There is no default value because a JMap Cloud NG
163
+ * instance can be embedded from a page hosted on a different domain than the
164
+ * API it must call.
220
165
  *
221
- * If your are not testing you must provide the url of your JMap REST API :
222
166
  * ```html
223
167
  * <html>
224
168
  * ...
@@ -226,8 +170,7 @@ export interface JCoreOptions {
226
170
  * <script type="text/javascript">
227
171
  * window.JMAP_OPTIONS = {
228
172
  * ...
229
- * // a valid JMap REST Api url
230
- * restBaseUrl: "http://my-custom-jmap-server-url/services/rest/v2.0"
173
+ * restBaseUrl: "https://api.example.com"
231
174
  * }
232
175
  * </script>
233
176
  * ...
@@ -237,13 +180,9 @@ export interface JCoreOptions {
237
180
  */
238
181
  restBaseUrl?: string
239
182
  /**
240
- *
241
- * "***anonymous***" must be specified together with a valid {@link JCoreOptions.organizationId}, otherwise it will not be taken into account
242
- *
243
- * If the project you access can be accessed anonymously,
244
- * you are not forced to pass a session token but you have
245
- * to explicitly tell the JMap Cloud NG library to log as an anonymous
246
- * user by setting the "***anonymous***" parameter like that :
183
+ * If the selected project is public, NG can start an anonymous session.
184
+ * `anonymous` must be specified together with a valid
185
+ * {@link JCoreOptions.organizationId}, otherwise it is ignored.
247
186
  *
248
187
  * ```html
249
188
  * <html>
@@ -251,34 +190,33 @@ export interface JCoreOptions {
251
190
  * <body>
252
191
  * <script type="text/javascript">
253
192
  * window.JMAP_OPTIONS = {
254
- * // a valid project id
255
- * projectId: 10,
256
- * // a valid JMap Server Rest url
257
- * restBaseUrl: "http://my-jmap-server/services/rest/v2.0",
258
- * // The anonymous parameter
193
+ * restBaseUrl: "https://api.example.com",
194
+ * projectId: "my-project-id",
195
+ * organizationId: "my-organization-id",
259
196
  * anonymous: true
260
- * // The organization id
261
- * organizationId: "some-valid-id"
262
- * ... // other optional JMAP params
263
197
  * }
264
198
  * </script>
265
199
  *
266
200
  * ... your web page
267
201
  *
268
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/"></script>
202
+ * <script defer src="https://cdn.jsdelivr.net/npm/jmapcloud-ng@x.x.x/public/index.js"></script>
269
203
  * </body>
270
204
  * </html>
271
205
  * ```
272
206
  */
273
207
  anonymous?: boolean
274
208
  /**
275
- * The default authentication method in NG is now using an oAuth2 setup. This allows sharing session with JMap Cloud's Portal.
209
+ * Enables the legacy refresh-token authentication flow.
276
210
  *
277
- * However, if for technical reasons you need to revert to a REST API-based technique of authentication, you can do it by setting ***legacyAuthentication*** to "true".
211
+ * By default, JMap Cloud NG uses the configured OAuth2 authentication flow so
212
+ * it can share a browser session with the JMap Cloud portal.
278
213
  *
279
- * {@link JCoreOptions.anonymous} has precedence over ***legacyAuthentication***.
214
+ * Use `legacyAuthentication: true` only for integrations that still need the
215
+ * refresh-token based flow. {@link JCoreOptions.anonymous} has precedence over
216
+ * `legacyAuthentication`.
280
217
  *
281
- * If you specify a {@link JCoreOptions.token}, ***legacyAuthentication*** will automatically be activated. This may change in the future.
218
+ * Specifying {@link JCoreOptions.token} automatically enables legacy
219
+ * authentication. This may change in the future.
282
220
  *
283
221
  * ```html
284
222
  * <html>
@@ -286,137 +224,74 @@ export interface JCoreOptions {
286
224
  * <body>
287
225
  * <script type="text/javascript">
288
226
  * window.JMAP_OPTIONS = {
289
- * // a valid project id
227
+ * restBaseUrl: "https://api.example.com",
290
228
  * projectId: "<project-uuid>",
291
- * // a valid JMap Cloud Rest url
292
- * restBaseUrl: "http://my-jmap-server/",
293
- * // The legacyAuthentication parameter
294
229
  * legacyAuthentication: true
295
- * ... // other optional JMAP params
296
230
  * }
297
231
  * </script>
298
232
  *
299
233
  * ... your web page
300
234
  *
301
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/"></script>
235
+ * <script defer src="https://cdn.jsdelivr.net/npm/jmapcloud-ng@x.x.x/public/index.js"></script>
302
236
  * </body>
303
237
  * </html>
304
238
  * ```
305
239
  */
306
240
  legacyAuthentication?: boolean
307
241
  /**
308
- * A JMap user's session refresh token.
242
+ * A JMap Cloud refresh token for the legacy authentication flow.
309
243
  *
310
- * If you want to open a session automatically without user interaction and you don't use the library anonymously
311
- * (see the ***{@link JCoreOptions.anonymous}*** parameter in this section), you must provide a JMap Cloud refresh
312
- * token to the JMap library to initialize the user session.
244
+ * Prefer the default OAuth2 authentication flow for new integrations. Use this
245
+ * option only when your integration already obtains a refresh token and needs
246
+ * to open a session without user interaction.
313
247
  *
314
248
  * A refresh token can be used only once.
315
249
  *
316
- * Specifying ***token*** will automatically activate {@link JCoreOptions.legacyAuthentication}
317
- *
318
- * To get a refresh token, you can use the JMap Rest API on your JMap Cloud Server.
319
- * See [JMap.User.setToken](../functions/JMap_Cloud_NG_Core___API.JMap.User.setToken.html) for detailed examples on how to fetch a token through JMap's REST API.
250
+ * Specifying `token` automatically activates {@link JCoreOptions.legacyAuthentication}.
320
251
  *
321
- * So to start the library using the fetched token you can configure your startup options like this :
322
252
  * ```html
323
253
  * <html>
324
254
  * ...
325
255
  * <body>
326
256
  * <script type="text/javascript">
327
257
  * window.JMAP_OPTIONS = {
328
- * token: "some-valid-refresh-token"
258
+ * restBaseUrl: "https://api.example.com",
259
+ * token: "some-valid-refresh-token",
260
+ * organizationId: "my-organization-id"
329
261
  * }
330
262
  * </script>
331
263
  * ...
332
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/"></script>
264
+ * <script defer src="https://cdn.jsdelivr.net/npm/jmapcloud-ng@x.x.x/public/index.js"></script>
333
265
  * </body>
334
266
  * </html>
335
267
  * ```
336
- *
337
- * If you don't want to make an AJAX call to the REST API, you can use the JMap library to login (JMap will make the AJAX call to the rest API). You have to wait for the lib to be loaded and the server to be ready to accept requests.
338
- *
339
- * To know if the lib has been loaded you can check if the JMAp namespace exists or not. See below for an example:
340
- *
341
- * ```html
342
- * <!DOCTYPE html>
343
- * <html>
344
- * ...
345
- * <body class="jmap_wrapper">
346
- * <script type="text/javascript">
347
- * console.log("JMap", window.JMap)
348
- * window.JMAP_OPTIONS = {
349
- * projectId: 35,
350
- * restBaseUrl: "https://jmap7dev.jmaponline.net/services/rest/v2.0",
351
- * map: {
352
- * zoom: 9.757829447748511,
353
- * center: {
354
- * x: -73.66415865898597,
355
- * y: 45.53583011032552
356
- * }
357
- * }
358
- * }
359
- * </script>
360
- * ...
361
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/index.js"></script>
362
- * <script>
363
- * (function jmapLogin() {
364
- * if (window.hasOwnProperty("JMap") && JMap.Server.isReady()) {
365
- * JMap.User.login("jdo@company.com", "xxx")
366
- * } else {
367
- * console.log("Waiting for the JMap lib to be loaded ...")
368
- * setTimeout(() => jmapLogin(), 150) // check every 150 milliseconds
369
- * }
370
- * })()
371
- * </script>
372
- * </body>
373
- * </html>
374
- * ```
375
- *
376
268
  */
377
269
  token?: string
378
270
  /**
379
- * The JMap Cloud organization id associated with the refresh token.
380
- *
381
- * For JMap CLoud only. Only taken into account if a refresh token has been passed via the {@link JCoreOptions.token} startup option (or the equivalent hash parameter version)
382
- * ***or*** if the "anonymous" option has been passed, together with a project id.
271
+ * The JMap Cloud organization id associated with the session.
383
272
  *
384
- * You can pass this organization id to open a session on JMap Cloud via the startup options.
385
- *
386
- * A typical usage for a session opening:
387
- * ```html
388
- * <html>
389
- * ...
390
- * <body>
391
- * <script type="text/javascript">
392
- * window.JMAP_OPTIONS = {
393
- * token: "v1.MRq [.....] Rehef72YWws", // a refresh token
394
- * organizationId: "my-organization-id"
395
- * }
396
- * </script>
397
- * ...
398
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/"></script>
399
- * </body>
400
- * </html>
401
- * ```
273
+ * This option is required when using {@link JCoreOptions.token}. It is also
274
+ * required when using {@link JCoreOptions.anonymous} with a public project.
402
275
  *
403
- * A typical usage for a JMap Cloud public project:
276
+ * A typical usage for a public project:
404
277
  * ```html
405
278
  * <html>
406
279
  * ...
407
280
  * <body>
408
281
  * <script type="text/javascript">
409
282
  * window.JMAP_OPTIONS = {
283
+ * restBaseUrl: "https://api.example.com",
410
284
  * anonymous: true,
411
285
  * projectId: "my-project-id",
412
286
  * organizationId: "my-organization-id"
413
287
  * }
414
288
  * </script>
415
289
  * ...
416
- * <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/jmap-core-js@x.x.x/public/"></script>
290
+ * <script defer src="https://cdn.jsdelivr.net/npm/jmapcloud-ng@x.x.x/public/index.js"></script>
417
291
  * </body>
418
292
  * </html>
419
- * ``` */
293
+ * ```
294
+ */
420
295
  organizationId?: string
421
296
  /**
422
297
  * By default the geolocation service is enabled.
@@ -448,7 +323,7 @@ export interface JCoreOptions {
448
323
  /**
449
324
  * Optional extensions.
450
325
  *
451
- * Click {@link JCoreExtension} to get details about how defining an extension.
326
+ * See {@link JCoreExtension} for extension configuration details.
452
327
  */
453
328
  extensions?: JCoreExtension[]
454
329
  /**
@@ -462,37 +337,30 @@ export interface JCoreOptions {
462
337
  */
463
338
  locale?: string
464
339
  /**
465
- * Call when the JMap library is loaded
340
+ * Called when JMap Cloud NG is loaded.
466
341
  */
467
342
  onReady?: () => void
468
343
  /**
469
- * As a developer, you can override a project's extension jsUrl during development.
470
- *
471
- * Ex: the extension having id="custom-extension" is set on the project. Its unique identifier is:
472
- * * for JMap Server: `serverExtensionId` = "my.extention.classPath"
473
- * * for JMap Cloud: `jmapCloudExtensionUrn` = "949079ff-d021-45dd-93c0-611bfcebfc2b"
344
+ * Overrides a project's extension `jsUrl` during development.
474
345
  *
475
- * Its jsUrl is "https://cdn.jsdelivr.net/npm/custom-extension@1.0.10/public/index.js"
346
+ * Use this when a project references a published extension but you want NG to
347
+ * load your local development build instead.
476
348
  *
477
- * During development, you need to be able to load your local code instead of the code located at the extension's jsUrl location.
349
+ * Example: the project references an extension whose JMap Cloud extension URN is
350
+ * `"949079ff-d021-45dd-93c0-611bfcebfc2b"`, and whose published `jsUrl` is
351
+ * `"https://cdn.jsdelivr.net/npm/custom-extension@1.0.10/public/index.js"`.
478
352
  *
479
- * Your local development code could for instance be available at: "https://localhost:8083/build/index.js".
353
+ * Your local development build could be available at
354
+ * `"https://localhost:8083/build/index.js"`.
480
355
  *
481
- * In order to change the extension jsUrl dynamically, you can set your `JMAP_OPTIONS.extensionsUrlOverride` property like this:
482
- *
483
- * For JMAp Server:
484
- * [{
485
- * extensionUniqueIdentifier: "my.extention.classPath",
486
- * jsUrl: "https://localhost:8083/build/index.js"
487
- * }]
356
+ * You can then set `JMAP_OPTIONS.extensionsUrlOverride` like this:
488
357
  *
489
- * For JMap Cloud:
358
+ * ```javascript
490
359
  * [{
491
360
  * extensionUniqueIdentifier: "949079ff-d021-45dd-93c0-611bfcebfc2b",
492
361
  * jsUrl: "https://localhost:8083/build/index.js"
493
362
  * }]
494
- *
495
- *
363
+ * ```
496
364
  */
497
365
  extensionsUrlOverride?: JExtensionServerOverride[]
498
366
  /**
@@ -500,31 +368,18 @@ export interface JCoreOptions {
500
368
  * startup option (`"full"` | `"minimal"`) or the `?ngUi=` URL parameter instead. Kept
501
369
  * for source compatibility and will be removed in a future major version.
502
370
  *
503
- * Previously: setting this to `true` suppressed NG Core's built-in main layout
371
+ * Previously: setting this to `true` suppressed the built-in boot shell
504
372
  * (loader, login panel, project selection panel).
505
373
  */
506
374
  hideMainLayout?: boolean
507
375
  /**
508
- * Selects which UI shell ng renders on top of the always-loaded core map.
376
+ * Selects which UI shell NG renders on top of the map runtime.
509
377
  *
510
378
  * - `"full"` (default) loads the full NG side-panel UI as a lazy chunk.
511
- * - `"minimal"` boots only the core map and skips the full-UI chunk entirely.
379
+ * - `"minimal"` boots the map runtime and skips the full-UI chunk entirely.
512
380
  *
513
381
  * Equivalent to the `?ngUi=full|minimal` URL parameter (also accepted as `#ngUi=…`); this
514
382
  * option wins when both are set.
515
383
  */
516
384
  ui?: "full" | "minimal"
517
- /**
518
- * Test-only: pin the AppShell to a specific boot stage so containment / visual specs
519
- * can drive every pre-app surface deterministically without sequencing a real boot.
520
- *
521
- * Accepted values: `"connecting" | "login" | "orgs" | "projects" | "openingProject" |
522
- * "chunkError" | "error.serverInfo" | "error.anonymousLogin"`.
523
- *
524
- * Also accepts a `?__bootStage=<stage>` URL query parameter (useful for iframe
525
- * scenarios where `JMAP_OPTIONS` is set inside the framed document). This is
526
- * wired up exclusively for the rendering-tests harness; do not set it in any
527
- * production boot.
528
- */
529
- testBootStageOverride?: string
530
385
  }
package/public/state.d.ts CHANGED
@@ -193,4 +193,5 @@ export interface JServerState extends JServerInfo {
193
193
  isReady: boolean
194
194
  isLoading: boolean
195
195
  hasLoadingError: boolean
196
+ missingRestBaseUrl: boolean
196
197
  }