@tachybase/module-cloud-component 0.23.22 → 0.23.40

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 (48) hide show
  1. package/dist/client/index.js +1 -1
  2. package/dist/externalVersion.js +7 -7
  3. package/dist/node_modules/@babel/core/lib/index.js +76 -76
  4. package/dist/node_modules/@babel/core/node_modules/.bin/parser +4 -4
  5. package/dist/node_modules/@babel/core/package.json +1 -1
  6. package/dist/node_modules/@babel/parser/LICENSE +19 -0
  7. package/dist/node_modules/@babel/parser/bin/babel-parser.js +15 -0
  8. package/dist/node_modules/@babel/parser/index.cjs +5 -0
  9. package/dist/node_modules/@babel/parser/lib/index.js +1 -0
  10. package/dist/node_modules/@babel/parser/package.json +1 -0
  11. package/dist/node_modules/@babel/parser/typings/babel-parser.d.ts +267 -0
  12. package/dist/node_modules/@babel/traverse/LICENSE +22 -0
  13. package/dist/node_modules/@babel/traverse/lib/cache.js +44 -0
  14. package/dist/node_modules/@babel/traverse/lib/context.js +119 -0
  15. package/dist/node_modules/@babel/traverse/lib/hub.js +19 -0
  16. package/dist/node_modules/@babel/traverse/lib/index.js +13 -0
  17. package/dist/node_modules/@babel/traverse/lib/path/ancestry.js +141 -0
  18. package/dist/node_modules/@babel/traverse/lib/path/comments.js +52 -0
  19. package/dist/node_modules/@babel/traverse/lib/path/context.js +242 -0
  20. package/dist/node_modules/@babel/traverse/lib/path/conversion.js +609 -0
  21. package/dist/node_modules/@babel/traverse/lib/path/evaluation.js +347 -0
  22. package/dist/node_modules/@babel/traverse/lib/path/family.js +340 -0
  23. package/dist/node_modules/@babel/traverse/lib/path/index.js +292 -0
  24. package/dist/node_modules/@babel/traverse/lib/path/inference/index.js +149 -0
  25. package/dist/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js +151 -0
  26. package/dist/node_modules/@babel/traverse/lib/path/inference/inferers.js +207 -0
  27. package/dist/node_modules/@babel/traverse/lib/path/inference/util.js +30 -0
  28. package/dist/node_modules/@babel/traverse/lib/path/introspection.js +398 -0
  29. package/dist/node_modules/@babel/traverse/lib/path/lib/hoister.js +171 -0
  30. package/dist/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js +37 -0
  31. package/dist/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js +163 -0
  32. package/dist/node_modules/@babel/traverse/lib/path/lib/virtual-types.js +26 -0
  33. package/dist/node_modules/@babel/traverse/lib/path/modification.js +229 -0
  34. package/dist/node_modules/@babel/traverse/lib/path/removal.js +69 -0
  35. package/dist/node_modules/@babel/traverse/lib/path/replacement.js +263 -0
  36. package/dist/node_modules/@babel/traverse/lib/scope/binding.js +83 -0
  37. package/dist/node_modules/@babel/traverse/lib/scope/index.js +981 -0
  38. package/dist/node_modules/@babel/traverse/lib/scope/lib/renamer.js +131 -0
  39. package/dist/node_modules/@babel/traverse/lib/traverse-node.js +29 -0
  40. package/dist/node_modules/@babel/traverse/lib/types.js +3 -0
  41. package/dist/node_modules/@babel/traverse/lib/visitors.js +258 -0
  42. package/dist/node_modules/@babel/traverse/node_modules/.bin/parser +17 -0
  43. package/dist/node_modules/@babel/traverse/package.json +1 -0
  44. package/dist/node_modules/@hapi/topo/lib/index.d.ts +60 -0
  45. package/dist/node_modules/@hapi/topo/lib/index.js +1 -0
  46. package/dist/node_modules/@hapi/topo/package.json +1 -0
  47. package/dist/server/services/cloud-libraries-service.js +36 -1
  48. package/package.json +13 -9
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var t = require("@babel/types");
8
+ var _t = t;
9
+ var _traverseNode = require("../../traverse-node.js");
10
+ var _visitors = require("../../visitors.js");
11
+ var _context = require("../../path/context.js");
12
+ const {
13
+ getAssignmentIdentifiers
14
+ } = _t;
15
+ const renameVisitor = {
16
+ ReferencedIdentifier({
17
+ node
18
+ }, state) {
19
+ if (node.name === state.oldName) {
20
+ node.name = state.newName;
21
+ }
22
+ },
23
+ Scope(path, state) {
24
+ if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) {
25
+ path.skip();
26
+ if (path.isMethod()) {
27
+ if (!path.requeueComputedKeyAndDecorators) {
28
+ _context.requeueComputedKeyAndDecorators.call(path);
29
+ } else {
30
+ path.requeueComputedKeyAndDecorators();
31
+ }
32
+ }
33
+ }
34
+ },
35
+ ObjectProperty({
36
+ node,
37
+ scope
38
+ }, state) {
39
+ const {
40
+ name
41
+ } = node.key;
42
+ if (node.shorthand && (name === state.oldName || name === state.newName) && scope.getBindingIdentifier(name) === state.binding.identifier) {
43
+ node.shorthand = false;
44
+ {
45
+ var _node$extra;
46
+ if ((_node$extra = node.extra) != null && _node$extra.shorthand) node.extra.shorthand = false;
47
+ }
48
+ }
49
+ },
50
+ "AssignmentExpression|Declaration|VariableDeclarator"(path, state) {
51
+ if (path.isVariableDeclaration()) return;
52
+ const ids = path.isAssignmentExpression() ? getAssignmentIdentifiers(path.node) : path.getOuterBindingIdentifiers();
53
+ for (const name in ids) {
54
+ if (name === state.oldName) ids[name].name = state.newName;
55
+ }
56
+ }
57
+ };
58
+ class Renamer {
59
+ constructor(binding, oldName, newName) {
60
+ this.newName = newName;
61
+ this.oldName = oldName;
62
+ this.binding = binding;
63
+ }
64
+ maybeConvertFromExportDeclaration(parentDeclar) {
65
+ const maybeExportDeclar = parentDeclar.parentPath;
66
+ if (!maybeExportDeclar.isExportDeclaration()) {
67
+ return;
68
+ }
69
+ if (maybeExportDeclar.isExportDefaultDeclaration()) {
70
+ const {
71
+ declaration
72
+ } = maybeExportDeclar.node;
73
+ if (t.isDeclaration(declaration) && !declaration.id) {
74
+ return;
75
+ }
76
+ }
77
+ if (maybeExportDeclar.isExportAllDeclaration()) {
78
+ return;
79
+ }
80
+ maybeExportDeclar.splitExportDeclaration();
81
+ }
82
+ maybeConvertFromClassFunctionDeclaration(path) {
83
+ return path;
84
+ }
85
+ maybeConvertFromClassFunctionExpression(path) {
86
+ return path;
87
+ }
88
+ rename() {
89
+ const {
90
+ binding,
91
+ oldName,
92
+ newName
93
+ } = this;
94
+ const {
95
+ scope,
96
+ path
97
+ } = binding;
98
+ const parentDeclar = path.find(path => path.isDeclaration() || path.isFunctionExpression() || path.isClassExpression());
99
+ if (parentDeclar) {
100
+ const bindingIds = parentDeclar.getOuterBindingIdentifiers();
101
+ if (bindingIds[oldName] === binding.identifier) {
102
+ this.maybeConvertFromExportDeclaration(parentDeclar);
103
+ }
104
+ }
105
+ const blockToTraverse = arguments[0] || scope.block;
106
+ const skipKeys = {
107
+ discriminant: true
108
+ };
109
+ if (t.isMethod(blockToTraverse)) {
110
+ if (blockToTraverse.computed) {
111
+ skipKeys.key = true;
112
+ }
113
+ if (!t.isObjectMethod(blockToTraverse)) {
114
+ skipKeys.decorators = true;
115
+ }
116
+ }
117
+ (0, _traverseNode.traverseNode)(blockToTraverse, (0, _visitors.explode)(renameVisitor), scope, this, scope.path, skipKeys);
118
+ if (!arguments[0]) {
119
+ scope.removeOwnBinding(oldName);
120
+ scope.bindings[newName] = binding;
121
+ this.binding.identifier.name = newName;
122
+ }
123
+ if (parentDeclar) {
124
+ this.maybeConvertFromClassFunctionDeclaration(path);
125
+ this.maybeConvertFromClassFunctionExpression(path);
126
+ }
127
+ }
128
+ }
129
+ exports.default = Renamer;
130
+
131
+ //# sourceMappingURL=renamer.js.map
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.traverseNode = traverseNode;
7
+ var _context = require("./context.js");
8
+ var _t = require("@babel/types");
9
+ const {
10
+ VISITOR_KEYS
11
+ } = _t;
12
+ function traverseNode(node, opts, scope, state, path, skipKeys, visitSelf) {
13
+ const keys = VISITOR_KEYS[node.type];
14
+ if (!keys) return false;
15
+ const context = new _context.default(scope, opts, state, path);
16
+ if (visitSelf) {
17
+ if (skipKeys != null && skipKeys[path.parentKey]) return false;
18
+ return context.visitQueue([path]);
19
+ }
20
+ for (const key of keys) {
21
+ if (skipKeys != null && skipKeys[key]) continue;
22
+ if (context.visit(node, key)) {
23
+ return true;
24
+ }
25
+ }
26
+ return false;
27
+ }
28
+
29
+ //# sourceMappingURL=traverse-node.js.map
@@ -0,0 +1,3 @@
1
+
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.environmentVisitor = environmentVisitor;
7
+ exports.explode = explode$1;
8
+ exports.isExplodedVisitor = isExplodedVisitor;
9
+ exports.merge = merge;
10
+ exports.verify = verify$1;
11
+ var virtualTypes = require("./path/lib/virtual-types.js");
12
+ var virtualTypesValidators = require("./path/lib/virtual-types-validator.js");
13
+ var _t = require("@babel/types");
14
+ var _context = require("./path/context.js");
15
+ const {
16
+ DEPRECATED_KEYS,
17
+ DEPRECATED_ALIASES,
18
+ FLIPPED_ALIAS_KEYS,
19
+ TYPES,
20
+ __internal__deprecationWarning: deprecationWarning
21
+ } = _t;
22
+ function isVirtualType(type) {
23
+ return type in virtualTypes;
24
+ }
25
+ function isExplodedVisitor(visitor) {
26
+ return visitor == null ? void 0 : visitor._exploded;
27
+ }
28
+ function explode$1(visitor) {
29
+ if (isExplodedVisitor(visitor)) return visitor;
30
+ visitor._exploded = true;
31
+ for (const nodeType of Object.keys(visitor)) {
32
+ if (shouldIgnoreKey(nodeType)) continue;
33
+ const parts = nodeType.split("|");
34
+ if (parts.length === 1) continue;
35
+ const fns = visitor[nodeType];
36
+ delete visitor[nodeType];
37
+ for (const part of parts) {
38
+ visitor[part] = fns;
39
+ }
40
+ }
41
+ verify$1(visitor);
42
+ delete visitor.__esModule;
43
+ ensureEntranceObjects(visitor);
44
+ ensureCallbackArrays(visitor);
45
+ for (const nodeType of Object.keys(visitor)) {
46
+ if (shouldIgnoreKey(nodeType)) continue;
47
+ if (!isVirtualType(nodeType)) continue;
48
+ const fns = visitor[nodeType];
49
+ for (const type of Object.keys(fns)) {
50
+ fns[type] = wrapCheck(nodeType, fns[type]);
51
+ }
52
+ delete visitor[nodeType];
53
+ const types = virtualTypes[nodeType];
54
+ if (types !== null) {
55
+ for (const type of types) {
56
+ if (visitor[type]) {
57
+ mergePair(visitor[type], fns);
58
+ } else {
59
+ visitor[type] = fns;
60
+ }
61
+ }
62
+ } else {
63
+ mergePair(visitor, fns);
64
+ }
65
+ }
66
+ for (const nodeType of Object.keys(visitor)) {
67
+ if (shouldIgnoreKey(nodeType)) continue;
68
+ let aliases = FLIPPED_ALIAS_KEYS[nodeType];
69
+ if (nodeType in DEPRECATED_KEYS) {
70
+ const deprecatedKey = DEPRECATED_KEYS[nodeType];
71
+ deprecationWarning(nodeType, deprecatedKey, "Visitor ");
72
+ aliases = [deprecatedKey];
73
+ } else if (nodeType in DEPRECATED_ALIASES) {
74
+ const deprecatedAlias = DEPRECATED_ALIASES[nodeType];
75
+ deprecationWarning(nodeType, deprecatedAlias, "Visitor ");
76
+ aliases = FLIPPED_ALIAS_KEYS[deprecatedAlias];
77
+ }
78
+ if (!aliases) continue;
79
+ const fns = visitor[nodeType];
80
+ delete visitor[nodeType];
81
+ for (const alias of aliases) {
82
+ const existing = visitor[alias];
83
+ if (existing) {
84
+ mergePair(existing, fns);
85
+ } else {
86
+ visitor[alias] = Object.assign({}, fns);
87
+ }
88
+ }
89
+ }
90
+ for (const nodeType of Object.keys(visitor)) {
91
+ if (shouldIgnoreKey(nodeType)) continue;
92
+ ensureCallbackArrays(visitor[nodeType]);
93
+ }
94
+ return visitor;
95
+ }
96
+ function verify$1(visitor) {
97
+ if (visitor._verified) return;
98
+ if (typeof visitor === "function") {
99
+ throw new Error("You passed `traverse()` a function when it expected a visitor object, " + "are you sure you didn't mean `{ enter: Function }`?");
100
+ }
101
+ for (const nodeType of Object.keys(visitor)) {
102
+ if (nodeType === "enter" || nodeType === "exit") {
103
+ validateVisitorMethods(nodeType, visitor[nodeType]);
104
+ }
105
+ if (shouldIgnoreKey(nodeType)) continue;
106
+ if (!TYPES.includes(nodeType)) {
107
+ throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type in @babel/traverse ${"7.26.4"}`);
108
+ }
109
+ const visitors = visitor[nodeType];
110
+ if (typeof visitors === "object") {
111
+ for (const visitorKey of Object.keys(visitors)) {
112
+ if (visitorKey === "enter" || visitorKey === "exit") {
113
+ validateVisitorMethods(`${nodeType}.${visitorKey}`, visitors[visitorKey]);
114
+ } else {
115
+ throw new Error("You passed `traverse()` a visitor object with the property " + `${nodeType} that has the invalid property ${visitorKey}`);
116
+ }
117
+ }
118
+ }
119
+ }
120
+ visitor._verified = true;
121
+ }
122
+ function validateVisitorMethods(path, val) {
123
+ const fns = [].concat(val);
124
+ for (const fn of fns) {
125
+ if (typeof fn !== "function") {
126
+ throw new TypeError(`Non-function found defined in ${path} with type ${typeof fn}`);
127
+ }
128
+ }
129
+ }
130
+ function merge(visitors, states = [], wrapper) {
131
+ const mergedVisitor = {
132
+ _verified: true,
133
+ _exploded: true
134
+ };
135
+ {
136
+ Object.defineProperty(mergedVisitor, "_exploded", {
137
+ enumerable: false
138
+ });
139
+ Object.defineProperty(mergedVisitor, "_verified", {
140
+ enumerable: false
141
+ });
142
+ }
143
+ for (let i = 0; i < visitors.length; i++) {
144
+ const visitor = explode$1(visitors[i]);
145
+ const state = states[i];
146
+ let topVisitor = visitor;
147
+ if (state || wrapper) {
148
+ topVisitor = wrapWithStateOrWrapper(topVisitor, state, wrapper);
149
+ }
150
+ mergePair(mergedVisitor, topVisitor);
151
+ for (const key of Object.keys(visitor)) {
152
+ if (shouldIgnoreKey(key)) continue;
153
+ let typeVisitor = visitor[key];
154
+ if (state || wrapper) {
155
+ typeVisitor = wrapWithStateOrWrapper(typeVisitor, state, wrapper);
156
+ }
157
+ const nodeVisitor = mergedVisitor[key] || (mergedVisitor[key] = {});
158
+ mergePair(nodeVisitor, typeVisitor);
159
+ }
160
+ }
161
+ return mergedVisitor;
162
+ }
163
+ function wrapWithStateOrWrapper(oldVisitor, state, wrapper) {
164
+ const newVisitor = {};
165
+ for (const phase of ["enter", "exit"]) {
166
+ let fns = oldVisitor[phase];
167
+ if (!Array.isArray(fns)) continue;
168
+ fns = fns.map(function (fn) {
169
+ let newFn = fn;
170
+ if (state) {
171
+ newFn = function (path) {
172
+ fn.call(state, path, state);
173
+ };
174
+ }
175
+ if (wrapper) {
176
+ newFn = wrapper(state == null ? void 0 : state.key, phase, newFn);
177
+ }
178
+ if (newFn !== fn) {
179
+ newFn.toString = () => fn.toString();
180
+ }
181
+ return newFn;
182
+ });
183
+ newVisitor[phase] = fns;
184
+ }
185
+ return newVisitor;
186
+ }
187
+ function ensureEntranceObjects(obj) {
188
+ for (const key of Object.keys(obj)) {
189
+ if (shouldIgnoreKey(key)) continue;
190
+ const fns = obj[key];
191
+ if (typeof fns === "function") {
192
+ obj[key] = {
193
+ enter: fns
194
+ };
195
+ }
196
+ }
197
+ }
198
+ function ensureCallbackArrays(obj) {
199
+ if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter];
200
+ if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit];
201
+ }
202
+ function wrapCheck(nodeType, fn) {
203
+ const fnKey = `is${nodeType}`;
204
+ const validator = virtualTypesValidators[fnKey];
205
+ const newFn = function (path) {
206
+ if (validator.call(path)) {
207
+ return fn.apply(this, arguments);
208
+ }
209
+ };
210
+ newFn.toString = () => fn.toString();
211
+ return newFn;
212
+ }
213
+ function shouldIgnoreKey(key) {
214
+ if (key[0] === "_") return true;
215
+ if (key === "enter" || key === "exit" || key === "shouldSkip") return true;
216
+ if (key === "denylist" || key === "noScope" || key === "skipKeys") {
217
+ return true;
218
+ }
219
+ {
220
+ if (key === "blacklist") {
221
+ return true;
222
+ }
223
+ }
224
+ return false;
225
+ }
226
+ function mergePair(dest, src) {
227
+ for (const phase of ["enter", "exit"]) {
228
+ if (!src[phase]) continue;
229
+ dest[phase] = [].concat(dest[phase] || [], src[phase]);
230
+ }
231
+ }
232
+ const _environmentVisitor = {
233
+ FunctionParent(path) {
234
+ if (path.isArrowFunctionExpression()) return;
235
+ path.skip();
236
+ if (path.isMethod()) {
237
+ if (!path.requeueComputedKeyAndDecorators) {
238
+ _context.requeueComputedKeyAndDecorators.call(path);
239
+ } else {
240
+ path.requeueComputedKeyAndDecorators();
241
+ }
242
+ }
243
+ },
244
+ Property(path) {
245
+ if (path.isObjectProperty()) return;
246
+ path.skip();
247
+ if (!path.requeueComputedKeyAndDecorators) {
248
+ _context.requeueComputedKeyAndDecorators.call(path);
249
+ } else {
250
+ path.requeueComputedKeyAndDecorators();
251
+ }
252
+ }
253
+ };
254
+ function environmentVisitor(visitor) {
255
+ return merge([_environmentVisitor, visitor]);
256
+ }
257
+
258
+ //# sourceMappingURL=visitors.js.map
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules/@babel/parser/bin/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules/@babel/parser/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules/@babel/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules/@babel/parser/bin/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules/@babel/parser/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules/@babel/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/@babel+parser@7.26.3/node_modules:/home/runner/work/tachybase/tachybase/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../../@babel+parser@7.26.3/node_modules/@babel/parser/bin/babel-parser.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../@babel+parser@7.26.3/node_modules/@babel/parser/bin/babel-parser.js" "$@"
17
+ fi
@@ -0,0 +1 @@
1
+ {"name":"@babel/traverse","version":"7.26.4","description":"The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes","author":"The Babel Team (https://babel.dev/team)","homepage":"https://babel.dev/docs/en/next/babel-traverse","bugs":"https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20traverse%22+is%3Aopen","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"https://github.com/babel/babel.git","directory":"packages/babel-traverse"},"main":"./lib/index.js","dependencies":{"@babel/code-frame":"^7.26.2","@babel/generator":"^7.26.3","@babel/parser":"^7.26.3","@babel/template":"^7.25.9","@babel/types":"^7.26.3","debug":"^4.3.1","globals":"^11.1.0"},"devDependencies":{"@babel/core":"^7.26.0","@babel/helper-plugin-test-runner":"^7.25.9"},"engines":{"node":">=6.9.0"},"type":"commonjs","_lastModified":"2025-01-18T18:47:43.548Z"}
@@ -0,0 +1,60 @@
1
+ export class Sorter<T> {
2
+
3
+ /**
4
+ * An array of the topologically sorted nodes. This list is renewed upon each call to topo.add().
5
+ */
6
+ nodes: T[];
7
+
8
+ /**
9
+ * Adds a node or list of nodes to be added and topologically sorted
10
+ *
11
+ * @param nodes - A mixed value or array of mixed values to be added as nodes to the topologically sorted list.
12
+ * @param options - Optional sorting information about the nodes.
13
+ *
14
+ * @returns Returns an array of the topologically sorted nodes.
15
+ */
16
+ add(nodes: T | T[], options?: Options): T[];
17
+
18
+ /**
19
+ * Merges another Sorter object into the current object.
20
+ *
21
+ * @param others - The other object or array of objects to be merged into the current one.
22
+ *
23
+ * @returns Returns an array of the topologically sorted nodes.
24
+ */
25
+ merge(others: Sorter<T> | Sorter<T>[]): T[];
26
+
27
+ /**
28
+ * Sorts the nodes array (only required if the manual option is used when adding items)
29
+ */
30
+ sort(): T[];
31
+ }
32
+
33
+
34
+ export interface Options {
35
+
36
+ /**
37
+ * The sorting group the added items belong to
38
+ */
39
+ readonly group?: string;
40
+
41
+ /**
42
+ * The group or groups the added items must come before
43
+ */
44
+ readonly before?: string | string[];
45
+
46
+ /**
47
+ * The group or groups the added items must come after
48
+ */
49
+ readonly after?: string | string[];
50
+
51
+ /**
52
+ * A number used to sort items with equal before/after requirements
53
+ */
54
+ readonly sort?: number;
55
+
56
+ /**
57
+ * If true, the array is not sorted automatically until sort() is called
58
+ */
59
+ readonly manual?: boolean;
60
+ }
@@ -0,0 +1 @@
1
+ (function(){"use strict";var e={299:function(e,t,r){const n=r(964);const o=r(425);const s=r(32);const i=r(435);const f={};e.exports=function(e,t,r={}){n(e&&typeof e==="object","Invalid defaults value: must be an object");n(!t||t===true||typeof t==="object","Invalid source value: must be true, falsy or an object");n(typeof r==="object","Invalid options: must be an object");if(!t){return null}if(r.shallow){return f.applyToDefaultsWithShallow(e,t,r)}const i=o(e);if(t===true){return i}const c=r.nullOverride!==undefined?r.nullOverride:false;return s(i,t,{nullOverride:c,mergeArrays:false})};f.applyToDefaultsWithShallow=function(e,t,r){const c=r.shallow;n(Array.isArray(c),"Invalid keys");const a=new Map;const u=t===true?null:new Set;for(let r of c){r=Array.isArray(r)?r:r.split(".");const n=i(e,r);if(n&&typeof n==="object"){a.set(n,u&&i(t,r)||n)}else if(u){u.add(r)}}const l=o(e,{},a);if(!u){return l}for(const e of u){f.reachCopy(l,t,e)}const p=r.nullOverride!==undefined?r.nullOverride:false;return s(l,t,{nullOverride:p,mergeArrays:false})};f.reachCopy=function(e,t,r){for(const e of r){if(!(e in t)){return}const r=t[e];if(typeof r!=="object"||r===null){return}t=r}const n=t;let o=e;for(let e=0;e<r.length-1;++e){const t=r[e];if(typeof o[t]!=="object"){o[t]={}}o=o[t]}o[r[r.length-1]]=n}},964:function(e,t,r){const n=r(116);const o=r(561);const s={};const i=e.exports=function(e,...t){if(e){return}if(t.length===1&&t[0]instanceof Error){throw t[0]}const r=t.filter((e=>e!=="")).map((e=>typeof e==="string"?e:e instanceof Error?e.message:o(e)));throw new n(r.join(" "),i)}},116:function(e){const t={};e.exports=class AssertError extends Error{name="AssertError";constructor(e,t){super(e||"Unknown error");if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,t)}}}},62:function(e){const t={};e.exports=t.Bench=class{constructor(){this.ts=0;this.reset()}reset(){this.ts=t.Bench.now()}elapsed(){return t.Bench.now()-this.ts}static now(){const e=process.hrtime();return e[0]*1e3+e[1]/1e6}}},977:function(e,t,r){const n=r(4);const o={};e.exports=function(){return new Promise(n)}},425:function(e,t,r){const n=r(435);const o=r(193);const s=r(685);const i={needsProtoHack:new Set([o.set,o.map,o.weakSet,o.weakMap])};e.exports=i.clone=function(e,t={},r=null){if(typeof e!=="object"||e===null){return e}let n=i.clone;let f=r;if(t.shallow){if(t.shallow!==true){return i.cloneWithShallow(e,t)}n=e=>e}else if(f){const t=f.get(e);if(t){return t}}else{f=new Map}const c=o.getInternalProto(e);switch(c){case o.buffer:return Buffer?.from(e);case o.date:return new Date(e.getTime());case o.regex:case o.url:return new c.constructor(e)}const a=i.base(e,c,t);if(a===e){return e}if(f){f.set(e,a)}if(c===o.set){for(const r of e){a.add(n(r,t,f))}}else if(c===o.map){for(const[r,o]of e){a.set(r,n(o,t,f))}}const u=s.keys(e,t);for(const r of u){if(r==="__proto__"){continue}if(c===o.array&&r==="length"){a.length=e.length;continue}const s=Object.getOwnPropertyDescriptor(e,r);if(s){if(s.get||s.set){Object.defineProperty(a,r,s)}else if(s.enumerable){a[r]=n(e[r],t,f)}else{Object.defineProperty(a,r,{enumerable:false,writable:true,configurable:true,value:n(e[r],t,f)})}}else{Object.defineProperty(a,r,{enumerable:true,writable:true,configurable:true,value:n(e[r],t,f)})}}return a};i.cloneWithShallow=function(e,t){const r=t.shallow;t=Object.assign({},t);t.shallow=false;const o=new Map;for(const t of r){const r=n(e,t);if(typeof r==="object"||typeof r==="function"){o.set(r,r)}}return i.clone(e,t,o)};i.base=function(e,t,r){if(r.prototype===false){if(i.needsProtoHack.has(t)){return new t.constructor}return t===o.array?[]:{}}const n=Object.getPrototypeOf(e);if(n&&n.isImmutable){return e}if(t===o.array){const e=[];if(n!==t){Object.setPrototypeOf(e,n)}return e}if(i.needsProtoHack.has(t)){const e=new n.constructor;if(n!==t){Object.setPrototypeOf(e,n)}return e}return Object.create(n)}},740:function(e,t,r){const n=r(964);const o=r(826);const s=r(6);const i=r(685);const f={};e.exports=function(e,t,r={}){if(typeof t!=="object"){t=[t]}n(!Array.isArray(t)||t.length,"Values array cannot be empty");if(typeof e==="string"){return f.string(e,t,r)}if(Array.isArray(e)){return f.array(e,t,r)}n(typeof e==="object","Reference must be string or an object");return f.object(e,t,r)};f.array=function(e,t,r){if(!Array.isArray(t)){t=[t]}if(!e.length){return false}if(r.only&&r.once&&e.length!==t.length){return false}let n;const o=new Map;for(const e of t){if(!r.deep||!e||typeof e!=="object"){const t=o.get(e);if(t){++t.allowed}else{o.set(e,{allowed:1,hits:0})}}else{n=n??f.compare(r);let t=false;for(const[r,s]of o.entries()){if(n(r,e)){++s.allowed;t=true;break}}if(!t){o.set(e,{allowed:1,hits:0})}}}let s=0;for(const t of e){let e;if(!r.deep||!t||typeof t!=="object"){e=o.get(t)}else{n=n??f.compare(r);for(const[r,s]of o.entries()){if(n(r,t)){e=s;break}}}if(e){++e.hits;++s;if(r.once&&e.hits>e.allowed){return false}}}if(r.only&&s!==e.length){return false}for(const e of o.values()){if(e.hits===e.allowed){continue}if(e.hits<e.allowed&&!r.part){return false}}return!!s};f.object=function(e,t,r){n(r.once===undefined,"Cannot use option once with object");const o=i.keys(e,r);if(!o.length){return false}if(Array.isArray(t)){return f.array(o,t,r)}const s=Object.getOwnPropertySymbols(t).filter((e=>t.propertyIsEnumerable(e)));const c=[...Object.keys(t),...s];const a=f.compare(r);const u=new Set(c);for(const n of o){if(!u.has(n)){if(r.only){return false}continue}if(!a(t[n],e[n])){return false}u.delete(n)}if(u.size){return r.part?u.size<c.length:false}return true};f.string=function(e,t,r){if(e===""){return t.length===1&&t[0]===""||!r.once&&!t.some((e=>e!==""))}const o=new Map;const i=[];for(const e of t){n(typeof e==="string","Cannot compare string reference to non-string value");if(e){const t=o.get(e);if(t){++t.allowed}else{o.set(e,{allowed:1,hits:0});i.push(s(e))}}else if(r.once||r.only){return false}}if(!i.length){return true}const f=new RegExp(`(${i.join("|")})`,"g");const c=e.replace(f,((e,t)=>{++o.get(t).hits;return""}));if(r.only&&c){return false}let a=false;for(const e of o.values()){if(e.hits){a=true}if(e.hits===e.allowed){continue}if(e.hits<e.allowed&&!r.part){return false}if(r.once){return false}}return!!a};f.compare=function(e){if(!e.deep){return f.shallow}const t=e.only!==undefined;const r=e.part!==undefined;const n={prototype:t?e.only:r?!e.part:false,part:t?!e.only:r?e.part:false};return(e,t)=>o(e,t,n)};f.shallow=function(e,t){return e===t}},826:function(e,t,r){const n=r(193);const o={mismatched:null};e.exports=function(e,t,r){r=Object.assign({prototype:true},r);return!!o.isDeepEqual(e,t,r,[])};o.isDeepEqual=function(e,t,r,s){if(e===t){return e!==0||1/e===1/t}const i=typeof e;if(i!==typeof t){return false}if(e===null||t===null){return false}if(i==="function"){if(!r.deepFunction||e.toString()!==t.toString()){return false}}else if(i!=="object"){return e!==e&&t!==t}const f=o.getSharedType(e,t,!!r.prototype);switch(f){case n.buffer:return Buffer&&Buffer.prototype.equals.call(e,t);case n.promise:return e===t;case n.regex:case n.url:return e.toString()===t.toString();case o.mismatched:return false}for(let r=s.length-1;r>=0;--r){if(s[r].isSame(e,t)){return true}}s.push(new o.SeenEntry(e,t));try{return!!o.isDeepEqualObj(f,e,t,r,s)}finally{s.pop()}};o.getSharedType=function(e,t,r){if(r){if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)){return o.mismatched}return n.getInternalProto(e)}const s=n.getInternalProto(e);if(s!==n.getInternalProto(t)){return o.mismatched}return s};o.valueOf=function(e){const t=e.valueOf;if(t===undefined){return e}try{return t.call(e)}catch(e){return e}};o.hasOwnEnumerableProperty=function(e,t){return Object.prototype.propertyIsEnumerable.call(e,t)};o.isSetSimpleEqual=function(e,t){for(const r of Set.prototype.values.call(e)){if(!Set.prototype.has.call(t,r)){return false}}return true};o.isDeepEqualObj=function(e,t,r,s,i){const{isDeepEqual:f,valueOf:c,hasOwnEnumerableProperty:a}=o;const{keys:u,getOwnPropertySymbols:l}=Object;if(e===n.array){if(s.part){for(const e of t){for(const t of r){if(f(e,t,s,i)){return true}}}}else{if(t.length!==r.length){return false}for(let e=0;e<t.length;++e){if(!f(t[e],r[e],s,i)){return false}}return true}}else if(e===n.set){if(t.size!==r.size){return false}if(!o.isSetSimpleEqual(t,r)){const e=new Set(Set.prototype.values.call(r));for(const r of Set.prototype.values.call(t)){if(e.delete(r)){continue}let t=false;for(const n of e){if(f(r,n,s,i)){e.delete(n);t=true;break}}if(!t){return false}}}}else if(e===n.map){if(t.size!==r.size){return false}for(const[e,n]of Map.prototype.entries.call(t)){if(n===undefined&&!Map.prototype.has.call(r,e)){return false}if(!f(n,Map.prototype.get.call(r,e),s,i)){return false}}}else if(e===n.error){if(t.name!==r.name||t.message!==r.message){return false}}const p=c(t);const y=c(r);if((t!==p||r!==y)&&!f(p,y,s,i)){return false}const h=u(t);if(!s.part&&h.length!==u(r).length&&!s.skip){return false}let d=0;for(const e of h){if(s.skip&&s.skip.includes(e)){if(r[e]===undefined){++d}continue}if(!a(r,e)){return false}if(!f(t[e],r[e],s,i)){return false}}if(!s.part&&h.length-d!==u(r).length){return false}if(s.symbols!==false){const e=l(t);const n=new Set(l(r));for(const o of e){if(!s.skip?.includes(o)){if(a(t,o)){if(!a(r,o)){return false}if(!f(t[o],r[o],s,i)){return false}}else if(a(r,o)){return false}}n.delete(o)}for(const e of n){if(a(r,e)){return false}}}return true};o.SeenEntry=class{constructor(e,t){this.obj=e;this.ref=t}isSame(e,t){return this.obj===e&&this.ref===t}}},810:function(e,t,r){const n=r(964);const o={};e.exports=function(e){n(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(e),"Bad attribute value ("+e+")");return e.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')}},52:function(e){const t={};e.exports=function(e){if(!e){return""}let r="";for(let n=0;n<e.length;++n){const o=e.charCodeAt(n);if(t.isSafe(o)){r+=e[n]}else{r+=t.escapeHtmlChar(o)}}return r};t.escapeHtmlChar=function(e){const r=t.namedHtml.get(e);if(r){return r}if(e>=256){return"&#"+e+";"}const n=e.toString(16).padStart(2,"0");return`&#x${n};`};t.isSafe=function(e){return t.safeCharCodes.has(e)};t.namedHtml=new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[34,"&quot;"],[160,"&nbsp;"],[162,"&cent;"],[163,"&pound;"],[164,"&curren;"],[169,"&copy;"],[174,"&reg;"]]);t.safeCharCodes=function(){const e=new Set;for(let t=32;t<123;++t){if(t>=97||t>=65&&t<=90||t>=48&&t<=57||t===32||t===46||t===44||t===45||t===58||t===95){e.add(t)}}return e}()},555:function(e){const t={};e.exports=function(e){if(!e){return""}return e.replace(/[<>&\u2028\u2029]/g,t.escape)};t.escape=function(e){return t.replacements.get(e)};t.replacements=new Map([["<","\\u003c"],[">","\\u003e"],["&","\\u0026"],["\u2028","\\u2028"],["\u2029","\\u2029"]])},6:function(e){const t={};e.exports=function(e){return e.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g,"\\$&")}},742:function(e){const t={};e.exports=t.flatten=function(e,r){const n=r||[];for(const r of e){if(Array.isArray(r)){t.flatten(r,n)}else{n.push(r)}}return n}},4:function(e){const t={};e.exports=function(){}},940:function(e,t,r){t.applyToDefaults=r(299);t.assert=r(964);t.AssertError=r(116);t.Bench=r(62);t.block=r(977);t.clone=r(425);t.contain=r(740);t.deepEqual=r(826);t.escapeHeaderAttribute=r(810);t.escapeHtml=r(52);t.escapeJson=r(555);t.escapeRegex=r(6);t.flatten=r(742);t.ignore=r(4);t.intersect=r(205);t.isPromise=r(569);t.merge=r(32);t.once=r(7);t.reach=r(435);t.reachTemplate=r(481);t.stringify=r(561);t.wait=r(851)},205:function(e){const t={};e.exports=function(e,r,n={}){if(!e||!r){return n.first?null:[]}const o=[];const s=Array.isArray(e)?new Set(e):e;const i=new Set;for(const e of r){if(t.has(s,e)&&!i.has(e)){if(n.first){return e}o.push(e);i.add(e)}}return n.first?null:o};t.has=function(e,t){if(typeof e.has==="function"){return e.has(t)}return e[t]!==undefined}},569:function(e){const t={};e.exports=function(e){return typeof e?.then==="function"}},32:function(e,t,r){const n=r(964);const o=r(425);const s=r(685);const i={};e.exports=i.merge=function(e,t,r){n(e&&typeof e==="object","Invalid target value: must be an object");n(t===null||t===undefined||typeof t==="object","Invalid source value: must be null, undefined, or an object");if(!t){return e}r=Object.assign({nullOverride:true,mergeArrays:true},r);if(Array.isArray(t)){n(Array.isArray(e),"Cannot merge array onto an object");if(!r.mergeArrays){e.length=0}for(let n=0;n<t.length;++n){e.push(o(t[n],{symbols:r.symbols}))}return e}const f=s.keys(t,r);for(let n=0;n<f.length;++n){const s=f[n];if(s==="__proto__"||!Object.prototype.propertyIsEnumerable.call(t,s)){continue}const c=t[s];if(c&&typeof c==="object"){if(e[s]===c){continue}if(!e[s]||typeof e[s]!=="object"||Array.isArray(e[s])!==Array.isArray(c)||c instanceof Date||Buffer&&Buffer.isBuffer(c)||c instanceof RegExp){e[s]=o(c,{symbols:r.symbols})}else{i.merge(e[s],c,r)}}else{if(c!==null&&c!==undefined){e[s]=c}else if(r.nullOverride){e[s]=c}}}return e}},7:function(e){const t={wrapped:Symbol("wrapped")};e.exports=function(e){if(e[t.wrapped]){return e}let r=false;const wrappedFn=function(...t){if(!r){r=true;e(...t)}};wrappedFn[t.wrapped]=true;return wrappedFn}},435:function(e,t,r){const n=r(964);const o={};e.exports=function(e,t,r){if(t===false||t===null||t===undefined){return e}r=r||{};if(typeof r==="string"){r={separator:r}}const s=Array.isArray(t);n(!s||!r.separator,"Separator option is not valid for array-based chain");const i=s?t:t.split(r.separator||".");let f=e;for(let e=0;e<i.length;++e){let s=i[e];const c=r.iterables&&o.iterables(f);if(Array.isArray(f)||c==="set"){const e=Number(s);if(Number.isInteger(e)){s=e<0?f.length+e:e}}if(!f||typeof f==="function"&&r.functions===false||!c&&f[s]===undefined){n(!r.strict||e+1===i.length,"Missing segment",s,"in reach path ",t);n(typeof f==="object"||r.functions===true||typeof f!=="function","Invalid segment",s,"in reach path ",t);f=r.default;break}if(!c){f=f[s]}else if(c==="set"){f=[...f][s]}else{f=f.get(s)}}return f};o.iterables=function(e){if(e instanceof Set){return"set"}if(e instanceof Map){return"map"}}},481:function(e,t,r){const n=r(435);const o={};e.exports=function(e,t,r){return t.replace(/{([^{}]+)}/g,((t,o)=>{const s=n(e,o,r);return s??""}))}},561:function(e){const t={};e.exports=function(...e){try{return JSON.stringify(...e)}catch(e){return"[Cannot display object: "+e.message+"]"}}},193:function(e,t){const r={};t=e.exports={array:Array.prototype,buffer:Buffer&&Buffer.prototype,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,url:URL.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype};r.typeMap=new Map([["[object Error]",t.error],["[object Map]",t.map],["[object Promise]",t.promise],["[object Set]",t.set],["[object URL]",t.url],["[object WeakMap]",t.weakMap],["[object WeakSet]",t.weakSet]]);t.getInternalProto=function(e){if(Array.isArray(e)){return t.array}if(Buffer&&e instanceof Buffer){return t.buffer}if(e instanceof Date){return t.date}if(e instanceof RegExp){return t.regex}if(e instanceof Error){return t.error}const n=Object.prototype.toString.call(e);return r.typeMap.get(n)||t.generic}},685:function(e,t){const r={};t.keys=function(e,t={}){return t.symbols!==false?Reflect.ownKeys(e):Object.getOwnPropertyNames(e)}},851:function(e){const t={maxTimer:2**31-1};e.exports=function(e,r,n){if(typeof e==="bigint"){e=Number(e)}if(e>=Number.MAX_SAFE_INTEGER){e=Infinity}if(typeof e!=="number"&&e!==undefined){throw new TypeError("Timeout must be a number or bigint")}return new Promise((o=>{const s=n?n.setTimeout:setTimeout;const activate=()=>{const n=Math.min(e,t.maxTimer);e-=n;s((()=>e>0?activate():o(r)),n)};if(e!==Infinity){activate()}}))}}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var o=t[r]={exports:{}};var s=true;try{e[r](o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete t[r]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r={};!function(){var e=r;const{assert:t}=__nccwpck_require__(940);const n={};e.Sorter=class{constructor(){this._items=[];this.nodes=[]}add(e,r){r=r??{};const n=[].concat(r.before??[]);const o=[].concat(r.after??[]);const s=r.group??"?";const i=r.sort??0;t(!n.includes(s),`Item cannot come before itself: ${s}`);t(!n.includes("?"),"Item cannot come before unassociated items");t(!o.includes(s),`Item cannot come after itself: ${s}`);t(!o.includes("?"),"Item cannot come after unassociated items");if(!Array.isArray(e)){e=[e]}for(const t of e){const e={seq:this._items.length,sort:i,before:n,after:o,group:s,node:t};this._items.push(e)}if(!r.manual){const e=this._sort();t(e,"item",s!=="?"?`added into group ${s}`:"","created a dependencies error")}return this.nodes}merge(e){if(!Array.isArray(e)){e=[e]}for(const t of e){if(t){for(const e of t._items){this._items.push(Object.assign({},e))}}}this._items.sort(n.mergeSort);for(let e=0;e<this._items.length;++e){this._items[e].seq=e}const r=this._sort();t(r,"merge created a dependencies error");return this.nodes}sort(){const e=this._sort();t(e,"sort created a dependencies error");return this.nodes}_sort(){const e={};const t=Object.create(null);const r=Object.create(null);for(const n of this._items){const o=n.seq;const s=n.group;r[s]=r[s]??[];r[s].push(o);e[o]=n.before;for(const e of n.after){t[e]=t[e]??[];t[e].push(o)}}for(const t in e){const n=[];for(const o in e[t]){const s=e[t][o];r[s]=r[s]??[];n.push(...r[s])}e[t]=n}for(const n in t){if(r[n]){for(const o of r[n]){e[o].push(...t[n])}}}const n={};for(const t in e){const r=e[t];for(const e of r){n[e]=n[e]??[];n[e].push(t)}}const o={};const s=[];for(let e=0;e<this._items.length;++e){let t=e;if(n[e]){t=null;for(let e=0;e<this._items.length;++e){if(o[e]===true){continue}if(!n[e]){n[e]=[]}const r=n[e].length;let s=0;for(let t=0;t<r;++t){if(o[n[e][t]]){++s}}if(s===r){t=e;break}}}if(t!==null){o[t]=true;s.push(t)}}if(s.length!==this._items.length){return false}const i={};for(const e of this._items){i[e.seq]=e}this._items=[];this.nodes=[];for(const e of s){const t=i[e];this.nodes.push(t.node);this._items.push(t)}return true}};n.mergeSort=(e,t)=>e.sort===t.sort?0:e.sort<t.sort?-1:1}();module.exports=r})();
@@ -0,0 +1 @@
1
+ {"name":"@hapi/topo","description":"Topological sorting with grouping support","version":"6.0.2","repository":"git://github.com/hapijs/topo","main":"lib/index.js","types":"lib/index.d.ts","files":["lib"],"keywords":["topological","sort","toposort","topsort"],"eslintConfig":{"extends":["plugin:@hapi/module"]},"dependencies":{"@hapi/hoek":"^11.0.2"},"devDependencies":{"@hapi/code":"^9.0.3","@hapi/eslint-plugin":"*","@hapi/lab":"^25.1.2","@types/node":"^17.0.31","typescript":"~4.6.4"},"scripts":{"test":"lab -a @hapi/code -t 100 -L -Y","test-cov-html":"lab -a @hapi/code -t 100 -L -r html -o coverage.html"},"license":"BSD-3-Clause","_lastModified":"2025-01-18T18:47:43.755Z"}
@@ -2,6 +2,7 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
5
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
7
  var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
7
8
  var __typeError = (msg) => {
@@ -21,6 +22,14 @@ var __copyProps = (to, from, except, desc) => {
21
22
  }
22
23
  return to;
23
24
  };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26
+ // If the importer is in node compatibility mode or this is not an ESM
27
+ // file that has been converted to a CommonJS file using a Babel-
28
+ // compatible transform (i.e. "__esModule" has not been set), then set
29
+ // "default" to the CommonJS "module.exports" for node compatibility.
30
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31
+ mod
32
+ ));
24
33
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
34
  var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
26
35
  var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
@@ -68,6 +77,9 @@ __export(cloud_libraries_service_exports, {
68
77
  module.exports = __toCommonJS(cloud_libraries_service_exports);
69
78
  var import_node_vm = require("node:vm");
70
79
  var import_utils = require("@tachybase/utils");
80
+ var babelParser = __toESM(require("@babel/parser"));
81
+ var import_traverse = __toESM(require("@babel/traverse"));
82
+ var import_topo = __toESM(require("@hapi/topo"));
71
83
  var import_cloud_compiler = require("./cloud-compiler");
72
84
  var _compiler_dec, _logger_dec, _app_dec, _db_dec, _CloudLibrariesService_decorators, _init;
73
85
  _CloudLibrariesService_decorators = [(0, import_utils.Service)()], _db_dec = [(0, import_utils.Db)()], _app_dec = [(0, import_utils.App)()], _logger_dec = [(0, import_utils.InjectLog)()], _compiler_dec = [(0, import_utils.Inject)(() => import_cloud_compiler.CloudCompiler)];
@@ -132,7 +144,30 @@ class CloudLibrariesService {
132
144
  isServer: true
133
145
  }
134
146
  });
147
+ const sorter = new import_topo.default.Sorter();
135
148
  for (const cloudLibrary of cloudLibraries) {
149
+ const ast = babelParser.parse(cloudLibrary.server, {
150
+ sourceType: "script"
151
+ // CommonJS 使用 script 模式
152
+ });
153
+ const dependencies = [];
154
+ (0, import_traverse.default)(ast, {
155
+ CallExpression(path) {
156
+ const callee = path.get("callee");
157
+ if (callee.isIdentifier({ name: "require" })) {
158
+ const args = path.get("arguments");
159
+ if (args.length > 0 && args[0].isStringLiteral()) {
160
+ dependencies.push(args[0].node.value);
161
+ }
162
+ }
163
+ }
164
+ });
165
+ sorter.add(cloudLibrary, {
166
+ after: dependencies,
167
+ group: cloudLibrary.module
168
+ });
169
+ }
170
+ for (const cloudLibrary of sorter.nodes) {
136
171
  this.logger.info(`load cloudLibrarie: ${cloudLibrary.module}`);
137
172
  const compiledCode = cloudLibrary.server;
138
173
  const script = new import_node_vm.Script(compiledCode);
@@ -159,7 +194,7 @@ class CloudLibrariesService {
159
194
  try {
160
195
  return require.call(this, moduleName);
161
196
  } catch (error) {
162
- that.logger.warn("module not found. ", { meta: error });
197
+ that.logger.warn(moduleName + " module not found. ", { meta: error });
163
198
  return {};
164
199
  }
165
200
  };
package/package.json CHANGED
@@ -1,17 +1,21 @@
1
1
  {
2
2
  "name": "@tachybase/module-cloud-component",
3
3
  "displayName": "Cloud component",
4
- "version": "0.23.22",
4
+ "version": "0.23.40",
5
5
  "description": "Cloud component",
6
6
  "main": "dist/server/index.js",
7
7
  "dependencies": {},
8
8
  "devDependencies": {
9
9
  "@babel/core": "7.26.0",
10
+ "@babel/parser": "7.26.3",
10
11
  "@babel/standalone": "7.26.4",
12
+ "@babel/traverse": "7.26.4",
11
13
  "@bytemd/plugin-gemoji": "1.21.0",
12
14
  "@bytemd/plugin-gfm": "1.21.0",
13
15
  "@bytemd/plugin-highlight": "1.21.0",
14
16
  "@bytemd/react": "1.21.0",
17
+ "@hapi/topo": "6.0.2",
18
+ "@types/babel__traverse": "7.20.6",
15
19
  "ahooks": "3.8.4",
16
20
  "antd": "5.22.5",
17
21
  "bytemd": "1.21.0",
@@ -26,16 +30,16 @@
26
30
  "react-error-boundary": "4.1.2",
27
31
  "react-router-dom": "6.28.1",
28
32
  "react-use": "17.6.0",
29
- "@tachybase/components": "0.23.22"
33
+ "@tachybase/components": "0.23.40"
30
34
  },
31
35
  "peerDependencies": {
32
- "@tachybase/actions": "0.23.22",
33
- "@tachybase/client": "0.23.22",
34
- "@tachybase/database": "0.23.22",
35
- "@tachybase/server": "0.23.22",
36
- "@tachybase/schema": "0.23.22",
37
- "@tachybase/test": "0.23.22",
38
- "@tachybase/utils": "0.23.22"
36
+ "@tachybase/actions": "0.23.40",
37
+ "@tachybase/client": "0.23.40",
38
+ "@tachybase/server": "0.23.40",
39
+ "@tachybase/schema": "0.23.40",
40
+ "@tachybase/database": "0.23.40",
41
+ "@tachybase/test": "0.23.40",
42
+ "@tachybase/utils": "0.23.40"
39
43
  },
40
44
  "description.zh-CN": "云组件",
41
45
  "displayName.zh-CN": "云组件",