@nocobase/plugin-ai-gigachat 2.3.0-beta.13 → 2.3.0-beta.15

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 (87) hide show
  1. package/dist/externalVersion.js +5 -5
  2. package/dist/node_modules/gigachat/package.json +1 -1
  3. package/dist/node_modules/langchain-gigachat/package.json +1 -1
  4. package/package.json +2 -2
  5. package/dist/node_modules/gigachat/node_modules/axios/dist/axios.js +0 -5249
  6. package/dist/node_modules/gigachat/node_modules/axios/dist/axios.min.js +0 -5
  7. package/dist/node_modules/gigachat/node_modules/axios/dist/browser/axios.cjs +0 -5146
  8. package/dist/node_modules/gigachat/node_modules/axios/dist/esm/axios.js +0 -5167
  9. package/dist/node_modules/gigachat/node_modules/axios/dist/esm/axios.min.js +0 -3
  10. package/dist/node_modules/gigachat/node_modules/axios/dist/node/axios.cjs +0 -5996
  11. package/dist/node_modules/gigachat/node_modules/axios/index.d.cts +0 -738
  12. package/dist/node_modules/gigachat/node_modules/axios/index.d.ts +0 -755
  13. package/dist/node_modules/gigachat/node_modules/axios/index.js +0 -45
  14. package/dist/node_modules/gigachat/node_modules/axios/lib/adapters/adapters.js +0 -132
  15. package/dist/node_modules/gigachat/node_modules/axios/lib/adapters/fetch.js +0 -643
  16. package/dist/node_modules/gigachat/node_modules/axios/lib/adapters/http.js +0 -1417
  17. package/dist/node_modules/gigachat/node_modules/axios/lib/adapters/xhr.js +0 -228
  18. package/dist/node_modules/gigachat/node_modules/axios/lib/axios.js +0 -89
  19. package/dist/node_modules/gigachat/node_modules/axios/lib/cancel/CancelToken.js +0 -135
  20. package/dist/node_modules/gigachat/node_modules/axios/lib/cancel/CanceledError.js +0 -22
  21. package/dist/node_modules/gigachat/node_modules/axios/lib/cancel/isCancel.js +0 -5
  22. package/dist/node_modules/gigachat/node_modules/axios/lib/core/Axios.js +0 -283
  23. package/dist/node_modules/gigachat/node_modules/axios/lib/core/AxiosError.js +0 -188
  24. package/dist/node_modules/gigachat/node_modules/axios/lib/core/AxiosHeaders.js +0 -351
  25. package/dist/node_modules/gigachat/node_modules/axios/lib/core/InterceptorManager.js +0 -72
  26. package/dist/node_modules/gigachat/node_modules/axios/lib/core/buildFullPath.js +0 -50
  27. package/dist/node_modules/gigachat/node_modules/axios/lib/core/dispatchRequest.js +0 -89
  28. package/dist/node_modules/gigachat/node_modules/axios/lib/core/mergeConfig.js +0 -159
  29. package/dist/node_modules/gigachat/node_modules/axios/lib/core/settle.js +0 -27
  30. package/dist/node_modules/gigachat/node_modules/axios/lib/core/transformData.js +0 -28
  31. package/dist/node_modules/gigachat/node_modules/axios/lib/defaults/index.js +0 -177
  32. package/dist/node_modules/gigachat/node_modules/axios/lib/defaults/transitional.js +0 -10
  33. package/dist/node_modules/gigachat/node_modules/axios/lib/env/classes/FormData.js +0 -2
  34. package/dist/node_modules/gigachat/node_modules/axios/lib/env/data.js +0 -1
  35. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/AxiosTransformStream.js +0 -156
  36. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +0 -59
  37. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/Http2Sessions.js +0 -119
  38. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/HttpStatusCode.js +0 -77
  39. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +0 -29
  40. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/bind.js +0 -14
  41. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/buildURL.js +0 -69
  42. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/callbackify.js +0 -18
  43. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/combineURLs.js +0 -15
  44. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/composeSignals.js +0 -57
  45. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/cookies.js +0 -64
  46. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/deprecatedMethod.js +0 -31
  47. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +0 -105
  48. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/formDataToJSON.js +0 -119
  49. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/formDataToStream.js +0 -119
  50. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/fromDataURI.js +0 -68
  51. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -19
  52. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/isAxiosError.js +0 -14
  53. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -16
  54. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/null.js +0 -2
  55. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/parseHeaders.js +0 -69
  56. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/parseProtocol.js +0 -6
  57. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/progressEventReducer.js +0 -54
  58. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/readBlob.js +0 -15
  59. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/resolveConfig.js +0 -119
  60. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +0 -60
  61. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/shouldBypassProxy.js +0 -210
  62. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/speedometer.js +0 -55
  63. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/spread.js +0 -28
  64. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/throttle.js +0 -44
  65. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/toFormData.js +0 -285
  66. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/toURLEncodedForm.js +0 -19
  67. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/trackStream.js +0 -89
  68. package/dist/node_modules/gigachat/node_modules/axios/lib/helpers/validator.js +0 -112
  69. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/browser/classes/Blob.js +0 -3
  70. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/browser/classes/FormData.js +0 -3
  71. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +0 -4
  72. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/browser/index.js +0 -13
  73. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/common/utils.js +0 -52
  74. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/index.js +0 -7
  75. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/node/classes/FormData.js +0 -3
  76. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +0 -4
  77. package/dist/node_modules/gigachat/node_modules/axios/lib/platform/node/index.js +0 -37
  78. package/dist/node_modules/gigachat/node_modules/axios/lib/utils.js +0 -1017
  79. package/dist/node_modules/gigachat/node_modules/axios/package.json +0 -201
  80. package/dist/node_modules/gigachat/node_modules/follow-redirects/debug.js +0 -15
  81. package/dist/node_modules/gigachat/node_modules/follow-redirects/http.js +0 -1
  82. package/dist/node_modules/gigachat/node_modules/follow-redirects/https.js +0 -1
  83. package/dist/node_modules/gigachat/node_modules/follow-redirects/index.js +0 -709
  84. package/dist/node_modules/gigachat/node_modules/follow-redirects/package.json +0 -58
  85. package/dist/node_modules/gigachat/node_modules/proxy-from-env/index.cjs +0 -105
  86. package/dist/node_modules/gigachat/node_modules/proxy-from-env/index.js +0 -103
  87. package/dist/node_modules/gigachat/node_modules/proxy-from-env/package.json +0 -43
@@ -1,119 +0,0 @@
1
- 'use strict';
2
-
3
- // Node-only: relies on the built-in `http2` module. Browser/react-native
4
- // builds replace `lib/adapters/http.js` (the sole importer) with `lib/helpers/null.js`
5
- // via the `browser` package.json field, so this module is never reached in
6
- // those environments. Do not import it from any browser-reachable code path.
7
-
8
- import http2 from 'http2';
9
- import util from 'util';
10
-
11
- class Http2Sessions {
12
- constructor() {
13
- this.sessions = Object.create(null);
14
- }
15
-
16
- getSession(authority, options) {
17
- options = Object.assign(
18
- {
19
- sessionTimeout: 1000,
20
- },
21
- options
22
- );
23
-
24
- let authoritySessions = this.sessions[authority];
25
-
26
- if (authoritySessions) {
27
- let len = authoritySessions.length;
28
-
29
- for (let i = 0; i < len; i++) {
30
- const [sessionHandle, sessionOptions] = authoritySessions[i];
31
- if (
32
- !sessionHandle.destroyed &&
33
- !sessionHandle.closed &&
34
- util.isDeepStrictEqual(sessionOptions, options)
35
- ) {
36
- return sessionHandle;
37
- }
38
- }
39
- }
40
-
41
- const session = http2.connect(authority, options);
42
-
43
- let removed;
44
- let timer;
45
-
46
- const removeSession = () => {
47
- if (removed) {
48
- return;
49
- }
50
-
51
- removed = true;
52
-
53
- if (timer) {
54
- clearTimeout(timer);
55
- timer = null;
56
- }
57
-
58
- let entries = authoritySessions,
59
- len = entries.length,
60
- i = len;
61
-
62
- while (i--) {
63
- if (entries[i][0] === session) {
64
- if (len === 1) {
65
- delete this.sessions[authority];
66
- } else {
67
- entries.splice(i, 1);
68
- }
69
- if (!session.closed) {
70
- session.close();
71
- }
72
- return;
73
- }
74
- }
75
- };
76
-
77
- const originalRequestFn = session.request;
78
-
79
- const { sessionTimeout } = options;
80
-
81
- if (sessionTimeout != null) {
82
- let streamsCount = 0;
83
-
84
- session.request = function () {
85
- const stream = originalRequestFn.apply(this, arguments);
86
-
87
- streamsCount++;
88
-
89
- if (timer) {
90
- clearTimeout(timer);
91
- timer = null;
92
- }
93
-
94
- stream.once('close', () => {
95
- if (!--streamsCount) {
96
- timer = setTimeout(() => {
97
- timer = null;
98
- removeSession();
99
- }, sessionTimeout);
100
- }
101
- });
102
-
103
- return stream;
104
- };
105
- }
106
-
107
- session.once('close', removeSession);
108
-
109
- let entry = [session, options];
110
-
111
- authoritySessions
112
- ? authoritySessions.push(entry)
113
- : (authoritySessions = this.sessions[authority] = [entry]);
114
-
115
- return session;
116
- }
117
- }
118
-
119
- export default Http2Sessions;
@@ -1,77 +0,0 @@
1
- const HttpStatusCode = {
2
- Continue: 100,
3
- SwitchingProtocols: 101,
4
- Processing: 102,
5
- EarlyHints: 103,
6
- Ok: 200,
7
- Created: 201,
8
- Accepted: 202,
9
- NonAuthoritativeInformation: 203,
10
- NoContent: 204,
11
- ResetContent: 205,
12
- PartialContent: 206,
13
- MultiStatus: 207,
14
- AlreadyReported: 208,
15
- ImUsed: 226,
16
- MultipleChoices: 300,
17
- MovedPermanently: 301,
18
- Found: 302,
19
- SeeOther: 303,
20
- NotModified: 304,
21
- UseProxy: 305,
22
- Unused: 306,
23
- TemporaryRedirect: 307,
24
- PermanentRedirect: 308,
25
- BadRequest: 400,
26
- Unauthorized: 401,
27
- PaymentRequired: 402,
28
- Forbidden: 403,
29
- NotFound: 404,
30
- MethodNotAllowed: 405,
31
- NotAcceptable: 406,
32
- ProxyAuthenticationRequired: 407,
33
- RequestTimeout: 408,
34
- Conflict: 409,
35
- Gone: 410,
36
- LengthRequired: 411,
37
- PreconditionFailed: 412,
38
- PayloadTooLarge: 413,
39
- UriTooLong: 414,
40
- UnsupportedMediaType: 415,
41
- RangeNotSatisfiable: 416,
42
- ExpectationFailed: 417,
43
- ImATeapot: 418,
44
- MisdirectedRequest: 421,
45
- UnprocessableEntity: 422,
46
- Locked: 423,
47
- FailedDependency: 424,
48
- TooEarly: 425,
49
- UpgradeRequired: 426,
50
- PreconditionRequired: 428,
51
- TooManyRequests: 429,
52
- RequestHeaderFieldsTooLarge: 431,
53
- UnavailableForLegalReasons: 451,
54
- InternalServerError: 500,
55
- NotImplemented: 501,
56
- BadGateway: 502,
57
- ServiceUnavailable: 503,
58
- GatewayTimeout: 504,
59
- HttpVersionNotSupported: 505,
60
- VariantAlsoNegotiates: 506,
61
- InsufficientStorage: 507,
62
- LoopDetected: 508,
63
- NotExtended: 510,
64
- NetworkAuthenticationRequired: 511,
65
- WebServerIsDown: 521,
66
- ConnectionTimedOut: 522,
67
- OriginIsUnreachable: 523,
68
- TimeoutOccurred: 524,
69
- SslHandshakeFailed: 525,
70
- InvalidSslCertificate: 526,
71
- };
72
-
73
- Object.entries(HttpStatusCode).forEach(([key, value]) => {
74
- HttpStatusCode[value] = key;
75
- });
76
-
77
- export default HttpStatusCode;
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- import stream from 'stream';
4
-
5
- class ZlibHeaderTransformStream extends stream.Transform {
6
- __transform(chunk, encoding, callback) {
7
- this.push(chunk);
8
- callback();
9
- }
10
-
11
- _transform(chunk, encoding, callback) {
12
- if (chunk.length !== 0) {
13
- this._transform = this.__transform;
14
-
15
- // Add Default Compression headers if no zlib headers are present
16
- if (chunk[0] !== 120) {
17
- // Hex: 78
18
- const header = Buffer.alloc(2);
19
- header[0] = 120; // Hex: 78
20
- header[1] = 156; // Hex: 9C
21
- this.push(header, encoding);
22
- }
23
- }
24
-
25
- this.__transform(chunk, encoding, callback);
26
- }
27
- }
28
-
29
- export default ZlibHeaderTransformStream;
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Create a bound version of a function with a specified `this` context
5
- *
6
- * @param {Function} fn - The function to bind
7
- * @param {*} thisArg - The value to be passed as the `this` parameter
8
- * @returns {Function} A new function that will call the original function with the specified `this` context
9
- */
10
- export default function bind(fn, thisArg) {
11
- return function wrap() {
12
- return fn.apply(thisArg, arguments);
13
- };
14
- }
@@ -1,69 +0,0 @@
1
- 'use strict';
2
-
3
- import utils from '../utils.js';
4
- import AxiosURLSearchParams from './AxiosURLSearchParams.js';
5
-
6
- /**
7
- * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with
8
- * their plain counterparts (`:`, `$`, `,`, `+`).
9
- *
10
- * @param {string} val The value to be encoded.
11
- *
12
- * @returns {string} The encoded value.
13
- */
14
- export function encode(val) {
15
- return encodeURIComponent(val)
16
- .replace(/%3A/gi, ':')
17
- .replace(/%24/g, '$')
18
- .replace(/%2C/gi, ',')
19
- .replace(/%20/g, '+');
20
- }
21
-
22
- /**
23
- * Build a URL by appending params to the end
24
- *
25
- * @param {string} url The base of the url (e.g., http://www.google.com)
26
- * @param {object} [params] The params to be appended
27
- * @param {?(object|Function)} options
28
- *
29
- * @returns {string} The formatted url
30
- */
31
- export default function buildURL(url, params, options) {
32
- if (!params) {
33
- return url;
34
- }
35
- url = url || '';
36
-
37
- const _options = utils.isFunction(options)
38
- ? {
39
- serialize: options,
40
- }
41
- : options;
42
-
43
- // Read serializer options pollution-safely: own properties and methods on a
44
- // class/template prototype are honored, but values injected onto a polluted
45
- // Object.prototype are ignored.
46
- const _encode = utils.getSafeProp(_options, 'encode') || encode;
47
- const serializeFn = utils.getSafeProp(_options, 'serialize');
48
-
49
- let serializedParams;
50
-
51
- if (serializeFn) {
52
- serializedParams = serializeFn(params, _options);
53
- } else {
54
- serializedParams = utils.isURLSearchParams(params)
55
- ? params.toString()
56
- : new AxiosURLSearchParams(params, _options).toString(_encode);
57
- }
58
-
59
- if (serializedParams) {
60
- const hashmarkIndex = url.indexOf('#');
61
-
62
- if (hashmarkIndex !== -1) {
63
- url = url.slice(0, hashmarkIndex);
64
- }
65
- url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
66
- }
67
-
68
- return url;
69
- }
@@ -1,18 +0,0 @@
1
- import utils from '../utils.js';
2
-
3
- const callbackify = (fn, reducer) => {
4
- return utils.isAsyncFn(fn)
5
- ? function (...args) {
6
- const cb = args.pop();
7
- fn.apply(this, args).then((value) => {
8
- try {
9
- reducer ? cb(null, ...reducer(value)) : cb(null, value);
10
- } catch (err) {
11
- cb(err);
12
- }
13
- }, cb);
14
- }
15
- : fn;
16
- };
17
-
18
- export default callbackify;
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Creates a new URL by combining the specified URLs
5
- *
6
- * @param {string} baseURL The base URL
7
- * @param {string} relativeURL The relative URL
8
- *
9
- * @returns {string} The combined URL
10
- */
11
- export default function combineURLs(baseURL, relativeURL) {
12
- return relativeURL
13
- ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
14
- : baseURL;
15
- }
@@ -1,57 +0,0 @@
1
- import CanceledError from '../cancel/CanceledError.js';
2
- import AxiosError from '../core/AxiosError.js';
3
- import utils from '../utils.js';
4
-
5
- const composeSignals = (signals, timeout) => {
6
- signals = signals ? signals.filter(Boolean) : [];
7
-
8
- if (!timeout && !signals.length) {
9
- return;
10
- }
11
-
12
- const controller = new AbortController();
13
-
14
- let aborted = false;
15
-
16
- const onabort = function (reason) {
17
- if (!aborted) {
18
- aborted = true;
19
- unsubscribe();
20
- const err = reason instanceof Error ? reason : this.reason;
21
- controller.abort(
22
- err instanceof AxiosError
23
- ? err
24
- : new CanceledError(err instanceof Error ? err.message : err)
25
- );
26
- }
27
- };
28
-
29
- let timer =
30
- timeout &&
31
- setTimeout(() => {
32
- timer = null;
33
- onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));
34
- }, timeout);
35
-
36
- const unsubscribe = () => {
37
- if (!signals) { return; }
38
- timer && clearTimeout(timer);
39
- timer = null;
40
- signals.forEach((signal) => {
41
- signal.unsubscribe
42
- ? signal.unsubscribe(onabort)
43
- : signal.removeEventListener('abort', onabort);
44
- });
45
- signals = null;
46
- };
47
-
48
- signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));
49
-
50
- const { signal } = controller;
51
-
52
- signal.unsubscribe = () => utils.asap(unsubscribe);
53
-
54
- return signal;
55
- };
56
-
57
- export default composeSignals;
@@ -1,64 +0,0 @@
1
- import utils from '../utils.js';
2
- import platform from '../platform/index.js';
3
-
4
- export default platform.hasStandardBrowserEnv
5
- ? // Standard browser envs support document.cookie
6
- {
7
- write(name, value, expires, path, domain, secure, sameSite) {
8
- if (typeof document === 'undefined') return;
9
-
10
- const cookie = [`${name}=${encodeURIComponent(value)}`];
11
-
12
- if (utils.isNumber(expires)) {
13
- cookie.push(`expires=${new Date(expires).toUTCString()}`);
14
- }
15
- if (utils.isString(path)) {
16
- cookie.push(`path=${path}`);
17
- }
18
- if (utils.isString(domain)) {
19
- cookie.push(`domain=${domain}`);
20
- }
21
- if (secure === true) {
22
- cookie.push('secure');
23
- }
24
- if (utils.isString(sameSite)) {
25
- cookie.push(`SameSite=${sameSite}`);
26
- }
27
-
28
- document.cookie = cookie.join('; ');
29
- },
30
-
31
- read(name) {
32
- if (typeof document === 'undefined') return null;
33
- // Match name=value by splitting on the semicolon separator instead of building a
34
- // RegExp from `name` — interpolating an unescaped string into a RegExp would let
35
- // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or
36
- // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or
37
- // "; ", so ignore optional whitespace before each cookie name.
38
- const cookies = document.cookie.split(';');
39
- for (let i = 0; i < cookies.length; i++) {
40
- const cookie = cookies[i].replace(/^\s+/, '');
41
- const eq = cookie.indexOf('=');
42
- if (eq !== -1 && cookie.slice(0, eq) === name) {
43
- try {
44
- return decodeURIComponent(cookie.slice(eq + 1));
45
- } catch (e) {
46
- return cookie.slice(eq + 1);
47
- }
48
- }
49
- }
50
- return null;
51
- },
52
-
53
- remove(name) {
54
- this.write(name, '', Date.now() - 86400000, '/');
55
- },
56
- }
57
- : // Non-standard browser env (web workers, react-native) lack needed support.
58
- {
59
- write() {},
60
- read() {
61
- return null;
62
- },
63
- remove() {},
64
- };
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- /*eslint no-console:0*/
4
-
5
- /**
6
- * Supply a warning to the developer that a method they are using
7
- * has been deprecated.
8
- *
9
- * @param {string} method The name of the deprecated method
10
- * @param {string} [instead] The alternate method to use if applicable
11
- * @param {string} [docs] The documentation URL to get further details
12
- *
13
- * @returns {void}
14
- */
15
- export default function deprecatedMethod(method, instead, docs) {
16
- try {
17
- console.warn(
18
- 'DEPRECATED method `' +
19
- method +
20
- '`.' +
21
- (instead ? ' Use `' + instead + '` instead.' : '') +
22
- ' This method will be removed in a future release.'
23
- );
24
-
25
- if (docs) {
26
- console.warn('For more information about usage see ' + docs);
27
- }
28
- } catch (e) {
29
- /* Ignore */
30
- }
31
- }
@@ -1,105 +0,0 @@
1
- /**
2
- * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
3
- * - For base64: compute exact decoded size using length and padding;
4
- * handle %XX at the character-count level (no string allocation).
5
- * - For non-base64: compute the exact percent-decoded UTF-8 byte length.
6
- *
7
- * @param {string} url
8
- * @returns {number}
9
- */
10
- const isHexDigit = (charCode) =>
11
- (charCode >= 48 && charCode <= 57) ||
12
- (charCode >= 65 && charCode <= 70) ||
13
- (charCode >= 97 && charCode <= 102);
14
-
15
- const isPercentEncodedByte = (str, i, len) =>
16
- i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));
17
-
18
- export default function estimateDataURLDecodedBytes(url) {
19
- if (!url || typeof url !== 'string') return 0;
20
- if (!url.startsWith('data:')) return 0;
21
-
22
- const comma = url.indexOf(',');
23
- if (comma < 0) return 0;
24
-
25
- const meta = url.slice(5, comma);
26
- const body = url.slice(comma + 1);
27
- const isBase64 = /;base64/i.test(meta);
28
-
29
- if (isBase64) {
30
- let effectiveLen = body.length;
31
- const len = body.length; // cache length
32
-
33
- for (let i = 0; i < len; i++) {
34
- if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {
35
- const a = body.charCodeAt(i + 1);
36
- const b = body.charCodeAt(i + 2);
37
- const isHex = isHexDigit(a) && isHexDigit(b);
38
-
39
- if (isHex) {
40
- effectiveLen -= 2;
41
- i += 2;
42
- }
43
- }
44
- }
45
-
46
- let pad = 0;
47
- let idx = len - 1;
48
-
49
- const tailIsPct3D = (j) =>
50
- j >= 2 &&
51
- body.charCodeAt(j - 2) === 37 && // '%'
52
- body.charCodeAt(j - 1) === 51 && // '3'
53
- (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'
54
-
55
- if (idx >= 0) {
56
- if (body.charCodeAt(idx) === 61 /* '=' */) {
57
- pad++;
58
- idx--;
59
- } else if (tailIsPct3D(idx)) {
60
- pad++;
61
- idx -= 3;
62
- }
63
- }
64
-
65
- if (pad === 1 && idx >= 0) {
66
- if (body.charCodeAt(idx) === 61 /* '=' */) {
67
- pad++;
68
- } else if (tailIsPct3D(idx)) {
69
- pad++;
70
- }
71
- }
72
-
73
- const groups = Math.floor(effectiveLen / 4);
74
- const bytes = groups * 3 - (pad || 0);
75
- return bytes > 0 ? bytes : 0;
76
- }
77
-
78
- // Compute UTF-8 byte length directly from UTF-16 code units without allocating
79
- // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).
80
- // Valid %XX triplets count as one decoded byte; this matches the bytes that
81
- // decodeURIComponent(body) would produce before Buffer re-encodes the string.
82
- let bytes = 0;
83
- for (let i = 0, len = body.length; i < len; i++) {
84
- const c = body.charCodeAt(i);
85
- if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {
86
- bytes += 1;
87
- i += 2;
88
- } else if (c < 0x80) {
89
- bytes += 1;
90
- } else if (c < 0x800) {
91
- bytes += 2;
92
- } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {
93
- const next = body.charCodeAt(i + 1);
94
- if (next >= 0xdc00 && next <= 0xdfff) {
95
- bytes += 4;
96
- i++;
97
- } else {
98
- bytes += 3;
99
- }
100
- } else {
101
- bytes += 3;
102
- }
103
- }
104
- return bytes;
105
- }