mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-02-04 14:00:49 +00:00
KI
KJ
This commit is contained in:
145
unified-ai-platform/node_modules/formdata-polyfill/README.md
generated
vendored
Normal file
145
unified-ai-platform/node_modules/formdata-polyfill/README.md
generated
vendored
Normal file
@@ -0,0 +1,145 @@
|
||||
### A `FormData` polyfill for the browser ...and a module for NodeJS (`New!`)
|
||||
|
||||
```bash
|
||||
npm install formdata-polyfill
|
||||
```
|
||||
|
||||
The browser polyfill will likely have done its part already, and i hope you stop supporting old browsers c",)<br>
|
||||
But NodeJS still laks a proper FormData<br>The good old form-data package is a very old and isn't spec compatible and dose some abnormal stuff to construct and read FormData instances that other http libraries are not happy about when it comes to follow the spec.
|
||||
|
||||
### The NodeJS / ESM version
|
||||
- The modular (~2.3 KiB minified uncompressed) version of this package is independent of any browser stuff and don't patch anything
|
||||
- It's as pure/spec compatible as it possible gets the test are run by WPT.
|
||||
- It's compatible with [node-fetch](https://github.com/node-fetch/node-fetch).
|
||||
- It have higher platform dependencies as it uses classes, symbols, ESM & private fields
|
||||
- Only dependency it has is [fetch-blob](https://github.com/node-fetch/fetch-blob)
|
||||
|
||||
```js
|
||||
// Node example
|
||||
import fetch from 'node-fetch'
|
||||
import File from 'fetch-blob/file.js'
|
||||
import { fileFromSync } from 'fetch-blob/from.js'
|
||||
import { FormData } from 'formdata-polyfill/esm.min.js'
|
||||
|
||||
const file = fileFromSync('./README.md')
|
||||
const fd = new FormData()
|
||||
|
||||
fd.append('file-upload', new File(['abc'], 'hello-world.txt'))
|
||||
fd.append('file-upload', file)
|
||||
|
||||
// it's also possible to append file/blob look-a-like items
|
||||
// if you have streams coming from other destinations
|
||||
fd.append('file-upload', {
|
||||
size: 123,
|
||||
type: '',
|
||||
name: 'cat-video.mp4',
|
||||
stream() { return stream },
|
||||
[Symbol.toStringTag]: 'File'
|
||||
})
|
||||
|
||||
fetch('https://httpbin.org/post', { method: 'POST', body: fd })
|
||||
```
|
||||
|
||||
----
|
||||
|
||||
It also comes with way to convert FormData into Blobs - it's not something that every developer should have to deal with.
|
||||
It's mainly for [node-fetch](https://github.com/node-fetch/node-fetch) and other http library to ease the process of serializing a FormData into a blob and just wish to deal with Blobs instead (Both Deno and Undici adapted a version of this [formDataToBlob](https://github.com/jimmywarting/FormData/blob/5ddea9e0de2fc5e246ab1b2f9d404dee0c319c02/formdata-to-blob.js) to the core and passes all WPT tests run by the browser itself)
|
||||
```js
|
||||
import { Readable } from 'node:stream'
|
||||
import { FormData, formDataToBlob } from 'formdata-polyfill/esm.min.js'
|
||||
|
||||
const blob = formDataToBlob(new FormData())
|
||||
fetch('https://httpbin.org/post', { method: 'POST', body: blob })
|
||||
|
||||
// node built in http and other similar http library have to do:
|
||||
const stream = Readable.from(blob.stream())
|
||||
const req = http.request('http://httpbin.org/post', {
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Length': blob.size,
|
||||
'Content-Type': blob.type
|
||||
}
|
||||
})
|
||||
stream.pipe(req)
|
||||
```
|
||||
|
||||
PS: blob & file that are appended to the FormData will not be read until any of the serialized blob read-methods gets called
|
||||
...so uploading very large files is no biggie
|
||||
|
||||
### Browser polyfill
|
||||
|
||||
usage:
|
||||
|
||||
```js
|
||||
import 'formdata-polyfill' // that's it
|
||||
```
|
||||
|
||||
The browser polyfill conditionally replaces the native implementation rather than fixing the missing functions,
|
||||
since otherwise there is no way to get or delete existing values in the FormData object.
|
||||
Therefore this also patches `XMLHttpRequest.prototype.send` and `fetch` to send the `FormData` as a blob,
|
||||
and `navigator.sendBeacon` to send native `FormData`.
|
||||
|
||||
I was unable to patch the Response/Request constructor
|
||||
so if you are constructing them with FormData then you need to call `fd._blob()` manually.
|
||||
|
||||
```js
|
||||
new Request(url, {
|
||||
method: 'post',
|
||||
body: fd._blob ? fd._blob() : fd
|
||||
})
|
||||
```
|
||||
|
||||
Dependencies
|
||||
---
|
||||
|
||||
If you need to support IE <= 9 then I recommend you to include eligrey's [blob.js]
|
||||
(which i hope you don't - since IE is now dead)
|
||||
|
||||
<details>
|
||||
<summary>Updating from 2.x to 3.x</summary>
|
||||
|
||||
Previously you had to import the polyfill and use that,
|
||||
since it didn't replace the global (existing) FormData implementation.
|
||||
But now it transparently calls `_blob()` for you when you are sending something with fetch or XHR,
|
||||
by way of monkey-patching the `XMLHttpRequest.prototype.send` and `fetch` functions.
|
||||
|
||||
So you maybe had something like this:
|
||||
|
||||
```javascript
|
||||
var FormData = require('formdata-polyfill')
|
||||
var fd = new FormData(form)
|
||||
xhr.send(fd._blob())
|
||||
```
|
||||
|
||||
There is no longer anything exported from the module
|
||||
(though you of course still need to import it to install the polyfill),
|
||||
so you can now use the FormData object as normal:
|
||||
|
||||
```javascript
|
||||
require('formdata-polyfill')
|
||||
var fd = new FormData(form)
|
||||
xhr.send(fd)
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
Native Browser compatibility (as of 2021-05-08)
|
||||
---
|
||||
Based on this you can decide for yourself if you need this polyfill.
|
||||
|
||||
[](https://developer.mozilla.org/en-US/docs/Web/API/FormData#Browser_compatibility)
|
||||
|
||||
|
||||
|
||||
This normalizes support for the FormData API:
|
||||
|
||||
- `append` with filename
|
||||
- `delete()`, `get()`, `getAll()`, `has()`, `set()`
|
||||
- `entries()`, `keys()`, `values()`, and support for `for...of`
|
||||
- Available in web workers (just include the polyfill)
|
||||
|
||||
[npm-image]: https://img.shields.io/npm/v/formdata-polyfill.svg
|
||||
[npm-url]: https://www.npmjs.com/package/formdata-polyfill
|
||||
[blob.js]: https://github.com/eligrey/Blob.js
|
||||
5
unified-ai-platform/node_modules/formdata-polyfill/esm.min.d.ts
generated
vendored
Normal file
5
unified-ai-platform/node_modules/formdata-polyfill/esm.min.d.ts
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export declare const FormData: {
|
||||
new (): FormData;
|
||||
prototype: FormData;
|
||||
};
|
||||
export declare function formDataToBlob(formData: FormData): Blob;
|
||||
21
unified-ai-platform/node_modules/formdata-polyfill/formdata.min.js
generated
vendored
Normal file
21
unified-ai-platform/node_modules/formdata-polyfill/formdata.min.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
/*! formdata-polyfill. MIT License. Jimmy W?rting <https://jimmy.warting.se/opensource> */
|
||||
;(function(){var h;function l(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var m="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
|
||||
function n(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var q=n(this);function r(a,b){if(b)a:{var c=q;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&m(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
r("Symbol",function(a){function b(f){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(f||"")+"_"+e++,f)}function c(f,g){this.A=f;m(this,"description",{configurable:!0,writable:!0,value:g})}if(a)return a;c.prototype.toString=function(){return this.A};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b});
|
||||
r("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=q[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&m(d.prototype,a,{configurable:!0,writable:!0,value:function(){return u(l(this))}})}return a});function u(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}
|
||||
function v(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:l(a)}}var w;if("function"==typeof Object.setPrototypeOf)w=Object.setPrototypeOf;else{var y;a:{var z={a:!0},A={};try{A.__proto__=z;y=A.a;break a}catch(a){}y=!1}w=y?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var B=w;function C(){this.m=!1;this.j=null;this.v=void 0;this.h=1;this.u=this.C=0;this.l=null}
|
||||
function D(a){if(a.m)throw new TypeError("Generator is already running");a.m=!0}C.prototype.o=function(a){this.v=a};C.prototype.s=function(a){this.l={D:a,F:!0};this.h=this.C||this.u};C.prototype.return=function(a){this.l={return:a};this.h=this.u};function E(a,b){a.h=3;return{value:b}}function F(a){this.g=new C;this.G=a}F.prototype.o=function(a){D(this.g);if(this.g.j)return G(this,this.g.j.next,a,this.g.o);this.g.o(a);return H(this)};
|
||||
function I(a,b){D(a.g);var c=a.g.j;if(c)return G(a,"return"in c?c["return"]:function(d){return{value:d,done:!0}},b,a.g.return);a.g.return(b);return H(a)}F.prototype.s=function(a){D(this.g);if(this.g.j)return G(this,this.g.j["throw"],a,this.g.o);this.g.s(a);return H(this)};
|
||||
function G(a,b,c,d){try{var e=b.call(a.g.j,c);if(!(e instanceof Object))throw new TypeError("Iterator result "+e+" is not an object");if(!e.done)return a.g.m=!1,e;var f=e.value}catch(g){return a.g.j=null,a.g.s(g),H(a)}a.g.j=null;d.call(a.g,f);return H(a)}function H(a){for(;a.g.h;)try{var b=a.G(a.g);if(b)return a.g.m=!1,{value:b.value,done:!1}}catch(c){a.g.v=void 0,a.g.s(c)}a.g.m=!1;if(a.g.l){b=a.g.l;a.g.l=null;if(b.F)throw b.D;return{value:b.return,done:!0}}return{value:void 0,done:!0}}
|
||||
function J(a){this.next=function(b){return a.o(b)};this.throw=function(b){return a.s(b)};this.return=function(b){return I(a,b)};this[Symbol.iterator]=function(){return this}}function K(a,b){b=new J(new F(b));B&&a.prototype&&B(b,a.prototype);return b}function L(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var f=c++;return{value:b(f,a[f]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}
|
||||
r("Array.prototype.entries",function(a){return a?a:function(){return L(this,function(b,c){return[b,c]})}});
|
||||
if("undefined"!==typeof Blob&&("undefined"===typeof FormData||!FormData.prototype.keys)){var M=function(a,b){for(var c=0;c<a.length;c++)b(a[c])},N=function(a){return a.replace(/\r?\n|\r/g,"\r\n")},O=function(a,b,c){if(b instanceof Blob){c=void 0!==c?String(c+""):"string"===typeof b.name?b.name:"blob";if(b.name!==c||"[object Blob]"===Object.prototype.toString.call(b))b=new File([b],c);return[String(a),b]}return[String(a),String(b)]},P=function(a,b){if(a.length<b)throw new TypeError(b+" argument required, but only "+
|
||||
a.length+" present.");},Q="object"===typeof globalThis?globalThis:"object"===typeof window?window:"object"===typeof self?self:this,R=Q.FormData,S=Q.XMLHttpRequest&&Q.XMLHttpRequest.prototype.send,T=Q.Request&&Q.fetch,U=Q.navigator&&Q.navigator.sendBeacon,V=Q.Element&&Q.Element.prototype,W=Q.Symbol&&Symbol.toStringTag;W&&(Blob.prototype[W]||(Blob.prototype[W]="Blob"),"File"in Q&&!File.prototype[W]&&(File.prototype[W]="File"));try{new File([],"")}catch(a){Q.File=function(b,c,d){b=new Blob(b,d||{});
|
||||
Object.defineProperties(b,{name:{value:c},lastModified:{value:+(d&&void 0!==d.lastModified?new Date(d.lastModified):new Date)},toString:{value:function(){return"[object File]"}}});W&&Object.defineProperty(b,W,{value:"File"});return b}}var escape=function(a){return a.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22")},X=function(a){this.i=[];var b=this;a&&M(a.elements,function(c){if(c.name&&!c.disabled&&"submit"!==c.type&&"button"!==c.type&&!c.matches("form fieldset[disabled] *"))if("file"===
|
||||
c.type){var d=c.files&&c.files.length?c.files:[new File([],"",{type:"application/octet-stream"})];M(d,function(e){b.append(c.name,e)})}else"select-multiple"===c.type||"select-one"===c.type?M(c.options,function(e){!e.disabled&&e.selected&&b.append(c.name,e.value)}):"checkbox"===c.type||"radio"===c.type?c.checked&&b.append(c.name,c.value):(d="textarea"===c.type?N(c.value):c.value,b.append(c.name,d))})};h=X.prototype;h.append=function(a,b,c){P(arguments,2);this.i.push(O(a,b,c))};h.delete=function(a){P(arguments,
|
||||
1);var b=[];a=String(a);M(this.i,function(c){c[0]!==a&&b.push(c)});this.i=b};h.entries=function b(){var c,d=this;return K(b,function(e){1==e.h&&(c=0);if(3!=e.h)return c<d.i.length?e=E(e,d.i[c]):(e.h=0,e=void 0),e;c++;e.h=2})};h.forEach=function(b,c){P(arguments,1);for(var d=v(this),e=d.next();!e.done;e=d.next()){var f=v(e.value);e=f.next().value;f=f.next().value;b.call(c,f,e,this)}};h.get=function(b){P(arguments,1);var c=this.i;b=String(b);for(var d=0;d<c.length;d++)if(c[d][0]===b)return c[d][1];
|
||||
return null};h.getAll=function(b){P(arguments,1);var c=[];b=String(b);M(this.i,function(d){d[0]===b&&c.push(d[1])});return c};h.has=function(b){P(arguments,1);b=String(b);for(var c=0;c<this.i.length;c++)if(this.i[c][0]===b)return!0;return!1};h.keys=function c(){var d=this,e,f,g,k,p;return K(c,function(t){1==t.h&&(e=v(d),f=e.next());if(3!=t.h){if(f.done){t.h=0;return}g=f.value;k=v(g);p=k.next().value;return E(t,p)}f=e.next();t.h=2})};h.set=function(c,d,e){P(arguments,2);c=String(c);var f=[],g=O(c,
|
||||
d,e),k=!0;M(this.i,function(p){p[0]===c?k&&(k=!f.push(g)):f.push(p)});k&&f.push(g);this.i=f};h.values=function d(){var e=this,f,g,k,p,t;return K(d,function(x){1==x.h&&(f=v(e),g=f.next());if(3!=x.h){if(g.done){x.h=0;return}k=g.value;p=v(k);p.next();t=p.next().value;return E(x,t)}g=f.next();x.h=2})};X.prototype._asNative=function(){for(var d=new R,e=v(this),f=e.next();!f.done;f=e.next()){var g=v(f.value);f=g.next().value;g=g.next().value;d.append(f,g)}return d};X.prototype._blob=function(){var d="----formdata-polyfill-"+
|
||||
Math.random(),e=[],f="--"+d+'\r\nContent-Disposition: form-data; name="';this.forEach(function(g,k){return"string"==typeof g?e.push(f+escape(N(k))+('"\r\n\r\n'+N(g)+"\r\n")):e.push(f+escape(N(k))+('"; filename="'+escape(g.name)+'"\r\nContent-Type: '+(g.type||"application/octet-stream")+"\r\n\r\n"),g,"\r\n")});e.push("--"+d+"--");return new Blob(e,{type:"multipart/form-data; boundary="+d})};X.prototype[Symbol.iterator]=function(){return this.entries()};X.prototype.toString=function(){return"[object FormData]"};
|
||||
V&&!V.matches&&(V.matches=V.matchesSelector||V.mozMatchesSelector||V.msMatchesSelector||V.oMatchesSelector||V.webkitMatchesSelector||function(d){d=(this.document||this.ownerDocument).querySelectorAll(d);for(var e=d.length;0<=--e&&d.item(e)!==this;);return-1<e});W&&(X.prototype[W]="FormData");if(S){var Y=Q.XMLHttpRequest.prototype.setRequestHeader;Q.XMLHttpRequest.prototype.setRequestHeader=function(d,e){Y.call(this,d,e);"content-type"===d.toLowerCase()&&(this.B=!0)};Q.XMLHttpRequest.prototype.send=
|
||||
function(d){d instanceof X?(d=d._blob(),this.B||this.setRequestHeader("Content-Type",d.type),S.call(this,d)):S.call(this,d)}}T&&(Q.fetch=function(d,e){e&&e.body&&e.body instanceof X&&(e.body=e.body._blob());return T.call(this,d,e)});U&&(Q.navigator.sendBeacon=function(d,e){e instanceof X&&(e=e._asNative());return U.call(this,d,e)});Q.FormData=X};})();
|
||||
50
unified-ai-platform/node_modules/formdata-polyfill/package.json
generated
vendored
Normal file
50
unified-ai-platform/node_modules/formdata-polyfill/package.json
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"name": "formdata-polyfill",
|
||||
"version": "4.0.10",
|
||||
"description": "HTML5 `FormData` for Browsers and Node.",
|
||||
"type": "module",
|
||||
"main": "formdata.min.js",
|
||||
"scripts": {
|
||||
"build": "node build.js",
|
||||
"test": "node test/test-esm.js",
|
||||
"test-wpt": "node --experimental-loader ./test/http-loader.js ./test/test-wpt-in-node.js",
|
||||
"test-polyfill": "php -S localhost:4445 & open http://localhost:4445/test/test-polyfill.html"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://jimmywarting@github.com/jimmywarting/FormData.git"
|
||||
},
|
||||
"files": [
|
||||
"esm.min.js",
|
||||
"esm.min.d.ts",
|
||||
"FormData.js",
|
||||
"formdata-to-blob.js",
|
||||
"formdata.min.js",
|
||||
"README.md"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
},
|
||||
"keywords": [
|
||||
"formdata",
|
||||
"fetch",
|
||||
"node-fetch",
|
||||
"html5",
|
||||
"browser",
|
||||
"polyfill"
|
||||
],
|
||||
"author": "Jimmy Wärting",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/jimmywarting/FormData/issues"
|
||||
},
|
||||
"homepage": "https://github.com/jimmywarting/FormData#readme",
|
||||
"dependencies": {
|
||||
"fetch-blob": "^3.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/google-closure-compiler": "^0.0.19",
|
||||
"@types/node": "^16.7.10",
|
||||
"google-closure-compiler": "^20210808.0.0"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user