@cocreate/utils 1.42.2 → 1.44.0

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 (68) hide show
  1. package/.github/FUNDING.yml +3 -0
  2. package/.github/workflows/automated.yml +56 -0
  3. package/.github/workflows/manual.yml +43 -0
  4. package/CHANGELOG.md +2125 -0
  5. package/CoCreate.config.js +23 -0
  6. package/demo/index.html +23 -0
  7. package/docs/index.html +331 -0
  8. package/package.json +11 -29
  9. package/prettier.config.js +16 -0
  10. package/release.config.js +30 -0
  11. package/src/dataQuery.js +1 -0
  12. package/src/index.js +90 -70
  13. package/src/operators.ast.js +287 -0
  14. package/src/operators.js +450 -89
  15. package/src/operators.v1.js +687 -0
  16. package/src/queryElements.js +7 -9
  17. package/webpack.config.js +65 -0
  18. package/dist/cjs/ObjectId.js +0 -54
  19. package/dist/cjs/attributes.js +0 -64
  20. package/dist/cjs/checkValue.js +0 -26
  21. package/dist/cjs/clickedElement.js +0 -48
  22. package/dist/cjs/core.js +0 -33
  23. package/dist/cjs/createUpdate.js +0 -188
  24. package/dist/cjs/cssPath.js +0 -60
  25. package/dist/cjs/dataQuery.js +0 -280
  26. package/dist/cjs/dom.js +0 -29
  27. package/dist/cjs/domParser.js +0 -44
  28. package/dist/cjs/dotNotationToObject.js +0 -103
  29. package/dist/cjs/escapeHtml.js +0 -25
  30. package/dist/cjs/getRelativePath.js +0 -39
  31. package/dist/cjs/getValueFromObject.js +0 -41
  32. package/dist/cjs/index.js +0 -112
  33. package/dist/cjs/init-browser.js +0 -4
  34. package/dist/cjs/isValidDate.js +0 -32
  35. package/dist/cjs/objectToDotNotation.js +0 -53
  36. package/dist/cjs/objectToSearchParams.js +0 -42
  37. package/dist/cjs/operators copy.js +0 -562
  38. package/dist/cjs/operators.js +0 -480
  39. package/dist/cjs/parseTextToHtml.js +0 -27
  40. package/dist/cjs/queryElements.js +0 -155
  41. package/dist/cjs/safeParse.js +0 -169
  42. package/dist/cjs/uid.js +0 -34
  43. package/dist/esm/ObjectId.js +0 -35
  44. package/dist/esm/attributes.js +0 -45
  45. package/dist/esm/checkValue.js +0 -7
  46. package/dist/esm/clickedElement.js +0 -29
  47. package/dist/esm/core.js +0 -14
  48. package/dist/esm/createUpdate.js +0 -185
  49. package/dist/esm/cssPath.js +0 -41
  50. package/dist/esm/dataQuery.js +0 -261
  51. package/dist/esm/dom.js +0 -10
  52. package/dist/esm/domParser.js +0 -25
  53. package/dist/esm/dotNotationToObject.js +0 -84
  54. package/dist/esm/escapeHtml.js +0 -6
  55. package/dist/esm/getRelativePath.js +0 -20
  56. package/dist/esm/getValueFromObject.js +0 -22
  57. package/dist/esm/index.js +0 -93
  58. package/dist/esm/init-browser.js +0 -4
  59. package/dist/esm/isValidDate.js +0 -13
  60. package/dist/esm/objectToDotNotation.js +0 -34
  61. package/dist/esm/objectToSearchParams.js +0 -23
  62. package/dist/esm/operators copy.js +0 -543
  63. package/dist/esm/operators.js +0 -461
  64. package/dist/esm/package.json +0 -3
  65. package/dist/esm/parseTextToHtml.js +0 -8
  66. package/dist/esm/queryElements.js +0 -136
  67. package/dist/esm/safeParse.js +0 -150
  68. package/dist/esm/uid.js +0 -15
@@ -1,150 +0,0 @@
1
- const constants = { PI: Math.PI, E: Math.E };
2
- const functions = {
3
- abs: Math.abs,
4
- ceil: Math.ceil,
5
- floor: Math.floor,
6
- round: Math.round,
7
- max: Math.max,
8
- min: Math.min,
9
- pow: Math.pow,
10
- sqrt: Math.sqrt,
11
- log: Math.log,
12
- sin: Math.sin,
13
- cos: Math.cos,
14
- tan: Math.tan
15
- };
16
- function safeParse(expression, context = {}) {
17
- if (typeof expression !== "string") {
18
- expression = String(expression);
19
- }
20
- let currentExpr = expression.trim();
21
- if (!currentExpr) return null;
22
- const tokenizerRegex = /('[^']*'|"[^"]*"|\d+(?:\.\d+)?|>=|<=|===|!==|==|!=|&&|\|\||[a-zA-Z_][a-zA-Z0-9_\.]*|[\+\-\*\/\%\(\)\?\:\>\<\!\,\=])/g;
23
- const tokens = currentExpr.match(tokenizerRegex) || [];
24
- let pos = 0;
25
- function peek() {
26
- return tokens[pos];
27
- }
28
- function consume() {
29
- return tokens[pos++];
30
- }
31
- function parse() {
32
- return parseTernary();
33
- }
34
- function parseTernary() {
35
- let left = parseLogical();
36
- if (peek() === "?") {
37
- consume();
38
- let trueExpr = parseTernary();
39
- if (peek() === ":") {
40
- consume();
41
- let falseExpr = parseTernary();
42
- return left ? trueExpr : falseExpr;
43
- }
44
- }
45
- return left;
46
- }
47
- function parseLogical() {
48
- let left = parseComparison();
49
- while (peek() === "&&" || peek() === "||") {
50
- let op = consume();
51
- let right = parseComparison();
52
- if (op === "&&") left = left && right;
53
- if (op === "||") left = left || right;
54
- }
55
- return left;
56
- }
57
- function parseComparison() {
58
- let left = parseAdditive();
59
- while ([">", "<", ">=", "<=", "===", "!==", "==", "!="].includes(peek())) {
60
- let op = consume();
61
- let right = parseAdditive();
62
- if (op === ">") left = left > right;
63
- if (op === "<") left = left < right;
64
- if (op === ">=") left = left >= right;
65
- if (op === "<=") left = left <= right;
66
- if (op === "===") left = left === right;
67
- if (op === "!==") left = left !== right;
68
- if (op === "==") left = left == right;
69
- if (op === "!=") left = left != right;
70
- }
71
- return left;
72
- }
73
- function parseAdditive() {
74
- let left = parseMultiplicative();
75
- while (["+", "-"].includes(peek())) {
76
- let op = consume();
77
- let right = parseMultiplicative();
78
- if (op === "+") left = left + right;
79
- if (op === "-") left = left - right;
80
- }
81
- return left;
82
- }
83
- function parseMultiplicative() {
84
- let left = parsePrimary();
85
- while (["*", "/", "%"].includes(peek())) {
86
- let op = consume();
87
- let right = parsePrimary();
88
- if (op === "*") left = left * right;
89
- if (op === "/") left = left / right;
90
- if (op === "%") left = left % right;
91
- }
92
- return left;
93
- }
94
- function parsePrimary() {
95
- let token = consume();
96
- if (!token) return void 0;
97
- if (/^\d/.test(token)) return parseFloat(token);
98
- if (token.startsWith("'") || token.startsWith('"')) {
99
- return token.slice(1, -1);
100
- }
101
- if (token === "true") return true;
102
- if (token === "false") return false;
103
- if (token === "(") {
104
- let expr = parse();
105
- if (peek() === ")") consume();
106
- return expr;
107
- }
108
- if (token === "-") return -parsePrimary();
109
- if (token === "!") return !parsePrimary();
110
- if (constants.hasOwnProperty(token)) {
111
- return constants[token];
112
- }
113
- if (peek() === "(" && functions.hasOwnProperty(token)) {
114
- consume();
115
- let args = [];
116
- if (peek() !== ")") {
117
- args.push(parse());
118
- while (peek() === ",") {
119
- consume();
120
- args.push(parse());
121
- }
122
- }
123
- if (peek() === ")") consume();
124
- return functions[token](...args);
125
- }
126
- let path = token.split(".");
127
- let val = context;
128
- for (let part of path) {
129
- if (val !== null && typeof val === "object" && part in val) {
130
- val = val[part];
131
- } else {
132
- return void 0;
133
- }
134
- }
135
- return val;
136
- }
137
- try {
138
- const result = parse();
139
- return result !== void 0 ? result : null;
140
- } catch (error) {
141
- console.warn(
142
- `Unexpected parsing error: ${error.message} (Expression context: "${expression}")`,
143
- error
144
- );
145
- return null;
146
- }
147
- }
148
- export {
149
- safeParse
150
- };
package/dist/esm/uid.js DELETED
@@ -1,15 +0,0 @@
1
- function uid(length = 36) {
2
- let pattern = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";
3
- if (length > 36) {
4
- length = 36;
5
- }
6
- let uuid = pattern.replace(/[xy]/g, function(c) {
7
- var r = Math.random() * 16 | 0;
8
- var v = c === "x" ? r : r & 3 | 8;
9
- return v.toString(16);
10
- }).substring(0, length);
11
- return uuid;
12
- }
13
- export {
14
- uid
15
- };