@rpgjs/client 5.0.0-alpha.14 → 5.0.0-alpha.16

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 (44) hide show
  1. package/dist/Game/Map.d.ts +2 -1
  2. package/dist/RpgClient.d.ts +39 -0
  3. package/dist/RpgClientEngine.d.ts +138 -2
  4. package/dist/index10.js +1 -2
  5. package/dist/index10.js.map +1 -1
  6. package/dist/index15.js +58 -16
  7. package/dist/index15.js.map +1 -1
  8. package/dist/index2.js +303 -3
  9. package/dist/index2.js.map +1 -1
  10. package/dist/index20.js +3 -0
  11. package/dist/index20.js.map +1 -1
  12. package/dist/index22.js +3 -3
  13. package/dist/index23.js +2 -2
  14. package/dist/index25.js +1 -2
  15. package/dist/index25.js.map +1 -1
  16. package/dist/index33.js +1 -1
  17. package/dist/index34.js +1 -1
  18. package/dist/index35.js +9 -184
  19. package/dist/index35.js.map +1 -1
  20. package/dist/index36.js +6 -503
  21. package/dist/index36.js.map +1 -1
  22. package/dist/index37.js +3687 -9
  23. package/dist/index37.js.map +1 -1
  24. package/dist/index38.js +186 -6
  25. package/dist/index38.js.map +1 -1
  26. package/dist/index39.js +499 -3685
  27. package/dist/index39.js.map +1 -1
  28. package/dist/index40.js +1 -1
  29. package/dist/index41.js +1 -1
  30. package/dist/index42.js +119 -16
  31. package/dist/index42.js.map +1 -1
  32. package/dist/index43.js +16 -92
  33. package/dist/index43.js.map +1 -1
  34. package/dist/index8.js +8 -0
  35. package/dist/index8.js.map +1 -1
  36. package/package.json +4 -4
  37. package/src/Game/Map.ts +5 -1
  38. package/src/Game/Object.ts +37 -4
  39. package/src/RpgClient.ts +40 -0
  40. package/src/RpgClientEngine.ts +374 -11
  41. package/src/components/animations/animation.ce +1 -2
  42. package/src/components/character.ce +80 -20
  43. package/src/components/gui/dialogbox/index.ce +1 -2
  44. package/src/module.ts +8 -0
package/dist/index38.js CHANGED
@@ -1,7 +1,187 @@
1
- export { getErrorMap, setErrorMap } from './index44.js';
2
- export { DIRTY, EMPTY_PATH, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue } from './index45.js';
3
- export { ZodParsedType, getParsedType, objectUtil, util } from './index46.js';
4
- export { BRAND, NEVER, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, any, array, bigint, boolean, coerce, custom, date, datetimeRegex, discriminatedUnion, effect, enum, function, instanceof, intersection, late, lazy, literal, map, nan, nativeEnum, never, null, nullable, number, object, oboolean, onumber, optional, ostring, pipeline, preprocess, promise, record, set, strictObject, string, symbol, effect as transformer, tuple, undefined, union, unknown, void } from './index39.js';
5
- export { ZodError, ZodIssueCode, quotelessJson } from './index47.js';
6
- export { default as defaultErrorMap } from './index48.js';
1
+ import { ReconnectingWebSocket } from './index39.js';
2
+
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
+ var _a, _b;
85
+ const wsOptions = getWSOptions(partySocketOptions);
86
+ super(wsOptions.urlProvider, wsOptions.protocols, wsOptions.socketOptions);
87
+ this.partySocketOptions = partySocketOptions;
88
+ this.setWSProperties(wsOptions);
89
+ if (!partySocketOptions.disableNameValidation) {
90
+ if ((_a = partySocketOptions.party) == null ? void 0 : _a.includes("/")) {
91
+ console.warn(
92
+ `PartySocket: party name "${partySocketOptions.party}" contains forward slash which may cause routing issues. Consider using a name without forward slashes or set disableNameValidation: true to bypass this warning.`
93
+ );
94
+ }
95
+ if ((_b = partySocketOptions.room) == null ? void 0 : _b.includes("/")) {
96
+ console.warn(
97
+ `PartySocket: room name "${partySocketOptions.room}" contains forward slash which may cause routing issues. Consider using a name without forward slashes or set disableNameValidation: true to bypass this warning.`
98
+ );
99
+ }
100
+ }
101
+ }
102
+ _pk;
103
+ _pkurl;
104
+ name;
105
+ room;
106
+ host;
107
+ path;
108
+ updateProperties(partySocketOptions) {
109
+ const wsOptions = getWSOptions({
110
+ ...this.partySocketOptions,
111
+ ...partySocketOptions,
112
+ host: partySocketOptions.host ?? this.host,
113
+ room: partySocketOptions.room ?? this.room,
114
+ path: partySocketOptions.path ?? this.path
115
+ });
116
+ this._url = wsOptions.urlProvider;
117
+ this._protocols = wsOptions.protocols;
118
+ this._options = wsOptions.socketOptions;
119
+ this.setWSProperties(wsOptions);
120
+ }
121
+ setWSProperties(wsOptions) {
122
+ const { _pk, _pkurl, name, room, host, path } = wsOptions;
123
+ this._pk = _pk;
124
+ this._pkurl = _pkurl;
125
+ this.name = name;
126
+ this.room = room;
127
+ this.host = host;
128
+ this.path = path;
129
+ }
130
+ reconnect(code, reason) {
131
+ if (!this.room || !this.host) {
132
+ throw new Error(
133
+ "The room and host must be set before connecting, use `updateProperties` method to set them or pass them to the constructor."
134
+ );
135
+ }
136
+ super.reconnect(code, reason);
137
+ }
138
+ get id() {
139
+ return this._pk;
140
+ }
141
+ /**
142
+ * Exposes the static PartyKit room URL without applying query parameters.
143
+ * To access the currently connected WebSocket url, use PartySocket#url.
144
+ */
145
+ get roomUrl() {
146
+ return this._pkurl;
147
+ }
148
+ // a `fetch` method that uses (almost) the same options as `PartySocket`
149
+ static async fetch(options, init) {
150
+ const party = getPartyInfo(options, "http");
151
+ const url =
152
+ typeof party.urlProvider === "string"
153
+ ? party.urlProvider
154
+ : await party.urlProvider();
155
+ const doFetch = options.fetch ?? fetch;
156
+ return doFetch(url, init);
157
+ }
158
+ };
159
+ function getWSOptions(partySocketOptions) {
160
+ const {
161
+ id,
162
+ host: _host,
163
+ path: _path,
164
+ party: _party,
165
+ room: _room,
166
+ protocol: _protocol,
167
+ query: _query,
168
+ protocols,
169
+ ...socketOptions
170
+ } = partySocketOptions;
171
+ const _pk = id || generateUUID();
172
+ const party = getPartyInfo(partySocketOptions, "ws", { _pk });
173
+ return {
174
+ _pk,
175
+ _pkurl: party.partyUrl,
176
+ name: party.name,
177
+ room: party.room,
178
+ host: party.host,
179
+ path: party.path,
180
+ protocols,
181
+ socketOptions,
182
+ urlProvider: party.urlProvider
183
+ };
184
+ }
185
+
186
+ export { PartySocket };
7
187
  //# sourceMappingURL=index38.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index38.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"index38.js","sources":["../../../node_modules/.pnpm/partysocket@1.1.5/node_modules/partysocket/dist/chunk-NLWAO4PP.mjs"],"sourcesContent":["import { ReconnectingWebSocket } from \"./chunk-ZCZZNAX5.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 var _a, _b;\n const wsOptions = getWSOptions(partySocketOptions);\n super(wsOptions.urlProvider, wsOptions.protocols, wsOptions.socketOptions);\n this.partySocketOptions = partySocketOptions;\n this.setWSProperties(wsOptions);\n if (!partySocketOptions.disableNameValidation) {\n if ((_a = partySocketOptions.party) == null ? void 0 : _a.includes(\"/\")) {\n console.warn(\n `PartySocket: party name \"${partySocketOptions.party}\" contains forward slash which may cause routing issues. Consider using a name without forward slashes or set disableNameValidation: true to bypass this warning.`\n );\n }\n if ((_b = partySocketOptions.room) == null ? void 0 : _b.includes(\"/\")) {\n console.warn(\n `PartySocket: room name \"${partySocketOptions.room}\" contains forward slash which may cause routing issues. Consider using a name without forward slashes or set disableNameValidation: true to bypass this warning.`\n );\n }\n }\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-NLWAO4PP.mjs.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}