@spcsn/taro-runtime 0.1.0 → 0.1.2

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 (63) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/assertClassBrand.js +7 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/checkPrivateRedeclaration.js +6 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldGet2.js +7 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldInitSpec.js +7 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldSet2.js +7 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateMethodInitSpec.js +7 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/defineProperty.js +12 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/objectSpread2.js +25 -0
  9. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/toPrimitive.js +14 -0
  10. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/toPropertyKey.js +9 -0
  11. package/dist/_virtual/_@oxc-project_runtime@0.130.0/helpers/typeof.js +11 -0
  12. package/dist/bom/URL.js +36 -27
  13. package/dist/bom/URL.js.map +1 -1
  14. package/dist/bom/URLSearchParams.js +18 -14
  15. package/dist/bom/URLSearchParams.js.map +1 -1
  16. package/dist/bom/document.js +3 -2
  17. package/dist/bom/document.js.map +1 -1
  18. package/dist/bom/history.js +52 -40
  19. package/dist/bom/history.js.map +1 -1
  20. package/dist/bom/location.js +101 -91
  21. package/dist/bom/location.js.map +1 -1
  22. package/dist/bom/window.js +1 -1
  23. package/dist/bom/window.js.map +1 -1
  24. package/dist/dom/anchor-element.js +16 -8
  25. package/dist/dom/anchor-element.js.map +1 -1
  26. package/dist/dom/class-list.js.map +1 -1
  27. package/dist/dom/document.js.map +1 -1
  28. package/dist/dom/element.js +2 -1
  29. package/dist/dom/element.js.map +1 -1
  30. package/dist/dom/event-target.js +2 -4
  31. package/dist/dom/event-target.js.map +1 -1
  32. package/dist/dom/event.js +18 -17
  33. package/dist/dom/event.js.map +1 -1
  34. package/dist/dom/form.js +2 -1
  35. package/dist/dom/form.js.map +1 -1
  36. package/dist/dom/node.js +9 -6
  37. package/dist/dom/node.js.map +1 -1
  38. package/dist/dom/root.js +2 -4
  39. package/dist/dom/root.js.map +1 -1
  40. package/dist/dom/text.js.map +1 -1
  41. package/dist/dom/transfer.js.map +1 -1
  42. package/dist/dom/tree.js +1 -1
  43. package/dist/dom/tree.js.map +1 -1
  44. package/dist/dom-external/mutation-observer/implements.js +1 -1
  45. package/dist/dom-external/mutation-observer/implements.js.map +1 -1
  46. package/dist/dsl/common.js +21 -18
  47. package/dist/dsl/common.js.map +1 -1
  48. package/dist/hydrate.js +10 -7
  49. package/dist/hydrate.js.map +1 -1
  50. package/dist/index.cjs.js +392 -260
  51. package/dist/index.cjs.js.map +1 -1
  52. package/dist/next-tick.js +6 -4
  53. package/dist/next-tick.js.map +1 -1
  54. package/dist/perf.js +10 -6
  55. package/dist/perf.js.map +1 -1
  56. package/dist/runtime.esm.js +392 -260
  57. package/dist/runtime.esm.js.map +1 -1
  58. package/dist/utils/cache.js.map +1 -1
  59. package/dist/utils/index.js +9 -6
  60. package/dist/utils/index.js.map +1 -1
  61. package/dist/utils/router.js +2 -1
  62. package/dist/utils/router.js.map +1 -1
  63. package/package.json +2 -2
@@ -0,0 +1,7 @@
1
+ //#region \0@oxc-project+runtime@0.130.0/helpers/assertClassBrand.js
2
+ function _assertClassBrand(e, t, n) {
3
+ if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
4
+ throw new TypeError("Private element is not present on this object");
5
+ }
6
+ //#endregion
7
+ export { _assertClassBrand };
@@ -0,0 +1,6 @@
1
+ //#region \0@oxc-project+runtime@0.130.0/helpers/checkPrivateRedeclaration.js
2
+ function _checkPrivateRedeclaration(e, t) {
3
+ if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object");
4
+ }
5
+ //#endregion
6
+ export { _checkPrivateRedeclaration };
@@ -0,0 +1,7 @@
1
+ import { _assertClassBrand } from "./assertClassBrand.js";
2
+ //#region \0@oxc-project+runtime@0.130.0/helpers/classPrivateFieldGet2.js
3
+ function _classPrivateFieldGet2(s, a) {
4
+ return s.get(_assertClassBrand(s, a));
5
+ }
6
+ //#endregion
7
+ export { _classPrivateFieldGet2 };
@@ -0,0 +1,7 @@
1
+ import { _checkPrivateRedeclaration } from "./checkPrivateRedeclaration.js";
2
+ //#region \0@oxc-project+runtime@0.130.0/helpers/classPrivateFieldInitSpec.js
3
+ function _classPrivateFieldInitSpec(e, t, a) {
4
+ _checkPrivateRedeclaration(e, t), t.set(e, a);
5
+ }
6
+ //#endregion
7
+ export { _classPrivateFieldInitSpec };
@@ -0,0 +1,7 @@
1
+ import { _assertClassBrand } from "./assertClassBrand.js";
2
+ //#region \0@oxc-project+runtime@0.130.0/helpers/classPrivateFieldSet2.js
3
+ function _classPrivateFieldSet2(s, a, r) {
4
+ return s.set(_assertClassBrand(s, a), r), r;
5
+ }
6
+ //#endregion
7
+ export { _classPrivateFieldSet2 };
@@ -0,0 +1,7 @@
1
+ import { _checkPrivateRedeclaration } from "./checkPrivateRedeclaration.js";
2
+ //#region \0@oxc-project+runtime@0.130.0/helpers/classPrivateMethodInitSpec.js
3
+ function _classPrivateMethodInitSpec(e, a) {
4
+ _checkPrivateRedeclaration(e, a), a.add(e);
5
+ }
6
+ //#endregion
7
+ export { _classPrivateMethodInitSpec };
@@ -0,0 +1,12 @@
1
+ import { toPropertyKey } from "./toPropertyKey.js";
2
+ //#region \0@oxc-project+runtime@0.130.0/helpers/defineProperty.js
3
+ function _defineProperty(e, r, t) {
4
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
5
+ value: t,
6
+ enumerable: !0,
7
+ configurable: !0,
8
+ writable: !0
9
+ }) : e[r] = t, e;
10
+ }
11
+ //#endregion
12
+ export { _defineProperty };
@@ -0,0 +1,25 @@
1
+ import { _defineProperty } from "./defineProperty.js";
2
+ //#region \0@oxc-project+runtime@0.130.0/helpers/objectSpread2.js
3
+ function ownKeys(e, r) {
4
+ var t = Object.keys(e);
5
+ if (Object.getOwnPropertySymbols) {
6
+ var o = Object.getOwnPropertySymbols(e);
7
+ r && (o = o.filter(function(r) {
8
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
9
+ })), t.push.apply(t, o);
10
+ }
11
+ return t;
12
+ }
13
+ function _objectSpread2(e) {
14
+ for (var r = 1; r < arguments.length; r++) {
15
+ var t = null != arguments[r] ? arguments[r] : {};
16
+ r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
17
+ _defineProperty(e, r, t[r]);
18
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
19
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
20
+ });
21
+ }
22
+ return e;
23
+ }
24
+ //#endregion
25
+ export { _objectSpread2 };
@@ -0,0 +1,14 @@
1
+ import { _typeof } from "./typeof.js";
2
+ //#region \0@oxc-project+runtime@0.130.0/helpers/toPrimitive.js
3
+ function toPrimitive(t, r) {
4
+ if ("object" != _typeof(t) || !t) return t;
5
+ var e = t[Symbol.toPrimitive];
6
+ if (void 0 !== e) {
7
+ var i = e.call(t, r || "default");
8
+ if ("object" != _typeof(i)) return i;
9
+ throw new TypeError("@@toPrimitive must return a primitive value.");
10
+ }
11
+ return ("string" === r ? String : Number)(t);
12
+ }
13
+ //#endregion
14
+ export { toPrimitive };
@@ -0,0 +1,9 @@
1
+ import { _typeof } from "./typeof.js";
2
+ import { toPrimitive } from "./toPrimitive.js";
3
+ //#region \0@oxc-project+runtime@0.130.0/helpers/toPropertyKey.js
4
+ function toPropertyKey(t) {
5
+ var i = toPrimitive(t, "string");
6
+ return "symbol" == _typeof(i) ? i : i + "";
7
+ }
8
+ //#endregion
9
+ export { toPropertyKey };
@@ -0,0 +1,11 @@
1
+ //#region \0@oxc-project+runtime@0.130.0/helpers/typeof.js
2
+ function _typeof(o) {
3
+ "@babel/helpers - typeof";
4
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
5
+ return typeof o;
6
+ } : function(o) {
7
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
8
+ }, _typeof(o);
9
+ }
10
+ //#endregion
11
+ export { _typeof };
package/dist/bom/URL.js CHANGED
@@ -1,7 +1,16 @@
1
1
  import env from "../env.js";
2
+ import { _classPrivateFieldInitSpec } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldInitSpec.js";
3
+ import { _classPrivateFieldSet2 } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldSet2.js";
4
+ import { _classPrivateFieldGet2 } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldGet2.js";
2
5
  import { URLSearchParams } from "./URLSearchParams.js";
3
6
  import { isString, isUndefined } from "@spcsn/taro-shared";
4
7
  //#region src/bom/URL.ts
8
+ var _hash = /* @__PURE__ */ new WeakMap();
9
+ var _hostname = /* @__PURE__ */ new WeakMap();
10
+ var _pathname = /* @__PURE__ */ new WeakMap();
11
+ var _port = /* @__PURE__ */ new WeakMap();
12
+ var _protocol = /* @__PURE__ */ new WeakMap();
13
+ var _search = /* @__PURE__ */ new WeakMap();
5
14
  var TaroURL = class {
6
15
  static createObjectURL() {
7
16
  throw new Error("Oops, not support URL.createObjectURL() in miniprogram.");
@@ -9,27 +18,27 @@ var TaroURL = class {
9
18
  static revokeObjectURL() {
10
19
  throw new Error("Oops, not support URL.revokeObjectURL() in miniprogram.");
11
20
  }
12
- #hash = "";
13
- #hostname = "";
14
- #pathname = "";
15
- #port = "";
16
- #protocol = "";
17
- #search;
18
21
  constructor(url, base) {
22
+ _classPrivateFieldInitSpec(this, _hash, "");
23
+ _classPrivateFieldInitSpec(this, _hostname, "");
24
+ _classPrivateFieldInitSpec(this, _pathname, "");
25
+ _classPrivateFieldInitSpec(this, _port, "");
26
+ _classPrivateFieldInitSpec(this, _protocol, "");
27
+ _classPrivateFieldInitSpec(this, _search, void 0);
19
28
  if (!isString(url)) url = String(url);
20
29
  const { hash, hostname, pathname, port, protocol, search } = parseUrlBase(url, base);
21
- this.#hash = hash;
22
- this.#hostname = hostname;
23
- this.#pathname = pathname || "/";
24
- this.#port = port;
25
- this.#protocol = protocol;
26
- this.#search = new URLSearchParams(search);
30
+ _classPrivateFieldSet2(_hash, this, hash);
31
+ _classPrivateFieldSet2(_hostname, this, hostname);
32
+ _classPrivateFieldSet2(_pathname, this, pathname || "/");
33
+ _classPrivateFieldSet2(_port, this, port);
34
+ _classPrivateFieldSet2(_protocol, this, protocol);
35
+ _classPrivateFieldSet2(_search, this, new URLSearchParams(search));
27
36
  }
28
37
  get protocol() {
29
- return this.#protocol;
38
+ return _classPrivateFieldGet2(_protocol, this);
30
39
  }
31
40
  set protocol(val) {
32
- isString(val) && (this.#protocol = val.trim());
41
+ isString(val) && _classPrivateFieldSet2(_protocol, this, val.trim());
33
42
  }
34
43
  get host() {
35
44
  return this.hostname + (this.port ? ":" + this.port : "");
@@ -43,19 +52,19 @@ var TaroURL = class {
43
52
  }
44
53
  }
45
54
  get hostname() {
46
- return this.#hostname;
55
+ return _classPrivateFieldGet2(_hostname, this);
47
56
  }
48
57
  set hostname(val) {
49
- val && isString(val) && (this.#hostname = val.trim());
58
+ val && isString(val) && _classPrivateFieldSet2(_hostname, this, val.trim());
50
59
  }
51
60
  get port() {
52
- return this.#port;
61
+ return _classPrivateFieldGet2(_port, this);
53
62
  }
54
63
  set port(val) {
55
- isString(val) && (this.#port = val.trim());
64
+ isString(val) && _classPrivateFieldSet2(_port, this, val.trim());
56
65
  }
57
66
  get pathname() {
58
- return this.#pathname;
67
+ return _classPrivateFieldGet2(_pathname, this);
59
68
  }
60
69
  set pathname(val) {
61
70
  if (isString(val)) {
@@ -63,28 +72,28 @@ var TaroURL = class {
63
72
  const HEAD_REG = /^(\/|\.\/|\.\.\/)/;
64
73
  let temp = val;
65
74
  while (HEAD_REG.test(temp)) temp = temp.replace(HEAD_REG, "");
66
- if (temp) this.#pathname = "/" + temp;
67
- else this.#pathname = "/";
75
+ if (temp) _classPrivateFieldSet2(_pathname, this, "/" + temp);
76
+ else _classPrivateFieldSet2(_pathname, this, "/");
68
77
  }
69
78
  }
70
79
  get search() {
71
- const val = this.#search.toString();
80
+ const val = _classPrivateFieldGet2(_search, this).toString();
72
81
  return val.length === 0 || val.startsWith("?") ? val : `?${val}`;
73
82
  }
74
83
  set search(val) {
75
84
  if (isString(val)) {
76
85
  val = val.trim();
77
- this.#search = new URLSearchParams(val);
86
+ _classPrivateFieldSet2(_search, this, new URLSearchParams(val));
78
87
  }
79
88
  }
80
89
  get hash() {
81
- return this.#hash;
90
+ return _classPrivateFieldGet2(_hash, this);
82
91
  }
83
92
  set hash(val) {
84
93
  if (isString(val)) {
85
94
  val = val.trim();
86
- if (val) this.#hash = val.startsWith("#") ? val : `#${val}`;
87
- else this.#hash = "";
95
+ if (val) _classPrivateFieldSet2(_hash, this, val.startsWith("#") ? val : `#${val}`);
96
+ else _classPrivateFieldSet2(_hash, this, "");
88
97
  }
89
98
  }
90
99
  get href() {
@@ -115,7 +124,7 @@ var TaroURL = class {
115
124
  }
116
125
  }
117
126
  get searchParams() {
118
- return this.#search;
127
+ return _classPrivateFieldGet2(_search, this);
119
128
  }
120
129
  toString() {
121
130
  return this.href;
@@ -1 +1 @@
1
- {"version":3,"file":"URL.js","names":["#hash","#hostname","#pathname","#port","#protocol","#search"],"sources":["../../src/bom/URL.ts"],"sourcesContent":["import { isString, isUndefined } from '@spcsn/taro-shared';\n\nimport env from '../env';\nimport { URLSearchParams } from './URLSearchParams';\n\nclass TaroURL {\n static createObjectURL() {\n throw new Error('Oops, not support URL.createObjectURL() in miniprogram.');\n }\n\n static revokeObjectURL() {\n throw new Error('Oops, not support URL.revokeObjectURL() in miniprogram.');\n }\n\n /* private property */\n #hash = '';\n #hostname = '';\n #pathname = '';\n #port = '';\n #protocol = '';\n #search: URLSearchParams;\n\n constructor(url: string, base?: string) {\n if (!isString(url)) url = String(url);\n\n const parseResult = parseUrlBase(url, base);\n const { hash, hostname, pathname, port, protocol, search } = parseResult;\n\n this.#hash = hash;\n this.#hostname = hostname;\n this.#pathname = pathname || '/';\n this.#port = port;\n this.#protocol = protocol;\n this.#search = new URLSearchParams(search);\n }\n\n /* public property */\n get protocol() {\n return this.#protocol;\n }\n\n set protocol(val: string) {\n isString(val) && (this.#protocol = val.trim());\n }\n\n get host() {\n return this.hostname + (this.port ? ':' + this.port : '');\n }\n\n set host(val: string) {\n if (val && isString(val)) {\n val = val.trim();\n const { hostname, port } = parseUrl(`//${val}`);\n this.hostname = hostname;\n this.port = port;\n }\n }\n\n get hostname() {\n return this.#hostname;\n }\n\n set hostname(val: string) {\n val && isString(val) && (this.#hostname = val.trim());\n }\n\n get port() {\n return this.#port;\n }\n\n set port(val: string) {\n isString(val) && (this.#port = val.trim());\n }\n\n get pathname() {\n return this.#pathname;\n }\n\n set pathname(val: string) {\n if (isString(val)) {\n val = val.trim();\n const HEAD_REG = /^(\\/|\\.\\/|\\.\\.\\/)/;\n let temp = val;\n while (HEAD_REG.test(temp)) {\n temp = temp.replace(HEAD_REG, '');\n }\n if (temp) this.#pathname = '/' + temp;\n else this.#pathname = '/';\n }\n }\n\n get search() {\n const val = this.#search.toString();\n return val.length === 0 || val.startsWith('?') ? val : `?${val}`;\n }\n\n set search(val: string) {\n if (isString(val)) {\n val = val.trim();\n this.#search = new URLSearchParams(val);\n }\n }\n\n get hash() {\n return this.#hash;\n }\n\n set hash(val: string) {\n if (isString(val)) {\n val = val.trim();\n if (val) this.#hash = val.startsWith('#') ? val : `#${val}`;\n else this.#hash = '';\n }\n }\n\n get href() {\n return `${this.protocol}//${this.host}${this.pathname}${this.search}${this.hash}`;\n }\n\n set href(val: string) {\n if (val && isString(val)) {\n val = val.trim();\n const { protocol, hostname, port, hash, search, pathname } = parseUrl(val);\n this.protocol = protocol;\n this.hostname = hostname;\n this.pathname = pathname;\n this.port = port;\n this.hash = hash;\n this.search = search;\n }\n }\n\n get origin() {\n return `${this.protocol}//${this.host}`;\n }\n\n set origin(val: string) {\n if (val && isString(val)) {\n val = val.trim();\n const { protocol, hostname, port } = parseUrl(val);\n this.protocol = protocol;\n this.hostname = hostname;\n this.port = port;\n }\n }\n\n get searchParams() {\n return this.#search;\n }\n\n // public method\n toString() {\n return this.href;\n }\n\n toJSON() {\n return this.toString();\n }\n\n // convenient for deconstructor\n _toRaw() {\n return {\n protocol: this.protocol,\n port: this.port,\n host: this.host,\n hostname: this.hostname,\n pathname: this.pathname,\n hash: this.hash,\n search: this.search,\n origin: this.origin,\n href: this.href,\n };\n }\n}\n\nexport type { TaroURL };\n\n// Note: 小程序端 vite 打包成 commonjs,const URL = xxx 会报错,所以把 URL 改为 TaroURLProvider\nexport const TaroURLProvider: typeof TaroURL = process.env.TARO_PLATFORM === 'web' ? env.window.URL : TaroURL;\n\nexport function parseUrl(url = '') {\n const result = {\n href: '',\n origin: '',\n protocol: '',\n hostname: '',\n host: '',\n port: '',\n pathname: '',\n search: '',\n hash: '',\n };\n if (!url || !isString(url)) return result;\n\n url = url.trim();\n const PATTERN = /^(([^:/?#]+):)?\\/\\/(([^/?#]+):(.+)@)?([^/?#:]*)(:(\\d+))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n const matches = url.match(PATTERN);\n\n if (!matches) return result;\n\n // TODO: username & password ?\n result.protocol = matches[1] || 'https:';\n result.hostname = matches[6] || 'taro.com';\n result.port = matches[8] || '';\n result.pathname = matches[9] || '/';\n result.search = matches[10] || '';\n result.hash = matches[12] || '';\n result.href = url;\n result.origin = result.protocol + '//' + result.hostname + (result.port ? `:${result.port}` : '');\n result.host = result.hostname + (result.port ? `:${result.port}` : '');\n\n return result;\n}\n\nfunction parseUrlBase(url: string, base?: string) {\n const VALID_URL = /^(https?:)\\/\\//i;\n\n let fullUrl = '';\n let parsedBase: ReturnType<typeof parseUrl> | null = null;\n\n if (!isUndefined(base)) {\n base = String(base).trim();\n if (!VALID_URL.test(base)) throw new TypeError(`Failed to construct 'URL': Invalid base URL`);\n parsedBase = parseUrl(base);\n }\n\n url = String(url).trim();\n\n if (VALID_URL.test(url)) {\n fullUrl = url;\n } else if (parsedBase) {\n if (url) {\n if (url.startsWith('//')) {\n fullUrl = parsedBase.protocol + url;\n } else {\n fullUrl = parsedBase.origin + (url.startsWith('/') ? url : `/${url}`);\n }\n } else {\n fullUrl = parsedBase.href;\n }\n } else {\n throw new TypeError(`Failed to construct 'URL': Invalid URL`);\n }\n\n return parseUrl(fullUrl);\n}\n"],"mappings":";;;;AAKA,IAAM,UAAN,MAAc;CACZ,OAAO,kBAAkB;EACvB,MAAM,IAAI,MAAM,yDAAyD;CAC3E;CAEA,OAAO,kBAAkB;EACvB,MAAM,IAAI,MAAM,yDAAyD;CAC3E;CAGA,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,QAAQ;CACR,YAAY;CACZ;CAEA,YAAY,KAAa,MAAe;EACtC,IAAI,CAAC,SAAS,GAAG,GAAG,MAAM,OAAO,GAAG;EAGpC,MAAM,EAAE,MAAM,UAAU,UAAU,MAAM,UAAU,WAD9B,aAAa,KAAK,IACiC;EAEvE,KAAKA,QAAQ;EACb,KAAKC,YAAY;EACjB,KAAKC,YAAY,YAAY;EAC7B,KAAKC,QAAQ;EACb,KAAKC,YAAY;EACjB,KAAKC,UAAU,IAAI,gBAAgB,MAAM;CAC3C;CAGA,IAAI,WAAW;EACb,OAAO,KAAKD;CACd;CAEA,IAAI,SAAS,KAAa;EACxB,SAAS,GAAG,MAAM,KAAKA,YAAY,IAAI,KAAK;CAC9C;CAEA,IAAI,OAAO;EACT,OAAO,KAAK,YAAY,KAAK,OAAO,MAAM,KAAK,OAAO;CACxD;CAEA,IAAI,KAAK,KAAa;EACpB,IAAI,OAAO,SAAS,GAAG,GAAG;GACxB,MAAM,IAAI,KAAK;GACf,MAAM,EAAE,UAAU,SAAS,SAAS,KAAK,KAAK;GAC9C,KAAK,WAAW;GAChB,KAAK,OAAO;EACd;CACF;CAEA,IAAI,WAAW;EACb,OAAO,KAAKH;CACd;CAEA,IAAI,SAAS,KAAa;EACxB,OAAO,SAAS,GAAG,MAAM,KAAKA,YAAY,IAAI,KAAK;CACrD;CAEA,IAAI,OAAO;EACT,OAAO,KAAKE;CACd;CAEA,IAAI,KAAK,KAAa;EACpB,SAAS,GAAG,MAAM,KAAKA,QAAQ,IAAI,KAAK;CAC1C;CAEA,IAAI,WAAW;EACb,OAAO,KAAKD;CACd;CAEA,IAAI,SAAS,KAAa;EACxB,IAAI,SAAS,GAAG,GAAG;GACjB,MAAM,IAAI,KAAK;GACf,MAAM,WAAW;GACjB,IAAI,OAAO;GACX,OAAO,SAAS,KAAK,IAAI,GACvB,OAAO,KAAK,QAAQ,UAAU,EAAE;GAElC,IAAI,MAAM,KAAKA,YAAY,MAAM;QAC5B,KAAKA,YAAY;EACxB;CACF;CAEA,IAAI,SAAS;EACX,MAAM,MAAM,KAAKG,QAAQ,SAAS;EAClC,OAAO,IAAI,WAAW,KAAK,IAAI,WAAW,GAAG,IAAI,MAAM,IAAI;CAC7D;CAEA,IAAI,OAAO,KAAa;EACtB,IAAI,SAAS,GAAG,GAAG;GACjB,MAAM,IAAI,KAAK;GACf,KAAKA,UAAU,IAAI,gBAAgB,GAAG;EACxC;CACF;CAEA,IAAI,OAAO;EACT,OAAO,KAAKL;CACd;CAEA,IAAI,KAAK,KAAa;EACpB,IAAI,SAAS,GAAG,GAAG;GACjB,MAAM,IAAI,KAAK;GACf,IAAI,KAAK,KAAKA,QAAQ,IAAI,WAAW,GAAG,IAAI,MAAM,IAAI;QACjD,KAAKA,QAAQ;EACpB;CACF;CAEA,IAAI,OAAO;EACT,OAAO,GAAG,KAAK,SAAS,IAAI,KAAK,OAAO,KAAK,WAAW,KAAK,SAAS,KAAK;CAC7E;CAEA,IAAI,KAAK,KAAa;EACpB,IAAI,OAAO,SAAS,GAAG,GAAG;GACxB,MAAM,IAAI,KAAK;GACf,MAAM,EAAE,UAAU,UAAU,MAAM,MAAM,QAAQ,aAAa,SAAS,GAAG;GACzE,KAAK,WAAW;GAChB,KAAK,WAAW;GAChB,KAAK,WAAW;GAChB,KAAK,OAAO;GACZ,KAAK,OAAO;GACZ,KAAK,SAAS;EAChB;CACF;CAEA,IAAI,SAAS;EACX,OAAO,GAAG,KAAK,SAAS,IAAI,KAAK;CACnC;CAEA,IAAI,OAAO,KAAa;EACtB,IAAI,OAAO,SAAS,GAAG,GAAG;GACxB,MAAM,IAAI,KAAK;GACf,MAAM,EAAE,UAAU,UAAU,SAAS,SAAS,GAAG;GACjD,KAAK,WAAW;GAChB,KAAK,WAAW;GAChB,KAAK,OAAO;EACd;CACF;CAEA,IAAI,eAAe;EACjB,OAAO,KAAKK;CACd;CAGA,WAAW;EACT,OAAO,KAAK;CACd;CAEA,SAAS;EACP,OAAO,KAAK,SAAS;CACvB;CAGA,SAAS;EACP,OAAO;GACL,UAAU,KAAK;GACf,MAAM,KAAK;GACX,MAAM,KAAK;GACX,UAAU,KAAK;GACf,UAAU,KAAK;GACf,MAAM,KAAK;GACX,QAAQ,KAAK;GACb,QAAQ,KAAK;GACb,MAAM,KAAK;EACb;CACF;AACF;AAKA,MAAa,kBAAkC,QAAQ,IAAI,kBAAkB,QAAQ,IAAI,OAAO,MAAM;AAEtG,SAAgB,SAAS,MAAM,IAAI;CACjC,MAAM,SAAS;EACb,MAAM;EACN,QAAQ;EACR,UAAU;EACV,UAAU;EACV,MAAM;EACN,MAAM;EACN,UAAU;EACV,QAAQ;EACR,MAAM;CACR;CACA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,OAAO;CAEnC,MAAM,IAAI,KAAK;CAEf,MAAM,UAAU,IAAI,MAAM,sFAAO;CAEjC,IAAI,CAAC,SAAS,OAAO;CAGrB,OAAO,WAAW,QAAQ,MAAM;CAChC,OAAO,WAAW,QAAQ,MAAM;CAChC,OAAO,OAAO,QAAQ,MAAM;CAC5B,OAAO,WAAW,QAAQ,MAAM;CAChC,OAAO,SAAS,QAAQ,OAAO;CAC/B,OAAO,OAAO,QAAQ,OAAO;CAC7B,OAAO,OAAO;CACd,OAAO,SAAS,OAAO,WAAW,OAAO,OAAO,YAAY,OAAO,OAAO,IAAI,OAAO,SAAS;CAC9F,OAAO,OAAO,OAAO,YAAY,OAAO,OAAO,IAAI,OAAO,SAAS;CAEnE,OAAO;AACT;AAEA,SAAS,aAAa,KAAa,MAAe;CAChD,MAAM,YAAY;CAElB,IAAI,UAAU;CACd,IAAI,aAAiD;CAErD,IAAI,CAAC,YAAY,IAAI,GAAG;EACtB,OAAO,OAAO,IAAI,EAAE,KAAK;EACzB,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,UAAU,6CAA6C;EAC5F,aAAa,SAAS,IAAI;CAC5B;CAEA,MAAM,OAAO,GAAG,EAAE,KAAK;CAEvB,IAAI,UAAU,KAAK,GAAG,GACpB,UAAU;MACL,IAAI,YACT,IAAI,KACF,IAAI,IAAI,WAAW,IAAI,GACrB,UAAU,WAAW,WAAW;MAEhC,UAAU,WAAW,UAAU,IAAI,WAAW,GAAG,IAAI,MAAM,IAAI;MAGjE,UAAU,WAAW;MAGvB,MAAM,IAAI,UAAU,wCAAwC;CAG9D,OAAO,SAAS,OAAO;AACzB"}
1
+ {"version":3,"file":"URL.js","names":[],"sources":["../../src/bom/URL.ts"],"sourcesContent":["import { isString, isUndefined } from '@spcsn/taro-shared';\n\nimport env from '../env';\nimport { URLSearchParams } from './URLSearchParams';\n\nclass TaroURL {\n static createObjectURL() {\n throw new Error('Oops, not support URL.createObjectURL() in miniprogram.');\n }\n\n static revokeObjectURL() {\n throw new Error('Oops, not support URL.revokeObjectURL() in miniprogram.');\n }\n\n /* private property */\n #hash = '';\n #hostname = '';\n #pathname = '';\n #port = '';\n #protocol = '';\n #search: URLSearchParams;\n\n constructor(url: string, base?: string) {\n if (!isString(url)) url = String(url);\n\n const parseResult = parseUrlBase(url, base);\n const { hash, hostname, pathname, port, protocol, search } = parseResult;\n\n this.#hash = hash;\n this.#hostname = hostname;\n this.#pathname = pathname || '/';\n this.#port = port;\n this.#protocol = protocol;\n this.#search = new URLSearchParams(search);\n }\n\n /* public property */\n get protocol() {\n return this.#protocol;\n }\n\n set protocol(val: string) {\n isString(val) && (this.#protocol = val.trim());\n }\n\n get host() {\n return this.hostname + (this.port ? ':' + this.port : '');\n }\n\n set host(val: string) {\n if (val && isString(val)) {\n val = val.trim();\n const { hostname, port } = parseUrl(`//${val}`);\n this.hostname = hostname;\n this.port = port;\n }\n }\n\n get hostname() {\n return this.#hostname;\n }\n\n set hostname(val: string) {\n val && isString(val) && (this.#hostname = val.trim());\n }\n\n get port() {\n return this.#port;\n }\n\n set port(val: string) {\n isString(val) && (this.#port = val.trim());\n }\n\n get pathname() {\n return this.#pathname;\n }\n\n set pathname(val: string) {\n if (isString(val)) {\n val = val.trim();\n const HEAD_REG = /^(\\/|\\.\\/|\\.\\.\\/)/;\n let temp = val;\n while (HEAD_REG.test(temp)) {\n temp = temp.replace(HEAD_REG, '');\n }\n if (temp) this.#pathname = '/' + temp;\n else this.#pathname = '/';\n }\n }\n\n get search() {\n const val = this.#search.toString();\n return val.length === 0 || val.startsWith('?') ? val : `?${val}`;\n }\n\n set search(val: string) {\n if (isString(val)) {\n val = val.trim();\n this.#search = new URLSearchParams(val);\n }\n }\n\n get hash() {\n return this.#hash;\n }\n\n set hash(val: string) {\n if (isString(val)) {\n val = val.trim();\n if (val) this.#hash = val.startsWith('#') ? val : `#${val}`;\n else this.#hash = '';\n }\n }\n\n get href() {\n return `${this.protocol}//${this.host}${this.pathname}${this.search}${this.hash}`;\n }\n\n set href(val: string) {\n if (val && isString(val)) {\n val = val.trim();\n const { protocol, hostname, port, hash, search, pathname } = parseUrl(val);\n this.protocol = protocol;\n this.hostname = hostname;\n this.pathname = pathname;\n this.port = port;\n this.hash = hash;\n this.search = search;\n }\n }\n\n get origin() {\n return `${this.protocol}//${this.host}`;\n }\n\n set origin(val: string) {\n if (val && isString(val)) {\n val = val.trim();\n const { protocol, hostname, port } = parseUrl(val);\n this.protocol = protocol;\n this.hostname = hostname;\n this.port = port;\n }\n }\n\n get searchParams() {\n return this.#search;\n }\n\n // public method\n toString() {\n return this.href;\n }\n\n toJSON() {\n return this.toString();\n }\n\n // convenient for deconstructor\n _toRaw() {\n return {\n protocol: this.protocol,\n port: this.port,\n host: this.host,\n hostname: this.hostname,\n pathname: this.pathname,\n hash: this.hash,\n search: this.search,\n origin: this.origin,\n href: this.href,\n };\n }\n}\n\nexport type { TaroURL };\n\n// Note: 小程序端 vite 打包成 commonjs,const URL = xxx 会报错,所以把 URL 改为 TaroURLProvider\nexport const TaroURLProvider: typeof TaroURL = process.env.TARO_PLATFORM === 'web' ? env.window.URL : TaroURL;\n\nexport function parseUrl(url = '') {\n const result = {\n href: '',\n origin: '',\n protocol: '',\n hostname: '',\n host: '',\n port: '',\n pathname: '',\n search: '',\n hash: '',\n };\n if (!url || !isString(url)) return result;\n\n url = url.trim();\n const PATTERN = /^(([^:/?#]+):)?\\/\\/(([^/?#]+):(.+)@)?([^/?#:]*)(:(\\d+))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n const matches = url.match(PATTERN);\n\n if (!matches) return result;\n\n // TODO: username & password ?\n result.protocol = matches[1] || 'https:';\n result.hostname = matches[6] || 'taro.com';\n result.port = matches[8] || '';\n result.pathname = matches[9] || '/';\n result.search = matches[10] || '';\n result.hash = matches[12] || '';\n result.href = url;\n result.origin = result.protocol + '//' + result.hostname + (result.port ? `:${result.port}` : '');\n result.host = result.hostname + (result.port ? `:${result.port}` : '');\n\n return result;\n}\n\nfunction parseUrlBase(url: string, base?: string) {\n const VALID_URL = /^(https?:)\\/\\//i;\n\n let fullUrl = '';\n let parsedBase: ReturnType<typeof parseUrl> | null = null;\n\n if (!isUndefined(base)) {\n base = String(base).trim();\n if (!VALID_URL.test(base)) throw new TypeError(`Failed to construct 'URL': Invalid base URL`);\n parsedBase = parseUrl(base);\n }\n\n url = String(url).trim();\n\n if (VALID_URL.test(url)) {\n fullUrl = url;\n } else if (parsedBase) {\n if (url) {\n if (url.startsWith('//')) {\n fullUrl = parsedBase.protocol + url;\n } else {\n fullUrl = parsedBase.origin + (url.startsWith('/') ? url : `/${url}`);\n }\n } else {\n fullUrl = parsedBase.href;\n }\n } else {\n throw new TypeError(`Failed to construct 'URL': Invalid URL`);\n }\n\n return parseUrl(fullUrl);\n}\n"],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import env from "../env.js";
2
+ import { _classPrivateFieldInitSpec } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldInitSpec.js";
3
+ import { _classPrivateFieldGet2 } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/classPrivateFieldGet2.js";
2
4
  import { isArray } from "@spcsn/taro-shared";
3
5
  //#region src/bom/URLSearchParams.ts
6
+ var _dict;
4
7
  const findReg = /[!'()~]|%20|%00/g;
5
8
  const plusReg = /\+/g;
6
9
  const replaceCharMap = {
@@ -29,11 +32,12 @@ function decode(str) {
29
32
  function encode(str) {
30
33
  return encodeURIComponent(str).replace(findReg, replacer);
31
34
  }
32
- const URLSearchParams = process.env.TARO_PLATFORM === "web" ? env.window.URLSearchParams : class {
33
- #dict = Object.create(null);
35
+ const URLSearchParams = process.env.TARO_PLATFORM === "web" ? env.window.URLSearchParams : (_dict = /* @__PURE__ */ new WeakMap(), class {
34
36
  constructor(query) {
35
- query ??= "";
36
- const dict = this.#dict;
37
+ var _query;
38
+ _classPrivateFieldInitSpec(this, _dict, Object.create(null));
39
+ (_query = query) !== null && _query !== void 0 || (query = "");
40
+ const dict = _classPrivateFieldGet2(_dict, this);
37
41
  if (typeof query === "string") {
38
42
  if (query.charAt(0) === "?") query = query.slice(1);
39
43
  for (let pairs = query.split("&"), i = 0, length = pairs.length; i < length; i++) {
@@ -54,30 +58,30 @@ const URLSearchParams = process.env.TARO_PLATFORM === "web" ? env.window.URLSear
54
58
  else for (const key in query) appendTo(dict, key, query[key]);
55
59
  }
56
60
  append(name, value) {
57
- appendTo(this.#dict, name, value);
61
+ appendTo(_classPrivateFieldGet2(_dict, this), name, value);
58
62
  }
59
63
  delete(name) {
60
- delete this.#dict[name];
64
+ delete _classPrivateFieldGet2(_dict, this)[name];
61
65
  }
62
66
  get(name) {
63
- const dict = this.#dict;
67
+ const dict = _classPrivateFieldGet2(_dict, this);
64
68
  return name in dict ? dict[name][0] : null;
65
69
  }
66
70
  getAll(name) {
67
- const dict = this.#dict;
71
+ const dict = _classPrivateFieldGet2(_dict, this);
68
72
  return name in dict ? dict[name].slice(0) : [];
69
73
  }
70
74
  has(name) {
71
- return name in this.#dict;
75
+ return name in _classPrivateFieldGet2(_dict, this);
72
76
  }
73
77
  keys() {
74
- return Object.keys(this.#dict);
78
+ return Object.keys(_classPrivateFieldGet2(_dict, this));
75
79
  }
76
80
  set(name, value) {
77
- this.#dict[name] = ["" + value];
81
+ _classPrivateFieldGet2(_dict, this)[name] = ["" + value];
78
82
  }
79
83
  forEach(callback, thisArg) {
80
- const dict = this.#dict;
84
+ const dict = _classPrivateFieldGet2(_dict, this);
81
85
  Object.getOwnPropertyNames(dict).forEach(function(name) {
82
86
  dict[name].forEach(function(value) {
83
87
  callback.call(thisArg, value, name, this);
@@ -88,7 +92,7 @@ const URLSearchParams = process.env.TARO_PLATFORM === "web" ? env.window.URLSear
88
92
  return {};
89
93
  }
90
94
  toString() {
91
- const dict = this.#dict;
95
+ const dict = _classPrivateFieldGet2(_dict, this);
92
96
  const query = [];
93
97
  for (const key in dict) {
94
98
  const name = encode(key);
@@ -96,7 +100,7 @@ const URLSearchParams = process.env.TARO_PLATFORM === "web" ? env.window.URLSear
96
100
  }
97
101
  return query.join("&");
98
102
  }
99
- };
103
+ });
100
104
  //#endregion
101
105
  export { URLSearchParams };
102
106
 
@@ -1 +1 @@
1
- {"version":3,"file":"URLSearchParams.js","names":["#dict"],"sources":["../../src/bom/URLSearchParams.ts"],"sourcesContent":["import { isArray } from '@spcsn/taro-shared';\n\nimport env from '../env';\n\nconst findReg = /[!'()~]|%20|%00/g;\nconst plusReg = /\\+/g;\nconst replaceCharMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n};\n\nfunction replacer(match: string) {\n return replaceCharMap[match];\n}\n\nfunction appendTo(dict: Record<string, string[]>, name: string, value: string) {\n const res = isArray(value) ? value.join(',') : value;\n if (name in dict) dict[name].push(res);\n else dict[name] = [res];\n}\n\nfunction addEach(value: string, key: string) {\n appendTo(this, key, value);\n}\n\nfunction decode(str: string) {\n return decodeURIComponent(str.replace(plusReg, ' '));\n}\n\nfunction encode(str: string) {\n return encodeURIComponent(str).replace(findReg, replacer);\n}\n\nexport const URLSearchParams =\n process.env.TARO_PLATFORM === 'web'\n ? env.window.URLSearchParams\n : class {\n #dict = Object.create(null);\n\n constructor(query) {\n query ??= '';\n\n const dict = this.#dict;\n\n if (typeof query === 'string') {\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (let pairs = query.split('&'), i = 0, length = pairs.length; i < length; i++) {\n const value = pairs[i];\n const index = value.indexOf('=');\n\n // 针对不规范的 url 参数做容错处理,如:word=你%好\n try {\n if (index > -1) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n } else if (value.length) {\n appendTo(dict, decode(value), '');\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Taro warn] URL 参数 ${value} decode 异常`);\n }\n }\n }\n } else {\n if (isArray(query)) {\n for (let i = 0, length = query.length; i < length; i++) {\n const value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n } else if (query.forEach) {\n query.forEach(addEach, dict);\n } else {\n for (const key in query) {\n appendTo(dict, key, query[key]);\n }\n }\n }\n }\n\n append(name: string, value: string) {\n appendTo(this.#dict, name, value);\n }\n\n delete(name: string) {\n delete this.#dict[name];\n }\n\n get(name: string) {\n const dict = this.#dict;\n return name in dict ? dict[name][0] : null;\n }\n\n getAll(name: string) {\n const dict = this.#dict;\n return name in dict ? dict[name].slice(0) : [];\n }\n\n has(name: string) {\n return name in this.#dict;\n }\n\n keys() {\n return Object.keys(this.#dict);\n }\n\n set(name: string, value: string) {\n this.#dict[name] = ['' + value];\n }\n\n forEach(callback, thisArg) {\n const dict = this.#dict;\n Object.getOwnPropertyNames(dict).forEach(function (name) {\n dict[name].forEach(function (value: string) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n }\n\n toJSON() {\n return {};\n }\n\n toString() {\n const dict = this.#dict;\n const query: any[] = [];\n for (const key in dict) {\n const name = encode(key);\n for (let i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n"],"mappings":"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"}
1
+ {"version":3,"file":"URLSearchParams.js","names":[],"sources":["../../src/bom/URLSearchParams.ts"],"sourcesContent":["import { isArray } from '@spcsn/taro-shared';\n\nimport env from '../env';\n\nconst findReg = /[!'()~]|%20|%00/g;\nconst plusReg = /\\+/g;\nconst replaceCharMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n};\n\nfunction replacer(match: string) {\n return replaceCharMap[match];\n}\n\nfunction appendTo(dict: Record<string, string[]>, name: string, value: string) {\n const res = isArray(value) ? value.join(',') : value;\n if (name in dict) dict[name].push(res);\n else dict[name] = [res];\n}\n\nfunction addEach(value: string, key: string) {\n appendTo(this, key, value);\n}\n\nfunction decode(str: string) {\n return decodeURIComponent(str.replace(plusReg, ' '));\n}\n\nfunction encode(str: string) {\n return encodeURIComponent(str).replace(findReg, replacer);\n}\n\nexport const URLSearchParams =\n process.env.TARO_PLATFORM === 'web'\n ? env.window.URLSearchParams\n : class {\n #dict = Object.create(null);\n\n constructor(query) {\n query ??= '';\n\n const dict = this.#dict;\n\n if (typeof query === 'string') {\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (let pairs = query.split('&'), i = 0, length = pairs.length; i < length; i++) {\n const value = pairs[i];\n const index = value.indexOf('=');\n\n // 针对不规范的 url 参数做容错处理,如:word=你%好\n try {\n if (index > -1) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n } else if (value.length) {\n appendTo(dict, decode(value), '');\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Taro warn] URL 参数 ${value} decode 异常`);\n }\n }\n }\n } else {\n if (isArray(query)) {\n for (let i = 0, length = query.length; i < length; i++) {\n const value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n } else if (query.forEach) {\n query.forEach(addEach, dict);\n } else {\n for (const key in query) {\n appendTo(dict, key, query[key]);\n }\n }\n }\n }\n\n append(name: string, value: string) {\n appendTo(this.#dict, name, value);\n }\n\n delete(name: string) {\n delete this.#dict[name];\n }\n\n get(name: string) {\n const dict = this.#dict;\n return name in dict ? dict[name][0] : null;\n }\n\n getAll(name: string) {\n const dict = this.#dict;\n return name in dict ? dict[name].slice(0) : [];\n }\n\n has(name: string) {\n return name in this.#dict;\n }\n\n keys() {\n return Object.keys(this.#dict);\n }\n\n set(name: string, value: string) {\n this.#dict[name] = ['' + value];\n }\n\n forEach(callback, thisArg) {\n const dict = this.#dict;\n Object.getOwnPropertyNames(dict).forEach(function (name) {\n dict[name].forEach(function (value: string) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n }\n\n toJSON() {\n return {};\n }\n\n toString() {\n const dict = this.#dict;\n const query: any[] = [];\n for (const key in dict) {\n const name = encode(key);\n for (let i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n"],"mappings":"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"}
@@ -35,7 +35,8 @@ function createDocument() {
35
35
  return doc;
36
36
  }
37
37
  function createTTDomDocument() {
38
- const document = tt?.appDocument;
38
+ var _tt$getBuiltInCompone;
39
+ const document = tt === null || tt === void 0 ? void 0 : tt.appDocument;
39
40
  if (!document) throw new Error("tt.appDocument is not found");
40
41
  const html = document.createElement(HTML);
41
42
  const head = document.createElement(HEAD);
@@ -52,7 +53,7 @@ function createTTDomDocument() {
52
53
  document.head = head;
53
54
  document.body = body;
54
55
  document.appElement = app;
55
- let builtInComponents = tt?.getBuiltInComponents?.();
56
+ let builtInComponents = tt === null || tt === void 0 || (_tt$getBuiltInCompone = tt.getBuiltInComponents) === null || _tt$getBuiltInCompone === void 0 ? void 0 : _tt$getBuiltInCompone.call(tt);
56
57
  if (Array.isArray(builtInComponents)) builtInComponents = new Set(builtInComponents);
57
58
  else if (!(builtInComponents instanceof Set)) builtInComponents = new Set([...DEFAULT_COMPONENTS, ...TT_SPECIFIC_COMPONENTS]);
58
59
  document.getElementById = function getElementById(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","names":[],"sources":["../../src/bom/document.ts"],"sourcesContent":["import { DEFAULT_COMPONENTS, isEnableTTDom, TT_SPECIFIC_COMPONENTS } from '@spcsn/taro-shared';\n\nimport { APP, BODY, CONTAINER, HEAD, HTML } from '../constants';\nimport { TaroDocument } from '../dom/document';\nimport env from '../env';\n\nfunction createDocument(): TaroDocument {\n /**\n * <document>\n * <html>\n * <head></head>\n * <body>\n * <container>\n * <app id=\"app\" />\n * </container>\n * </body>\n * </html>\n * </document>\n */\n const doc = new TaroDocument();\n const documentCreateElement = doc.createElement.bind(doc);\n const html = documentCreateElement(HTML);\n const head = documentCreateElement(HEAD);\n const body = documentCreateElement(BODY);\n const app = documentCreateElement(APP);\n app.id = APP;\n const container = documentCreateElement(CONTAINER);\n\n doc.appendChild(html);\n html.appendChild(head);\n html.appendChild(body);\n body.appendChild(container);\n container.appendChild(app);\n\n doc.documentElement = html;\n doc.head = head;\n doc.body = body;\n\n return doc;\n}\n\ndeclare const tt: any;\n\nexport function createTTDomDocument(): TaroDocument {\n const document = tt?.appDocument;\n if (!document) {\n throw new Error('tt.appDocument is not found');\n }\n const html = document.createElement(HTML);\n const head = document.createElement(HEAD);\n const body = document.createElement(BODY);\n const app = document.createElement(APP);\n app.id = APP;\n const container = document.createElement(CONTAINER);\n\n const emptyFunction = () => {};\n\n document.childNodes.push(html);\n html.childNodes.push(head, body);\n body.childNodes.push(container);\n container.childNodes.push(app);\n\n document.documentElement = html;\n document.head = head;\n document.body = body;\n document.appElement = app;\n\n let builtInComponents = tt?.getBuiltInComponents?.();\n if (Array.isArray(builtInComponents)) {\n builtInComponents = new Set(builtInComponents);\n } else if (!(builtInComponents instanceof Set)) {\n builtInComponents = new Set([...DEFAULT_COMPONENTS, ...TT_SPECIFIC_COMPONENTS]);\n }\n\n document.getElementById = function getElementById(id: string) {\n if (id === 'app') {\n return app;\n } else {\n return Object.getPrototypeOf(this).getElementById.call(this, id);\n }\n };\n\n document.getLastPage = function getLastPage() {\n let last;\n for (const v of this._pageDocumentMap.values()) last = v;\n return last;\n };\n\n document.createElement = function (type: string, ...args) {\n if (type === 'root') {\n return this.getLastPage();\n } else {\n const el = builtInComponents.has(type)\n ? Object.getPrototypeOf(this).createElement.call(this, type, ...args)\n : Object.getPrototypeOf(this).createNativeComponent.call(this, type, {\n __tt__inner__options__: {\n name: type,\n },\n });\n // 给元素加上 scopeId\n el.setAttribute('class', '');\n\n // 保存原始的 setAttribute 和 removeAttribute\n const originalSetAttribute = el.setAttribute.bind(el);\n const originalRemoveAttribute = el.removeAttribute.bind(el);\n\n // 拦截 setAttribute 来处理 catchMove\n el.setAttribute = function (name: string, value: any) {\n const result = originalSetAttribute(name, value);\n\n // 处理 catchMove 属性\n if (name === 'catchMove' && value) {\n el.addEventListener('catchtouchmove', emptyFunction);\n }\n\n return result;\n };\n\n // 拦截 removeAttribute 来处理 catchMove\n el.removeAttribute = function (name: string) {\n const oldValue = el.getAttribute(name);\n\n // 处理 catchMove 属性\n if (name === 'catchMove' && oldValue) {\n el.removeEventListener('catchtouchmove', emptyFunction);\n }\n\n return originalRemoveAttribute(name);\n };\n\n return el;\n }\n };\n return document;\n}\n\n// Note: 小程序端 vite 打包成 commonjs,const document = xxx 会报错,所以把 document 改为 taroDocumentProvider\nexport const taroDocumentProvider: TaroDocument =\n process.env.TARO_PLATFORM === 'web'\n ? env.document\n : (env.document = isEnableTTDom() ? createTTDomDocument() : createDocument());\n"],"mappings":"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"}
1
+ {"version":3,"file":"document.js","names":[],"sources":["../../src/bom/document.ts"],"sourcesContent":["import { DEFAULT_COMPONENTS, isEnableTTDom, TT_SPECIFIC_COMPONENTS } from '@spcsn/taro-shared';\n\nimport { APP, BODY, CONTAINER, HEAD, HTML } from '../constants';\nimport { TaroDocument } from '../dom/document';\nimport env from '../env';\n\nfunction createDocument(): TaroDocument {\n /**\n * <document>\n * <html>\n * <head></head>\n * <body>\n * <container>\n * <app id=\"app\" />\n * </container>\n * </body>\n * </html>\n * </document>\n */\n const doc = new TaroDocument();\n const documentCreateElement = doc.createElement.bind(doc);\n const html = documentCreateElement(HTML);\n const head = documentCreateElement(HEAD);\n const body = documentCreateElement(BODY);\n const app = documentCreateElement(APP);\n app.id = APP;\n const container = documentCreateElement(CONTAINER);\n\n doc.appendChild(html);\n html.appendChild(head);\n html.appendChild(body);\n body.appendChild(container);\n container.appendChild(app);\n\n doc.documentElement = html;\n doc.head = head;\n doc.body = body;\n\n return doc;\n}\n\ndeclare const tt: any;\n\nexport function createTTDomDocument(): TaroDocument {\n const document = tt?.appDocument;\n if (!document) {\n throw new Error('tt.appDocument is not found');\n }\n const html = document.createElement(HTML);\n const head = document.createElement(HEAD);\n const body = document.createElement(BODY);\n const app = document.createElement(APP);\n app.id = APP;\n const container = document.createElement(CONTAINER);\n\n const emptyFunction = () => {};\n\n document.childNodes.push(html);\n html.childNodes.push(head, body);\n body.childNodes.push(container);\n container.childNodes.push(app);\n\n document.documentElement = html;\n document.head = head;\n document.body = body;\n document.appElement = app;\n\n let builtInComponents = tt?.getBuiltInComponents?.();\n if (Array.isArray(builtInComponents)) {\n builtInComponents = new Set(builtInComponents);\n } else if (!(builtInComponents instanceof Set)) {\n builtInComponents = new Set([...DEFAULT_COMPONENTS, ...TT_SPECIFIC_COMPONENTS]);\n }\n\n document.getElementById = function getElementById(id: string) {\n if (id === 'app') {\n return app;\n } else {\n return Object.getPrototypeOf(this).getElementById.call(this, id);\n }\n };\n\n document.getLastPage = function getLastPage() {\n let last;\n for (const v of this._pageDocumentMap.values()) last = v;\n return last;\n };\n\n document.createElement = function (type: string, ...args) {\n if (type === 'root') {\n return this.getLastPage();\n } else {\n const el = builtInComponents.has(type)\n ? Object.getPrototypeOf(this).createElement.call(this, type, ...args)\n : Object.getPrototypeOf(this).createNativeComponent.call(this, type, {\n __tt__inner__options__: {\n name: type,\n },\n });\n // 给元素加上 scopeId\n el.setAttribute('class', '');\n\n // 保存原始的 setAttribute 和 removeAttribute\n const originalSetAttribute = el.setAttribute.bind(el);\n const originalRemoveAttribute = el.removeAttribute.bind(el);\n\n // 拦截 setAttribute 来处理 catchMove\n el.setAttribute = function (name: string, value: any) {\n const result = originalSetAttribute(name, value);\n\n // 处理 catchMove 属性\n if (name === 'catchMove' && value) {\n el.addEventListener('catchtouchmove', emptyFunction);\n }\n\n return result;\n };\n\n // 拦截 removeAttribute 来处理 catchMove\n el.removeAttribute = function (name: string) {\n const oldValue = el.getAttribute(name);\n\n // 处理 catchMove 属性\n if (name === 'catchMove' && oldValue) {\n el.removeEventListener('catchtouchmove', emptyFunction);\n }\n\n return originalRemoveAttribute(name);\n };\n\n return el;\n }\n };\n return document;\n}\n\n// Note: 小程序端 vite 打包成 commonjs,const document = xxx 会报错,所以把 document 改为 taroDocumentProvider\nexport const taroDocumentProvider: TaroDocument =\n process.env.TARO_PLATFORM === 'web'\n ? env.document\n : (env.document = isEnableTTDom() ? createTTDomDocument() : createDocument());\n"],"mappings":"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"}