svelte-common 6.7.1 → 6.7.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-common",
3
- "version": "6.7.1",
3
+ "version": "6.7.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -41,7 +41,7 @@
41
41
  "preview": "vite preview"
42
42
  },
43
43
  "dependencies": {
44
- "svelte-command": "^1.1.49",
44
+ "svelte-command": "^1.1.50",
45
45
  "svelte-entitlement": "^1.2.65"
46
46
  },
47
47
  "devDependencies": {
@@ -53,8 +53,8 @@
53
53
  "c8": "^8.0.1",
54
54
  "documentation": "^14.0.2",
55
55
  "mf-styling": "^3.0.5",
56
- "npm-pkgbuild": "^12.1.1",
57
- "semantic-release": "^22.0.0",
56
+ "npm-pkgbuild": "^12.1.3",
57
+ "semantic-release": "^22.0.5",
58
58
  "stylelint": "^15.10.3",
59
59
  "stylelint-config-standard": "^34.0.0",
60
60
  "svelte": "^4.2.1",
@@ -63,8 +63,8 @@
63
63
  "vite-plugin-compression2": "^0.10.5"
64
64
  },
65
65
  "optionalDependencies": {
66
- "mf-hosting-cloudflare": "^1.0.5",
67
- "mf-hosting-frontend": "^2.2.1"
66
+ "mf-hosting-cloudflare": "^1.0.6",
67
+ "mf-hosting-frontend": "^2.2.3"
68
68
  },
69
69
  "repository": {
70
70
  "type": "git",
package/src/attribute.mjs CHANGED
@@ -20,54 +20,109 @@
20
20
  * @yields {string}
21
21
  */
22
22
  export function* tokens(string) {
23
- let isString = false;
24
- let identifier = "";
25
- let last;
23
+ let state, buffer;
26
24
 
27
25
  for (const c of string) {
26
+ switch (state) {
27
+ case "string-escaping":
28
+ const esc = {
29
+ "\\": "\\",
30
+ t: "\t",
31
+ b: "\b",
32
+ r: "\r",
33
+ n: "\n",
34
+ f: "\f"
35
+ };
36
+ buffer += esc[c];
37
+ state = "string";
38
+ continue;
39
+ }
40
+
28
41
  switch (c) {
29
42
  case "\t":
30
43
  case " ":
31
- if (isString) {
32
- identifier += c;
33
- } else {
34
- if (identifier.length) {
35
- yield identifier;
36
- identifier = "";
37
- }
38
- if (last) {
39
- yield last;
40
- last = undefined;
41
- }
44
+ switch (state) {
45
+ case undefined:
46
+ break;
47
+ case "string":
48
+ buffer += c;
49
+ break;
50
+ case "identifier":
51
+ yield buffer;
52
+ buffer = "";
53
+ state = undefined;
54
+ break;
55
+ default:
56
+ yield state;
57
+ state = undefined;
42
58
  }
43
59
  break;
44
60
 
61
+ case "\\":
62
+ switch (state) {
63
+ case "string":
64
+ state = "string-escaping";
65
+ break;
66
+ }
67
+ break;
45
68
  case '"':
46
69
  case "'":
47
- if (isString) {
48
- yield identifier;
49
- identifier = "";
50
- isString = false;
51
- } else {
52
- isString = true;
70
+ switch (state) {
71
+ case undefined:
72
+ buffer = "";
73
+ state = "string";
74
+ break;
75
+ case "string":
76
+ yield buffer;
77
+ state = undefined;
78
+ break;
79
+ case "identifier":
80
+ yield buffer;
81
+ buffer = "";
82
+ state = "string";
83
+ break;
84
+ default:
85
+ yield state;
86
+ buffer = "";
87
+ state = "string";
53
88
  }
54
89
  break;
55
90
  case "!":
56
91
  case ">":
57
92
  case "<":
58
- if (last) {
59
- yield last;
93
+ switch (state) {
94
+ case undefined:
95
+ state = c;
96
+ break;
97
+ case "string":
98
+ buffer += c;
99
+ break;
100
+ case "identifier":
101
+ yield buffer;
102
+ state = c;
103
+ break;
104
+ default:
105
+ yield state;
106
+ state = c;
60
107
  }
61
- last = c;
62
108
  break;
63
109
 
64
110
  case "=":
65
- if (last) {
66
- yield last + c;
67
- last = undefined;
68
- break;
111
+ switch (state) {
112
+ case undefined:
113
+ state = c;
114
+ break;
115
+ case "string":
116
+ buffer += c;
117
+ break;
118
+ case "identifier":
119
+ yield buffer;
120
+ state = c;
121
+ break;
122
+ default:
123
+ state += c;
69
124
  }
70
-
125
+ break;
71
126
  case ".":
72
127
  case "+":
73
128
  case "-":
@@ -77,30 +132,59 @@ export function* tokens(string) {
77
132
  case ")":
78
133
  case "[":
79
134
  case "]":
80
- if (last) {
81
- yield last;
82
- last = undefined;
83
- }
84
- if (identifier.length) {
85
- yield identifier;
86
- identifier = "";
135
+ switch (state) {
136
+ case undefined:
137
+ state = c;
138
+ break;
139
+ case "string":
140
+ buffer += c;
141
+ break;
142
+ case "identifier":
143
+ yield buffer;
144
+ state = c;
145
+ break;
146
+ default:
147
+ yield state;
148
+ state = c;
87
149
  }
88
- yield c;
89
150
  break;
90
151
  default:
91
- if (last) {
92
- yield last;
93
- last = undefined;
152
+ switch (state) {
153
+ case undefined:
154
+ buffer = c;
155
+ state = "identifier";
156
+ break;
157
+ case "string":
158
+ case "identifier":
159
+ buffer += c;
160
+ break;
161
+ default:
162
+ if (
163
+ (c >= "a" && c <= "z") ||
164
+ (c >= "A" && c <= "Z") ||
165
+ (c >= "0" && c <= "9") ||
166
+ c === "_"
167
+ ) {
168
+ yield state;
169
+ state = "identifier";
170
+ buffer = c;
171
+ } else {
172
+ state += c;
173
+ }
94
174
  }
95
- identifier += c;
96
175
  }
97
176
  }
98
177
 
99
- if (identifier.length) {
100
- yield identifier;
101
- }
102
- if (last) {
103
- yield last;
178
+ switch (state) {
179
+ case undefined:
180
+ break;
181
+ case "string":
182
+ throw new Error("unterminated string");
183
+ case "identifier":
184
+ yield buffer;
185
+ break;
186
+ default:
187
+ yield state;
104
188
  }
105
189
  }
106
190
 
package/src/filter.mjs CHANGED
@@ -48,12 +48,13 @@ function allOp(value, against, op) {
48
48
 
49
49
  case "bigint":
50
50
  case "number":
51
- if (value[Symbol.toPrimitive]) {
52
- return allOp(value[Symbol.toPrimitive]("number"), against, op);
53
- }
54
- break;
51
+ return allOp(value[Symbol.toPrimitive]("number"), against, op);
55
52
 
56
53
  case "string":
54
+ if (against.length === 0) {
55
+ return true;
56
+ }
57
+
57
58
  if (value instanceof Date) {
58
59
  return dateOp(value, new Date(against), op);
59
60
  }
@@ -71,10 +72,25 @@ function allOp(value, against, op) {
71
72
  switch (typeof against) {
72
73
  case "boolean":
73
74
  return numberOp(value.length !== 0, against, op);
75
+ case "string":
76
+ if (
77
+ op === "=" &&
78
+ (against.length === 0 || value.indexOf(against) >= 0)
79
+ ) {
80
+ return true;
81
+ }
82
+
83
+ if (!value.match(/^-?\d/)) {
84
+ break;
85
+ }
74
86
  case "bigint":
75
87
  case "number":
76
- return numberOp(value, against, op);
88
+ return value.length ? numberOp(value, against, op) : true;
77
89
  case "object":
90
+ if (value.length === 0) {
91
+ return true;
92
+ }
93
+
78
94
  if (against instanceof Date) {
79
95
  return dateOp(new Date(value), against, op);
80
96
  }
@@ -145,7 +161,6 @@ function allOp(value, against, op) {
145
161
  return value == against;
146
162
  }
147
163
 
148
- console.log("C", value, against);
149
164
  return false;
150
165
  }
151
166
 
@@ -44,6 +44,14 @@ export class Pagination {
44
44
  return this.#sorter;
45
45
  }
46
46
 
47
+ set _data(data) {
48
+ this.#data = data;
49
+ if (this.page > this.numberOfPages) {
50
+ this.page = this.numberOfPages;
51
+ }
52
+ this.fireSubscriptions();
53
+ }
54
+
47
55
  set data(data) {
48
56
  if (this.#unsubscribeData) {
49
57
  this.#unsubscribeData();
@@ -51,20 +59,10 @@ export class Pagination {
51
59
  }
52
60
 
53
61
  if (data?.subscribe) {
54
- this.#unsubscribeData = data.subscribe(newData => {
55
- this.#data = newData;
56
- if (this.page > this.numberOfPages) {
57
- this.page = this.numberOfPages;
58
- }
59
- });
62
+ this.#unsubscribeData = data.subscribe(newData => (this._data = newData));
60
63
  } else {
61
- this.#data = data;
62
- if (this.page > this.numberOfPages) {
63
- this.page = this.numberOfPages;
64
- }
64
+ this._data = data;
65
65
  }
66
-
67
- this.fireSubscriptions();
68
66
  }
69
67
 
70
68
  get itemsPerPage() {