@rpgjs/client 5.0.0-alpha.3 → 5.0.0-alpha.5

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 (75) hide show
  1. package/dist/components/index.d.ts +2 -1
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/index10.js +1 -1
  5. package/dist/index11.js +2 -2
  6. package/dist/index12.js +1 -1
  7. package/dist/index13.js +1 -1
  8. package/dist/index13.js.map +1 -1
  9. package/dist/index14.js +80 -39
  10. package/dist/index14.js.map +1 -1
  11. package/dist/index15.js +45 -186
  12. package/dist/index15.js.map +1 -1
  13. package/dist/index16.js +187 -5
  14. package/dist/index16.js.map +1 -1
  15. package/dist/index17.js +5 -383
  16. package/dist/index17.js.map +1 -1
  17. package/dist/index18.js +384 -28
  18. package/dist/index18.js.map +1 -1
  19. package/dist/index19.js +24 -17
  20. package/dist/index19.js.map +1 -1
  21. package/dist/index2.js +6 -6
  22. package/dist/index20.js +16 -2413
  23. package/dist/index20.js.map +1 -1
  24. package/dist/index21.js +2395 -88
  25. package/dist/index21.js.map +1 -1
  26. package/dist/index22.js +108 -103
  27. package/dist/index22.js.map +1 -1
  28. package/dist/index23.js +95 -57
  29. package/dist/index23.js.map +1 -1
  30. package/dist/index24.js +62 -12
  31. package/dist/index24.js.map +1 -1
  32. package/dist/index25.js +17 -37
  33. package/dist/index25.js.map +1 -1
  34. package/dist/index26.js +39 -3
  35. package/dist/index26.js.map +1 -1
  36. package/dist/index27.js +1 -318
  37. package/dist/index27.js.map +1 -1
  38. package/dist/index28.js +319 -22
  39. package/dist/index28.js.map +1 -1
  40. package/dist/index29.js +22 -8
  41. package/dist/index29.js.map +1 -1
  42. package/dist/index3.js +2 -2
  43. package/dist/index30.js +4 -4
  44. package/dist/index30.js.map +1 -1
  45. package/dist/index31.js +6 -169
  46. package/dist/index31.js.map +1 -1
  47. package/dist/index32.js +9 -498
  48. package/dist/index32.js.map +1 -1
  49. package/dist/index33.js +4400 -9
  50. package/dist/index33.js.map +1 -1
  51. package/dist/index34.js +307 -4394
  52. package/dist/index34.js.map +1 -1
  53. package/dist/index35.js +32 -62
  54. package/dist/index35.js.map +1 -1
  55. package/dist/index36.js +169 -56
  56. package/dist/index36.js.map +1 -1
  57. package/dist/index37.js +497 -16
  58. package/dist/index37.js.map +1 -1
  59. package/dist/index38.js +17 -17
  60. package/dist/index38.js.map +1 -1
  61. package/dist/index39.js +20 -0
  62. package/dist/index39.js.map +1 -0
  63. package/dist/index4.js +2 -2
  64. package/dist/index5.js +1 -1
  65. package/dist/index6.js +1 -1
  66. package/dist/index7.js +1 -1
  67. package/dist/index8.js +1 -1
  68. package/dist/index9.js +2 -2
  69. package/package.json +13 -11
  70. package/src/components/index.ts +2 -1
  71. package/src/components/scenes/draw-map.ce +0 -18
  72. package/src/components/scenes/event-layer.ce +1 -1
  73. package/vite.config.ts +1 -1
  74. package/CHANGELOG.md +0 -9
  75. package/src/components/scenes/element-map.ce +0 -23
package/dist/index35.js CHANGED
@@ -1,89 +1,59 @@
1
- import { useProps, useDefineProps, computed, signal, h, Container, loop, Sprite } from 'canvasengine';
2
- import { Particle } from '@canvasengine/presets';
1
+ import { useProps, useDefineProps, mount, signal, h, Container, loop, computed } from 'canvasengine';
2
+ import component$1 from './index39.js';
3
3
  import { RpgClientEngine } from './index2.js';
4
4
  import { inject } from './index6.js';
5
- import { Direction } from '@rpgjs/common';
6
5
 
7
6
  function component($$props) {
8
7
  useProps($$props);
9
8
  const defineProps = useDefineProps($$props);
10
- var _a = defineProps(), object = _a.object; _a.id; var isMe = _a.isMe;
9
+ var _a = defineProps(), items = _a.items, wrapAround = _a.wrapAround, onSelect = _a.onSelect, selectedIndex = _a.selectedIndex;
11
10
  var client = inject(RpgClientEngine);
12
- var spritesheets = client.spritesheets;
13
- var x = object.x;
14
- var y = object.y;
15
- var tint = object.tint;
16
- var direction = object.direction;
17
- var animationName = object.animationName;
18
- var emitParticleTrigger = object.emitParticleTrigger;
19
- var particleSettings = client.particleSettings;
20
- var particleName = object.particleName;
21
- var graphics = object.graphics;
22
- var hitbox = object.hitbox;
23
- var widthShadow = 10;
24
- computed(function () { return ({
25
- x: hitbox().w / 2,
26
- y: hitbox().h - (hitbox().h / 2),
27
- width: hitbox().w + widthShadow,
28
- height: hitbox().h,
29
- }); });
30
- var canControls = function () { return isMe() && object.canMove(); };
31
11
  var keyboardControls = client.globalConfig.keyboardControls;
12
+ var selected = function (index) {
13
+ return computed(function () {
14
+ return index === selectedIndex();
15
+ });
16
+ };
17
+ mount(function (element) {
18
+ return function () {
19
+ element.directives.controls.onDestroy();
20
+ };
21
+ });
32
22
  var controls = signal({
33
23
  down: {
34
- repeat: true,
35
24
  bind: keyboardControls.down,
36
25
  keyDown: function () {
37
- if (canControls())
38
- client.processInput({ input: Direction.Down });
26
+ selectedIndex.update(function (currentIndex) {
27
+ if (wrapAround) {
28
+ return (currentIndex + 1) % items().length;
29
+ }
30
+ else {
31
+ return Math.min(currentIndex + 1, items().length - 1);
32
+ }
33
+ });
39
34
  },
40
35
  },
41
36
  up: {
42
- repeat: true,
43
37
  bind: keyboardControls.up,
44
38
  keyDown: function () {
45
- if (canControls())
46
- client.processInput({ input: Direction.Up });
47
- },
48
- },
49
- left: {
50
- repeat: true,
51
- bind: keyboardControls.left,
52
- keyDown: function () {
53
- if (canControls())
54
- client.processInput({ input: Direction.Left });
39
+ selectedIndex.update(function (currentIndex) {
40
+ if (wrapAround) {
41
+ return (currentIndex - 1 + items().length) % items().length;
42
+ }
43
+ else {
44
+ return Math.max(currentIndex - 1, 0);
45
+ }
46
+ });
55
47
  },
56
48
  },
57
- right: {
58
- repeat: true,
59
- bind: keyboardControls.right,
60
- keyDown: function () {
61
- if (canControls())
62
- client.processInput({ input: Direction.Right });
63
- },
64
- },
65
- action: {
49
+ enter: {
66
50
  bind: keyboardControls.action,
67
51
  keyDown: function () {
68
- if (canControls()) {
69
- client.processAction({ action: 'action' });
70
- // particleName.set('hit')
71
- // emitParticleTrigger.start()
72
- // object.flash('red')
73
- }
52
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedIndex());
74
53
  },
75
54
  },
76
55
  });
77
- var sheet = function (graphicId) {
78
- return {
79
- definition: spritesheets.get(graphicId),
80
- playing: animationName,
81
- params: {
82
- direction: direction
83
- },
84
- };
85
- };
86
- let $this = h(Container, { x, y, zIndex: y, viewportFollow: isMe, controls }, [h(Particle, { emit: emitParticleTrigger, settings: particleSettings, zIndex: 1000, name: particleName }), loop(graphics, graphicId => h(Sprite, { sheet: sheet(graphicId), direction, tint }))]);
56
+ let $this = h(Container, { controls, flexDirection: 'column', margin: [0, 0, 0, 50] }, loop(items, (item, index) => h(component$1, { text: item.text, isSelected: selected(index) })));
87
57
  return $this
88
58
  }
89
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"index35.js","sources":["../src/components/character.ce"],"sourcesContent":["<Container x y zIndex={y} viewportFollow={isMe} controls>\n <Particle emit={@emitParticleTrigger} settings={@particleSettings} zIndex={1000} name={particleName} />\n @for (graphicId of graphics) {\n <Sprite sheet={@sheet(@graphicId)} direction tint />\n }\n <!-- <Ellipse \n x={shadow.@x} \n y={shadow.@y} \n width={shadow.@width} \n height={shadow.@height} \n color=\"black\" \n blur={10} \n alpha={0.5}\n /> -->\n</Container>\n\n<script>\n import { signal, effect, mount, computed } from \"canvasengine\";\n import { Particle } from \"@canvasengine/presets\";\n import { GameEngineToken } from \"@rpgjs/common\";\n import { RpgClientEngine } from \"../RpgClientEngine\";\n import { inject } from \"../core/inject\"; \n import { Direction } from \"@rpgjs/common\";\n import Hit from \"./effects/hit.ce\";\n\n const { object, id, isMe } = defineProps();\n\n const client = inject(RpgClientEngine);\n\n const spritesheets = client.spritesheets;\n\n const x = object.x;\n const y = object.y;\n const tint = object.tint;\n const direction = object.direction;\n const animationName = object.animationName;\n const emitParticleTrigger = object.emitParticleTrigger;\n const particleSettings = client.particleSettings;\n const particleName = object.particleName;\n const graphics = object.graphics;\n\n const hitbox = object.hitbox;\n const widthShadow = 10;\n const shadow = computed(() => ({\n x: hitbox().w / 2,\n y: hitbox().h - (hitbox().h / 2),\n width: hitbox().w + widthShadow,\n height: hitbox().h,\n }))\n const canControls = () => isMe() && object.canMove()\n const keyboardControls = client.globalConfig.keyboardControls;\n\n const controls = signal({\n down: {\n repeat: true,\n bind: keyboardControls.down,\n keyDown() {\n if (canControls()) client.processInput({ input: Direction.Down })\n },\n },\n up: {\n repeat: true,\n bind: keyboardControls.up,\n keyDown() {\n if (canControls()) client.processInput({ input: Direction.Up })\n },\n },\n left: {\n repeat: true,\n bind: keyboardControls.left,\n keyDown() {\n if (canControls()) client.processInput({ input: Direction.Left })\n },\n },\n right: {\n repeat: true,\n bind: keyboardControls.right,\n keyDown() {\n if (canControls()) client.processInput({ input: Direction.Right })\n },\n },\n action: {\n bind: keyboardControls.action,\n keyDown() {\n if (canControls()) {\n client.processAction({ action: 'action' })\n // particleName.set('hit') \n // emitParticleTrigger.start()\n // object.flash('red')\n }\n },\n },\n });\n\n const sheet = (graphicId) => {\n return {\n definition: spritesheets.get(graphicId),\n playing: animationName,\n params: {\n direction\n },\n };\n }\n</script>"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index35.js","sources":["../src/components/gui/dialogbox/selection.ce"],"sourcesContent":["<Container controls flexDirection=\"column\" margin={[0, 0, 0, 50]}>\n @for ((item,index) of items) { \n <ItemMenu text={@item.@text} isSelected={@selected(@index)} /> \n }\n</Container>\n\n<script>\n import { signal, computed, mount } from \"canvasengine\";\n import ItemMenu from \"./itemMenu.ce\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import { inject } from \"../../../core/inject\";\n\n const {\n items,\n wrapAround,\n onSelect,\n selectedIndex,\n } = defineProps();\n\n const client = inject(RpgClientEngine);\n const keyboardControls = client.globalConfig.keyboardControls;\n\n const selected = (index) => {\n return computed(() => {\n return index === selectedIndex();\n })\n }\n\n mount((element) => {\n return () => {\n element.directives.controls.onDestroy()\n }\n })\n\n const controls = signal({\n down: {\n bind: keyboardControls.down,\n keyDown() {\n selectedIndex.update((currentIndex) => {\n if (wrapAround) {\n return (currentIndex + 1) % items().length;\n } else {\n return Math.min(currentIndex + 1, items().length - 1);\n }\n });\n },\n },\n up: {\n bind: keyboardControls.up,\n keyDown() {\n selectedIndex.update((currentIndex) => {\n if (wrapAround) {\n return (currentIndex - 1 + items().length) % items().length;\n } else {\n return Math.max(currentIndex - 1, 0);\n }\n });\n },\n },\n enter: {\n bind: keyboardControls.action,\n keyDown() {\n onSelect?.(selectedIndex());\n },\n },\n });\n</script>\n"],"names":["ItemMenu"],"mappings":";;;;;AASqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,EAAE,CAAC,aAAa;AACtI,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB;AAC3D,IAAI,QAAQ,GAAG,UAAU,KAAK,EAAE;AAChC,IAAI,OAAO,QAAQ,CAAC,YAAY;AAChC,QAAQ,OAAO,KAAK,KAAK,aAAa,EAAE;AACxC,KAAK,CAAC;AACN,CAAC;AACD,KAAK,CAAC,UAAU,OAAO,EAAE;AACzB,IAAI,OAAO,YAAY;AACvB,QAAQ,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC/C,KAAK;AACL,CAAC,CAAC;AACF,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI,EAAE,gBAAgB,CAAC,IAAI;AACnC,QAAQ,OAAO,EAAE,YAAY;AAC7B,YAAY,aAAa,CAAC,MAAM,CAAC,UAAU,YAAY,EAAE;AACzD,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM;AAC9D;AACA,qBAAqB;AACrB,oBAAoB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACzE;AACA,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,IAAI,EAAE,EAAE;AACR,QAAQ,IAAI,EAAE,gBAAgB,CAAC,EAAE;AACjC,QAAQ,OAAO,EAAE,YAAY;AAC7B,YAAY,aAAa,CAAC,MAAM,CAAC,UAAU,YAAY,EAAE;AACzD,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,OAAO,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,MAAM;AAC/E;AACA,qBAAqB;AACrB,oBAAoB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC;AACxD;AACA,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,IAAI,EAAE,gBAAgB,CAAC,MAAM;AACrC,QAAQ,OAAO,EAAE,YAAY;AAC7B,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;AACzF,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAACA,WAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1L,QAAQ,OAAO;AACf;;;;"}
package/dist/index36.js CHANGED
@@ -1,61 +1,174 @@
1
- import { useProps, useDefineProps, mount, signal, h, Container, loop, computed } from 'canvasengine';
2
- import component$1 from './index38.js';
3
- import { RpgClientEngine } from './index2.js';
4
- import { inject } from './index6.js';
1
+ import { ReconnectingWebSocket } from './index37.js';
5
2
 
6
- function component($$props) {
7
- useProps($$props);
8
- const defineProps = useDefineProps($$props);
9
- var _a = defineProps(), items = _a.items, wrapAround = _a.wrapAround, onSelect = _a.onSelect, selectedIndex = _a.selectedIndex;
10
- var client = inject(RpgClientEngine);
11
- var keyboardControls = client.globalConfig.keyboardControls;
12
- var selected = function (index) {
13
- return computed(function () {
14
- return index === selectedIndex();
3
+ // src/index.ts
4
+ var valueIsNotNil = (keyValuePair) =>
5
+ keyValuePair[1] !== null && keyValuePair[1] !== void 0;
6
+ function generateUUID() {
7
+ if (typeof crypto !== "undefined" && crypto.randomUUID) {
8
+ return crypto.randomUUID();
9
+ }
10
+ let d = /* @__PURE__ */ new Date().getTime();
11
+ let d2 =
12
+ (typeof performance !== "undefined" &&
13
+ performance.now &&
14
+ performance.now() * 1e3) ||
15
+ 0;
16
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
17
+ let r = Math.random() * 16;
18
+ if (d > 0) {
19
+ r = (d + r) % 16 | 0;
20
+ d = Math.floor(d / 16);
21
+ } else {
22
+ r = (d2 + r) % 16 | 0;
23
+ d2 = Math.floor(d2 / 16);
24
+ }
25
+ return (c === "x" ? r : (r & 3) | 8).toString(16);
26
+ });
27
+ }
28
+ function getPartyInfo(partySocketOptions, defaultProtocol, defaultParams = {}) {
29
+ const {
30
+ host: rawHost,
31
+ path: rawPath,
32
+ protocol: rawProtocol,
33
+ room,
34
+ party,
35
+ basePath,
36
+ prefix,
37
+ query
38
+ } = partySocketOptions;
39
+ let host = rawHost.replace(/^(http|https|ws|wss):\/\//, "");
40
+ if (host.endsWith("/")) {
41
+ host = host.slice(0, -1);
42
+ }
43
+ if (rawPath == null ? void 0 : rawPath.startsWith("/")) {
44
+ throw new Error("path must not start with a slash");
45
+ }
46
+ const name = party ?? "main";
47
+ const path = rawPath ? `/${rawPath}` : "";
48
+ const protocol =
49
+ rawProtocol ||
50
+ (host.startsWith("localhost:") ||
51
+ host.startsWith("127.0.0.1:") ||
52
+ host.startsWith("192.168.") ||
53
+ host.startsWith("10.") ||
54
+ (host.startsWith("172.") &&
55
+ host.split(".")[1] >= "16" &&
56
+ host.split(".")[1] <= "31") ||
57
+ host.startsWith("[::ffff:7f00:1]:")
58
+ ? // http / ws
59
+ defaultProtocol
60
+ : // https / wss
61
+ `${defaultProtocol}s`);
62
+ const baseUrl = `${protocol}://${host}/${basePath || `${prefix || "parties"}/${name}/${room}`}${path}`;
63
+ const makeUrl = (query2 = {}) =>
64
+ `${baseUrl}?${new URLSearchParams([
65
+ ...Object.entries(defaultParams),
66
+ ...Object.entries(query2).filter(valueIsNotNil)
67
+ ])}`;
68
+ const urlProvider =
69
+ typeof query === "function"
70
+ ? async () => makeUrl(await query())
71
+ : makeUrl(query);
72
+ return {
73
+ host,
74
+ path,
75
+ room,
76
+ name,
77
+ protocol,
78
+ partyUrl: baseUrl,
79
+ urlProvider
80
+ };
81
+ }
82
+ var PartySocket = class extends ReconnectingWebSocket {
83
+ constructor(partySocketOptions) {
84
+ const wsOptions = getWSOptions(partySocketOptions);
85
+ super(wsOptions.urlProvider, wsOptions.protocols, wsOptions.socketOptions);
86
+ this.partySocketOptions = partySocketOptions;
87
+ this.setWSProperties(wsOptions);
88
+ }
89
+ _pk;
90
+ _pkurl;
91
+ name;
92
+ room;
93
+ host;
94
+ path;
95
+ updateProperties(partySocketOptions) {
96
+ const wsOptions = getWSOptions({
97
+ ...this.partySocketOptions,
98
+ ...partySocketOptions,
99
+ host: partySocketOptions.host ?? this.host,
100
+ room: partySocketOptions.room ?? this.room,
101
+ path: partySocketOptions.path ?? this.path
15
102
  });
103
+ this._url = wsOptions.urlProvider;
104
+ this._protocols = wsOptions.protocols;
105
+ this._options = wsOptions.socketOptions;
106
+ this.setWSProperties(wsOptions);
107
+ }
108
+ setWSProperties(wsOptions) {
109
+ const { _pk, _pkurl, name, room, host, path } = wsOptions;
110
+ this._pk = _pk;
111
+ this._pkurl = _pkurl;
112
+ this.name = name;
113
+ this.room = room;
114
+ this.host = host;
115
+ this.path = path;
116
+ }
117
+ reconnect(code, reason) {
118
+ if (!this.room || !this.host) {
119
+ throw new Error(
120
+ "The room and host must be set before connecting, use `updateProperties` method to set them or pass them to the constructor."
121
+ );
122
+ }
123
+ super.reconnect(code, reason);
124
+ }
125
+ get id() {
126
+ return this._pk;
127
+ }
128
+ /**
129
+ * Exposes the static PartyKit room URL without applying query parameters.
130
+ * To access the currently connected WebSocket url, use PartySocket#url.
131
+ */
132
+ get roomUrl() {
133
+ return this._pkurl;
134
+ }
135
+ // a `fetch` method that uses (almost) the same options as `PartySocket`
136
+ static async fetch(options, init) {
137
+ const party = getPartyInfo(options, "http");
138
+ const url =
139
+ typeof party.urlProvider === "string"
140
+ ? party.urlProvider
141
+ : await party.urlProvider();
142
+ const doFetch = options.fetch ?? fetch;
143
+ return doFetch(url, init);
144
+ }
16
145
  };
17
- mount(function (element) {
18
- return function () {
19
- element.directives.controls.onDestroy();
20
- };
21
- });
22
- var controls = signal({
23
- down: {
24
- bind: keyboardControls.down,
25
- keyDown: function () {
26
- selectedIndex.update(function (currentIndex) {
27
- if (wrapAround) {
28
- return (currentIndex + 1) % items().length;
29
- }
30
- else {
31
- return Math.min(currentIndex + 1, items().length - 1);
32
- }
33
- });
34
- },
35
- },
36
- up: {
37
- bind: keyboardControls.up,
38
- keyDown: function () {
39
- selectedIndex.update(function (currentIndex) {
40
- if (wrapAround) {
41
- return (currentIndex - 1 + items().length) % items().length;
42
- }
43
- else {
44
- return Math.max(currentIndex - 1, 0);
45
- }
46
- });
47
- },
48
- },
49
- enter: {
50
- bind: keyboardControls.action,
51
- keyDown: function () {
52
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedIndex());
53
- },
54
- },
55
- });
56
- let $this = h(Container, { controls, flexDirection: 'column', margin: [0, 0, 0, 50] }, loop(items, (item, index) => h(component$1, { text: item.text, isSelected: selected(index) })));
57
- return $this
58
- }
146
+ function getWSOptions(partySocketOptions) {
147
+ const {
148
+ id,
149
+ host: _host,
150
+ path: _path,
151
+ party: _party,
152
+ room: _room,
153
+ protocol: _protocol,
154
+ query: _query,
155
+ protocols,
156
+ ...socketOptions
157
+ } = partySocketOptions;
158
+ const _pk = id || generateUUID();
159
+ const party = getPartyInfo(partySocketOptions, "ws", { _pk });
160
+ return {
161
+ _pk,
162
+ _pkurl: party.partyUrl,
163
+ name: party.name,
164
+ room: party.room,
165
+ host: party.host,
166
+ path: party.path,
167
+ protocols,
168
+ socketOptions,
169
+ urlProvider: party.urlProvider
170
+ };
171
+ }
59
172
 
60
- export { component as default };
173
+ export { PartySocket };
61
174
  //# sourceMappingURL=index36.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index36.js","sources":["../src/components/gui/dialogbox/selection.ce"],"sourcesContent":["<Container controls flexDirection=\"column\" margin={[0, 0, 0, 50]}>\n @for ((item,index) of items) { \n <ItemMenu text={@item.@text} isSelected={@selected(@index)} /> \n }\n</Container>\n\n<script>\n import { signal, computed, mount } from \"canvasengine\";\n import ItemMenu from \"./itemMenu.ce\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import { inject } from \"../../../core/inject\";\n\n const {\n items,\n wrapAround,\n onSelect,\n selectedIndex,\n } = defineProps();\n\n const client = inject(RpgClientEngine);\n const keyboardControls = client.globalConfig.keyboardControls;\n\n const selected = (index) => {\n return computed(() => {\n return index === selectedIndex();\n })\n }\n\n mount((element) => {\n return () => {\n element.directives.controls.onDestroy()\n }\n })\n\n const controls = signal({\n down: {\n bind: keyboardControls.down,\n keyDown() {\n selectedIndex.update((currentIndex) => {\n if (wrapAround) {\n return (currentIndex + 1) % items().length;\n } else {\n return Math.min(currentIndex + 1, items().length - 1);\n }\n });\n },\n },\n up: {\n bind: keyboardControls.up,\n keyDown() {\n selectedIndex.update((currentIndex) => {\n if (wrapAround) {\n return (currentIndex - 1 + items().length) % items().length;\n } else {\n return Math.max(currentIndex - 1, 0);\n }\n });\n },\n },\n enter: {\n bind: keyboardControls.action,\n keyDown() {\n onSelect?.(selectedIndex());\n },\n },\n });\n</script>\n"],"names":["ItemMenu"],"mappings":";;;;;AASqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,EAAE,CAAC,aAAa;AACtI,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB;AAC3D,IAAI,QAAQ,GAAG,UAAU,KAAK,EAAE;AAChC,IAAI,OAAO,QAAQ,CAAC,YAAY;AAChC,QAAQ,OAAO,KAAK,KAAK,aAAa,EAAE;AACxC,KAAK,CAAC;AACN,CAAC;AACD,KAAK,CAAC,UAAU,OAAO,EAAE;AACzB,IAAI,OAAO,YAAY;AACvB,QAAQ,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC/C,KAAK;AACL,CAAC,CAAC;AACF,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI,EAAE,gBAAgB,CAAC,IAAI;AACnC,QAAQ,OAAO,EAAE,YAAY;AAC7B,YAAY,aAAa,CAAC,MAAM,CAAC,UAAU,YAAY,EAAE;AACzD,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM;AAC9D;AACA,qBAAqB;AACrB,oBAAoB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACzE;AACA,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,IAAI,EAAE,EAAE;AACR,QAAQ,IAAI,EAAE,gBAAgB,CAAC,EAAE;AACjC,QAAQ,OAAO,EAAE,YAAY;AAC7B,YAAY,aAAa,CAAC,MAAM,CAAC,UAAU,YAAY,EAAE;AACzD,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,OAAO,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,MAAM;AAC/E;AACA,qBAAqB;AACrB,oBAAoB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC;AACxD;AACA,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,IAAI,EAAE,gBAAgB,CAAC,MAAM;AACrC,QAAQ,OAAO,EAAE,YAAY;AAC7B,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;AACzF,SAAS;AACT,KAAK;AACL,CAAC,CAAC;AACF,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAACA,WAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1L,QAAQ,OAAO;AACf;;;;"}
1
+ {"version":3,"file":"index36.js","sources":["../../../node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.mjs"],"sourcesContent":["import { ReconnectingWebSocket } from \"./chunk-S74YV6PU.mjs\";\n\n// src/index.ts\nvar valueIsNotNil = (keyValuePair) =>\n keyValuePair[1] !== null && keyValuePair[1] !== void 0;\nfunction generateUUID() {\n if (typeof crypto !== \"undefined\" && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n let d = /* @__PURE__ */ new Date().getTime();\n let d2 =\n (typeof performance !== \"undefined\" &&\n performance.now &&\n performance.now() * 1e3) ||\n 0;\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n let r = Math.random() * 16;\n if (d > 0) {\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n } else {\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n return (c === \"x\" ? r : (r & 3) | 8).toString(16);\n });\n}\nfunction getPartyInfo(partySocketOptions, defaultProtocol, defaultParams = {}) {\n const {\n host: rawHost,\n path: rawPath,\n protocol: rawProtocol,\n room,\n party,\n basePath,\n prefix,\n query\n } = partySocketOptions;\n let host = rawHost.replace(/^(http|https|ws|wss):\\/\\//, \"\");\n if (host.endsWith(\"/\")) {\n host = host.slice(0, -1);\n }\n if (rawPath == null ? void 0 : rawPath.startsWith(\"/\")) {\n throw new Error(\"path must not start with a slash\");\n }\n const name = party ?? \"main\";\n const path = rawPath ? `/${rawPath}` : \"\";\n const protocol =\n rawProtocol ||\n (host.startsWith(\"localhost:\") ||\n host.startsWith(\"127.0.0.1:\") ||\n host.startsWith(\"192.168.\") ||\n host.startsWith(\"10.\") ||\n (host.startsWith(\"172.\") &&\n host.split(\".\")[1] >= \"16\" &&\n host.split(\".\")[1] <= \"31\") ||\n host.startsWith(\"[::ffff:7f00:1]:\")\n ? // http / ws\n defaultProtocol\n : // https / wss\n `${defaultProtocol}s`);\n const baseUrl = `${protocol}://${host}/${basePath || `${prefix || \"parties\"}/${name}/${room}`}${path}`;\n const makeUrl = (query2 = {}) =>\n `${baseUrl}?${new URLSearchParams([\n ...Object.entries(defaultParams),\n ...Object.entries(query2).filter(valueIsNotNil)\n ])}`;\n const urlProvider =\n typeof query === \"function\"\n ? async () => makeUrl(await query())\n : makeUrl(query);\n return {\n host,\n path,\n room,\n name,\n protocol,\n partyUrl: baseUrl,\n urlProvider\n };\n}\nvar PartySocket = class extends ReconnectingWebSocket {\n constructor(partySocketOptions) {\n const wsOptions = getWSOptions(partySocketOptions);\n super(wsOptions.urlProvider, wsOptions.protocols, wsOptions.socketOptions);\n this.partySocketOptions = partySocketOptions;\n this.setWSProperties(wsOptions);\n }\n _pk;\n _pkurl;\n name;\n room;\n host;\n path;\n updateProperties(partySocketOptions) {\n const wsOptions = getWSOptions({\n ...this.partySocketOptions,\n ...partySocketOptions,\n host: partySocketOptions.host ?? this.host,\n room: partySocketOptions.room ?? this.room,\n path: partySocketOptions.path ?? this.path\n });\n this._url = wsOptions.urlProvider;\n this._protocols = wsOptions.protocols;\n this._options = wsOptions.socketOptions;\n this.setWSProperties(wsOptions);\n }\n setWSProperties(wsOptions) {\n const { _pk, _pkurl, name, room, host, path } = wsOptions;\n this._pk = _pk;\n this._pkurl = _pkurl;\n this.name = name;\n this.room = room;\n this.host = host;\n this.path = path;\n }\n reconnect(code, reason) {\n if (!this.room || !this.host) {\n throw new Error(\n \"The room and host must be set before connecting, use `updateProperties` method to set them or pass them to the constructor.\"\n );\n }\n super.reconnect(code, reason);\n }\n get id() {\n return this._pk;\n }\n /**\n * Exposes the static PartyKit room URL without applying query parameters.\n * To access the currently connected WebSocket url, use PartySocket#url.\n */\n get roomUrl() {\n return this._pkurl;\n }\n // a `fetch` method that uses (almost) the same options as `PartySocket`\n static async fetch(options, init) {\n const party = getPartyInfo(options, \"http\");\n const url =\n typeof party.urlProvider === \"string\"\n ? party.urlProvider\n : await party.urlProvider();\n const doFetch = options.fetch ?? fetch;\n return doFetch(url, init);\n }\n};\nfunction getWSOptions(partySocketOptions) {\n const {\n id,\n host: _host,\n path: _path,\n party: _party,\n room: _room,\n protocol: _protocol,\n query: _query,\n protocols,\n ...socketOptions\n } = partySocketOptions;\n const _pk = id || generateUUID();\n const party = getPartyInfo(partySocketOptions, \"ws\", { _pk });\n return {\n _pk,\n _pkurl: party.partyUrl,\n name: party.name,\n room: party.room,\n host: party.host,\n path: party.path,\n protocols,\n socketOptions,\n urlProvider: party.urlProvider\n };\n}\n\nexport { PartySocket };\n//# sourceMappingURL=chunk-HAC622V3.mjs.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}