@johnmorrisdotca/chikyu-earth 0.5.0 → 0.8.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.
- package/CHANGELOG.md +70 -0
- package/NOTICE.md +22 -0
- package/README.md +186 -27
- package/dist/countries.d.ts +11 -0
- package/dist/countries.js +11 -0
- package/dist/element.d.ts +18 -0
- package/dist/element.js +15 -2
- package/dist/globe.d.ts +15 -1
- package/dist/globe.js +15 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +12 -1
- package/dist/markers/cluster.d.ts +27 -0
- package/dist/markers/cluster.js +16 -0
- package/dist/markers/labels.d.ts +40 -0
- package/dist/markers/labels.js +18 -0
- package/dist/markers/layer.d.ts +80 -0
- package/dist/markers/layer.js +21 -0
- package/dist/markers/project.d.ts +63 -2
- package/dist/markers/project.js +52 -2
- package/dist/markers/types.d.ts +48 -3
- package/dist/realistic/earth.d.ts +30 -5
- package/dist/realistic/earth.js +41 -134
- package/dist/realistic/element.d.ts +47 -7
- package/dist/realistic/element.js +48 -44
- package/dist/realistic/gate.d.ts +45 -1
- package/dist/realistic/gate.js +33 -1
- package/dist/realistic/shaders.d.ts +9 -4
- package/dist/realistic/shaders.js +54 -9
- package/dist/realistic/shared.d.ts +23 -0
- package/dist/realistic/shared.js +51 -0
- package/dist/realistic/sun.d.ts +40 -3
- package/dist/realistic/sun.js +40 -3
- package/dist/realistic/textures.d.ts +43 -0
- package/dist/realistic/textures.js +141 -0
- package/dist/realistic/tiers.d.ts +80 -6
- package/dist/realistic/tiers.js +69 -5
- package/dist/rotate.d.ts +59 -4
- package/dist/rotate.js +59 -4
- package/dist/satellites/index.d.ts +3 -0
- package/dist/satellites/index.js +3 -0
- package/dist/satellites/limits.d.ts +22 -0
- package/dist/satellites/limits.js +23 -0
- package/dist/satellites/track.d.ts +50 -0
- package/dist/satellites/track.js +227 -0
- package/dist/satellites/types.d.ts +161 -0
- package/dist/satellites/types.js +3 -0
- package/dist/space/element.d.ts +179 -0
- package/dist/space/element.js +541 -0
- package/dist/space/ephemeris.d.ts +151 -0
- package/dist/space/ephemeris.js +162 -0
- package/dist/space/index.d.ts +3 -0
- package/dist/space/index.js +5 -0
- package/dist/space/satellite-layer.d.ts +53 -0
- package/dist/space/satellite-layer.js +230 -0
- package/dist/space/scale.d.ts +124 -0
- package/dist/space/scale.js +141 -0
- package/dist/space/scene.d.ts +146 -0
- package/dist/space/scene.js +320 -0
- package/dist/styles.d.ts +65 -2
- package/dist/styles.js +43 -2
- package/dist/textures/moon-1024.webp +0 -0
- package/dist/textures/moon-2048.webp +0 -0
- package/dist/types.d.ts +55 -5
- package/dist/view.d.ts +63 -4
- package/dist/view.js +52 -4
- package/package.json +71 -8
package/dist/styles.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The lines and fills of one look: colours and widths only, never the geometry.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { STYLES, type Style } from "@johnmorrisdotca/chikyu-earth";
|
|
7
|
+
*
|
|
8
|
+
* const thick: Style = STYLES.thick;
|
|
9
|
+
* console.log(thick.outline, thick.line);
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
1
12
|
export interface Style {
|
|
2
13
|
/** The colour of the outlines and the rim. */
|
|
3
14
|
line: string;
|
|
@@ -12,6 +23,16 @@ export interface Style {
|
|
|
12
23
|
/** Graticule width, in SVG units. */
|
|
13
24
|
graticule: number;
|
|
14
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* The looks the globe is drawn in, by name: `line` (thin outlines) and `thick`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { STYLES } from "@johnmorrisdotca/chikyu-earth";
|
|
32
|
+
*
|
|
33
|
+
* console.log(Object.keys(STYLES), STYLES.line.ocean);
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
15
36
|
export declare const STYLES: {
|
|
16
37
|
readonly line: {
|
|
17
38
|
readonly line: "#8fa1b8";
|
|
@@ -30,9 +51,51 @@ export declare const STYLES: {
|
|
|
30
51
|
readonly graticule: 0.5;
|
|
31
52
|
};
|
|
32
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* The name of a look: `"line"` or `"thick"`.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* import { globe, type StyleName } from "@johnmorrisdotca/chikyu-earth";
|
|
60
|
+
*
|
|
61
|
+
* const look: StyleName = "thick";
|
|
62
|
+
* console.log(globe({ style: look, size: 100 }).includes("stroke-width"));
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
33
65
|
export type StyleName = keyof typeof STYLES;
|
|
34
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* The style a drawing is in when none is named.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* import { DEFAULT_STYLE } from "@johnmorrisdotca/chikyu-earth";
|
|
72
|
+
*
|
|
73
|
+
* console.log(DEFAULT_STYLE);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
35
76
|
export declare const DEFAULT_STYLE: StyleName;
|
|
77
|
+
/**
|
|
78
|
+
* Every style's name, in the order they are listed.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* import { STYLE_NAMES } from "@johnmorrisdotca/chikyu-earth";
|
|
83
|
+
*
|
|
84
|
+
* console.log(STYLE_NAMES.join(", "));
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
36
87
|
export declare const STYLE_NAMES: StyleName[];
|
|
37
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* A value from outside (an attribute, a query parameter) as a style's name: the default for anything else.
|
|
90
|
+
*
|
|
91
|
+
* @param value - Anything.
|
|
92
|
+
* @returns A valid style name; {@link DEFAULT_STYLE} when `value` names none.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* import { cleanStyle } from "@johnmorrisdotca/chikyu-earth";
|
|
97
|
+
*
|
|
98
|
+
* console.log(cleanStyle("thick"), cleanStyle("neon"), cleanStyle(null));
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
38
101
|
export declare const cleanStyle: (value: unknown) => StyleName;
|
package/dist/styles.js
CHANGED
|
@@ -1,11 +1,52 @@
|
|
|
1
1
|
// The two looks the globe is drawn in, the same line colours as hako-devices and uchusen-rockets: one table entry each,
|
|
2
2
|
// a look changes lines and fills, never the geometry. Pure.
|
|
3
|
+
/**
|
|
4
|
+
* The looks the globe is drawn in, by name: `line` (thin outlines) and `thick`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { STYLES } from "@johnmorrisdotca/chikyu-earth";
|
|
9
|
+
*
|
|
10
|
+
* console.log(Object.keys(STYLES), STYLES.line.ocean);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
3
13
|
export const STYLES = {
|
|
4
14
|
line: { line: "#8fa1b8", ocean: "#0b1424", land: "#13203a", outline: 0.5, horizon: 1, graticule: 0.3 },
|
|
5
15
|
thick: { line: "#b4c2d4", ocean: "#0b1424", land: "#1a2b47", outline: 1.2, horizon: 2, graticule: 0.5 },
|
|
6
16
|
};
|
|
7
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* The style a drawing is in when none is named.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { DEFAULT_STYLE } from "@johnmorrisdotca/chikyu-earth";
|
|
23
|
+
*
|
|
24
|
+
* console.log(DEFAULT_STYLE);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
8
27
|
export const DEFAULT_STYLE = "line";
|
|
28
|
+
/**
|
|
29
|
+
* Every style's name, in the order they are listed.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { STYLE_NAMES } from "@johnmorrisdotca/chikyu-earth";
|
|
34
|
+
*
|
|
35
|
+
* console.log(STYLE_NAMES.join(", "));
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
9
38
|
export const STYLE_NAMES = Object.keys(STYLES);
|
|
10
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* A value from outside (an attribute, a query parameter) as a style's name: the default for anything else.
|
|
41
|
+
*
|
|
42
|
+
* @param value - Anything.
|
|
43
|
+
* @returns A valid style name; {@link DEFAULT_STYLE} when `value` names none.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { cleanStyle } from "@johnmorrisdotca/chikyu-earth";
|
|
48
|
+
*
|
|
49
|
+
* console.log(cleanStyle("thick"), cleanStyle("neon"), cleanStyle(null));
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
11
52
|
export const cleanStyle = (value) => typeof value === "string" && Object.hasOwn(STYLES, value) ? value : DEFAULT_STYLE;
|
|
Binary file
|
|
Binary file
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import type { StyleName } from "./styles.ts";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* What one country's outline carries: its English and Japanese name and its ISO alpha-2 code, all from kuni.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { countryList, type CountryProps } from "@johnmorrisdotca/chikyu-earth";
|
|
8
|
+
*
|
|
9
|
+
* const first: CountryProps | undefined = countryList()[0];
|
|
10
|
+
* console.log(first?.name, first?.alpha2);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
3
13
|
export interface CountryProps {
|
|
4
14
|
/** English name, from kuni (Natural Earth's own name where kuni has no entry). */
|
|
5
15
|
name: string;
|
|
@@ -8,7 +18,17 @@ export interface CountryProps {
|
|
|
8
18
|
/** ISO 3166-1 alpha-2 code, from kuni, or null where there is no code. */
|
|
9
19
|
alpha2: string | null;
|
|
10
20
|
}
|
|
11
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* What a shared view controller tells the globe: its turn (`yaw`, degrees), tip (`tilt`, degrees), zoom (1 is Fit) and pan (`panX` and `panY`, CSS pixels).
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { HOME_VIEW, type GlobeView } from "@johnmorrisdotca/chikyu-earth";
|
|
27
|
+
*
|
|
28
|
+
* const turned: GlobeView = { ...HOME_VIEW, yaw: 30 };
|
|
29
|
+
* console.log(turned);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
12
32
|
export interface GlobeView {
|
|
13
33
|
yaw: number;
|
|
14
34
|
tilt: number;
|
|
@@ -16,14 +36,44 @@ export interface GlobeView {
|
|
|
16
36
|
panX: number;
|
|
17
37
|
panY: number;
|
|
18
38
|
}
|
|
19
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* A point on the globe, in degrees: `lon` from -180 to 180 (east is positive), `lat` from -90 to 90 (north is positive).
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import type { GeoPoint } from "@johnmorrisdotca/chikyu-earth";
|
|
45
|
+
*
|
|
46
|
+
* const tokyo: GeoPoint = { lon: 139.7, lat: 35.7 };
|
|
47
|
+
* console.log(tokyo);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
20
50
|
export interface GeoPoint {
|
|
21
51
|
lon: number;
|
|
22
52
|
lat: number;
|
|
23
53
|
}
|
|
24
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* How the globe is turned: [lambda, phi] in degrees, the pair d3-geo's `rotate` takes.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* import { globe, type Rotation } from "@johnmorrisdotca/chikyu-earth";
|
|
60
|
+
*
|
|
61
|
+
* const rotation: Rotation = [-10, -30];
|
|
62
|
+
* console.log(globe({ rotation, size: 100 }).length > 1000);
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
25
65
|
export type Rotation = [lambda: number, phi: number];
|
|
26
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* What `globe()` may be asked.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* import { globe, type GlobeOptions } from "@johnmorrisdotca/chikyu-earth";
|
|
72
|
+
*
|
|
73
|
+
* const options: GlobeOptions = { size: 200, style: "thick", graticule: true, centre: { lon: 10, lat: 30 } };
|
|
74
|
+
* console.log(globe(options).startsWith("<svg"));
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
27
77
|
export interface GlobeOptions {
|
|
28
78
|
/** Width and height of the square SVG, in pixels. Default 320. */
|
|
29
79
|
size?: number;
|
package/dist/view.d.ts
CHANGED
|
@@ -1,14 +1,73 @@
|
|
|
1
1
|
import type { GeoPoint, GlobeView, Rotation } from "./types.ts";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* The view when it opens: the home centre, upright, at 1x with no pan.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { HOME_VIEW } from "@johnmorrisdotca/chikyu-earth";
|
|
8
|
+
*
|
|
9
|
+
* console.log(HOME_VIEW);
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
3
12
|
export declare const HOME_VIEW: GlobeView;
|
|
13
|
+
/**
|
|
14
|
+
* What d3-geo's orthographic projection is given for a view: its rotation, scale and translation.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { projectionView, type ProjectionView } from "@johnmorrisdotca/chikyu-earth";
|
|
19
|
+
*
|
|
20
|
+
* const view: ProjectionView = projectionView({ lon: 0, lat: 0 }, 400);
|
|
21
|
+
* console.log(view.scale, view.translate);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
4
24
|
export interface ProjectionView {
|
|
5
25
|
rotation: Rotation;
|
|
6
26
|
scale: number;
|
|
7
27
|
translate: [number, number];
|
|
8
28
|
}
|
|
9
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* The radius of an unzoomed globe in a square of `size` pixels.
|
|
31
|
+
*
|
|
32
|
+
* @param size - The width and height of the square, in pixels.
|
|
33
|
+
* @returns The radius in pixels, one less than half the size so the rim is not cut off.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { globeBaseScale } from "@johnmorrisdotca/chikyu-earth";
|
|
38
|
+
*
|
|
39
|
+
* console.log(globeBaseScale(420));
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
10
42
|
export declare const globeBaseScale: (size: number) => number;
|
|
11
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Where the view is centred on the globe: the home centre, turned by yaw (west) and tipped by tilt (north), held to the poles.
|
|
45
|
+
*
|
|
46
|
+
* @param centre - The home centre.
|
|
47
|
+
* @param view - The turn, tip, zoom and pan from the view controls.
|
|
48
|
+
* @returns The place now in the middle of the disc.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* import { lookAt } from "@johnmorrisdotca/chikyu-earth/realistic";
|
|
53
|
+
*
|
|
54
|
+
* console.log(lookAt({ lon: 10, lat: 80 }, { yaw: 25, tilt: 30, zoom: 1, panX: 0, panY: 0 }));
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
12
57
|
export declare const lookAt: (centre: GeoPoint, view: GlobeView) => GeoPoint;
|
|
13
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* What the projection is given for a view: yaw turns longitude, tilt tips latitude, zoom scales and pan moves the disc in CSS pixels.
|
|
60
|
+
*
|
|
61
|
+
* @param centre - The home centre.
|
|
62
|
+
* @param size - The width and height of the square the globe is drawn in, in pixels.
|
|
63
|
+
* @param view - The turn, tip, zoom and pan; the home view when left out.
|
|
64
|
+
* @returns The rotation, scale and translation for d3-geo's orthographic projection.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* import { projectionView } from "@johnmorrisdotca/chikyu-earth";
|
|
69
|
+
*
|
|
70
|
+
* console.log(projectionView({ lon: 139.7, lat: 35.7 }, 420, { yaw: 10, tilt: 5, zoom: 2, panX: 0, panY: 0 }));
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
14
73
|
export declare function projectionView(centre: GeoPoint, size: number, view?: GlobeView): ProjectionView;
|
package/dist/view.js
CHANGED
|
@@ -1,13 +1,61 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* The view when it opens: the home centre, upright, at 1x with no pan.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { HOME_VIEW } from "@johnmorrisdotca/chikyu-earth";
|
|
7
|
+
*
|
|
8
|
+
* console.log(HOME_VIEW);
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
2
11
|
export const HOME_VIEW = Object.freeze({ yaw: 0, tilt: 0, zoom: 1, panX: 0, panY: 0 });
|
|
3
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* The radius of an unzoomed globe in a square of `size` pixels.
|
|
14
|
+
*
|
|
15
|
+
* @param size - The width and height of the square, in pixels.
|
|
16
|
+
* @returns The radius in pixels, one less than half the size so the rim is not cut off.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { globeBaseScale } from "@johnmorrisdotca/chikyu-earth";
|
|
21
|
+
*
|
|
22
|
+
* console.log(globeBaseScale(420));
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
4
25
|
export const globeBaseScale = (size) => size / 2 - 1;
|
|
5
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Where the view is centred on the globe: the home centre, turned by yaw (west) and tipped by tilt (north), held to the poles.
|
|
28
|
+
*
|
|
29
|
+
* @param centre - The home centre.
|
|
30
|
+
* @param view - The turn, tip, zoom and pan from the view controls.
|
|
31
|
+
* @returns The place now in the middle of the disc.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { lookAt } from "@johnmorrisdotca/chikyu-earth/realistic";
|
|
36
|
+
*
|
|
37
|
+
* console.log(lookAt({ lon: 10, lat: 80 }, { yaw: 25, tilt: 30, zoom: 1, panX: 0, panY: 0 }));
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
6
40
|
export const lookAt = (centre, view) => ({
|
|
7
41
|
lon: centre.lon - view.yaw,
|
|
8
42
|
lat: Math.max(-90, Math.min(90, centre.lat + view.tilt)),
|
|
9
43
|
});
|
|
10
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* What the projection is given for a view: yaw turns longitude, tilt tips latitude, zoom scales and pan moves the disc in CSS pixels.
|
|
46
|
+
*
|
|
47
|
+
* @param centre - The home centre.
|
|
48
|
+
* @param size - The width and height of the square the globe is drawn in, in pixels.
|
|
49
|
+
* @param view - The turn, tip, zoom and pan; the home view when left out.
|
|
50
|
+
* @returns The rotation, scale and translation for d3-geo's orthographic projection.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* import { projectionView } from "@johnmorrisdotca/chikyu-earth";
|
|
55
|
+
*
|
|
56
|
+
* console.log(projectionView({ lon: 139.7, lat: 35.7 }, 420, { yaw: 10, tilt: 5, zoom: 2, panX: 0, panY: 0 }));
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
11
59
|
export function projectionView(centre, size, view = HOME_VIEW) {
|
|
12
60
|
return {
|
|
13
61
|
rotation: [-centre.lon + view.yaw, -centre.lat - view.tilt],
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@johnmorrisdotca/chikyu-earth",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Chikyu Earth
|
|
3
|
+
"version": "0.8.0",
|
|
4
|
+
"description": "Chikyu Earth 地球 — A line-drawn globe for the web: country outlines that turn at the Earth's own rate, centred on where you are, with an optional realistic Earth from space (three.js), the Sun, Moon and planets, satellites on their orbits, and markers for any place. A web component and an SVG string.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"earth",
|
|
7
7
|
"globe",
|
|
@@ -26,7 +26,18 @@
|
|
|
26
26
|
"markers",
|
|
27
27
|
"satellite-imagery",
|
|
28
28
|
"webgl",
|
|
29
|
-
"three"
|
|
29
|
+
"three",
|
|
30
|
+
"astronomy",
|
|
31
|
+
"solar-system",
|
|
32
|
+
"moon",
|
|
33
|
+
"planets",
|
|
34
|
+
"ephemeris",
|
|
35
|
+
"satellites",
|
|
36
|
+
"sgp4",
|
|
37
|
+
"orbits",
|
|
38
|
+
"iss",
|
|
39
|
+
"starlink",
|
|
40
|
+
"celestrak"
|
|
30
41
|
],
|
|
31
42
|
"homepage": "https://johnmorrisdotca.github.io/chikyu-earth/",
|
|
32
43
|
"repository": {
|
|
@@ -43,7 +54,9 @@
|
|
|
43
54
|
"./dist/element.js",
|
|
44
55
|
"./src/element.ts",
|
|
45
56
|
"./dist/realistic/element.js",
|
|
46
|
-
"./src/realistic/element.ts"
|
|
57
|
+
"./src/realistic/element.ts",
|
|
58
|
+
"./dist/space/element.js",
|
|
59
|
+
"./src/space/element.ts"
|
|
47
60
|
],
|
|
48
61
|
"main": "./dist/index.js",
|
|
49
62
|
"module": "./dist/index.js",
|
|
@@ -74,6 +87,21 @@
|
|
|
74
87
|
"import": "./dist/markers/index.js",
|
|
75
88
|
"default": "./dist/markers/index.js"
|
|
76
89
|
},
|
|
90
|
+
"./space": {
|
|
91
|
+
"types": "./dist/space/index.d.ts",
|
|
92
|
+
"import": "./dist/space/index.js",
|
|
93
|
+
"default": "./dist/space/index.js"
|
|
94
|
+
},
|
|
95
|
+
"./space/element": {
|
|
96
|
+
"types": "./dist/space/element.d.ts",
|
|
97
|
+
"import": "./dist/space/element.js",
|
|
98
|
+
"default": "./dist/space/element.js"
|
|
99
|
+
},
|
|
100
|
+
"./satellites": {
|
|
101
|
+
"types": "./dist/satellites/index.d.ts",
|
|
102
|
+
"import": "./dist/satellites/index.js",
|
|
103
|
+
"default": "./dist/satellites/index.js"
|
|
104
|
+
},
|
|
77
105
|
"./package.json": "./package.json"
|
|
78
106
|
},
|
|
79
107
|
"files": [
|
|
@@ -95,12 +123,20 @@
|
|
|
95
123
|
"test:package": "pnpm build && node scripts/check-package.ts",
|
|
96
124
|
"check": "pnpm lint && pnpm typecheck && pnpm test && pnpm build && node scripts/check-package.ts",
|
|
97
125
|
"prepublishOnly": "pnpm check",
|
|
126
|
+
"family:readme": "node scripts/family-readme.mjs",
|
|
98
127
|
"site": "pnpm build && node scripts/site.ts",
|
|
99
128
|
"dev": "pnpm site && node scripts/dev.ts",
|
|
100
|
-
"test:demo": "pnpm site && playwright test --project=chromium-desk --project=chromium-phone --project=webkit-desk --project=webkit-phone --project=chromium-gl",
|
|
129
|
+
"test:demo": "pnpm site && node scripts/docs-site.mjs build && playwright test --project=chromium-desk --project=chromium-phone --project=webkit-desk --project=webkit-phone --project=chromium-gl",
|
|
101
130
|
"screenshots": "pnpm site && node scripts/screenshots.ts",
|
|
102
131
|
"textures": "python3 scripts/make-textures.py",
|
|
103
|
-
"test:soak": "pnpm site && playwright test --project=soak"
|
|
132
|
+
"test:soak": "pnpm site && playwright test --project=soak",
|
|
133
|
+
"docs:site": "pnpm build && node scripts/docs-site.mjs build",
|
|
134
|
+
"docs:check": "pnpm build && node scripts/docs-site.mjs check",
|
|
135
|
+
"size": "node scripts/docs-site.mjs size",
|
|
136
|
+
"test:usage": "pnpm site && node scripts/check-usage.ts",
|
|
137
|
+
"test:readme": "pnpm build && node scripts/check-usage.ts readme",
|
|
138
|
+
"check:standard": "node scripts/check-standard.mjs",
|
|
139
|
+
"test:freeze": "pnpm site && playwright test e2e/freeze.demo.ts --project=chromium-desk"
|
|
104
140
|
},
|
|
105
141
|
"dependencies": {
|
|
106
142
|
"@johnmorrisdotca/chizu": "^1.6.0",
|
|
@@ -108,7 +144,9 @@
|
|
|
108
144
|
},
|
|
109
145
|
"peerDependencies": {
|
|
110
146
|
"@johnmorrisdotca/kazoku-ui": ">=0.9.0",
|
|
111
|
-
"three": ">=0.160.0"
|
|
147
|
+
"three": ">=0.160.0",
|
|
148
|
+
"astronomy-engine": ">=2.1.0",
|
|
149
|
+
"satellite.js": ">=6.0.0"
|
|
112
150
|
},
|
|
113
151
|
"peerDependenciesMeta": {
|
|
114
152
|
"@johnmorrisdotca/kazoku-ui": {
|
|
@@ -116,22 +154,47 @@
|
|
|
116
154
|
},
|
|
117
155
|
"three": {
|
|
118
156
|
"optional": true
|
|
157
|
+
},
|
|
158
|
+
"astronomy-engine": {
|
|
159
|
+
"optional": true
|
|
160
|
+
},
|
|
161
|
+
"satellite.js": {
|
|
162
|
+
"optional": true
|
|
119
163
|
}
|
|
120
164
|
},
|
|
121
165
|
"devDependencies": {
|
|
166
|
+
"@angular/common": "^22.2.4",
|
|
167
|
+
"@angular/compiler": "^22.2.4",
|
|
168
|
+
"@angular/core": "^22.2.4",
|
|
169
|
+
"@angular/platform-browser": "^22.2.4",
|
|
122
170
|
"@eslint/js": "^9.0.0",
|
|
123
171
|
"@johnmorrisdotca/kazoku-ui": "^0.9.0",
|
|
124
172
|
"@playwright/test": "1.64.0",
|
|
173
|
+
"@sveltejs/vite-plugin-svelte": "^7.3.1",
|
|
125
174
|
"@types/d3-geo": "^3.1.0",
|
|
126
175
|
"@types/geojson": "^7946.0.14",
|
|
127
176
|
"@types/node": "^24.0.0",
|
|
177
|
+
"@types/react": "^19.3.0",
|
|
178
|
+
"@types/react-dom": "^19.3.0",
|
|
128
179
|
"@types/three": "^0.187.0",
|
|
180
|
+
"@vitejs/plugin-vue": "^6.0.10",
|
|
129
181
|
"astronomy-engine": "2.1.19",
|
|
130
182
|
"esbuild": "^0.25.0",
|
|
131
183
|
"eslint": "^9.0.0",
|
|
184
|
+
"marked": "^18.1.2",
|
|
185
|
+
"pagefind": "^1.6.0",
|
|
186
|
+
"react": "^19.3.1",
|
|
187
|
+
"react-dom": "^19.3.1",
|
|
188
|
+
"rxjs": "^7.8.2",
|
|
189
|
+
"satellite.js": "6.0.2",
|
|
190
|
+
"svelte": "^5.57.3",
|
|
132
191
|
"three": "0.186.1",
|
|
133
192
|
"typescript": "^5.9.0",
|
|
134
|
-
"typescript-eslint": "^8.0.0"
|
|
193
|
+
"typescript-eslint": "^8.0.0",
|
|
194
|
+
"vite": "^8.3.5",
|
|
195
|
+
"vue": "^3.5.44",
|
|
196
|
+
"webpack": "^5.112.2",
|
|
197
|
+
"webpack-cli": "^7.3.1"
|
|
135
198
|
},
|
|
136
199
|
"publishConfig": {
|
|
137
200
|
"access": "public"
|