@flighthq/geolocation 0.3.1-next.975.01aea94 → 0.4.0-edge.1908.751021c

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.
@@ -1,14 +1,19 @@
1
+ import type { BackendExplanation } from '@flighthq/types/contract';
1
2
  import type { GeolocationBackend, GeolocationErrorReason, GeolocationPermissionState, GeolocationRequestOptions, GeoPosition, GeoPositionResult } from '@flighthq/types/contract';
2
3
  export declare function clearGeolocationWatch(id: number): void;
3
4
  export declare function createGeoPosition(): GeoPosition;
4
5
  export declare function createWebGeolocationBackend(): GeolocationBackend;
6
+ export declare function explainGeolocationBackend(): BackendExplanation;
5
7
  export declare function getCurrentGeoPosition(options?: Readonly<GeolocationRequestOptions>): Promise<GeoPosition | null>;
6
8
  export declare function getCurrentGeoPositionResult(options?: Readonly<GeolocationRequestOptions>): Promise<GeoPositionResult>;
7
9
  export declare function getGeolocationBackend(): GeolocationBackend;
8
10
  export declare function getGeolocationPermission(): Promise<GeolocationPermissionState>;
11
+ export declare function installGeolocationHostBackend(backend: GeolocationBackend): void;
9
12
  export declare function isGeolocationAvailable(): boolean;
13
+ export declare function observeGeolocationHostResult(operation: string, succeeded: boolean): void;
10
14
  export declare function onGeolocationPermissionChange(listener: (state: GeolocationPermissionState) => void): () => void;
11
15
  export declare function requestGeolocationPermission(): Promise<boolean>;
16
+ export declare function resetGeolocationBackendForTest(): void;
12
17
  export declare function setGeolocationBackend(backend: GeolocationBackend | null): void;
13
18
  export declare function watchGeolocationPosition(handler: (position: Readonly<GeoPosition>) => void, options?: Readonly<GeolocationRequestOptions>, onError?: (reason: GeolocationErrorReason) => void): number;
14
19
  //# sourceMappingURL=geolocation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.d.ts","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,EACX,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtD;AAGD,wBAAgB,iBAAiB,IAAI,WAAW,CAY/C;AAKD,wBAAgB,2BAA2B,IAAI,kBAAkB,CA4GhE;AAGD,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAEhH;AAID,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAErH;AAGD,wBAAgB,qBAAqB,IAAI,kBAAkB,CAG1D;AAKD,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAE9E;AAID,wBAAgB,sBAAsB,IAAI,OAAO,CAIhD;AAKD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAAG,MAAM,IAAI,CAE/G;AAGD,wBAAgB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAE/D;AAGD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAE9E;AAKD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,EAClD,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAC7C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,GACjD,MAAM,CAER"}
1
+ {"version":3,"file":"geolocation.d.ts","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,EACX,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAY/C;AAKD,wBAAgB,2BAA2B,IAAI,kBAAkB,CA4GhE;AAED,wBAAgB,yBAAyB,IAAI,kBAAkB,CAa9D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAEhH;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAErH;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAE9E;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAM/E;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAIhD;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAKxF;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAAG,MAAM,IAAI,CAE/G;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAE/D;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAKrD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAE9E;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,EAClD,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAC7C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,GACjD,MAAM,CAER"}
@@ -1,8 +1,6 @@
1
- // Cancels an active position watch. No-op when the id is unknown or the backend lacks watching.
2
1
  export function clearGeolocationWatch(id) {
3
2
  getGeolocationBackend().clearWatch(id);
4
3
  }
5
- // Allocates a zeroed GeoPosition; use as a scratch value or when building a backend.
6
4
  export function createGeoPosition() {
7
5
  return {
8
6
  accuracy: 0,
@@ -125,29 +123,40 @@ export function createWebGeolocationBackend() {
125
123
  },
126
124
  };
127
125
  }
128
- // Resolves the device's current position, or null when access is denied or unavailable.
126
+ export function explainGeolocationBackend() {
127
+ if (_custom !== null) {
128
+ return { conflict: _hostConflict, layer: 'custom', operation: null, viability: 'unobserved' };
129
+ }
130
+ if (_host !== null) {
131
+ return {
132
+ conflict: _hostConflict,
133
+ layer: 'host',
134
+ operation: _hostObservation !== null ? _hostObservation.operation : null,
135
+ viability: _hostObservation !== null ? _hostObservation.viability : 'unobserved',
136
+ };
137
+ }
138
+ return { conflict: false, layer: 'host-not-enabled', operation: null, viability: 'unobserved' };
139
+ }
129
140
  export function getCurrentGeoPosition(options) {
130
141
  return getGeolocationBackend().getCurrentPosition(options ?? _emptyOptions);
131
142
  }
132
- // Resolves a GeoPositionResult carrying both the position and the error reason on failure.
133
- // Use when the caller needs to distinguish denied / unavailable / timeout rather than just null.
134
143
  export function getCurrentGeoPositionResult(options) {
135
144
  return getGeolocationBackend().getCurrentPositionResult(options ?? _emptyOptions);
136
145
  }
137
- // The active geolocation backend, or a lazily-created web default. There is always a backend.
138
146
  export function getGeolocationBackend() {
139
- if (_backend === null)
140
- _backend = createWebGeolocationBackend();
141
- return _backend;
147
+ return _custom ?? _host ?? _sentinel;
142
148
  }
143
- // Resolves the current permission state without triggering a user prompt.
144
- // Returns 'granted', 'denied', or 'prompt' (the user has not yet been asked).
145
- // Falls back to 'prompt' when the Permissions API is absent.
146
149
  export function getGeolocationPermission() {
147
150
  return getGeolocationBackend().getPermission();
148
151
  }
149
- // Returns true when the geolocation capability is available in the current context. Synchronous;
150
- // does not trigger a permission prompt. False on insecure context, jsdom, or missing navigator.
152
+ export function installGeolocationHostBackend(backend) {
153
+ if (_host !== null) {
154
+ if (_host !== backend)
155
+ _hostConflict = true;
156
+ return;
157
+ }
158
+ _host = backend;
159
+ }
151
160
  export function isGeolocationAvailable() {
152
161
  if (typeof navigator === 'undefined')
153
162
  return false;
@@ -155,29 +164,57 @@ export function isGeolocationAvailable() {
155
164
  return false;
156
165
  return typeof navigator.geolocation !== 'undefined' && navigator.geolocation !== null;
157
166
  }
158
- // Subscribes to geolocation permission state changes. Invokes listener whenever the OS changes the
159
- // permission (e.g., the user revokes access in Settings mid-session). Returns an unsubscribe
160
- // function. No-op subscription when the Permissions API is absent.
167
+ export function observeGeolocationHostResult(operation, succeeded) {
168
+ _hostObservation = {
169
+ operation,
170
+ viability: succeeded ? 'available' : 'runtime-api-unavailable',
171
+ };
172
+ }
161
173
  export function onGeolocationPermissionChange(listener) {
162
174
  return getGeolocationBackend().subscribePermission(listener);
163
175
  }
164
- // Requests location permission. Resolves true when granted, false when denied or unavailable.
165
176
  export function requestGeolocationPermission() {
166
177
  return getGeolocationBackend().requestPermission();
167
178
  }
168
- // Installs a native host geolocation backend; pass null to fall back to the web default.
179
+ export function resetGeolocationBackendForTest() {
180
+ _custom = null;
181
+ _host = null;
182
+ _hostConflict = false;
183
+ _hostObservation = null;
184
+ }
169
185
  export function setGeolocationBackend(backend) {
170
- _backend = backend;
186
+ _custom = backend;
171
187
  }
172
- // Starts a position watch, invoking handler on each update. Returns the watch id, or -1 when
173
- // watching is unavailable. Pair with clearGeolocationWatch.
174
- // Pass onError to receive ongoing failure reasons (e.g., permission revoked mid-watch).
175
188
  export function watchGeolocationPosition(handler, options, onError) {
176
189
  return getGeolocationBackend().watchPosition(handler, options ?? _emptyOptions, onError);
177
190
  }
178
- let _backend = null;
191
+ let _custom = null;
192
+ let _host = null;
193
+ let _hostConflict = false;
194
+ let _hostObservation = null;
179
195
  const _emptyOptions = {};
180
196
  const _noopUnsubscribe = () => { };
197
+ const _sentinel = {
198
+ clearWatch() { },
199
+ getCurrentPosition() {
200
+ return Promise.resolve(null);
201
+ },
202
+ getCurrentPositionResult() {
203
+ return Promise.resolve({ position: null, reason: 'unavailable' });
204
+ },
205
+ getPermission() {
206
+ return Promise.resolve('prompt');
207
+ },
208
+ requestPermission() {
209
+ return Promise.resolve(false);
210
+ },
211
+ subscribePermission() {
212
+ return _noopUnsubscribe;
213
+ },
214
+ watchPosition() {
215
+ return -1;
216
+ },
217
+ };
181
218
  function getWebGeolocation() {
182
219
  if (typeof navigator === 'undefined')
183
220
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../src/geolocation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { clearGeolocationWatch, createGeoPosition, getCurrentGeoPosition, getCurrentGeoPositionResult, getGeolocationPermission, isGeolocationAvailable, onGeolocationPermissionChange, requestGeolocationPermission, watchGeolocationPosition, } from './contract';
1
+ export { explainGeolocationBackend, clearGeolocationWatch, createGeoPosition, getCurrentGeoPosition, getCurrentGeoPositionResult, getGeolocationPermission, isGeolocationAvailable, onGeolocationPermissionChange, requestGeolocationPermission, watchGeolocationPosition, } from './contract';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { clearGeolocationWatch, createGeoPosition, getCurrentGeoPosition, getCurrentGeoPositionResult, getGeolocationPermission, isGeolocationAvailable, onGeolocationPermissionChange, requestGeolocationPermission, watchGeolocationPosition, } from './contract';
1
+ export { explainGeolocationBackend, clearGeolocationWatch, createGeoPosition, getCurrentGeoPosition, getCurrentGeoPositionResult, getGeolocationPermission, isGeolocationAvailable, onGeolocationPermissionChange, requestGeolocationPermission, watchGeolocationPosition, } from './contract';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/geolocation",
3
- "version": "0.3.1-next.975.01aea94",
3
+ "version": "0.4.0-edge.1908.751021c",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,7 +38,7 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/types": "0.3.1-next.975.01aea94"
41
+ "@flighthq/types": "0.4.0-edge.1908.751021c"
42
42
  },
43
43
  "devDependencies": {
44
44
  "typescript": "^5.3.0"
@@ -18,6 +18,10 @@ import {
18
18
  requestGeolocationPermission,
19
19
  setGeolocationBackend,
20
20
  watchGeolocationPosition,
21
+ explainGeolocationBackend,
22
+ installGeolocationHostBackend,
23
+ observeGeolocationHostResult,
24
+ resetGeolocationBackendForTest,
21
25
  } from './geolocation';
22
26
 
23
27
  function fakeBackend(): GeolocationBackend & { cleared: number[]; lastWatch: number } {
@@ -157,6 +161,34 @@ describe('createWebGeolocationBackend', () => {
157
161
  });
158
162
  });
159
163
 
164
+ describe('explainGeolocationBackend', () => {
165
+ afterEach(() => resetGeolocationBackendForTest());
166
+
167
+ it('reports host-not-enabled when no backend is installed', () => {
168
+ resetGeolocationBackendForTest();
169
+ const explanation = explainGeolocationBackend();
170
+ expect(explanation.layer).toBe('host-not-enabled');
171
+ expect(explanation.conflict).toBe(false);
172
+ expect(explanation.viability).toBe('unobserved');
173
+ });
174
+
175
+ it('reports custom layer when a custom backend is set', () => {
176
+ setGeolocationBackend(fakeBackend());
177
+ expect(explainGeolocationBackend().layer).toBe('custom');
178
+ });
179
+
180
+ it('reports host layer when a host backend is installed', () => {
181
+ installGeolocationHostBackend(fakeBackend());
182
+ expect(explainGeolocationBackend().layer).toBe('host');
183
+ });
184
+
185
+ it('reports conflict when two different host backends are installed', () => {
186
+ installGeolocationHostBackend(fakeBackend());
187
+ installGeolocationHostBackend(fakeBackend());
188
+ expect(explainGeolocationBackend().conflict).toBe(true);
189
+ });
190
+ });
191
+
160
192
  describe('getCurrentGeoPosition', () => {
161
193
  it('returns the backend position', async () => {
162
194
  setGeolocationBackend(fakeBackend());
@@ -206,6 +238,25 @@ describe('getGeolocationPermission', () => {
206
238
  });
207
239
  });
208
240
 
241
+ describe('installGeolocationHostBackend', () => {
242
+ afterEach(() => resetGeolocationBackendForTest());
243
+
244
+ it('installs a host backend that getGeolocationBackend returns', () => {
245
+ const backend = fakeBackend();
246
+ installGeolocationHostBackend(backend);
247
+ expect(getGeolocationBackend()).toBe(backend);
248
+ });
249
+
250
+ it('is first-host-wins: a second different backend sets conflict', () => {
251
+ const first = fakeBackend();
252
+ const second = fakeBackend();
253
+ installGeolocationHostBackend(first);
254
+ installGeolocationHostBackend(second);
255
+ expect(getGeolocationBackend()).toBe(first);
256
+ expect(explainGeolocationBackend().conflict).toBe(true);
257
+ });
258
+ });
259
+
209
260
  describe('isGeolocationAvailable', () => {
210
261
  it('returns a boolean', () => {
211
262
  expect(typeof isGeolocationAvailable()).toBe('boolean');
@@ -217,6 +268,24 @@ describe('isGeolocationAvailable', () => {
217
268
  });
218
269
  });
219
270
 
271
+ describe('observeGeolocationHostResult', () => {
272
+ afterEach(() => resetGeolocationBackendForTest());
273
+
274
+ it('records a successful observation', () => {
275
+ installGeolocationHostBackend(fakeBackend());
276
+ observeGeolocationHostResult('clearWatch', true);
277
+ const explanation = explainGeolocationBackend();
278
+ expect(explanation.operation).toBe('clearWatch');
279
+ expect(explanation.viability).toBe('available');
280
+ });
281
+
282
+ it('records a failed observation', () => {
283
+ installGeolocationHostBackend(fakeBackend());
284
+ observeGeolocationHostResult('clearWatch', false);
285
+ expect(explainGeolocationBackend().viability).toBe('runtime-api-unavailable');
286
+ });
287
+ });
288
+
220
289
  describe('onGeolocationPermissionChange', () => {
221
290
  it('returns an unsubscribe function', () => {
222
291
  const unsubscribe = onGeolocationPermissionChange(() => {});
@@ -253,6 +322,18 @@ describe('requestGeolocationPermission', () => {
253
322
  });
254
323
  });
255
324
 
325
+ describe('resetGeolocationBackendForTest', () => {
326
+ it('clears all backend slots', () => {
327
+ setGeolocationBackend(fakeBackend());
328
+ installGeolocationHostBackend(fakeBackend());
329
+ observeGeolocationHostResult('clearWatch', true);
330
+ resetGeolocationBackendForTest();
331
+ expect(explainGeolocationBackend().layer).toBe('host-not-enabled');
332
+ expect(explainGeolocationBackend().conflict).toBe(false);
333
+ expect(explainGeolocationBackend().viability).toBe('unobserved');
334
+ });
335
+ });
336
+
256
337
  describe('setGeolocationBackend', () => {
257
338
  it('clears back to the web fallback when passed null', () => {
258
339
  setGeolocationBackend(fakeBackend());