token-usage-dashboard 1.0.13 → 1.0.14
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/build/adapter-node.js +11 -0
- package/build/client/_app/immutable/chunks/B0VWrXPj.js +1 -0
- package/build/client/_app/immutable/chunks/B0VWrXPj.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0VWrXPj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BaNbYf_w.js +1 -0
- package/build/client/_app/immutable/chunks/BaNbYf_w.js.br +0 -0
- package/build/client/_app/immutable/chunks/BaNbYf_w.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CbiRHTcG.js +1 -0
- package/build/client/_app/immutable/chunks/CbiRHTcG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CbiRHTcG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTingiCe.js +3 -0
- package/build/client/_app/immutable/chunks/DTingiCe.js.br +0 -0
- package/build/client/_app/immutable/chunks/DTingiCe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ssd4Rw-g.js +3 -0
- package/build/client/_app/immutable/chunks/ssd4Rw-g.js.br +0 -0
- package/build/client/_app/immutable/chunks/ssd4Rw-g.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CRLWmGVY.js +2 -0
- package/build/client/_app/immutable/entry/app.CRLWmGVY.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CRLWmGVY.js.gz +0 -0
- package/build/client/_app/immutable/entry/payload.DSmR2FwN.js +1 -0
- package/build/client/_app/immutable/entry/payload.DSmR2FwN.js.br +0 -0
- package/build/client/_app/immutable/entry/payload.DSmR2FwN.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CzGx2BYz.js +2 -0
- package/build/client/_app/immutable/entry/start.CzGx2BYz.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CzGx2BYz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BBGTwdwd.js +1 -0
- package/build/client/_app/immutable/nodes/0.BBGTwdwd.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BBGTwdwd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Cy2JV0fN.js +1 -0
- package/build/client/_app/immutable/nodes/1.Cy2JV0fN.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.Cy2JV0fN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CRMPKkcX.js +2 -0
- package/build/client/_app/immutable/nodes/2.CRMPKkcX.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CRMPKkcX.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +1 -22
- package/build/index.js +1 -145
- package/build/server/.vite/manifest.json +271 -0
- package/build/server/_app/immutable/assets/_layout.CZ6VMqH1.css +1 -0
- package/build/server/_app/immutable/assets/_page.CZocdpCk.css +1 -0
- package/build/server/adapter-env.js +2 -0
- package/build/server/adapter-index.js +74 -0
- package/build/server/adapter-node-env.js +63 -0
- package/build/server/adapter-node-handler.js +584 -0
- package/build/server/chunks/config.js +10 -0
- package/build/server/chunks/functions.js +30 -0
- package/build/server/chunks/index-server.js +2 -0
- package/build/server/chunks/instance.js +3546 -0
- package/build/server/chunks/internal.js +3323 -0
- package/build/server/chunks/navigation.js +16 -0
- package/build/server/chunks/{chunks/queries.js-BEdRnpMa.js → queries.js} +9 -9
- package/build/server/chunks/{chunks/range.js-CiCoLGqh.js → range.js} +3 -2
- package/build/server/chunks/{chunks/refresh.js-0W7-GwaH.js → refresh.js} +7 -7
- package/build/server/chunks/{chunks/request.js-BF7n7fZo.js → request.js} +5 -5
- package/build/server/chunks/server-errors.js +489 -0
- package/build/server/chunks/server.js +9 -0
- package/build/server/chunks/server2.js +1504 -0
- package/build/server/chunks/shared.js +84 -0
- package/build/server/chunks/uneval.js +537 -0
- package/build/server/entries/endpoints/api/refresh/_server.ts.js +12 -0
- package/build/server/entries/endpoints/api/settings/_server.ts.js +15 -0
- package/build/server/entries/endpoints/api/usage/_server.ts.js +8 -0
- package/build/server/entries/fallbacks/error.svelte.js +47 -0
- package/build/server/entries/hooks.server.js +10 -0
- package/build/server/{chunks/entries/pages/_layout.svelte.js-C9kkUOBf.js → entries/pages/_layout.svelte.js} +4 -2
- package/build/server/entries/pages/_page.server.ts.js +12 -0
- package/build/server/{chunks/entries/pages/_page.svelte.js-HFiLlojS.js → entries/pages/_page.svelte.js} +64 -27
- package/build/server/env.js +2 -0
- package/build/server/handler.js +2 -0
- package/build/server/index.js +67 -0
- package/build/server/manifest-full.js +58 -0
- package/build/server/manifest.js +58 -0
- package/build/server/nodes/0.js +8 -0
- package/build/server/nodes/1.js +8 -0
- package/build/server/nodes/2.js +10 -0
- package/build/server/remote-entry.js +1564 -0
- package/build/server/server.js +60 -0
- package/package.json +8 -8
- package/build/client/_app/immutable/chunks/CukLSH0w.js +0 -2
- package/build/client/_app/immutable/chunks/CukLSH0w.js.br +0 -0
- package/build/client/_app/immutable/chunks/CukLSH0w.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dsm7b1TR.js +0 -3
- package/build/client/_app/immutable/chunks/Dsm7b1TR.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dsm7b1TR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js +0 -1
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +0 -1
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Hr-44d0W.js +0 -2
- package/build/client/_app/immutable/entry/app.Hr-44d0W.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Hr-44d0W.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DGEKXdCU.js +0 -1
- package/build/client/_app/immutable/entry/start.DGEKXdCU.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DGEKXdCU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.PGglbI9f.js +0 -1
- package/build/client/_app/immutable/nodes/0.PGglbI9f.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.PGglbI9f.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.MxgNrYxb.js +0 -1
- package/build/client/_app/immutable/nodes/1.MxgNrYxb.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.MxgNrYxb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DOLqBxXu.js +0 -2
- package/build/client/_app/immutable/nodes/2.DOLqBxXu.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DOLqBxXu.js.gz +0 -0
- package/build/env.js +0 -70
- package/build/server/chunks/chunks/client.js-9ZtqvVP6.js +0 -28
- package/build/server/chunks/chunks/env.js-l0sNRNKZ.js +0 -2
- package/build/server/chunks/chunks/exports.js-Bbyr-JtB.js +0 -349
- package/build/server/chunks/chunks/internal.js-WGl35QnN.js +0 -1202
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js +0 -22
- package/build/server/chunks/chunks/server.js-UOanU7fq.js +0 -5527
- package/build/server/chunks/chunks/shared.js-Dg3Ewm8t.js +0 -255
- package/build/server/chunks/chunks/utils.js-DUDFXVFd.js +0 -1049
- package/build/server/chunks/entries/endpoints/api/refresh/_server.ts.js-CcG44vTx.js +0 -21
- package/build/server/chunks/entries/endpoints/api/settings/_server.ts.js-B0LWCQis.js +0 -24
- package/build/server/chunks/entries/endpoints/api/usage/_server.ts.js-CJGTdjik.js +0 -17
- package/build/server/chunks/entries/fallbacks/error.svelte.js-D7UgI0q0.js +0 -68
- package/build/server/chunks/entries/hooks.server.js-_Fcw_IVA.js +0 -16
- package/build/server/chunks/entries/pages/_page.server.ts.js-BBibcAZP.js +0 -17
- package/build/server/chunks/handler-TvIKu86j.js +0 -1475
- package/build/server/chunks/index.js-C3LwYUKO.js +0 -3972
- package/build/server/chunks/manifest.js-CZoz0xLc.js +0 -63
- package/build/server/chunks/nodes/0.js-7EReDAeT.js +0 -9
- package/build/server/chunks/nodes/1.js-BcW8BjKg.js +0 -9
- package/build/server/chunks/nodes/2.js-fS9KDy-5.js +0 -20
- package/build/shims.js +0 -33
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
//#region node_modules/@sveltejs/kit/src/exports/internal/shared.js
|
|
2
|
+
/** @import { StandardSchemaV1 } from '@standard-schema/spec' */
|
|
3
|
+
var HttpError = class {
|
|
4
|
+
/**
|
|
5
|
+
* @param {App.Error} error
|
|
6
|
+
*/
|
|
7
|
+
constructor(error) {
|
|
8
|
+
this.status = error.status;
|
|
9
|
+
this.body = error;
|
|
10
|
+
}
|
|
11
|
+
toString() {
|
|
12
|
+
return JSON.stringify(this.body);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* An `HttpError` whose body is already in its final, user-facing form — either produced by the
|
|
17
|
+
* `handleError` hook on the server and reconstructed here from the response, or authored directly
|
|
18
|
+
* by the client runtime. Unlike a plain `HttpError` (which represents a fresh `error(...)` call
|
|
19
|
+
* that the hook has yet to see), `handleError` must not run on it.
|
|
20
|
+
* @extends HttpError
|
|
21
|
+
*/
|
|
22
|
+
var HandledHttpError = class extends HttpError {};
|
|
23
|
+
var Redirect = class {
|
|
24
|
+
/**
|
|
25
|
+
* @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status
|
|
26
|
+
* @param {string} location
|
|
27
|
+
*/
|
|
28
|
+
constructor(status, location) {
|
|
29
|
+
try {
|
|
30
|
+
new Headers({ location });
|
|
31
|
+
} catch {
|
|
32
|
+
throw new Error(`Invalid redirect location ${JSON.stringify(location)}: this string contains characters that cannot be used in HTTP headers`);
|
|
33
|
+
}
|
|
34
|
+
this.status = status;
|
|
35
|
+
this.location = location;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* An error that was thrown from within the SvelteKit runtime that is not fatal and doesn't result in a 500, such as a 404.
|
|
40
|
+
* `SvelteKitError` goes through `handleError`.
|
|
41
|
+
* @extends Error
|
|
42
|
+
*/
|
|
43
|
+
var SvelteKitError = class extends Error {
|
|
44
|
+
/**
|
|
45
|
+
* @param {number} status
|
|
46
|
+
* @param {string} text
|
|
47
|
+
* @param {string} message
|
|
48
|
+
*/
|
|
49
|
+
constructor(status, text, message) {
|
|
50
|
+
super(message);
|
|
51
|
+
this.status = status;
|
|
52
|
+
this.text = text;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* @template [T=undefined]
|
|
57
|
+
*/
|
|
58
|
+
var ActionFailure = class {
|
|
59
|
+
/**
|
|
60
|
+
* @param {number} status
|
|
61
|
+
* @param {T} data
|
|
62
|
+
*/
|
|
63
|
+
constructor(status, data) {
|
|
64
|
+
this.status = status;
|
|
65
|
+
this.data = data;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Error thrown when form validation fails imperatively
|
|
70
|
+
*/
|
|
71
|
+
var ValidationError = class extends Error {
|
|
72
|
+
/**
|
|
73
|
+
* @param {StandardSchemaV1.Issue[]} issues
|
|
74
|
+
*/
|
|
75
|
+
constructor(issues) {
|
|
76
|
+
super("Validation failed");
|
|
77
|
+
this.name = "ValidationError";
|
|
78
|
+
this.issues = issues;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
export { SvelteKitError as a, Redirect as i, HandledHttpError as n, ValidationError as o, HttpError as r, ActionFailure as t };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
//#region node_modules/devalue/src/constants.js
|
|
2
|
+
var MAX_ARRAY_LEN = 2 ** 32 - 1;
|
|
3
|
+
var MAX_ARRAY_INDEX = MAX_ARRAY_LEN - 1;
|
|
4
|
+
//#endregion
|
|
5
|
+
//#region node_modules/devalue/src/utils.js
|
|
6
|
+
/** @type {Record<string, string>} */
|
|
7
|
+
var escaped = {
|
|
8
|
+
"<": "\\u003C",
|
|
9
|
+
"\\": "\\\\",
|
|
10
|
+
"\b": "\\b",
|
|
11
|
+
"\f": "\\f",
|
|
12
|
+
"\n": "\\n",
|
|
13
|
+
"\r": "\\r",
|
|
14
|
+
" ": "\\t",
|
|
15
|
+
"\u2028": "\\u2028",
|
|
16
|
+
"\u2029": "\\u2029"
|
|
17
|
+
};
|
|
18
|
+
var DevalueError = class extends Error {
|
|
19
|
+
/**
|
|
20
|
+
* @param {string} message
|
|
21
|
+
* @param {string[]} keys
|
|
22
|
+
* @param {any} [value] - The value that failed to be serialized
|
|
23
|
+
* @param {any} [root] - The root value being serialized
|
|
24
|
+
*/
|
|
25
|
+
constructor(message, keys, value, root) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.name = "DevalueError";
|
|
28
|
+
this.path = keys.join("");
|
|
29
|
+
this.value = value;
|
|
30
|
+
this.root = root;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
/** @param {any} thing */
|
|
34
|
+
function is_primitive(thing) {
|
|
35
|
+
return thing === null || typeof thing !== "object" && typeof thing !== "function";
|
|
36
|
+
}
|
|
37
|
+
var object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(Object.prototype).sort().join("\0");
|
|
38
|
+
/** @param {any} thing */
|
|
39
|
+
function is_plain_object(thing) {
|
|
40
|
+
const proto = Object.getPrototypeOf(thing);
|
|
41
|
+
return proto === Object.prototype || proto === null || Object.getPrototypeOf(proto) === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names;
|
|
42
|
+
}
|
|
43
|
+
/** @param {any} thing */
|
|
44
|
+
function get_type(thing) {
|
|
45
|
+
return Object.prototype.toString.call(thing).slice(8, -1);
|
|
46
|
+
}
|
|
47
|
+
/** @param {any} thing */
|
|
48
|
+
function is_buffer(thing) {
|
|
49
|
+
return typeof Buffer !== "undefined" && Buffer.isBuffer(thing);
|
|
50
|
+
}
|
|
51
|
+
/** @param {string} char */
|
|
52
|
+
function get_escaped_char(char) {
|
|
53
|
+
switch (char) {
|
|
54
|
+
case "\"": return "\\\"";
|
|
55
|
+
case "<": return "\\u003C";
|
|
56
|
+
case "\\": return "\\\\";
|
|
57
|
+
case "\n": return "\\n";
|
|
58
|
+
case "\r": return "\\r";
|
|
59
|
+
case " ": return "\\t";
|
|
60
|
+
case "\b": return "\\b";
|
|
61
|
+
case "\f": return "\\f";
|
|
62
|
+
case "\u2028": return "\\u2028";
|
|
63
|
+
case "\u2029": return "\\u2029";
|
|
64
|
+
default: return char < " " ? `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}` : "";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** @param {string} str */
|
|
68
|
+
function stringify_string(str) {
|
|
69
|
+
let result = "";
|
|
70
|
+
let last_pos = 0;
|
|
71
|
+
const len = str.length;
|
|
72
|
+
for (let i = 0; i < len; i += 1) {
|
|
73
|
+
const char = str[i];
|
|
74
|
+
const replacement = get_escaped_char(char);
|
|
75
|
+
if (replacement) {
|
|
76
|
+
result += str.slice(last_pos, i) + replacement;
|
|
77
|
+
last_pos = i + 1;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`;
|
|
81
|
+
}
|
|
82
|
+
/** @param {Record<string | symbol, any>} object */
|
|
83
|
+
function enumerable_symbols(object) {
|
|
84
|
+
return Object.getOwnPropertySymbols(object).filter((symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable);
|
|
85
|
+
}
|
|
86
|
+
var is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
|
|
87
|
+
/** @param {string} key */
|
|
88
|
+
function stringify_key(key) {
|
|
89
|
+
return is_identifier.test(key) ? "." + key : "[" + JSON.stringify(key) + "]";
|
|
90
|
+
}
|
|
91
|
+
/** @param {number} n */
|
|
92
|
+
function is_valid_array_index(n) {
|
|
93
|
+
if (!Number.isInteger(n)) return false;
|
|
94
|
+
if (n < 0) return false;
|
|
95
|
+
if (n > MAX_ARRAY_INDEX) return false;
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
/** @param {number} n */
|
|
99
|
+
function is_valid_array_len(n) {
|
|
100
|
+
if (!Number.isInteger(n)) return false;
|
|
101
|
+
if (n < 0) return false;
|
|
102
|
+
if (n > MAX_ARRAY_LEN) return false;
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
/** @param {string} s */
|
|
106
|
+
function is_valid_array_index_string(s) {
|
|
107
|
+
if (s.length === 0) return false;
|
|
108
|
+
if (s.length > 1 && s.charCodeAt(0) === 48) return false;
|
|
109
|
+
for (let i = 0; i < s.length; i++) {
|
|
110
|
+
const c = s.charCodeAt(i);
|
|
111
|
+
if (c < 48 || c > 57) return false;
|
|
112
|
+
}
|
|
113
|
+
return is_valid_array_index(+s);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns the length of the leading run of valid array indices in `keys`.
|
|
117
|
+
* @param {readonly string[]} keys
|
|
118
|
+
*/
|
|
119
|
+
function array_index_cut(keys) {
|
|
120
|
+
for (var i = keys.length - 1; i >= 0; i--) if (is_valid_array_index_string(keys[i])) break;
|
|
121
|
+
return i + 1;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Finds the populated indices of an array.
|
|
125
|
+
* @param {unknown[]} array
|
|
126
|
+
*/
|
|
127
|
+
function valid_array_indices(array) {
|
|
128
|
+
const keys = Object.keys(array);
|
|
129
|
+
keys.length = array_index_cut(keys);
|
|
130
|
+
return keys;
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
//#region node_modules/devalue/src/uneval.js
|
|
134
|
+
var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$";
|
|
135
|
+
var MIN_STRING_LENGTH = 128;
|
|
136
|
+
var unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
|
|
137
|
+
var reserved = /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;
|
|
138
|
+
/**
|
|
139
|
+
* Turn a value into the JavaScript that creates an equivalent value
|
|
140
|
+
* @param {any} value
|
|
141
|
+
* @param {(value: any, uneval: (value: any) => string) => string | void} [replacer]
|
|
142
|
+
*/
|
|
143
|
+
function uneval(value, replacer) {
|
|
144
|
+
const counts = /* @__PURE__ */ new Map();
|
|
145
|
+
/** @type {string[]} */
|
|
146
|
+
const keys = [];
|
|
147
|
+
const custom = /* @__PURE__ */ new Map();
|
|
148
|
+
/** @type {Map<string | bigint, string> | undefined} */
|
|
149
|
+
let primitives;
|
|
150
|
+
/** @param {any} thing */
|
|
151
|
+
function stringify_cached_primitive(thing) {
|
|
152
|
+
if (typeof thing === "string" && thing.length >= MIN_STRING_LENGTH || typeof thing === "bigint") {
|
|
153
|
+
primitives ??= /* @__PURE__ */ new Map();
|
|
154
|
+
let literal = primitives.get(thing);
|
|
155
|
+
if (literal === void 0) {
|
|
156
|
+
literal = stringify_primitive(thing);
|
|
157
|
+
primitives.set(thing, literal);
|
|
158
|
+
}
|
|
159
|
+
return literal;
|
|
160
|
+
}
|
|
161
|
+
return stringify_primitive(thing);
|
|
162
|
+
}
|
|
163
|
+
/** @param {any} thing */
|
|
164
|
+
function walk(thing) {
|
|
165
|
+
if (!is_primitive(thing)) {
|
|
166
|
+
if (counts.has(thing)) {
|
|
167
|
+
counts.set(thing, counts.get(thing) + 1);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
counts.set(thing, 1);
|
|
171
|
+
if (replacer) {
|
|
172
|
+
const str = replacer(thing, (value) => uneval(value, replacer));
|
|
173
|
+
if (typeof str === "string") {
|
|
174
|
+
custom.set(thing, str);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (typeof thing === "function") throw new DevalueError(`Cannot stringify a function`, keys, thing, value);
|
|
179
|
+
switch (get_type(thing)) {
|
|
180
|
+
case "BigInt":
|
|
181
|
+
case "String":
|
|
182
|
+
walk(thing.valueOf());
|
|
183
|
+
return;
|
|
184
|
+
case "Number":
|
|
185
|
+
case "Boolean":
|
|
186
|
+
case "Date":
|
|
187
|
+
case "RegExp":
|
|
188
|
+
case "URL":
|
|
189
|
+
case "URLSearchParams": return;
|
|
190
|
+
case "Array":
|
|
191
|
+
for (const i of valid_array_indices(thing)) {
|
|
192
|
+
keys.push(`[${i}]`);
|
|
193
|
+
walk(thing[i]);
|
|
194
|
+
keys.pop();
|
|
195
|
+
}
|
|
196
|
+
break;
|
|
197
|
+
case "Set":
|
|
198
|
+
Array.from(thing).forEach(walk);
|
|
199
|
+
break;
|
|
200
|
+
case "Map":
|
|
201
|
+
for (const [key, value] of thing) {
|
|
202
|
+
keys.push(`.get(${is_primitive(key) ? stringify_cached_primitive(key) : "..."})`);
|
|
203
|
+
walk(key);
|
|
204
|
+
walk(value);
|
|
205
|
+
keys.pop();
|
|
206
|
+
}
|
|
207
|
+
break;
|
|
208
|
+
case "Int8Array":
|
|
209
|
+
case "Uint8Array":
|
|
210
|
+
case "Uint8ClampedArray":
|
|
211
|
+
case "Int16Array":
|
|
212
|
+
case "Uint16Array":
|
|
213
|
+
case "Float16Array":
|
|
214
|
+
case "Int32Array":
|
|
215
|
+
case "Uint32Array":
|
|
216
|
+
case "Float32Array":
|
|
217
|
+
case "Float64Array":
|
|
218
|
+
case "BigInt64Array":
|
|
219
|
+
case "BigUint64Array":
|
|
220
|
+
case "DataView":
|
|
221
|
+
if (!is_buffer(thing)) walk(thing.buffer);
|
|
222
|
+
return;
|
|
223
|
+
case "ArrayBuffer": return;
|
|
224
|
+
case "Temporal.Duration":
|
|
225
|
+
case "Temporal.Instant":
|
|
226
|
+
case "Temporal.PlainDate":
|
|
227
|
+
case "Temporal.PlainTime":
|
|
228
|
+
case "Temporal.PlainDateTime":
|
|
229
|
+
case "Temporal.PlainMonthDay":
|
|
230
|
+
case "Temporal.PlainYearMonth":
|
|
231
|
+
case "Temporal.ZonedDateTime": return;
|
|
232
|
+
default:
|
|
233
|
+
if (!is_plain_object(thing)) throw new DevalueError(`Cannot stringify arbitrary non-POJOs`, keys, thing, value);
|
|
234
|
+
if (enumerable_symbols(thing).length > 0) throw new DevalueError(`Cannot stringify POJOs with symbolic keys`, keys, thing, value);
|
|
235
|
+
for (const key of Object.keys(thing)) {
|
|
236
|
+
if (key === "__proto__") throw new DevalueError(`Cannot stringify objects with __proto__ keys`, keys, thing, value);
|
|
237
|
+
keys.push(stringify_key(key));
|
|
238
|
+
walk(thing[key]);
|
|
239
|
+
keys.pop();
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
} else if (typeof thing === "symbol") throw new DevalueError(`Cannot stringify a Symbol primitive`, keys, thing, value);
|
|
243
|
+
else if (typeof thing === "string" && thing.length >= MIN_STRING_LENGTH || typeof thing === "bigint") counts.set(thing, (counts.get(thing) || 0) + 1);
|
|
244
|
+
}
|
|
245
|
+
walk(value);
|
|
246
|
+
const names = /* @__PURE__ */ new Map();
|
|
247
|
+
/** @type {Array<[any, number]>} */
|
|
248
|
+
const repeated = [];
|
|
249
|
+
counts.forEach((count, thing) => {
|
|
250
|
+
if (count > 1) repeated.push([thing, count]);
|
|
251
|
+
});
|
|
252
|
+
repeated.sort((a, b) => b[1] - a[1]).forEach(([thing, count]) => {
|
|
253
|
+
const name = get_name(names.size);
|
|
254
|
+
if (is_primitive(thing)) {
|
|
255
|
+
const length = stringify_cached_primitive(thing).length;
|
|
256
|
+
if (length * count <= length + (count + 1) * name.length + 25) return;
|
|
257
|
+
}
|
|
258
|
+
names.set(thing, name);
|
|
259
|
+
});
|
|
260
|
+
/**
|
|
261
|
+
* @param {any} thing
|
|
262
|
+
* @returns {string}
|
|
263
|
+
*/
|
|
264
|
+
function stringify(thing) {
|
|
265
|
+
if (names.has(thing)) return names.get(thing);
|
|
266
|
+
if (is_primitive(thing)) return stringify_primitive(thing);
|
|
267
|
+
if (custom.has(thing)) return custom.get(thing);
|
|
268
|
+
const type = get_type(thing);
|
|
269
|
+
switch (type) {
|
|
270
|
+
case "Number":
|
|
271
|
+
case "String":
|
|
272
|
+
case "Boolean":
|
|
273
|
+
case "BigInt": return `Object(${stringify(thing.valueOf())})`;
|
|
274
|
+
case "RegExp":
|
|
275
|
+
const { source, flags } = thing;
|
|
276
|
+
return flags ? `new RegExp(${stringify_string(source)},"${flags}")` : `new RegExp(${stringify_string(source)})`;
|
|
277
|
+
case "Date": return `new Date(${thing.getTime()})`;
|
|
278
|
+
case "URL": return `new URL(${stringify_string(thing.toString())})`;
|
|
279
|
+
case "URLSearchParams": return `new URLSearchParams(${stringify_string(thing.toString())})`;
|
|
280
|
+
case "Array": {
|
|
281
|
+
let has_holes = false;
|
|
282
|
+
let result = "[";
|
|
283
|
+
for (let i = 0; i < thing.length; i += 1) {
|
|
284
|
+
if (i > 0) result += ",";
|
|
285
|
+
if (Object.hasOwn(thing, i)) result += stringify(thing[i]);
|
|
286
|
+
else if (!has_holes) {
|
|
287
|
+
const populated_keys = valid_array_indices(thing);
|
|
288
|
+
const population = populated_keys.length;
|
|
289
|
+
const d = String(thing.length).length;
|
|
290
|
+
const array = stringify_sparse_array(thing.length);
|
|
291
|
+
if (thing.length + 2 > array.length + 18 + population * (d + 2)) return `Object.assign(${array},{${populated_keys.map((k) => `${k}:${stringify(thing[k])}`).join(",")}})`;
|
|
292
|
+
has_holes = true;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
const tail = thing.length === 0 || Object.hasOwn(thing, thing.length - 1) ? "" : ",";
|
|
296
|
+
return result + tail + "]";
|
|
297
|
+
}
|
|
298
|
+
case "Set":
|
|
299
|
+
case "Map": return `new ${type}([${Array.from(thing).map(stringify).join(",")}])`;
|
|
300
|
+
case "Int8Array":
|
|
301
|
+
case "Uint8Array":
|
|
302
|
+
case "Uint8ClampedArray":
|
|
303
|
+
case "Int16Array":
|
|
304
|
+
case "Uint16Array":
|
|
305
|
+
case "Float16Array":
|
|
306
|
+
case "Int32Array":
|
|
307
|
+
case "Uint32Array":
|
|
308
|
+
case "Float32Array":
|
|
309
|
+
case "Float64Array":
|
|
310
|
+
case "BigInt64Array":
|
|
311
|
+
case "BigUint64Array": {
|
|
312
|
+
if (is_buffer(thing)) thing = new Uint8Array(thing);
|
|
313
|
+
let str = `new ${type}`;
|
|
314
|
+
if (!names.has(thing.buffer)) str += `([${stringify_typed_array_elements(type, thing.buffer)}])`;
|
|
315
|
+
else str += `(${stringify(thing.buffer)})`;
|
|
316
|
+
if (thing.byteLength !== thing.buffer.byteLength) {
|
|
317
|
+
const start = thing.byteOffset / thing.BYTES_PER_ELEMENT;
|
|
318
|
+
const end = start + thing.length;
|
|
319
|
+
str += `.subarray(${start},${end})`;
|
|
320
|
+
}
|
|
321
|
+
return str;
|
|
322
|
+
}
|
|
323
|
+
case "DataView": {
|
|
324
|
+
let str = `new DataView`;
|
|
325
|
+
if (!names.has(thing.buffer)) str += `(new Uint8Array([${new Uint8Array(thing.buffer)}]).buffer`;
|
|
326
|
+
else str += `(${stringify(thing.buffer)}`;
|
|
327
|
+
if (thing.byteLength !== thing.buffer.byteLength) str += `,${thing.byteOffset},${thing.byteLength}`;
|
|
328
|
+
return str + ")";
|
|
329
|
+
}
|
|
330
|
+
case "ArrayBuffer": return `new Uint8Array([${new Uint8Array(thing).toString()}]).buffer`;
|
|
331
|
+
case "Temporal.Duration":
|
|
332
|
+
case "Temporal.Instant":
|
|
333
|
+
case "Temporal.PlainDate":
|
|
334
|
+
case "Temporal.PlainTime":
|
|
335
|
+
case "Temporal.PlainDateTime":
|
|
336
|
+
case "Temporal.PlainMonthDay":
|
|
337
|
+
case "Temporal.PlainYearMonth":
|
|
338
|
+
case "Temporal.ZonedDateTime": return `${type}.from(${stringify_string(thing.toString())})`;
|
|
339
|
+
default:
|
|
340
|
+
const keys = Object.keys(thing);
|
|
341
|
+
const obj = keys.map((key) => `${safe_key(key)}:${stringify(thing[key])}`).join(",");
|
|
342
|
+
if (Object.getPrototypeOf(thing) === null) return keys.length > 0 ? `{${obj},__proto__:null}` : `{__proto__:null}`;
|
|
343
|
+
return `{${obj}}`;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
const str = stringify(value);
|
|
347
|
+
if (names.size) {
|
|
348
|
+
/** @type {string[]} */
|
|
349
|
+
const params = [];
|
|
350
|
+
/** @type {string[]} */
|
|
351
|
+
const statements = [];
|
|
352
|
+
/** @type {string[]} */
|
|
353
|
+
const values = [];
|
|
354
|
+
/** @type {string[]} */
|
|
355
|
+
const reconstructions = [];
|
|
356
|
+
names.forEach((name, thing) => {
|
|
357
|
+
params.push(name);
|
|
358
|
+
if (custom.has(thing)) {
|
|
359
|
+
values.push(custom.get(thing));
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
if (is_primitive(thing)) {
|
|
363
|
+
values.push(stringify_cached_primitive(thing));
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
const type = get_type(thing);
|
|
367
|
+
switch (type) {
|
|
368
|
+
case "Number":
|
|
369
|
+
case "String":
|
|
370
|
+
case "Boolean":
|
|
371
|
+
case "BigInt": {
|
|
372
|
+
const primitive = thing.valueOf();
|
|
373
|
+
if (names.has(primitive)) {
|
|
374
|
+
values.push("{}");
|
|
375
|
+
reconstructions.push(`${name}=Object(${stringify(primitive)})`);
|
|
376
|
+
} else values.push(`Object(${stringify(primitive)})`);
|
|
377
|
+
break;
|
|
378
|
+
}
|
|
379
|
+
case "RegExp":
|
|
380
|
+
const { source, flags } = thing;
|
|
381
|
+
const regexp = flags ? `new RegExp(${stringify_string(source)},"${flags}")` : `new RegExp(${stringify_string(source)})`;
|
|
382
|
+
values.push(regexp);
|
|
383
|
+
break;
|
|
384
|
+
case "Date":
|
|
385
|
+
values.push(`new Date(${thing.getTime()})`);
|
|
386
|
+
break;
|
|
387
|
+
case "URL":
|
|
388
|
+
values.push(`new URL(${stringify_string(thing.toString())})`);
|
|
389
|
+
break;
|
|
390
|
+
case "URLSearchParams":
|
|
391
|
+
values.push(`new URLSearchParams(${stringify_string(thing.toString())})`);
|
|
392
|
+
break;
|
|
393
|
+
case "Array": {
|
|
394
|
+
const populated_keys = valid_array_indices(thing);
|
|
395
|
+
values.push(thing.length > 32 + 2 * populated_keys.length ? stringify_sparse_array(thing.length) : `Array(${thing.length})`);
|
|
396
|
+
for (const i of populated_keys) statements.push(`${name}[${i}]=${stringify(thing[i])}`);
|
|
397
|
+
break;
|
|
398
|
+
}
|
|
399
|
+
case "Set": {
|
|
400
|
+
values.push(`new Set`);
|
|
401
|
+
const adds = Array.from(thing).map((v) => `.add(${stringify(v)})`);
|
|
402
|
+
if (adds.length > 0) statements.push(name + adds.join(""));
|
|
403
|
+
break;
|
|
404
|
+
}
|
|
405
|
+
case "Map": {
|
|
406
|
+
values.push(`new Map`);
|
|
407
|
+
const sets = Array.from(thing).map(([k, v]) => `.set(${stringify(k)}, ${stringify(v)})`);
|
|
408
|
+
if (sets.length > 0) statements.push(name + sets.join(""));
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
case "Int8Array":
|
|
412
|
+
case "Uint8Array":
|
|
413
|
+
case "Uint8ClampedArray":
|
|
414
|
+
case "Int16Array":
|
|
415
|
+
case "Uint16Array":
|
|
416
|
+
case "Float16Array":
|
|
417
|
+
case "Int32Array":
|
|
418
|
+
case "Uint32Array":
|
|
419
|
+
case "Float32Array":
|
|
420
|
+
case "Float64Array":
|
|
421
|
+
case "BigInt64Array":
|
|
422
|
+
case "BigUint64Array": {
|
|
423
|
+
if (is_buffer(thing)) thing = new Uint8Array(thing);
|
|
424
|
+
let str = `new ${type}`;
|
|
425
|
+
if (!names.has(thing.buffer)) str += `([${stringify_typed_array_elements(type, thing.buffer)}])`;
|
|
426
|
+
else str += `(${stringify(thing.buffer)})`;
|
|
427
|
+
if (thing.byteLength !== thing.buffer.byteLength) {
|
|
428
|
+
const start = thing.byteOffset / thing.BYTES_PER_ELEMENT;
|
|
429
|
+
const end = start + thing.length;
|
|
430
|
+
str += `.subarray(${start},${end})`;
|
|
431
|
+
}
|
|
432
|
+
values.push(`{}`);
|
|
433
|
+
reconstructions.push(`${name}=${str}`);
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
case "DataView": {
|
|
437
|
+
let str = `new DataView`;
|
|
438
|
+
if (!names.has(thing.buffer)) str += `(new Uint8Array([${new Uint8Array(thing.buffer)}]).buffer`;
|
|
439
|
+
else str += `(${stringify(thing.buffer)}`;
|
|
440
|
+
if (thing.byteLength !== thing.buffer.byteLength) str += `,${thing.byteOffset},${thing.byteLength}`;
|
|
441
|
+
str += ")";
|
|
442
|
+
values.push(`{}`);
|
|
443
|
+
reconstructions.push(`${name}=${str}`);
|
|
444
|
+
break;
|
|
445
|
+
}
|
|
446
|
+
case "ArrayBuffer":
|
|
447
|
+
values.push(`new Uint8Array([${new Uint8Array(thing)}]).buffer`);
|
|
448
|
+
break;
|
|
449
|
+
case "Temporal.Duration":
|
|
450
|
+
case "Temporal.Instant":
|
|
451
|
+
case "Temporal.PlainDate":
|
|
452
|
+
case "Temporal.PlainTime":
|
|
453
|
+
case "Temporal.PlainDateTime":
|
|
454
|
+
case "Temporal.PlainMonthDay":
|
|
455
|
+
case "Temporal.PlainYearMonth":
|
|
456
|
+
case "Temporal.ZonedDateTime":
|
|
457
|
+
values.push(`${type}.from(${stringify_string(thing.toString())})`);
|
|
458
|
+
break;
|
|
459
|
+
default:
|
|
460
|
+
values.push(Object.getPrototypeOf(thing) === null ? "Object.create(null)" : "{}");
|
|
461
|
+
Object.keys(thing).forEach((key) => {
|
|
462
|
+
statements.push(`${name}${safe_prop(key)}=${stringify(thing[key])}`);
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
statements.push(`return ${str}`);
|
|
467
|
+
const body = [...reconstructions, ...statements].join(";");
|
|
468
|
+
if (params.length > 65534) return `(function(){var[${params.join(",")}]=arguments[0];${body}}([${values.join(",")}]))`;
|
|
469
|
+
return `(function(${params.join(",")}){${body}}(${values.join(",")}))`;
|
|
470
|
+
} else return str;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Emit an array whose storage is not proportional to its declared length.
|
|
474
|
+
* As in the default parse operations, touching and deleting the largest valid
|
|
475
|
+
* index forces V8 into dictionary-elements mode before setting the length.
|
|
476
|
+
* Merely starting with [] and assigning .length still eagerly allocates.
|
|
477
|
+
* @param {number} length
|
|
478
|
+
*/
|
|
479
|
+
function stringify_sparse_array(length) {
|
|
480
|
+
return `(function(a){a[${MAX_ARRAY_INDEX}]=0;delete a[${MAX_ARRAY_INDEX}];a.length=${length};return a}([]))`;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Serialize the elements of `buffer`, read as `type`, as a comma-separated list.
|
|
484
|
+
* The view is created from `type` rather than from the serialized value's own
|
|
485
|
+
* constructor, which may be a subclass like Node's `Buffer` whose `toString`
|
|
486
|
+
* decodes the bytes instead of listing them.
|
|
487
|
+
* `BigInt64Array`/`BigUint64Array` elements are bigints and must be written
|
|
488
|
+
* with an `n` suffix, otherwise the emitted `new BigInt64Array([...])` throws.
|
|
489
|
+
* @param {string} type
|
|
490
|
+
* @param {ArrayBufferLike} buffer
|
|
491
|
+
*/
|
|
492
|
+
function stringify_typed_array_elements(type, buffer) {
|
|
493
|
+
const array = new globalThis[type](buffer);
|
|
494
|
+
if (type === "BigInt64Array" || type === "BigUint64Array") return Array.from(array, (element) => `${element}n`).join(",");
|
|
495
|
+
if (array instanceof Float32Array || array instanceof Float64Array || typeof Float16Array !== "undefined" && array instanceof Float16Array) return Array.from(array, (element) => Object.is(element, -0) ? "-0" : `${element}`).join(",");
|
|
496
|
+
return array.toString();
|
|
497
|
+
}
|
|
498
|
+
/** @param {number} num */
|
|
499
|
+
function get_name(num) {
|
|
500
|
+
let name = "";
|
|
501
|
+
do {
|
|
502
|
+
name = chars[num % 54] + name;
|
|
503
|
+
num = ~~(num / 54) - 1;
|
|
504
|
+
} while (num >= 0);
|
|
505
|
+
return reserved.test(name) ? `${name}0` : name;
|
|
506
|
+
}
|
|
507
|
+
/** @param {string} c */
|
|
508
|
+
function escape_unsafe_char(c) {
|
|
509
|
+
return escaped[c] || c;
|
|
510
|
+
}
|
|
511
|
+
/** @param {string} str */
|
|
512
|
+
function escape_unsafe_chars(str) {
|
|
513
|
+
return str.replace(unsafe_chars, escape_unsafe_char);
|
|
514
|
+
}
|
|
515
|
+
/** @param {string} key */
|
|
516
|
+
function safe_key(key) {
|
|
517
|
+
return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) ? key : escape_unsafe_chars(JSON.stringify(key));
|
|
518
|
+
}
|
|
519
|
+
/** @param {string} key */
|
|
520
|
+
function safe_prop(key) {
|
|
521
|
+
return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) ? `.${key}` : `[${escape_unsafe_chars(JSON.stringify(key))}]`;
|
|
522
|
+
}
|
|
523
|
+
/** @param {any} thing */
|
|
524
|
+
function stringify_primitive(thing) {
|
|
525
|
+
const type = typeof thing;
|
|
526
|
+
if (type === "string") return stringify_string(thing);
|
|
527
|
+
if (thing === void 0) return "void 0";
|
|
528
|
+
if (thing === 0 && 1 / thing < 0) return "-0";
|
|
529
|
+
const str = String(thing);
|
|
530
|
+
if (type === "number") return str.replace(/^(-)?0\./, "$1.");
|
|
531
|
+
if (type === "bigint") return thing + "n";
|
|
532
|
+
return str;
|
|
533
|
+
}
|
|
534
|
+
//#endregion
|
|
535
|
+
export { is_buffer as a, is_valid_array_len as c, valid_array_indices as d, MAX_ARRAY_INDEX as f, get_type as i, stringify_key as l, DevalueError as n, is_plain_object as o, enumerable_symbols as r, is_valid_array_index as s, uneval as t, stringify_string as u };
|
|
536
|
+
|
|
537
|
+
//# sourceMappingURL=uneval.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { n as usage } from "../../../../chunks/queries.js";
|
|
2
|
+
import { n as refresh } from "../../../../chunks/refresh.js";
|
|
3
|
+
import { t as filtersFrom } from "../../../../chunks/request.js";
|
|
4
|
+
//#region src/routes/api/refresh/+server.ts
|
|
5
|
+
var POST = async ({ url }) => {
|
|
6
|
+
await refresh(true);
|
|
7
|
+
return Response.json(usage(filtersFrom(url)));
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { POST };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=_server.ts.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { i as settings, r as saveSettings, t as clearUsageMemo } from "../../../../chunks/queries.js";
|
|
2
|
+
import { n as refresh } from "../../../../chunks/refresh.js";
|
|
3
|
+
//#region src/routes/api/settings/+server.ts
|
|
4
|
+
var GET = () => Response.json(settings());
|
|
5
|
+
var POST = async ({ request }) => {
|
|
6
|
+
const patch = await request.json();
|
|
7
|
+
const next = saveSettings(patch);
|
|
8
|
+
clearUsageMemo();
|
|
9
|
+
if (patch.claudeWindows || patch.prices) await refresh();
|
|
10
|
+
return Response.json(next);
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { GET, POST };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=_server.ts.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { n as usage } from "../../../../chunks/queries.js";
|
|
2
|
+
import { t as filtersFrom } from "../../../../chunks/request.js";
|
|
3
|
+
//#region src/routes/api/usage/+server.ts
|
|
4
|
+
var GET = ({ url }) => Response.json(usage(filtersFrom(url)));
|
|
5
|
+
//#endregion
|
|
6
|
+
export { GET };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=_server.ts.js.map
|