@symbo.ls/utils 3.14.0 → 3.14.1

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 (88) hide show
  1. package/README.md +2 -2
  2. package/assets.js +117 -0
  3. package/cookie.js +20 -13
  4. package/dist/cjs/browser.js +2 -0
  5. package/dist/cjs/date.js +3 -1
  6. package/dist/cjs/detectHeight.js +13 -22
  7. package/dist/cjs/domqlv3hacks.js +3845 -0
  8. package/dist/cjs/fibonacci.js +3 -1
  9. package/dist/cjs/files.js +3 -1
  10. package/dist/cjs/index.js +4084 -38
  11. package/dist/cjs/load.js +7 -5
  12. package/dist/cjs/package.json +4 -0
  13. package/dist/cjs/scaling.js +23 -5
  14. package/dist/cjs/style.js +3 -1
  15. package/index.js +1 -0
  16. package/methods.js +51 -3
  17. package/object.js +36 -2
  18. package/package.json +1 -1
  19. package/dist/cjs/array.js +0 -168
  20. package/dist/cjs/cache.js +0 -26
  21. package/dist/cjs/cdn.js +0 -85
  22. package/dist/cjs/component.js +0 -45
  23. package/dist/cjs/cookie.js +0 -75
  24. package/dist/cjs/element.js +0 -136
  25. package/dist/cjs/env.js +0 -43
  26. package/dist/cjs/events.js +0 -39
  27. package/dist/cjs/extends.js +0 -434
  28. package/dist/cjs/function.js +0 -114
  29. package/dist/cjs/globals.js +0 -30
  30. package/dist/cjs/if.js +0 -48
  31. package/dist/cjs/key.js +0 -38
  32. package/dist/cjs/keys.js +0 -201
  33. package/dist/cjs/log.js +0 -34
  34. package/dist/cjs/metadata.js +0 -310
  35. package/dist/cjs/methods.js +0 -599
  36. package/dist/cjs/node.js +0 -35
  37. package/dist/cjs/object.js +0 -634
  38. package/dist/cjs/projectKeys.js +0 -35
  39. package/dist/cjs/props.js +0 -282
  40. package/dist/cjs/scope.js +0 -44
  41. package/dist/cjs/sharedLibraries.js +0 -146
  42. package/dist/cjs/state.js +0 -173
  43. package/dist/cjs/string-extra.js +0 -72
  44. package/dist/cjs/string.js +0 -183
  45. package/dist/cjs/tags.js +0 -220
  46. package/dist/cjs/triggerEvent.js +0 -112
  47. package/dist/cjs/types.js +0 -74
  48. package/dist/cjs/update.js +0 -42
  49. package/dist/esm/array.js +0 -148
  50. package/dist/esm/browser.js +0 -14
  51. package/dist/esm/cache.js +0 -6
  52. package/dist/esm/cdn.js +0 -65
  53. package/dist/esm/component.js +0 -25
  54. package/dist/esm/cookie.js +0 -55
  55. package/dist/esm/date.js +0 -11
  56. package/dist/esm/detectHeight.js +0 -42
  57. package/dist/esm/element.js +0 -116
  58. package/dist/esm/env.js +0 -23
  59. package/dist/esm/events.js +0 -19
  60. package/dist/esm/extends.js +0 -414
  61. package/dist/esm/fibonacci.js +0 -10
  62. package/dist/esm/files.js +0 -4
  63. package/dist/esm/function.js +0 -94
  64. package/dist/esm/globals.js +0 -10
  65. package/dist/esm/if.js +0 -28
  66. package/dist/esm/index.js +0 -37
  67. package/dist/esm/key.js +0 -18
  68. package/dist/esm/keys.js +0 -181
  69. package/dist/esm/load.js +0 -151
  70. package/dist/esm/log.js +0 -14
  71. package/dist/esm/metadata.js +0 -290
  72. package/dist/esm/methods.js +0 -569
  73. package/dist/esm/node.js +0 -15
  74. package/dist/esm/object.js +0 -621
  75. package/dist/esm/projectKeys.js +0 -16
  76. package/dist/esm/props.js +0 -262
  77. package/dist/esm/scaling.js +0 -15
  78. package/dist/esm/scope.js +0 -24
  79. package/dist/esm/sharedLibraries.js +0 -126
  80. package/dist/esm/state.js +0 -163
  81. package/dist/esm/string-extra.js +0 -52
  82. package/dist/esm/string.js +0 -163
  83. package/dist/esm/style.js +0 -20
  84. package/dist/esm/tags.js +0 -200
  85. package/dist/esm/triggerEvent.js +0 -92
  86. package/dist/esm/types.js +0 -54
  87. package/dist/esm/update.js +0 -22
  88. package/dist/iife/index.js +0 -5818
package/dist/cjs/props.js DELETED
@@ -1,282 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var props_exports = {};
20
- __export(props_exports, {
21
- applyProps: () => applyProps,
22
- createProps: () => createProps,
23
- createPropsStack: () => createPropsStack,
24
- inheritParentProps: () => inheritParentProps,
25
- initProps: () => initProps,
26
- objectizeStringProperty: () => objectizeStringProperty,
27
- pickupElementFromProps: () => pickupElementFromProps,
28
- pickupPropsFromElement: () => pickupPropsFromElement,
29
- propExists: () => propExists,
30
- propertizeElement: () => propertizeElement,
31
- propertizeUpdate: () => propertizeUpdate,
32
- removeDuplicateProps: () => removeDuplicateProps,
33
- setPropsPrototype: () => setPropsPrototype,
34
- syncProps: () => syncProps,
35
- update: () => update,
36
- updateProps: () => updateProps
37
- });
38
- module.exports = __toCommonJS(props_exports);
39
- var import_keys = require("./keys.js");
40
- var import_events = require("./events.js");
41
- var import_object = require("./object.js");
42
- var import_types = require("./types.js");
43
- var import_string = require("./string.js");
44
- var import_function = require("./function.js");
45
- const RE_UPPER = /^[A-Z]/;
46
- const RE_DIGITS = /^\d+$/;
47
- const CSS_SELECTOR_PREFIXES = /* @__PURE__ */ new Set([":", "@", "[", "*", "+", "~", "&", ">", "$", "-", ".", "!"]);
48
- const ELEMENT_INDICATOR_KEYS = /* @__PURE__ */ new Set([
49
- "extend",
50
- "props",
51
- "text",
52
- "tag",
53
- "on",
54
- "if",
55
- "childExtend",
56
- "children",
57
- "childrenAs",
58
- "state",
59
- "html",
60
- "attr",
61
- "define",
62
- "content"
63
- ]);
64
- const looksLikeElement = (value) => {
65
- if (!value || typeof value !== "object" || Array.isArray(value)) return false;
66
- for (const k in value) {
67
- if (ELEMENT_INDICATOR_KEYS.has(k)) return true;
68
- if (RE_UPPER.test(k)) return true;
69
- }
70
- return false;
71
- };
72
- const createProps = (element, parent, key) => {
73
- const { props, __ref: ref } = element;
74
- ref.__propsStack = [];
75
- if (props) ref.__initialProps = props;
76
- else return {};
77
- if (!(0, import_types.isObjectLike)(props)) {
78
- ref.__propsStack.push(props);
79
- return {};
80
- }
81
- return { ...props };
82
- };
83
- function pickupPropsFromElement(obj, opts = {}) {
84
- const cachedKeys = opts.cachedKeys || [];
85
- for (const key in obj) {
86
- const value = obj[key];
87
- const isOnKey = key.length > 2 && key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && key[2] === key[2].toUpperCase();
88
- const isEventHandler = isOnKey && ((0, import_types.isFunction)(value) || value != null && (0, import_function.hasHandlerPlugin)(this.context));
89
- if (isEventHandler) {
90
- const eventName = (0, import_string.lowercaseFirstLetter)(key.slice(2));
91
- if (obj.on) obj.on[eventName] = value;
92
- delete obj[key];
93
- continue;
94
- }
95
- if (key === "childProps") {
96
- obj.props[key] = value;
97
- delete obj[key];
98
- cachedKeys.push(key);
99
- continue;
100
- }
101
- const defineValue = this.define?.[key];
102
- const globalDefineValue = this.context?.define?.[key];
103
- const hasDefine = (0, import_types.isObject)(defineValue) || (0, import_types.isFunction)(defineValue);
104
- const hasGlobalDefine = (0, import_types.isObject)(globalDefineValue) || (0, import_types.isFunction)(globalDefineValue);
105
- if (hasDefine || hasGlobalDefine) continue;
106
- const firstChar = key.charAt(0);
107
- if (CSS_SELECTOR_PREFIXES.has(firstChar)) {
108
- obj.props[key] = value;
109
- delete obj[key];
110
- cachedKeys.push(key);
111
- continue;
112
- }
113
- const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key) || looksLikeElement(value);
114
- const isBuiltin = import_keys.DOMQ_PROPERTIES.has(key);
115
- if (!isElement && !isBuiltin) {
116
- if (!(key in obj.props)) obj.props[key] = value;
117
- delete obj[key];
118
- cachedKeys.push(key);
119
- }
120
- }
121
- return obj;
122
- }
123
- function pickupElementFromProps(obj = this, opts) {
124
- const cachedKeys = opts.cachedKeys || [];
125
- for (const key in obj.props) {
126
- const value = obj.props[key];
127
- const isEvent = key.length > 2 && key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110;
128
- const isHandler = (0, import_types.isFunction)(value) || value != null && (0, import_function.hasHandlerPlugin)(this.context);
129
- if (isEvent && isHandler) {
130
- (0, import_events.addEventFromProps)(key, obj);
131
- delete obj.props[key];
132
- continue;
133
- }
134
- if (cachedKeys.includes(key)) continue;
135
- if (key === "childProps") continue;
136
- const firstChar = key.charAt(0);
137
- if (CSS_SELECTOR_PREFIXES.has(firstChar)) continue;
138
- const defineValue = this.define?.[key];
139
- const globalDefineValue = this.context?.define?.[key];
140
- const hasDefine = (0, import_types.isObject)(defineValue) || (0, import_types.isFunction)(defineValue);
141
- const hasGlobalDefine = (0, import_types.isObject)(globalDefineValue) || (0, import_types.isFunction)(globalDefineValue);
142
- const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key);
143
- const isBuiltin = import_keys.DOMQ_PROPERTIES.has(key);
144
- if (isElement || isBuiltin || hasDefine || hasGlobalDefine) {
145
- if (obj[key] === void 0 || value === null) {
146
- obj[key] = value;
147
- if (obj.props) delete obj.props[key];
148
- }
149
- }
150
- }
151
- return obj;
152
- }
153
- function propertizeElement(element = this) {
154
- const cachedKeys = [];
155
- pickupPropsFromElement.call(this, element, { cachedKeys });
156
- pickupElementFromProps.call(this, element, { cachedKeys });
157
- return element;
158
- }
159
- function propertizeUpdate(params = {}) {
160
- if (!params.on) params.on = {};
161
- if (!params.props) params.props = {};
162
- return propertizeElement.call(this, params);
163
- }
164
- const objectizeStringProperty = (propValue) => {
165
- if ((0, import_types.is)(propValue)("string", "number")) {
166
- return { inheritedString: propValue };
167
- }
168
- return propValue;
169
- };
170
- const propExists = (prop, stack) => {
171
- if (!prop || !stack.length) return false;
172
- return stack.includes(prop);
173
- };
174
- const inheritParentProps = (element, parent) => {
175
- const { __ref: ref } = element;
176
- const propsStack = ref.__propsStack || [];
177
- const parentProps = parent.props;
178
- if (!parentProps) return propsStack;
179
- const matchParentKeyProps = parentProps[element.key];
180
- const matchParentChildProps = parentProps.childProps || parent.childProps;
181
- const ignoreChildProps = element.props?.ignoreChildProps;
182
- if (matchParentChildProps && !ignoreChildProps) {
183
- const childProps = objectizeStringProperty(matchParentChildProps);
184
- propsStack.unshift(childProps);
185
- }
186
- if (matchParentKeyProps) {
187
- const keyProps = objectizeStringProperty(matchParentKeyProps);
188
- propsStack.unshift(keyProps);
189
- }
190
- return propsStack;
191
- };
192
- function update(props, options) {
193
- const element = this.__element;
194
- element.update({ props }, options);
195
- }
196
- function setPropsPrototype(element) {
197
- const methods = { update: update.bind(element.props), __element: element };
198
- Object.setPrototypeOf(element.props, methods);
199
- }
200
- const removeDuplicateProps = (propsStack) => {
201
- const seen = /* @__PURE__ */ new Set();
202
- return propsStack.filter((prop) => {
203
- if (!prop || import_keys.PROPS_METHODS.has(prop)) return false;
204
- if (seen.has(prop)) return false;
205
- seen.add(prop);
206
- return true;
207
- });
208
- };
209
- const syncProps = (propsStack, element, opts) => {
210
- element.props = propsStack.reduce((mergedProps, v) => {
211
- if (import_keys.PROPS_METHODS.has(v)) return mergedProps;
212
- while ((0, import_types.isFunction)(v)) v = (0, import_object.exec)(v, element);
213
- return (0, import_object.deepMerge)(mergedProps, (0, import_object.deepClone)(v, { exclude: import_keys.PROPS_METHODS }));
214
- }, {});
215
- setPropsPrototype(element);
216
- return element.props;
217
- };
218
- const createPropsStack = (element, parent) => {
219
- const { props, __ref: ref } = element;
220
- let propsStack = ref.__propsStack || [];
221
- if (parent?.props) {
222
- const parentStack = inheritParentProps(element, parent);
223
- propsStack = [...parentStack];
224
- }
225
- if ((0, import_types.isObject)(props)) propsStack.push(props);
226
- else if (props === "inherit" && parent?.props) propsStack.push(parent.props);
227
- else if (props) propsStack.push(props);
228
- if ((0, import_types.isArray)(ref.__extendsStack)) {
229
- for (let i = 0; i < ref.__extendsStack.length; i++) {
230
- const _extends = ref.__extendsStack[i];
231
- if (_extends.props && _extends.props !== props) {
232
- propsStack.push(_extends.props);
233
- }
234
- }
235
- }
236
- ref.__propsStack = removeDuplicateProps(propsStack);
237
- return ref.__propsStack;
238
- };
239
- const applyProps = (element, parent) => {
240
- const { __ref: ref } = element;
241
- const propsStack = createPropsStack(element, parent);
242
- if (propsStack.length) {
243
- syncProps(propsStack, element);
244
- } else {
245
- ref.__propsStack = [];
246
- element.props = {};
247
- }
248
- };
249
- const initProps = function(element, parent, options) {
250
- const { __ref: ref } = element;
251
- if (ref.__if) applyProps(element, parent);
252
- else {
253
- try {
254
- applyProps(element, parent);
255
- } catch (e) {
256
- if (element.context?.designSystem?.verbose) {
257
- console.warn("initProps error at", ref.path?.join("."), e);
258
- }
259
- element.props = {};
260
- ref.__propsStack = [];
261
- }
262
- }
263
- setPropsPrototype(element);
264
- return element;
265
- };
266
- const updateProps = (newProps, element, parent) => {
267
- const { __ref: ref } = element;
268
- const propsStack = ref.__propsStack || [];
269
- let newStack = [...propsStack];
270
- const parentProps = inheritParentProps(element, parent);
271
- if (parentProps.length) {
272
- newStack = [...parentProps, ...newStack];
273
- }
274
- if (newProps) {
275
- newStack = [newProps, ...newStack];
276
- }
277
- ref.__propsStack = removeDuplicateProps(newStack);
278
- if (ref.__propsStack.length) {
279
- syncProps(ref.__propsStack, element);
280
- }
281
- return element;
282
- };
package/dist/cjs/scope.js DELETED
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var scope_exports = {};
20
- __export(scope_exports, {
21
- createScope: () => createScope
22
- });
23
- module.exports = __toCommonJS(scope_exports);
24
- const createScope = (element, parent) => {
25
- const { __ref: ref } = element;
26
- const context = element.context || parent.context || ref.root?.context;
27
- if (context && !context.globalScope) context.globalScope = {};
28
- const parentScope = parent.scope || ref.root?.scope;
29
- const globalScope = context?.globalScope;
30
- if (!element.scope) {
31
- if (parentScope) {
32
- element.scope = parentScope;
33
- } else if (globalScope) {
34
- element.scope = Object.create(globalScope);
35
- } else {
36
- element.scope = {};
37
- }
38
- } else if (typeof element.scope === "object" && element.scope !== null) {
39
- if (Object.getPrototypeOf(element.scope) === Object.prototype) {
40
- const proto = parentScope || globalScope;
41
- if (proto) Object.setPrototypeOf(element.scope, proto);
42
- }
43
- }
44
- };
@@ -1,146 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var sharedLibraries_exports = {};
20
- __export(sharedLibraries_exports, {
21
- deepDefaults: () => deepDefaults,
22
- fetchLibraryData: () => fetchLibraryData,
23
- mergeSharedLibraries: () => mergeSharedLibraries,
24
- normalizeLibraryKey: () => normalizeLibraryKey,
25
- resolveSharedLibraries: () => resolveSharedLibraries
26
- });
27
- module.exports = __toCommonJS(sharedLibraries_exports);
28
- var import_types = require("./types.js");
29
- const DEFAULT_LIBRARY_OWNER = "system";
30
- const KV_BASE_URL = "https://smbls-kv.nika-980.workers.dev";
31
- const API_BASE_URL = "https://api.symbols.app";
32
- function normalizeLibraryKey(raw) {
33
- const s = String(raw || "").trim();
34
- if (!s) return { owner: DEFAULT_LIBRARY_OWNER, key: "", full: "" };
35
- let owner = null;
36
- let key = s;
37
- if (s.includes("/")) {
38
- const idx = s.indexOf("/");
39
- owner = s.slice(0, idx);
40
- key = s.slice(idx + 1);
41
- }
42
- key = key.replace(/\.symbo\.ls$/iu, "");
43
- if (!owner) owner = DEFAULT_LIBRARY_OWNER;
44
- const full = key ? `${owner}/${key}` : "";
45
- return { owner, key, full };
46
- }
47
- const deepDefaults = (target, source) => {
48
- for (const k in source) {
49
- if (!(k in target)) {
50
- target[k] = source[k];
51
- } else if ((0, import_types.isObject)(target[k]) && (0, import_types.isObject)(source[k])) {
52
- deepDefaults(target[k], source[k]);
53
- }
54
- }
55
- };
56
- const mergeSharedLibraries = (context, libraries) => {
57
- if (!libraries || !libraries.length) return;
58
- for (let i = 0; i < libraries.length; i++) {
59
- const sharedLib = libraries[i];
60
- if (!(0, import_types.isObject)(sharedLib)) continue;
61
- for (const key in sharedLib) {
62
- if (!Object.prototype.hasOwnProperty.call(sharedLib, key)) continue;
63
- if ((0, import_types.isObject)(sharedLib[key]) && (0, import_types.isObject)(context[key])) {
64
- if (key === "designSystem") {
65
- deepDefaults(context[key], sharedLib[key]);
66
- } else {
67
- for (const k in sharedLib[key]) {
68
- if (!(k in context[key])) context[key][k] = sharedLib[key][k];
69
- }
70
- }
71
- } else if (!(key in context)) {
72
- context[key] = sharedLib[key];
73
- }
74
- }
75
- }
76
- };
77
- async function fetchLibraryData(identifier, opts = {}) {
78
- const provider = opts.provider || "kv";
79
- if (provider === "api") {
80
- return fetchLibraryFromApi(identifier, opts);
81
- }
82
- const result = await fetchLibraryFromKv(identifier, opts);
83
- if (result) return result;
84
- return fetchLibraryFromApi(identifier, opts);
85
- }
86
- async function fetchLibraryFromKv(identifier, opts = {}) {
87
- const baseUrl = opts.kvBaseUrl || KV_BASE_URL;
88
- const env = opts.env || "production";
89
- const url = `${baseUrl}/kv/${encodeURIComponent(identifier)}?env=${env}`;
90
- try {
91
- const response = await fetch(url, { method: "GET" });
92
- if (!response.ok) return null;
93
- const json = await response.json();
94
- return json?.value || null;
95
- } catch {
96
- return null;
97
- }
98
- }
99
- async function fetchLibraryFromApi(identifier, opts = {}) {
100
- const baseUrl = opts.apiBaseUrl || API_BASE_URL;
101
- const { key } = normalizeLibraryKey(identifier);
102
- try {
103
- const listUrl = `${baseUrl}/core/projects/libraries/available?search=${encodeURIComponent(key)}&limit=10`;
104
- const listRes = await fetch(listUrl, { method: "GET" });
105
- if (!listRes.ok) return null;
106
- const listJson = await listRes.json();
107
- const items = listJson?.items || listJson?.data || (Array.isArray(listJson) ? listJson : []);
108
- const match = items.find((lib) => {
109
- const { key: libKey } = normalizeLibraryKey(lib?.key);
110
- return libKey.toLowerCase() === key.toLowerCase();
111
- });
112
- if (!match?.id && !match?._id) return null;
113
- const libId = match.id || match._id;
114
- const dataUrl = `${baseUrl}/core/projects/${encodeURIComponent(libId)}/data?branch=main`;
115
- const dataRes = await fetch(dataUrl, { method: "GET" });
116
- if (!dataRes.ok) return null;
117
- const dataJson = await dataRes.json();
118
- return dataJson?.data || dataJson || null;
119
- } catch {
120
- return null;
121
- }
122
- }
123
- async function resolveSharedLibraries(libraries, opts = {}) {
124
- if (!libraries || !libraries.length) return [];
125
- const resolved = await Promise.all(
126
- libraries.map(async (entry) => {
127
- if ((0, import_types.isObject)(entry)) return entry;
128
- if ((0, import_types.isString)(entry)) {
129
- const { full } = normalizeLibraryKey(entry);
130
- if (!full) return null;
131
- try {
132
- const data = await fetchLibraryData(full, opts);
133
- if (!data) {
134
- console.warn(`[smbls] Shared library "${full}" not found`);
135
- }
136
- return data;
137
- } catch (e) {
138
- console.warn(`[smbls] Failed to fetch shared library "${full}":`, e.message);
139
- return null;
140
- }
141
- }
142
- return null;
143
- })
144
- );
145
- return resolved.filter(Boolean);
146
- }
package/dist/cjs/state.js DELETED
@@ -1,173 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var state_exports = {};
20
- __export(state_exports, {
21
- applyDependentState: () => applyDependentState,
22
- checkForStateTypes: () => checkForStateTypes,
23
- checkIfInherits: () => checkIfInherits,
24
- createInheritedState: () => createInheritedState,
25
- createNestedObjectByKeyPath: () => createNestedObjectByKeyPath,
26
- findInheritedState: () => findInheritedState,
27
- getChildStateInKey: () => getChildStateInKey,
28
- getParentStateInKey: () => getParentStateInKey,
29
- getRootStateInKey: () => getRootStateInKey,
30
- isState: () => isState,
31
- overwriteState: () => overwriteState
32
- });
33
- module.exports = __toCommonJS(state_exports);
34
- var import_array = require("./array.js");
35
- var import_keys = require("./keys.js");
36
- var import_object = require("./object.js");
37
- var import_types = require("./types.js");
38
- const checkForStateTypes = (element) => {
39
- const { state: orig, props, __ref: ref } = element;
40
- const state = props?.state || orig;
41
- if ((0, import_types.is)(state)("string", "number")) {
42
- ref.__state = state;
43
- return { value: state };
44
- } else if (state === true) {
45
- ref.__state = element.key;
46
- return {};
47
- } else if (state) {
48
- ref.__hasRootState = true;
49
- return state;
50
- } else {
51
- return false;
52
- }
53
- };
54
- const getRootStateInKey = (stateKey, parentState) => {
55
- if (!stateKey.includes("~/")) return;
56
- const arr = stateKey.split("~/");
57
- if (arr.length > 1) return parentState.root;
58
- };
59
- const getParentStateInKey = (stateKey, parentState) => {
60
- if (!stateKey.includes("../")) return;
61
- const arr = stateKey.split("../");
62
- const arrLength = arr.length - 1;
63
- for (let i = 0; i < arrLength; i++) {
64
- if (!parentState.parent) return null;
65
- parentState = parentState.parent;
66
- }
67
- return parentState;
68
- };
69
- const getChildStateInKey = (stateKey, parentState, options = {}) => {
70
- const arr = (0, import_types.isString)(stateKey) ? stateKey.split("/") : [stateKey];
71
- const arrLength = arr.length - 1;
72
- for (let i = 0; i < arrLength; i++) {
73
- const childKey = arr[i];
74
- const grandChildKey = arr[i + 1];
75
- if (childKey === "__proto__" || grandChildKey === "__proto__") return;
76
- let childInParent = parentState[childKey];
77
- if (!childInParent) childInParent = parentState[childKey] = {};
78
- if (!childInParent[grandChildKey]) childInParent[grandChildKey] = {};
79
- stateKey = grandChildKey;
80
- parentState = childInParent;
81
- }
82
- if (options.returnParent) return parentState;
83
- return parentState[stateKey];
84
- };
85
- const findInheritedState = (element, parent, options = {}) => {
86
- const ref = element.__ref;
87
- let stateKey = ref.__state;
88
- if (!checkIfInherits(element)) return;
89
- const rootState = getRootStateInKey(stateKey, parent.state);
90
- let parentState = parent.state;
91
- if (rootState) {
92
- parentState = rootState;
93
- stateKey = stateKey.replaceAll("~/", "");
94
- } else {
95
- const findGrandParentState = getParentStateInKey(stateKey, parent.state);
96
- if (findGrandParentState) {
97
- parentState = findGrandParentState;
98
- stateKey = stateKey.replaceAll("../", "");
99
- }
100
- }
101
- if (!parentState) return;
102
- return getChildStateInKey(stateKey, parentState, options);
103
- };
104
- const createInheritedState = (element, parent) => {
105
- const ref = element.__ref;
106
- const inheritedState = findInheritedState(element, parent);
107
- if (inheritedState === void 0) return element.state;
108
- if ((0, import_types.is)(inheritedState)("object", "array")) {
109
- return (0, import_object.deepClone)(inheritedState);
110
- } else if ((0, import_types.is)(inheritedState)("string", "number", "boolean")) {
111
- ref.__stateType = typeof inheritedState;
112
- return { value: inheritedState };
113
- }
114
- console.warn(ref.__state, "is not present. Replacing with", {});
115
- };
116
- const checkIfInherits = (element) => {
117
- const { __ref: ref } = element;
118
- const stateKey = ref?.__state;
119
- if (stateKey && (0, import_types.is)(stateKey)("number", "string", "boolean")) return true;
120
- return false;
121
- };
122
- const isState = function(state) {
123
- if (!(0, import_types.isObjectLike)(state)) return false;
124
- return Boolean(
125
- state.update && state.parse && state.clean && state.create && state.parent && state.destroy && state.rootUpdate && state.parentUpdate && state.keys && state.values && state.toggle && state.replace && state.quietUpdate && state.quietReplace && state.add && state.apply && state.applyReplace && state.setByPath && state.setPathCollection && state.removeByPath && state.removePathCollection && state.getByPath && state.applyFunction && state.__element && state.__children
126
- );
127
- };
128
- const createNestedObjectByKeyPath = (path, value) => {
129
- if (!path) {
130
- return value || {};
131
- }
132
- const keys = path.split("/");
133
- const obj = {};
134
- let ref = obj;
135
- const lastIdx = keys.length - 1;
136
- for (let i = 0; i <= lastIdx; i++) {
137
- ref[keys[i]] = i === lastIdx ? value || {} : {};
138
- ref = ref[keys[i]];
139
- }
140
- return obj;
141
- };
142
- const applyDependentState = (element, state) => {
143
- const { __element } = state;
144
- const origState = __element?.state;
145
- if (!origState) return;
146
- const dependentState = (0, import_object.deepClone)(origState, import_keys.STATE_METHODS);
147
- const newDepends = { [element.key]: dependentState };
148
- const __depends = (0, import_types.isObject)(origState.__depends) ? { ...origState.__depends, ...newDepends } : newDepends;
149
- if (Array.isArray(origState)) {
150
- (0, import_array.addProtoToArray)(origState, {
151
- ...Object.getPrototypeOf(origState),
152
- __depends
153
- });
154
- } else {
155
- Object.setPrototypeOf(origState, {
156
- ...Object.getPrototypeOf(origState),
157
- __depends
158
- });
159
- }
160
- return dependentState;
161
- };
162
- const overwriteState = (state, obj, options = {}) => {
163
- const { overwrite } = options;
164
- if (!overwrite) return;
165
- const shallow = overwrite === "shallow";
166
- const merge = overwrite === "merge";
167
- if (merge) {
168
- (0, import_object.deepMerge)(state, obj, import_keys.STATE_METHODS);
169
- return;
170
- }
171
- const overwriteFunc = shallow ? import_object.overwriteShallow : import_object.overwriteDeep;
172
- overwriteFunc(state, obj, import_keys.STATE_METHODS);
173
- };