@fi4f/hg 0.0.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 (74) hide show
  1. package/.gitattributes +2 -0
  2. package/.github/workflows/publish.yml +23 -0
  3. package/dist/asset.d.ts +111 -0
  4. package/dist/asset.d.ts.map +1 -0
  5. package/dist/asset.js +188 -0
  6. package/dist/asset.js.map +1 -0
  7. package/dist/event.d.ts +69 -0
  8. package/dist/event.d.ts.map +1 -0
  9. package/dist/event.js +133 -0
  10. package/dist/event.js.map +1 -0
  11. package/dist/hg.d.ts +18 -0
  12. package/dist/hg.d.ts.map +1 -0
  13. package/dist/hg.js +19 -0
  14. package/dist/hg.js.map +1 -0
  15. package/dist/math.d.ts +6 -0
  16. package/dist/math.d.ts.map +1 -0
  17. package/dist/math.js +6 -0
  18. package/dist/math.js.map +1 -0
  19. package/dist/matrix2.d.ts +91 -0
  20. package/dist/matrix2.d.ts.map +1 -0
  21. package/dist/matrix2.js +178 -0
  22. package/dist/matrix2.js.map +1 -0
  23. package/dist/matrix3.d.ts +146 -0
  24. package/dist/matrix3.d.ts.map +1 -0
  25. package/dist/matrix3.js +255 -0
  26. package/dist/matrix3.js.map +1 -0
  27. package/dist/matrix4.d.ts +219 -0
  28. package/dist/matrix4.d.ts.map +1 -0
  29. package/dist/matrix4.js +352 -0
  30. package/dist/matrix4.js.map +1 -0
  31. package/dist/scene.d.ts +34 -0
  32. package/dist/scene.d.ts.map +1 -0
  33. package/dist/scene.js +9 -0
  34. package/dist/scene.js.map +1 -0
  35. package/dist/stage.d.ts +128 -0
  36. package/dist/stage.d.ts.map +1 -0
  37. package/dist/stage.js +299 -0
  38. package/dist/stage.js.map +1 -0
  39. package/dist/types.d.ts +2 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +2 -0
  42. package/dist/types.js.map +1 -0
  43. package/dist/vector2.d.ts +38 -0
  44. package/dist/vector2.d.ts.map +1 -0
  45. package/dist/vector2.js +67 -0
  46. package/dist/vector2.js.map +1 -0
  47. package/dist/vector3.d.ts +46 -0
  48. package/dist/vector3.d.ts.map +1 -0
  49. package/dist/vector3.js +74 -0
  50. package/dist/vector3.js.map +1 -0
  51. package/dist/vector4.d.ts +54 -0
  52. package/dist/vector4.d.ts.map +1 -0
  53. package/dist/vector4.js +81 -0
  54. package/dist/vector4.js.map +1 -0
  55. package/dist/version.d.ts +21 -0
  56. package/dist/version.d.ts.map +1 -0
  57. package/dist/version.js +14 -0
  58. package/dist/version.js.map +1 -0
  59. package/package.json +29 -0
  60. package/src/asset.ts +249 -0
  61. package/src/event.ts +174 -0
  62. package/src/hg.ts +21 -0
  63. package/src/math.ts +5 -0
  64. package/src/matrix2.ts +215 -0
  65. package/src/matrix3.ts +302 -0
  66. package/src/matrix4.ts +415 -0
  67. package/src/scene.ts +45 -0
  68. package/src/stage.ts +481 -0
  69. package/src/types.ts +1 -0
  70. package/src/vector2.ts +80 -0
  71. package/src/vector3.ts +88 -0
  72. package/src/vector4.ts +96 -0
  73. package/src/version.ts +26 -0
  74. package/tsconfig.json +44 -0
package/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
@@ -0,0 +1,23 @@
1
+ name: Publish Package to npmjs
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+ jobs:
7
+ build:
8
+ runs-on: ubuntu-latest
9
+ permissions:
10
+ contents: read
11
+ id-token: write
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ # Setup .npmrc file to publish to npm
15
+ - uses: actions/setup-node@v4
16
+ with:
17
+ node-version: '20.x'
18
+ registry-url: 'https://registry.npmjs.org'
19
+ - run: npm ci
20
+ - run: npm run build
21
+ - run: npm publish --provenance --access public
22
+ env:
23
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -0,0 +1,111 @@
1
+ export declare const IMAGE: "image";
2
+ export declare const AUDIO: "audio";
3
+ export declare const TEXT: "text";
4
+ export declare const BLOB: "blob";
5
+ export declare const JSON: "json";
6
+ export type IMAGE = typeof IMAGE;
7
+ export type AUDIO = typeof AUDIO;
8
+ export type TEXT = typeof TEXT;
9
+ export type BLOB = typeof BLOB;
10
+ export type JSON = typeof JSON;
11
+ export type Kind = IMAGE | AUDIO | TEXT | BLOB | JSON;
12
+ export type Asset<T extends Kind> = {
13
+ kind: T;
14
+ path: string;
15
+ id?: string | undefined;
16
+ };
17
+ export declare namespace Asset {
18
+ type Image = Asset<IMAGE>;
19
+ type Audio = Asset<AUDIO>;
20
+ type Text = Asset<TEXT>;
21
+ type Blob = Asset<BLOB>;
22
+ type Json = Asset<JSON>;
23
+ }
24
+ export type Cache = {
25
+ images: {
26
+ [id: string]: HTMLImageElement;
27
+ };
28
+ audios: {
29
+ [id: string]: HTMLAudioElement;
30
+ };
31
+ texts: {
32
+ [id: string]: string;
33
+ };
34
+ blobs: {
35
+ [id: string]: globalThis.Blob;
36
+ };
37
+ jsons: {
38
+ [id: string]: any;
39
+ };
40
+ };
41
+ export declare function load(a: Asset<any>): Promise<any>;
42
+ export declare function loadImage(a: Asset.Image): Promise<HTMLImageElement>;
43
+ export declare function loadAudio(a: Asset.Audio): Promise<HTMLAudioElement>;
44
+ export declare function loadText(a: Asset.Text): Promise<string>;
45
+ export declare function loadBlob(a: Asset.Blob): Promise<Blob>;
46
+ export declare function loadJson(a: Asset.Json): Promise<any>;
47
+ export declare const Asset: {
48
+ "new"<T extends Kind>(kind: T, path: string, id?: string): {
49
+ kind: T;
50
+ path: string;
51
+ id: string | undefined;
52
+ };
53
+ Image(path: string, id?: string): {
54
+ kind: "image";
55
+ path: string;
56
+ id: string | undefined;
57
+ };
58
+ Audio(path: string, id?: string): {
59
+ kind: "audio";
60
+ path: string;
61
+ id: string | undefined;
62
+ };
63
+ Text(path: string, id?: string): {
64
+ kind: "text";
65
+ path: string;
66
+ id: string | undefined;
67
+ };
68
+ Blob(path: string, id?: string): {
69
+ kind: "blob";
70
+ path: string;
71
+ id: string | undefined;
72
+ };
73
+ Json(path: string, id?: string): {
74
+ kind: "json";
75
+ path: string;
76
+ id: string | undefined;
77
+ };
78
+ };
79
+ export declare const Cache: {
80
+ "new"(): {
81
+ images: {};
82
+ audios: {};
83
+ texts: {};
84
+ blobs: {};
85
+ jsons: {};
86
+ };
87
+ getImage(cache: Cache, id: string): HTMLImageElement | undefined;
88
+ getAudio(cache: Cache, id: string): HTMLAudioElement | undefined;
89
+ getText(cache: Cache, id: string): string | undefined;
90
+ getBlob(cache: Cache, id: string): Blob | undefined;
91
+ getJson(cache: Cache, id: string): any;
92
+ putImage(cache: Cache, id: string, image: HTMLImageElement): HTMLImageElement;
93
+ putAudio(cache: Cache, id: string, audio: HTMLAudioElement): HTMLAudioElement;
94
+ putText(cache: Cache, id: string, text: string): string;
95
+ putBlob(cache: Cache, id: string, blob: Blob): Blob;
96
+ putJson(cache: Cache, id: string, json: any): any;
97
+ freeImage(cache: Cache, id: string): void;
98
+ freeAudio(cache: Cache, id: string): void;
99
+ freeText(cache: Cache, id: string): void;
100
+ freeBlob(cache: Cache, id: string): void;
101
+ freeJson(cache: Cache, id: string): void;
102
+ freeAll(cache: Cache): void;
103
+ load(cache: Cache, a: Asset<any>): Promise<string>;
104
+ loadImage(cache: Cache, a: Asset.Image): Promise<string>;
105
+ loadAudio(cache: Cache, a: Asset.Audio): Promise<string>;
106
+ loadText(cache: Cache, a: Asset.Text): Promise<string>;
107
+ loadBlob(cache: Cache, a: Asset.Blob): Promise<string>;
108
+ loadJson(cache: Cache, a: Asset.Json): Promise<string>;
109
+ loadAll(cache: Cache, a: Array<Asset<any>>): Promise<string[]>;
110
+ };
111
+ //# sourceMappingURL=asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"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"}
package/dist/asset.js ADDED
@@ -0,0 +1,188 @@
1
+ export const IMAGE = "image";
2
+ export const AUDIO = "audio";
3
+ export const TEXT = "text";
4
+ export const BLOB = "blob";
5
+ export const JSON = "json";
6
+ export function load(a) {
7
+ switch (a.kind) {
8
+ case IMAGE: return loadImage(a);
9
+ case AUDIO: return loadAudio(a);
10
+ case TEXT: return loadText(a);
11
+ case BLOB: return loadBlob(a);
12
+ case JSON: return loadJson(a);
13
+ default: throw `[Asset.load]: Unknown kind of asset '${a.kind}'`;
14
+ }
15
+ }
16
+ export function loadImage(a) {
17
+ return new Promise((res, rej) => {
18
+ const image = new Image();
19
+ image.onload = () => res(image);
20
+ image.onerror = () => rej();
21
+ image.src = a.path;
22
+ });
23
+ }
24
+ export function loadAudio(a) {
25
+ return new Promise((res, rej) => {
26
+ const audio = new Audio();
27
+ audio.onload = () => res(audio);
28
+ audio.onerror = () => rej();
29
+ audio.src = a.path;
30
+ });
31
+ }
32
+ export async function loadText(a) {
33
+ return fetch(a.path).then(res => res.text());
34
+ }
35
+ export async function loadBlob(a) {
36
+ return fetch(a.path).then(res => res.blob());
37
+ }
38
+ export async function loadJson(a) {
39
+ return fetch(a.path).then(res => res.json());
40
+ }
41
+ export const Asset = {
42
+ new(kind, path, id) {
43
+ return { kind, path, id };
44
+ },
45
+ Image(path, id) {
46
+ return Asset.new(IMAGE, path, id);
47
+ },
48
+ Audio(path, id) {
49
+ return Asset.new(AUDIO, path, id);
50
+ },
51
+ Text(path, id) {
52
+ return Asset.new(TEXT, path, id);
53
+ },
54
+ Blob(path, id) {
55
+ return Asset.new(BLOB, path, id);
56
+ },
57
+ Json(path, id) {
58
+ return Asset.new(JSON, path, id);
59
+ },
60
+ };
61
+ export const Cache = {
62
+ new() {
63
+ return {
64
+ images: {},
65
+ audios: {},
66
+ texts: {},
67
+ blobs: {},
68
+ jsons: {},
69
+ };
70
+ },
71
+ getImage(cache, id) {
72
+ if (!(id in cache.images))
73
+ throw `[Cache.getImage]: Image with id '${id}' does not exist`;
74
+ return cache.images[id];
75
+ },
76
+ getAudio(cache, id) {
77
+ if (!(id in cache.audios))
78
+ throw `[Cache.getAudio]: Audio with id '${id}' does not exist`;
79
+ return cache.audios[id];
80
+ },
81
+ getText(cache, id) {
82
+ if (!(id in cache.texts))
83
+ throw `[Cache.getText]: Text with id '${id}' does not exist`;
84
+ return cache.texts[id];
85
+ },
86
+ getBlob(cache, id) {
87
+ if (!(id in cache.blobs))
88
+ throw `[Cache.getBlob]: Blob with id '${id}' does not exist`;
89
+ return cache.blobs[id];
90
+ },
91
+ getJson(cache, id) {
92
+ if (!(id in cache.jsons))
93
+ throw `[Cache.getJson]: Json with id '${id}' does not exist`;
94
+ return cache.jsons[id];
95
+ },
96
+ putImage(cache, id, image) {
97
+ if (id in cache.images)
98
+ console.warn(`[Cache.putImage]: Image with id '${id}' already exists`);
99
+ return cache.images[id] = image;
100
+ },
101
+ putAudio(cache, id, audio) {
102
+ if (id in cache.audios)
103
+ console.warn(`[Cache.putAudio]: Audio with id '${id}' already exists`);
104
+ return cache.audios[id] = audio;
105
+ },
106
+ putText(cache, id, text) {
107
+ if (id in cache.texts)
108
+ console.warn(`[Cache.putText]: Text with id '${id}' already exists`);
109
+ return cache.texts[id] = text;
110
+ },
111
+ putBlob(cache, id, blob) {
112
+ if (id in cache.blobs)
113
+ console.warn(`[Cache.putBlob]: Blob with id '${id}' already exists`);
114
+ return cache.blobs[id] = blob;
115
+ },
116
+ putJson(cache, id, json) {
117
+ if (id in cache.jsons)
118
+ console.warn(`[Cache.putJson]: Json with id '${id}' already exists`);
119
+ return cache.jsons[id] = json;
120
+ },
121
+ freeImage(cache, id) {
122
+ delete cache.images[id];
123
+ },
124
+ freeAudio(cache, id) {
125
+ delete cache.audios[id];
126
+ },
127
+ freeText(cache, id) {
128
+ delete cache.texts[id];
129
+ },
130
+ freeBlob(cache, id) {
131
+ delete cache.blobs[id];
132
+ },
133
+ freeJson(cache, id) {
134
+ delete cache.jsons[id];
135
+ },
136
+ freeAll(cache) {
137
+ cache.images = {};
138
+ cache.audios = {};
139
+ cache.texts = {};
140
+ cache.blobs = {};
141
+ cache.jsons = {};
142
+ },
143
+ load(cache, a) {
144
+ switch (a.kind) {
145
+ case IMAGE: return Cache.loadImage(cache, a);
146
+ case AUDIO: return Cache.loadAudio(cache, a);
147
+ case TEXT: return Cache.loadText(cache, a);
148
+ case BLOB: return Cache.loadBlob(cache, a);
149
+ case JSON: return Cache.loadJson(cache, a);
150
+ default: throw `[Cache.load]: Unknown kind of asset '${a.kind}'`;
151
+ }
152
+ },
153
+ async loadImage(cache, a) {
154
+ const id = a.id ?? uniqueId(cache.images);
155
+ Cache.putImage(cache, id, await loadImage(a));
156
+ return id;
157
+ },
158
+ async loadAudio(cache, a) {
159
+ const id = a.id ?? uniqueId(cache.audios);
160
+ Cache.putAudio(cache, id, await loadAudio(a));
161
+ return id;
162
+ },
163
+ async loadText(cache, a) {
164
+ const id = a.id ?? uniqueId(cache.texts);
165
+ Cache.putText(cache, id, await loadText(a));
166
+ return id;
167
+ },
168
+ async loadBlob(cache, a) {
169
+ const id = a.id ?? uniqueId(cache.blobs);
170
+ Cache.putBlob(cache, id, await loadBlob(a));
171
+ return id;
172
+ },
173
+ async loadJson(cache, a) {
174
+ const id = a.id ?? uniqueId(cache.jsons);
175
+ Cache.putJson(cache, id, await loadJson(a));
176
+ return id;
177
+ },
178
+ async loadAll(cache, a) {
179
+ return Promise.all(a.map(a => Cache.load(cache, a)));
180
+ }
181
+ };
182
+ function uniqueId(ids) {
183
+ let id = crypto.randomUUID();
184
+ while (id in ids)
185
+ id = crypto.randomUUID();
186
+ return id;
187
+ }
188
+ //# sourceMappingURL=asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ export declare namespace Event {
2
+ type Listener<T> = (event: T, context: Event.Context<T>) => void;
3
+ type Listen = {
4
+ action: "listen";
5
+ path: string;
6
+ type: string;
7
+ listener: Listener<any>;
8
+ };
9
+ type Deafen = {
10
+ action: "deafen";
11
+ path: string;
12
+ type?: string | undefined;
13
+ listener?: Listener<any> | undefined;
14
+ };
15
+ type Dispatch = {
16
+ action: "dispatch";
17
+ path: string;
18
+ type: string;
19
+ event: any;
20
+ };
21
+ type Action = Listen | Deafen | Dispatch;
22
+ type Tree = {
23
+ root: Event.Node;
24
+ pending: Array<Event.Action>;
25
+ };
26
+ type Node = {
27
+ children: Map<string, Event.Node>;
28
+ listeners: Map<string, Set<Event.Listener<any>>>;
29
+ };
30
+ type Context<T> = {
31
+ tree: Event.Tree;
32
+ node: Event.Node;
33
+ path: string;
34
+ type: string;
35
+ self: Event.Listener<T>;
36
+ };
37
+ }
38
+ export declare const Event: {
39
+ Tree: {
40
+ "new"(): {
41
+ root: {
42
+ children: Map<any, any>;
43
+ listeners: Map<any, any>;
44
+ };
45
+ pending: never[];
46
+ };
47
+ };
48
+ Node: {
49
+ "new"(): {
50
+ children: Map<any, any>;
51
+ listeners: Map<any, any>;
52
+ };
53
+ };
54
+ once<T>(listener: Event.Listener<T>): (event: T, context: Event.Context<T>) => void;
55
+ listen<T>(tree: Event.Tree, type: string, listener: Event.Listener<T>, o?: {
56
+ path?: string;
57
+ defer?: boolean;
58
+ }): void;
59
+ deafen<T>(tree: Event.Tree, type?: string, listener?: Event.Listener<T>, o?: {
60
+ path?: string;
61
+ defer?: boolean;
62
+ }): void;
63
+ dispatch(tree: Event.Tree, type: string, event: any, o?: {
64
+ path?: string;
65
+ defer?: boolean;
66
+ }): void;
67
+ poll(tree: Event.Tree): void;
68
+ };
69
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAEA,yBAAiB,KAAK,CAAC;IACrB,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAEvE,KAAY,MAAM,GAAK;QAAE,MAAM,EAAE,QAAQ,CAAG;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAI,MAAM,CAAa;QAAC,QAAQ,EAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;KAAc,CAAA;IAC9H,KAAY,MAAM,GAAK;QAAE,MAAM,EAAE,QAAQ,CAAG;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAS,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9H,KAAY,QAAQ,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAA;IAErF,KAAY,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;IAE/C,KAAY,IAAI,GAAG;QACjB,IAAI,EAAW,KAAK,CAAC,IAAI,CAAA;QACzB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAC7B,CAAA;IAED,KAAY,IAAI,GAAG;QACjB,QAAQ,EAAG,GAAG,CAAC,MAAM,EAAM,KAAK,CAAC,IAAI,CAAW,CAAA;QAChD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;KACjD,CAAA;IAED,KAAY,OAAO,CAAC,CAAC,IAAI;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAA;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;KACxB,CAAA;CACF;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;SAmBX,CAAC,YAAY,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WACjB,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;WAOvC,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAU,MAAM,YAAc,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAO;QAAE,IAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAM,CAAC,EAAE,OAAO,CAAA;KAAE;WAM7G,CAAC,QAAQ,KAAK,CAAC,IAAI,SAAU,MAAM,aAAc,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAO;QAAE,IAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAM,CAAC,EAAE,OAAO,CAAA;KAAE;mBAMrG,KAAK,CAAC,IAAI,QAAQ,MAAM,SAAS,GAAG,MAAO;QAAE,IAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAM,CAAC,EAAE,OAAO,CAAA;KAAE;eAMnF,KAAK,CAAC,IAAI;CAKtB,CAAA"}
package/dist/event.js ADDED
@@ -0,0 +1,133 @@
1
+ export const Event = {
2
+ Tree: {
3
+ new() {
4
+ return {
5
+ root: Event.Node.new(),
6
+ pending: []
7
+ };
8
+ }
9
+ },
10
+ Node: {
11
+ new() {
12
+ return {
13
+ children: new Map(),
14
+ listeners: new Map()
15
+ };
16
+ }
17
+ },
18
+ once(listener) {
19
+ return ((event, context) => {
20
+ listener(event, context);
21
+ const { tree, path, type, self } = context;
22
+ Event.deafen(tree, type, self, { path, defer: false });
23
+ });
24
+ },
25
+ listen(tree, type, listener, o) {
26
+ const a = { action: "listen", path: o?.path ?? "", type, listener };
27
+ if (o?.defer ?? true)
28
+ queue(tree, a);
29
+ else
30
+ flush(tree, a);
31
+ },
32
+ deafen(tree, type, listener, o) {
33
+ const a = { action: "deafen", path: o?.path ?? "", type, listener };
34
+ if (o?.defer ?? true)
35
+ queue(tree, a);
36
+ else
37
+ flush(tree, a);
38
+ },
39
+ dispatch(tree, type, event, o) {
40
+ const a = { action: "dispatch", path: o?.path ?? "", type, event };
41
+ if (o?.defer ?? true)
42
+ queue(tree, a);
43
+ else
44
+ flush(tree, a);
45
+ },
46
+ poll(tree) {
47
+ tree.pending.splice(0).forEach(a => flush(tree, a));
48
+ }
49
+ };
50
+ function queue(tree, a) {
51
+ tree.pending.push(a);
52
+ }
53
+ function flush(tree, a) {
54
+ switch (a.action) {
55
+ case "listen": return onListen(tree, a);
56
+ case "deafen": return onDeafen(tree, a);
57
+ case "dispatch": return onDispatch(tree, a);
58
+ }
59
+ }
60
+ function requestListeners(node, type) {
61
+ let list = node?.listeners.get(type);
62
+ // if (!list) node.listeners.set(
63
+ // type, list = new Set()
64
+ // )
65
+ return list;
66
+ }
67
+ function requireListeners(node, type) {
68
+ let list = node.listeners.get(type);
69
+ if (!list)
70
+ node.listeners.set(type, list = new Set());
71
+ return list;
72
+ }
73
+ function requestNode(root, path) {
74
+ for (const part of path.split("/")) {
75
+ let node = root?.children.get(part);
76
+ if (!node)
77
+ return;
78
+ root = node;
79
+ }
80
+ return root;
81
+ }
82
+ function requireNode(root, path) {
83
+ for (const part of path.split("/")) {
84
+ let node = root.children.get(part);
85
+ if (!node)
86
+ root.children.set(part, node = Event.Node.new());
87
+ root = node;
88
+ }
89
+ return root;
90
+ }
91
+ function onListen(tree, a) {
92
+ const node = requireNode(tree.root, a.path);
93
+ const list = requireListeners(node, a.type);
94
+ list.add(a.listener);
95
+ }
96
+ function onDeafen(tree, a) {
97
+ if (a.type !== undefined && a.listener !== undefined) {
98
+ const node = requestNode(tree.root, a.path);
99
+ const list = requestListeners(node, a.type);
100
+ list?.delete(a.listener);
101
+ }
102
+ else if (a.type !== undefined && a.listener === undefined) {
103
+ const node = requestNode(tree.root, a.path);
104
+ const list = requestListeners(node, a.type);
105
+ list?.clear();
106
+ }
107
+ else if (a.type === undefined && a.listener !== undefined) {
108
+ const node = requestNode(tree.root, a.path);
109
+ node?.listeners.forEach((list) => {
110
+ list.delete(a.listener);
111
+ });
112
+ }
113
+ else if (a.type === undefined && a.listener === undefined) {
114
+ const node = requestNode(tree.root, a.path);
115
+ node?.children.clear();
116
+ node?.listeners.clear();
117
+ }
118
+ }
119
+ function onDispatch(tree, { path, type, event }) {
120
+ const node = requestNode(tree.root, path);
121
+ if (!node)
122
+ return;
123
+ reDispatch(tree, node, path, type, event);
124
+ }
125
+ function reDispatch(tree, node, path, type, event) {
126
+ requestListeners(node, type)?.forEach(self => {
127
+ self(event, { tree, node, path, type, self });
128
+ });
129
+ node.children.forEach((child, name) => {
130
+ reDispatch(tree, child, `${path}/${name}`, type, event);
131
+ });
132
+ }
133
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"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"}
package/dist/hg.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ export declare const VERSION: {
2
+ moniker: string;
3
+ major: number;
4
+ minor: number;
5
+ patch: number;
6
+ };
7
+ export { Version } from "./version.js";
8
+ export { Vector2 } from "./vector2.js";
9
+ export { Vector3 } from "./vector3.js";
10
+ export { Vector4 } from "./vector4.js";
11
+ export { Matrix2 } from "./matrix2.js";
12
+ export { Matrix3 } from "./matrix3.js";
13
+ export { Matrix4 } from "./matrix4.js";
14
+ export { Stage } from "./stage.js";
15
+ export { Scene } from "./scene.js";
16
+ export { Event } from "./event.js";
17
+ export { Asset, Cache } from "./asset.js";
18
+ //# sourceMappingURL=hg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hg.d.ts","sourceRoot":"","sources":["../src/hg.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;CAKlB,CAAA;AAEF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAI,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,KAAK,EAAI,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,KAAK,EAAI,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA"}
package/dist/hg.js ADDED
@@ -0,0 +1,19 @@
1
+ import { Version } from "./version.js";
2
+ export const VERSION = Version.new({
3
+ moniker: "hg",
4
+ major: 0,
5
+ minor: 0,
6
+ patch: 1,
7
+ });
8
+ export { Version } from "./version.js";
9
+ export { Vector2 } from "./vector2.js";
10
+ export { Vector3 } from "./vector3.js";
11
+ export { Vector4 } from "./vector4.js";
12
+ export { Matrix2 } from "./matrix2.js";
13
+ export { Matrix3 } from "./matrix3.js";
14
+ export { Matrix4 } from "./matrix4.js";
15
+ export { Stage } from "./stage.js";
16
+ export { Scene } from "./scene.js";
17
+ export { Event } from "./event.js";
18
+ export { Asset, Cache } from "./asset.js";
19
+ //# sourceMappingURL=hg.js.map
package/dist/hg.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hg.js","sourceRoot":"","sources":["../src/hg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IACjC,OAAO,EAAE,IAAI;IACb,KAAK,EAAI,CAAC;IACV,KAAK,EAAI,CAAC;IACV,KAAK,EAAI,CAAC;CACX,CAAC,CAAA;AAEF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAI,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,KAAK,EAAI,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,KAAK,EAAI,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA"}
package/dist/math.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export declare function ADD(a: number, b: number): number;
2
+ export declare function SUB(a: number, b: number): number;
3
+ export declare function MUL(a: number, b: number): number;
4
+ export declare function DIV(a: number, b: number): number;
5
+ export declare function MOD(a: number, b: number): number;
6
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAkB;AAC1D,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAkB;AAC1D,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAkB;AAC1D,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAkB;AAC1D,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAkB"}
package/dist/math.js ADDED
@@ -0,0 +1,6 @@
1
+ export function ADD(a, b) { return a + b; }
2
+ export function SUB(a, b) { return a - b; }
3
+ export function MUL(a, b) { return a * b; }
4
+ export function DIV(a, b) { return a / b; }
5
+ export function MOD(a, b) { return a % b; }
6
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC"}