@symbo.ls/sdk 2.32.1 → 2.32.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.
- package/dist/cjs/config/environment.js +8 -43
- package/dist/cjs/index.js +4 -12
- package/dist/cjs/services/AdminService.js +4 -4
- package/dist/cjs/services/AuthService.js +149 -36
- package/dist/cjs/services/BaseService.js +18 -5
- package/dist/cjs/services/BranchService.js +10 -10
- package/dist/cjs/services/CollabService.js +61 -163
- package/dist/cjs/services/CoreService.js +19 -19
- package/dist/cjs/services/DnsService.js +4 -4
- package/dist/cjs/services/FileService.js +2 -2
- package/dist/cjs/services/PaymentService.js +2 -2
- package/dist/cjs/services/PlanService.js +12 -12
- package/dist/cjs/services/ProjectService.js +34 -39
- package/dist/cjs/services/PullRequestService.js +7 -7
- package/dist/cjs/services/SubscriptionService.js +14 -14
- package/dist/cjs/services/index.js +0 -4
- package/dist/cjs/utils/TokenManager.js +5 -16
- package/dist/cjs/utils/services.js +1 -14
- package/dist/esm/config/environment.js +8 -43
- package/dist/esm/index.js +343 -937
- package/dist/esm/services/AdminService.js +35 -68
- package/dist/esm/services/AuthService.js +168 -100
- package/dist/esm/services/BaseService.js +31 -64
- package/dist/esm/services/BranchService.js +41 -74
- package/dist/esm/services/CollabService.js +93 -482
- package/dist/esm/services/CoreService.js +50 -83
- package/dist/esm/services/DnsService.js +35 -68
- package/dist/esm/services/FileService.js +33 -66
- package/dist/esm/services/PaymentService.js +33 -66
- package/dist/esm/services/PlanService.js +43 -76
- package/dist/esm/services/ProjectService.js +65 -356
- package/dist/esm/services/PullRequestService.js +38 -71
- package/dist/esm/services/SubscriptionService.js +45 -78
- package/dist/esm/services/index.js +338 -914
- package/dist/esm/utils/CollabClient.js +8 -43
- package/dist/esm/utils/TokenManager.js +5 -16
- package/dist/esm/utils/services.js +1 -14
- package/dist/node/config/environment.js +8 -43
- package/dist/node/index.js +5 -14
- package/dist/node/services/AdminService.js +4 -4
- package/dist/node/services/AuthService.js +139 -36
- package/dist/node/services/BaseService.js +18 -5
- package/dist/node/services/BranchService.js +10 -10
- package/dist/node/services/CollabService.js +62 -164
- package/dist/node/services/CoreService.js +19 -19
- package/dist/node/services/DnsService.js +4 -4
- package/dist/node/services/FileService.js +2 -2
- package/dist/node/services/PaymentService.js +2 -2
- package/dist/node/services/PlanService.js +12 -12
- package/dist/node/services/ProjectService.js +34 -39
- package/dist/node/services/PullRequestService.js +7 -7
- package/dist/node/services/SubscriptionService.js +14 -14
- package/dist/node/services/index.js +0 -4
- package/dist/node/utils/TokenManager.js +5 -16
- package/dist/node/utils/services.js +1 -14
- package/package.json +6 -7
- package/src/config/environment.js +9 -48
- package/src/index.js +22 -38
- package/src/services/AdminService.js +4 -4
- package/src/services/AuthService.js +175 -42
- package/src/services/BaseService.js +24 -7
- package/src/services/BranchService.js +10 -10
- package/src/services/CollabService.js +72 -203
- package/src/services/CoreService.js +19 -19
- package/src/services/DnsService.js +4 -4
- package/src/services/FileService.js +2 -2
- package/src/services/PaymentService.js +2 -2
- package/src/services/PlanService.js +12 -12
- package/src/services/ProjectService.js +34 -41
- package/src/services/PullRequestService.js +7 -7
- package/src/services/SubscriptionService.js +14 -14
- package/src/services/index.js +1 -6
- package/src/utils/TokenManager.js +5 -19
- package/src/utils/services.js +1 -15
- package/dist/cjs/services/ScreenshotService.js +0 -304
- package/dist/cjs/utils/ordering.js +0 -276
- package/dist/esm/services/ScreenshotService.js +0 -992
- package/dist/esm/utils/ordering.js +0 -258
- package/dist/node/services/ScreenshotService.js +0 -285
- package/dist/node/utils/ordering.js +0 -257
- package/src/services/ScreenshotService.js +0 -258
- package/src/utils/ordering.js +0 -244
|
@@ -28,28 +28,18 @@ var CONFIG = {
|
|
|
28
28
|
// For based api
|
|
29
29
|
basedOrg: "symbols",
|
|
30
30
|
// For based api
|
|
31
|
-
githubClientId: "
|
|
31
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF",
|
|
32
32
|
// For github api
|
|
33
33
|
// Environment-specific feature toggles (override common)
|
|
34
34
|
features: {
|
|
35
35
|
betaFeatures: true
|
|
36
36
|
// Enable beta features in local dev
|
|
37
|
-
}
|
|
38
|
-
typesenseCollectionName: "docs",
|
|
39
|
-
typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
|
|
40
|
-
typesenseHost: "localhost",
|
|
41
|
-
typesensePort: "8108",
|
|
42
|
-
typesenseProtocol: "http"
|
|
37
|
+
}
|
|
43
38
|
},
|
|
44
39
|
development: {
|
|
45
40
|
socketUrl: "https://dev.api.symbols.app",
|
|
46
41
|
apiUrl: "https://dev.api.symbols.app",
|
|
47
|
-
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
48
|
-
typesenseCollectionName: "docs",
|
|
49
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
50
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
51
|
-
typesensePort: "443",
|
|
52
|
-
typesenseProtocol: "https"
|
|
42
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
53
43
|
},
|
|
54
44
|
testing: {
|
|
55
45
|
socketUrl: "https://test.api.symbols.app",
|
|
@@ -57,22 +47,12 @@ var CONFIG = {
|
|
|
57
47
|
basedEnv: "testing",
|
|
58
48
|
basedProject: "platform-v2-sm",
|
|
59
49
|
basedOrg: "symbols",
|
|
60
|
-
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
61
|
-
typesenseCollectionName: "docs",
|
|
62
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
63
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
64
|
-
typesensePort: "443",
|
|
65
|
-
typesenseProtocol: "https"
|
|
50
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
66
51
|
},
|
|
67
52
|
upcoming: {
|
|
68
53
|
socketUrl: "https://upcoming.api.symbols.app",
|
|
69
54
|
apiUrl: "https://upcoming.api.symbols.app",
|
|
70
|
-
githubClientId: "Ov23liWF7NvdZ056RV5J"
|
|
71
|
-
typesenseCollectionName: "docs",
|
|
72
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
73
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
74
|
-
typesensePort: "443",
|
|
75
|
-
typesenseProtocol: "https"
|
|
55
|
+
githubClientId: "Ov23liWF7NvdZ056RV5J"
|
|
76
56
|
},
|
|
77
57
|
staging: {
|
|
78
58
|
socketUrl: "https://staging.api.symbols.app",
|
|
@@ -80,12 +60,7 @@ var CONFIG = {
|
|
|
80
60
|
basedEnv: "staging",
|
|
81
61
|
basedProject: "platform-v2-sm",
|
|
82
62
|
basedOrg: "symbols",
|
|
83
|
-
githubClientId: "Ov23ligwZDQVD0VfuWNa"
|
|
84
|
-
typesenseCollectionName: "docs",
|
|
85
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
86
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
87
|
-
typesensePort: "443",
|
|
88
|
-
typesenseProtocol: "https"
|
|
63
|
+
githubClientId: "Ov23ligwZDQVD0VfuWNa"
|
|
89
64
|
},
|
|
90
65
|
production: {
|
|
91
66
|
socketUrl: "https://api.symbols.app",
|
|
@@ -93,12 +68,7 @@ var CONFIG = {
|
|
|
93
68
|
basedEnv: "production",
|
|
94
69
|
basedProject: "platform-v2-sm",
|
|
95
70
|
basedOrg: "symbols",
|
|
96
|
-
githubClientId: "Ov23liFAlOEIXtX3dBtR"
|
|
97
|
-
typesenseCollectionName: "docs",
|
|
98
|
-
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
99
|
-
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
100
|
-
typesensePort: "443",
|
|
101
|
-
typesenseProtocol: "https"
|
|
71
|
+
githubClientId: "Ov23liFAlOEIXtX3dBtR"
|
|
102
72
|
}
|
|
103
73
|
};
|
|
104
74
|
var getEnvironment = () => {
|
|
@@ -120,11 +90,6 @@ var getConfig = () => {
|
|
|
120
90
|
basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
|
|
121
91
|
basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
|
|
122
92
|
githubClientId: process.env.SYMBOLS_APP_GITHUB_CLIENT_ID || envConfig.githubClientId,
|
|
123
|
-
typesenseCollectionName: process.env.TYPESENSE_COLLECTION_NAME || envConfig.typesenseCollectionName,
|
|
124
|
-
typesenseApiKey: process.env.TYPESENSE_API_KEY || envConfig.typesenseApiKey,
|
|
125
|
-
typesenseHost: process.env.TYPESENSE_HOST || envConfig.typesenseHost,
|
|
126
|
-
typesensePort: process.env.TYPESENSE_PORT || envConfig.typesensePort,
|
|
127
|
-
typesenseProtocol: process.env.TYPESENSE_PROTOCOL || envConfig.typesenseProtocol,
|
|
128
93
|
isDevelopment: isDevelopment(env),
|
|
129
94
|
isTesting: env === "testing",
|
|
130
95
|
isStaging: env === "staging",
|
|
@@ -144,7 +109,7 @@ var getConfig = () => {
|
|
|
144
109
|
);
|
|
145
110
|
}
|
|
146
111
|
if (finalConfig.isDevelopment) {
|
|
147
|
-
console.
|
|
112
|
+
console.log(
|
|
148
113
|
"environment in SDK:",
|
|
149
114
|
env || process.env.NODE_ENV || process.env.NODE_ENV
|
|
150
115
|
);
|
|
@@ -183,7 +148,7 @@ var TokenManager = class {
|
|
|
183
148
|
});
|
|
184
149
|
this.config = {
|
|
185
150
|
storagePrefix: "symbols_",
|
|
186
|
-
storageType: typeof window === "undefined" || process.env.NODE_ENV === "test"
|
|
151
|
+
storageType: typeof window === "undefined" || process.env.NODE_ENV === "test" ? "memory" : "localStorage",
|
|
187
152
|
// 'localStorage' | 'sessionStorage' | 'memory'
|
|
188
153
|
refreshBuffer: 60 * 1e3,
|
|
189
154
|
// Refresh 1 minute before expiry
|
|
@@ -223,26 +188,15 @@ var TokenManager = class {
|
|
|
223
188
|
if (typeof window === "undefined") {
|
|
224
189
|
return this._memoryStorage;
|
|
225
190
|
}
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
const storage = provider();
|
|
229
|
-
const testKey = `${this.config.storagePrefix}__tm_test__`;
|
|
230
|
-
storage.setItem(testKey, "1");
|
|
231
|
-
storage.removeItem(testKey);
|
|
232
|
-
return storage;
|
|
233
|
-
} catch {
|
|
234
|
-
return null;
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
const localStorageInstance = safeGetStorage(() => window.localStorage);
|
|
238
|
-
const sessionStorageInstance = safeGetStorage(() => window.sessionStorage);
|
|
191
|
+
const hasLocalStorage = typeof window.localStorage !== "undefined";
|
|
192
|
+
const hasSessionStorage = typeof window.sessionStorage !== "undefined";
|
|
239
193
|
switch (this.config.storageType) {
|
|
240
194
|
case "sessionStorage":
|
|
241
|
-
return
|
|
195
|
+
return hasSessionStorage ? window.sessionStorage : this._memoryStorage;
|
|
242
196
|
case "memory":
|
|
243
197
|
return this._memoryStorage;
|
|
244
198
|
default:
|
|
245
|
-
return
|
|
199
|
+
return hasLocalStorage ? window.localStorage : this._memoryStorage;
|
|
246
200
|
}
|
|
247
201
|
}
|
|
248
202
|
/**
|
|
@@ -581,10 +535,20 @@ var BaseService = class {
|
|
|
581
535
|
}
|
|
582
536
|
this._tokenManager = getTokenManager({
|
|
583
537
|
apiUrl: this._apiUrl,
|
|
538
|
+
onTokenRefresh: (tokens) => {
|
|
539
|
+
this.updateContext({ authToken: tokens.accessToken });
|
|
540
|
+
},
|
|
541
|
+
onTokenExpired: () => {
|
|
542
|
+
this.updateContext({ authToken: null });
|
|
543
|
+
},
|
|
584
544
|
onTokenError: (error) => {
|
|
585
545
|
console.error("Token management error:", error);
|
|
586
546
|
}
|
|
587
547
|
});
|
|
548
|
+
const { authToken } = this._context;
|
|
549
|
+
if (authToken && !this._tokenManager.hasTokens()) {
|
|
550
|
+
this._tokenManager.setTokens({ access_token: authToken });
|
|
551
|
+
}
|
|
588
552
|
this._setReady();
|
|
589
553
|
} catch (error) {
|
|
590
554
|
this._setError(error);
|
|
@@ -593,9 +557,7 @@ var BaseService = class {
|
|
|
593
557
|
}
|
|
594
558
|
// Update context
|
|
595
559
|
updateContext(context) {
|
|
596
|
-
|
|
597
|
-
Object.assign(this._context, context);
|
|
598
|
-
}
|
|
560
|
+
this._context = { ...this._context, ...context };
|
|
599
561
|
}
|
|
600
562
|
// Get service status
|
|
601
563
|
getStatus() {
|
|
@@ -650,6 +612,11 @@ var BaseService = class {
|
|
|
650
612
|
error
|
|
651
613
|
);
|
|
652
614
|
}
|
|
615
|
+
} else if (this._requiresInit(options.methodName)) {
|
|
616
|
+
const { authToken } = this._context;
|
|
617
|
+
if (authToken) {
|
|
618
|
+
defaultHeaders.Authorization = `Bearer ${authToken}`;
|
|
619
|
+
}
|
|
653
620
|
}
|
|
654
621
|
try {
|
|
655
622
|
const response = await fetch(url, {
|
|
@@ -667,11 +634,11 @@ var BaseService = class {
|
|
|
667
634
|
error = await response.json();
|
|
668
635
|
} catch {
|
|
669
636
|
}
|
|
670
|
-
throw new Error(error.message || error.error || "Request failed"
|
|
637
|
+
throw new Error(error.message || error.error || "Request failed");
|
|
671
638
|
}
|
|
672
639
|
return response.status === 204 ? null : response.json();
|
|
673
640
|
} catch (error) {
|
|
674
|
-
throw new Error(`Request failed: ${error.message}
|
|
641
|
+
throw new Error(`Request failed: ${error.message}`);
|
|
675
642
|
}
|
|
676
643
|
}
|
|
677
644
|
// Helper method to determine if a method requires initialization
|
|
@@ -704,260 +671,6 @@ var BaseService = class {
|
|
|
704
671
|
}
|
|
705
672
|
};
|
|
706
673
|
|
|
707
|
-
// src/utils/ordering.js
|
|
708
|
-
function isObjectLike(val) {
|
|
709
|
-
return val && typeof val === "object" && !Array.isArray(val);
|
|
710
|
-
}
|
|
711
|
-
function normalizePath(path) {
|
|
712
|
-
if (Array.isArray(path)) {
|
|
713
|
-
return path;
|
|
714
|
-
}
|
|
715
|
-
if (typeof path === "string") {
|
|
716
|
-
return [path];
|
|
717
|
-
}
|
|
718
|
-
return [];
|
|
719
|
-
}
|
|
720
|
-
function getParentPathsFromTuples(tuples = []) {
|
|
721
|
-
const seen = /* @__PURE__ */ new Set();
|
|
722
|
-
const parents = [];
|
|
723
|
-
const META_KEYS = /* @__PURE__ */ new Set([
|
|
724
|
-
"style",
|
|
725
|
-
"class",
|
|
726
|
-
"text",
|
|
727
|
-
"html",
|
|
728
|
-
"content",
|
|
729
|
-
"data",
|
|
730
|
-
"attr",
|
|
731
|
-
"state",
|
|
732
|
-
"scope",
|
|
733
|
-
"props",
|
|
734
|
-
"define",
|
|
735
|
-
"on",
|
|
736
|
-
"extend",
|
|
737
|
-
"extends",
|
|
738
|
-
"childExtend",
|
|
739
|
-
"childExtends",
|
|
740
|
-
"childProps",
|
|
741
|
-
"children",
|
|
742
|
-
"component",
|
|
743
|
-
"context",
|
|
744
|
-
"tag",
|
|
745
|
-
"key",
|
|
746
|
-
"__order",
|
|
747
|
-
"if"
|
|
748
|
-
]);
|
|
749
|
-
for (let i = 0; i < tuples.length; i++) {
|
|
750
|
-
const tuple = tuples[i];
|
|
751
|
-
if (!Array.isArray(tuple) || tuple.length < 2) {
|
|
752
|
-
continue;
|
|
753
|
-
}
|
|
754
|
-
const path = normalizePath(tuple[1]);
|
|
755
|
-
if (!path.length) {
|
|
756
|
-
continue;
|
|
757
|
-
}
|
|
758
|
-
if (path[0] === "schema") {
|
|
759
|
-
continue;
|
|
760
|
-
}
|
|
761
|
-
const immediateParent = path.slice(0, -1);
|
|
762
|
-
if (immediateParent.length) {
|
|
763
|
-
const key = JSON.stringify(immediateParent);
|
|
764
|
-
if (!seen.has(key)) {
|
|
765
|
-
seen.add(key);
|
|
766
|
-
parents.push(immediateParent);
|
|
767
|
-
}
|
|
768
|
-
}
|
|
769
|
-
const last = path[path.length - 1];
|
|
770
|
-
if (META_KEYS.has(last) && path.length >= 2) {
|
|
771
|
-
const containerParent = path.slice(0, -2);
|
|
772
|
-
if (containerParent.length) {
|
|
773
|
-
const key2 = JSON.stringify(containerParent);
|
|
774
|
-
if (!seen.has(key2)) {
|
|
775
|
-
seen.add(key2);
|
|
776
|
-
parents.push(containerParent);
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
}
|
|
780
|
-
for (let j = 0; j < path.length; j++) {
|
|
781
|
-
const seg = path[j];
|
|
782
|
-
if (!META_KEYS.has(seg)) {
|
|
783
|
-
continue;
|
|
784
|
-
}
|
|
785
|
-
const containerParent2 = path.slice(0, j);
|
|
786
|
-
if (!containerParent2.length) {
|
|
787
|
-
continue;
|
|
788
|
-
}
|
|
789
|
-
const key3 = JSON.stringify(containerParent2);
|
|
790
|
-
if (!seen.has(key3)) {
|
|
791
|
-
seen.add(key3);
|
|
792
|
-
parents.push(containerParent2);
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
return parents;
|
|
797
|
-
}
|
|
798
|
-
function computeOrdersFromState(root, parentPaths = []) {
|
|
799
|
-
if (!root || typeof root.getByPath !== "function") {
|
|
800
|
-
return [];
|
|
801
|
-
}
|
|
802
|
-
const orders = [];
|
|
803
|
-
const EXCLUDE_KEYS = /* @__PURE__ */ new Set(["__order"]);
|
|
804
|
-
for (let i = 0; i < parentPaths.length; i++) {
|
|
805
|
-
const parentPath = parentPaths[i];
|
|
806
|
-
const obj = (() => {
|
|
807
|
-
try {
|
|
808
|
-
return root.getByPath(parentPath);
|
|
809
|
-
} catch {
|
|
810
|
-
return null;
|
|
811
|
-
}
|
|
812
|
-
})();
|
|
813
|
-
if (!isObjectLike(obj)) {
|
|
814
|
-
continue;
|
|
815
|
-
}
|
|
816
|
-
const keys = Object.keys(obj).filter((k) => !EXCLUDE_KEYS.has(k));
|
|
817
|
-
orders.push({ path: parentPath, keys });
|
|
818
|
-
}
|
|
819
|
-
return orders;
|
|
820
|
-
}
|
|
821
|
-
function normaliseSchemaCode(code) {
|
|
822
|
-
if (typeof code !== "string" || !code.length) {
|
|
823
|
-
return "";
|
|
824
|
-
}
|
|
825
|
-
return code.replaceAll("/////n", "\n").replaceAll("/////tilde", "`");
|
|
826
|
-
}
|
|
827
|
-
function parseExportedObject(code) {
|
|
828
|
-
const src = normaliseSchemaCode(code);
|
|
829
|
-
if (!src) {
|
|
830
|
-
return null;
|
|
831
|
-
}
|
|
832
|
-
const body = src.replace(/^\s*export\s+default\s*/u, "return ");
|
|
833
|
-
try {
|
|
834
|
-
return new Function(body)();
|
|
835
|
-
} catch {
|
|
836
|
-
return null;
|
|
837
|
-
}
|
|
838
|
-
}
|
|
839
|
-
function extractTopLevelKeysFromCode(code) {
|
|
840
|
-
const obj = parseExportedObject(code);
|
|
841
|
-
if (!obj || typeof obj !== "object") {
|
|
842
|
-
return [];
|
|
843
|
-
}
|
|
844
|
-
return Object.keys(obj);
|
|
845
|
-
}
|
|
846
|
-
function computeOrdersForTuples(root, tuples = []) {
|
|
847
|
-
const pendingChildrenByContainer = /* @__PURE__ */ new Map();
|
|
848
|
-
for (let i = 0; i < tuples.length; i++) {
|
|
849
|
-
const t = tuples[i];
|
|
850
|
-
if (!Array.isArray(t)) {
|
|
851
|
-
continue;
|
|
852
|
-
}
|
|
853
|
-
const [action, path] = t;
|
|
854
|
-
const p = normalizePath(path);
|
|
855
|
-
if (!Array.isArray(p) || p.length < 3) {
|
|
856
|
-
continue;
|
|
857
|
-
}
|
|
858
|
-
if (p[0] === "schema") {
|
|
859
|
-
continue;
|
|
860
|
-
}
|
|
861
|
-
const [typeName, containerKey, childKey] = p;
|
|
862
|
-
const containerPath = [typeName, containerKey];
|
|
863
|
-
const key = JSON.stringify(containerPath);
|
|
864
|
-
if (!pendingChildrenByContainer.has(key)) {
|
|
865
|
-
pendingChildrenByContainer.set(key, /* @__PURE__ */ new Set());
|
|
866
|
-
}
|
|
867
|
-
if (action === "update" || action === "set") {
|
|
868
|
-
pendingChildrenByContainer.get(key).add(childKey);
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
const preferredOrderMap = /* @__PURE__ */ new Map();
|
|
872
|
-
for (let i = 0; i < tuples.length; i++) {
|
|
873
|
-
const t = tuples[i];
|
|
874
|
-
if (!Array.isArray(t)) {
|
|
875
|
-
continue;
|
|
876
|
-
}
|
|
877
|
-
const [action, path, value] = t;
|
|
878
|
-
const p = normalizePath(path);
|
|
879
|
-
if (action !== "update" || !Array.isArray(p) || p.length < 3) {
|
|
880
|
-
continue;
|
|
881
|
-
}
|
|
882
|
-
if (p[0] !== "schema") {
|
|
883
|
-
continue;
|
|
884
|
-
}
|
|
885
|
-
const [, type, key] = p;
|
|
886
|
-
const containerPath = [type, key];
|
|
887
|
-
const uses = value && Array.isArray(value.uses) ? value.uses : null;
|
|
888
|
-
const code = value && value.code;
|
|
889
|
-
const obj = (() => {
|
|
890
|
-
try {
|
|
891
|
-
return root && typeof root.getByPath === "function" ? root.getByPath(containerPath) : null;
|
|
892
|
-
} catch {
|
|
893
|
-
return null;
|
|
894
|
-
}
|
|
895
|
-
})();
|
|
896
|
-
if (!obj) {
|
|
897
|
-
continue;
|
|
898
|
-
}
|
|
899
|
-
const present = new Set(Object.keys(obj));
|
|
900
|
-
const EXCLUDE_KEYS = /* @__PURE__ */ new Set(["__order"]);
|
|
901
|
-
const codeKeys = extractTopLevelKeysFromCode(code);
|
|
902
|
-
let resolved = [];
|
|
903
|
-
const pendingKey = JSON.stringify(containerPath);
|
|
904
|
-
const pendingChildren = pendingChildrenByContainer.get(pendingKey) || /* @__PURE__ */ new Set();
|
|
905
|
-
const eligible = /* @__PURE__ */ new Set([...present, ...pendingChildren]);
|
|
906
|
-
if (Array.isArray(codeKeys) && codeKeys.length) {
|
|
907
|
-
resolved = codeKeys.filter((k) => eligible.has(k) && !EXCLUDE_KEYS.has(k));
|
|
908
|
-
}
|
|
909
|
-
if (Array.isArray(uses) && uses.length) {
|
|
910
|
-
for (let u = 0; u < uses.length; u++) {
|
|
911
|
-
const keyName = uses[u];
|
|
912
|
-
if (eligible.has(keyName) && !EXCLUDE_KEYS.has(keyName) && !resolved.includes(keyName)) {
|
|
913
|
-
resolved.push(keyName);
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
}
|
|
917
|
-
if (pendingChildren.size) {
|
|
918
|
-
for (const child of pendingChildren) {
|
|
919
|
-
if (!EXCLUDE_KEYS.has(child) && !resolved.includes(child)) {
|
|
920
|
-
resolved.push(child);
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
if (resolved.length) {
|
|
925
|
-
preferredOrderMap.set(JSON.stringify(containerPath), { path: containerPath, keys: resolved });
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
const parents = getParentPathsFromTuples(tuples);
|
|
929
|
-
const orders = [];
|
|
930
|
-
const seen = /* @__PURE__ */ new Set();
|
|
931
|
-
preferredOrderMap.forEach((v) => {
|
|
932
|
-
const k = JSON.stringify(v.path);
|
|
933
|
-
if (!seen.has(k)) {
|
|
934
|
-
seen.add(k);
|
|
935
|
-
orders.push(v);
|
|
936
|
-
}
|
|
937
|
-
});
|
|
938
|
-
const fallbackOrders = computeOrdersFromState(root, parents);
|
|
939
|
-
for (let i = 0; i < fallbackOrders.length; i++) {
|
|
940
|
-
const v = fallbackOrders[i];
|
|
941
|
-
const k = JSON.stringify(v.path);
|
|
942
|
-
if (seen.has(k)) {
|
|
943
|
-
continue;
|
|
944
|
-
}
|
|
945
|
-
const pending = pendingChildrenByContainer.get(k);
|
|
946
|
-
if (pending && pending.size) {
|
|
947
|
-
const existing = new Set(v.keys);
|
|
948
|
-
for (const child of pending) {
|
|
949
|
-
if (existing.has(child)) {
|
|
950
|
-
continue;
|
|
951
|
-
}
|
|
952
|
-
v.keys.push(child);
|
|
953
|
-
}
|
|
954
|
-
}
|
|
955
|
-
seen.add(k);
|
|
956
|
-
orders.push(v);
|
|
957
|
-
}
|
|
958
|
-
return orders;
|
|
959
|
-
}
|
|
960
|
-
|
|
961
674
|
// src/services/ProjectService.js
|
|
962
675
|
var ProjectService = class extends BaseService {
|
|
963
676
|
// ==================== PROJECT METHODS ====================
|
|
@@ -974,7 +687,7 @@ var ProjectService = class extends BaseService {
|
|
|
974
687
|
}
|
|
975
688
|
throw new Error(response.message);
|
|
976
689
|
} catch (error) {
|
|
977
|
-
throw new Error(`Failed to create project: ${error.message}
|
|
690
|
+
throw new Error(`Failed to create project: ${error.message}`);
|
|
978
691
|
}
|
|
979
692
|
}
|
|
980
693
|
async getProjects(params = {}) {
|
|
@@ -997,7 +710,7 @@ var ProjectService = class extends BaseService {
|
|
|
997
710
|
}
|
|
998
711
|
throw new Error(response.message);
|
|
999
712
|
} catch (error) {
|
|
1000
|
-
throw new Error(`Failed to get projects: ${error.message}
|
|
713
|
+
throw new Error(`Failed to get projects: ${error.message}`);
|
|
1001
714
|
}
|
|
1002
715
|
}
|
|
1003
716
|
/**
|
|
@@ -1028,7 +741,7 @@ var ProjectService = class extends BaseService {
|
|
|
1028
741
|
}
|
|
1029
742
|
throw new Error(response.message);
|
|
1030
743
|
} catch (error) {
|
|
1031
|
-
throw new Error(`Failed to list public projects: ${error.message}
|
|
744
|
+
throw new Error(`Failed to list public projects: ${error.message}`);
|
|
1032
745
|
}
|
|
1033
746
|
}
|
|
1034
747
|
async getProject(projectId) {
|
|
@@ -1050,7 +763,7 @@ var ProjectService = class extends BaseService {
|
|
|
1050
763
|
}
|
|
1051
764
|
throw new Error(response.message);
|
|
1052
765
|
} catch (error) {
|
|
1053
|
-
throw new Error(`Failed to get project: ${error.message}
|
|
766
|
+
throw new Error(`Failed to get project: ${error.message}`);
|
|
1054
767
|
}
|
|
1055
768
|
}
|
|
1056
769
|
/**
|
|
@@ -1075,7 +788,7 @@ var ProjectService = class extends BaseService {
|
|
|
1075
788
|
}
|
|
1076
789
|
throw new Error(response.message);
|
|
1077
790
|
} catch (error) {
|
|
1078
|
-
throw new Error(`Failed to get public project: ${error.message}
|
|
791
|
+
throw new Error(`Failed to get public project: ${error.message}`);
|
|
1079
792
|
}
|
|
1080
793
|
}
|
|
1081
794
|
async getProjectByKey(key) {
|
|
@@ -1097,7 +810,7 @@ var ProjectService = class extends BaseService {
|
|
|
1097
810
|
}
|
|
1098
811
|
throw new Error(response.message);
|
|
1099
812
|
} catch (error) {
|
|
1100
|
-
throw new Error(`Failed to get project by key: ${error.message}
|
|
813
|
+
throw new Error(`Failed to get project by key: ${error.message}`);
|
|
1101
814
|
}
|
|
1102
815
|
}
|
|
1103
816
|
/**
|
|
@@ -1131,7 +844,7 @@ var ProjectService = class extends BaseService {
|
|
|
1131
844
|
}
|
|
1132
845
|
throw new Error(response.message);
|
|
1133
846
|
} catch (error) {
|
|
1134
|
-
throw new Error(`Failed to get project data by key: ${error.message}
|
|
847
|
+
throw new Error(`Failed to get project data by key: ${error.message}`);
|
|
1135
848
|
}
|
|
1136
849
|
}
|
|
1137
850
|
async updateProject(projectId, data) {
|
|
@@ -1150,7 +863,7 @@ var ProjectService = class extends BaseService {
|
|
|
1150
863
|
}
|
|
1151
864
|
throw new Error(response.message);
|
|
1152
865
|
} catch (error) {
|
|
1153
|
-
throw new Error(`Failed to update project: ${error.message}
|
|
866
|
+
throw new Error(`Failed to update project: ${error.message}`);
|
|
1154
867
|
}
|
|
1155
868
|
}
|
|
1156
869
|
async updateProjectComponents(projectId, components) {
|
|
@@ -1172,7 +885,7 @@ var ProjectService = class extends BaseService {
|
|
|
1172
885
|
}
|
|
1173
886
|
throw new Error(response.message);
|
|
1174
887
|
} catch (error) {
|
|
1175
|
-
throw new Error(`Failed to update project components: ${error.message}
|
|
888
|
+
throw new Error(`Failed to update project components: ${error.message}`);
|
|
1176
889
|
}
|
|
1177
890
|
}
|
|
1178
891
|
async updateProjectSettings(projectId, settings) {
|
|
@@ -1191,7 +904,7 @@ var ProjectService = class extends BaseService {
|
|
|
1191
904
|
}
|
|
1192
905
|
throw new Error(response.message);
|
|
1193
906
|
} catch (error) {
|
|
1194
|
-
throw new Error(`Failed to update project settings: ${error.message}
|
|
907
|
+
throw new Error(`Failed to update project settings: ${error.message}`);
|
|
1195
908
|
}
|
|
1196
909
|
}
|
|
1197
910
|
async updateProjectName(projectId, name) {
|
|
@@ -1210,7 +923,7 @@ var ProjectService = class extends BaseService {
|
|
|
1210
923
|
}
|
|
1211
924
|
throw new Error(response.message);
|
|
1212
925
|
} catch (error) {
|
|
1213
|
-
throw new Error(`Failed to update project name: ${error.message}
|
|
926
|
+
throw new Error(`Failed to update project name: ${error.message}`);
|
|
1214
927
|
}
|
|
1215
928
|
}
|
|
1216
929
|
async updateProjectPackage(projectId, pkg) {
|
|
@@ -1229,7 +942,7 @@ var ProjectService = class extends BaseService {
|
|
|
1229
942
|
}
|
|
1230
943
|
throw new Error(response.message);
|
|
1231
944
|
} catch (error) {
|
|
1232
|
-
throw new Error(`Failed to update project package: ${error.message}
|
|
945
|
+
throw new Error(`Failed to update project package: ${error.message}`);
|
|
1233
946
|
}
|
|
1234
947
|
}
|
|
1235
948
|
async duplicateProject(projectId, newName, newKey, targetUserId) {
|
|
@@ -1248,7 +961,7 @@ var ProjectService = class extends BaseService {
|
|
|
1248
961
|
}
|
|
1249
962
|
throw new Error(response.message);
|
|
1250
963
|
} catch (error) {
|
|
1251
|
-
throw new Error(`Failed to duplicate project: ${error.message}
|
|
964
|
+
throw new Error(`Failed to duplicate project: ${error.message}`);
|
|
1252
965
|
}
|
|
1253
966
|
}
|
|
1254
967
|
async removeProject(projectId) {
|
|
@@ -1266,7 +979,7 @@ var ProjectService = class extends BaseService {
|
|
|
1266
979
|
}
|
|
1267
980
|
throw new Error(response.message);
|
|
1268
981
|
} catch (error) {
|
|
1269
|
-
throw new Error(`Failed to remove project: ${error.message}
|
|
982
|
+
throw new Error(`Failed to remove project: ${error.message}`);
|
|
1270
983
|
}
|
|
1271
984
|
}
|
|
1272
985
|
async checkProjectKeyAvailability(key) {
|
|
@@ -1285,8 +998,7 @@ var ProjectService = class extends BaseService {
|
|
|
1285
998
|
throw new Error(response.message);
|
|
1286
999
|
} catch (error) {
|
|
1287
1000
|
throw new Error(
|
|
1288
|
-
`Failed to check project key availability: ${error.message}
|
|
1289
|
-
{ cause: error }
|
|
1001
|
+
`Failed to check project key availability: ${error.message}`
|
|
1290
1002
|
);
|
|
1291
1003
|
}
|
|
1292
1004
|
}
|
|
@@ -1306,7 +1018,7 @@ var ProjectService = class extends BaseService {
|
|
|
1306
1018
|
}
|
|
1307
1019
|
throw new Error(response.message);
|
|
1308
1020
|
} catch (error) {
|
|
1309
|
-
throw new Error(`Failed to get project members: ${error.message}
|
|
1021
|
+
throw new Error(`Failed to get project members: ${error.message}`);
|
|
1310
1022
|
}
|
|
1311
1023
|
}
|
|
1312
1024
|
async inviteMember(projectId, email, role = "guest", options = {}) {
|
|
@@ -1335,7 +1047,7 @@ var ProjectService = class extends BaseService {
|
|
|
1335
1047
|
}
|
|
1336
1048
|
throw new Error(response.message);
|
|
1337
1049
|
} catch (error) {
|
|
1338
|
-
throw new Error(`Failed to invite member: ${error.message}
|
|
1050
|
+
throw new Error(`Failed to invite member: ${error.message}`);
|
|
1339
1051
|
}
|
|
1340
1052
|
}
|
|
1341
1053
|
async acceptInvite(token) {
|
|
@@ -1354,7 +1066,7 @@ var ProjectService = class extends BaseService {
|
|
|
1354
1066
|
}
|
|
1355
1067
|
throw new Error(response.message);
|
|
1356
1068
|
} catch (error) {
|
|
1357
|
-
throw new Error(`Failed to accept invite: ${error.message}
|
|
1069
|
+
throw new Error(`Failed to accept invite: ${error.message}`);
|
|
1358
1070
|
}
|
|
1359
1071
|
}
|
|
1360
1072
|
async updateMemberRole(projectId, memberId, role) {
|
|
@@ -1376,7 +1088,7 @@ var ProjectService = class extends BaseService {
|
|
|
1376
1088
|
}
|
|
1377
1089
|
throw new Error(response.message);
|
|
1378
1090
|
} catch (error) {
|
|
1379
|
-
throw new Error(`Failed to update member role: ${error.message}
|
|
1091
|
+
throw new Error(`Failed to update member role: ${error.message}`);
|
|
1380
1092
|
}
|
|
1381
1093
|
}
|
|
1382
1094
|
async removeMember(projectId, memberId) {
|
|
@@ -1397,7 +1109,7 @@ var ProjectService = class extends BaseService {
|
|
|
1397
1109
|
}
|
|
1398
1110
|
throw new Error(response.message);
|
|
1399
1111
|
} catch (error) {
|
|
1400
|
-
throw new Error(`Failed to remove member: ${error.message}
|
|
1112
|
+
throw new Error(`Failed to remove member: ${error.message}`);
|
|
1401
1113
|
}
|
|
1402
1114
|
}
|
|
1403
1115
|
// ==================== PROJECT LIBRARY METHODS ====================
|
|
@@ -1417,7 +1129,7 @@ var ProjectService = class extends BaseService {
|
|
|
1417
1129
|
}
|
|
1418
1130
|
throw new Error(response.message);
|
|
1419
1131
|
} catch (error) {
|
|
1420
|
-
throw new Error(`Failed to get available libraries: ${error.message}
|
|
1132
|
+
throw new Error(`Failed to get available libraries: ${error.message}`);
|
|
1421
1133
|
}
|
|
1422
1134
|
}
|
|
1423
1135
|
async getProjectLibraries(projectId) {
|
|
@@ -1435,7 +1147,7 @@ var ProjectService = class extends BaseService {
|
|
|
1435
1147
|
}
|
|
1436
1148
|
throw new Error(response.message);
|
|
1437
1149
|
} catch (error) {
|
|
1438
|
-
throw new Error(`Failed to get project libraries: ${error.message}
|
|
1150
|
+
throw new Error(`Failed to get project libraries: ${error.message}`);
|
|
1439
1151
|
}
|
|
1440
1152
|
}
|
|
1441
1153
|
async addProjectLibraries(projectId, libraryIds) {
|
|
@@ -1450,11 +1162,11 @@ var ProjectService = class extends BaseService {
|
|
|
1450
1162
|
methodName: "addProjectLibraries"
|
|
1451
1163
|
});
|
|
1452
1164
|
if (response.success) {
|
|
1453
|
-
return response;
|
|
1165
|
+
return response.data;
|
|
1454
1166
|
}
|
|
1455
1167
|
throw new Error(response.message);
|
|
1456
1168
|
} catch (error) {
|
|
1457
|
-
throw new Error(`Failed to add project libraries: ${error.message}
|
|
1169
|
+
throw new Error(`Failed to add project libraries: ${error.message}`);
|
|
1458
1170
|
}
|
|
1459
1171
|
}
|
|
1460
1172
|
async removeProjectLibraries(projectId, libraryIds) {
|
|
@@ -1473,7 +1185,7 @@ var ProjectService = class extends BaseService {
|
|
|
1473
1185
|
}
|
|
1474
1186
|
throw new Error(response.message);
|
|
1475
1187
|
} catch (error) {
|
|
1476
|
-
throw new Error(`Failed to remove project libraries: ${error.message}
|
|
1188
|
+
throw new Error(`Failed to remove project libraries: ${error.message}`);
|
|
1477
1189
|
}
|
|
1478
1190
|
}
|
|
1479
1191
|
// ==================== PROJECT DATA METHODS (SYMSTORY REPLACEMENT) ====================
|
|
@@ -1490,8 +1202,6 @@ var ProjectService = class extends BaseService {
|
|
|
1490
1202
|
throw new Error("Changes must be an array");
|
|
1491
1203
|
}
|
|
1492
1204
|
const { message, branch = "main", type = "patch" } = options;
|
|
1493
|
-
const state = this._context && this._context.state;
|
|
1494
|
-
const derivedOrders = options.orders || (state ? computeOrdersForTuples(state, changes) : []);
|
|
1495
1205
|
try {
|
|
1496
1206
|
const response = await this._request(`/projects/${projectId}/changes`, {
|
|
1497
1207
|
method: "POST",
|
|
@@ -1499,8 +1209,7 @@ var ProjectService = class extends BaseService {
|
|
|
1499
1209
|
changes,
|
|
1500
1210
|
message,
|
|
1501
1211
|
branch,
|
|
1502
|
-
type
|
|
1503
|
-
...derivedOrders && derivedOrders.length ? { orders: derivedOrders } : {}
|
|
1212
|
+
type
|
|
1504
1213
|
}),
|
|
1505
1214
|
methodName: "applyProjectChanges"
|
|
1506
1215
|
});
|
|
@@ -1509,7 +1218,7 @@ var ProjectService = class extends BaseService {
|
|
|
1509
1218
|
}
|
|
1510
1219
|
throw new Error(response.message);
|
|
1511
1220
|
} catch (error) {
|
|
1512
|
-
throw new Error(`Failed to apply project changes: ${error.message}
|
|
1221
|
+
throw new Error(`Failed to apply project changes: ${error.message}`);
|
|
1513
1222
|
}
|
|
1514
1223
|
}
|
|
1515
1224
|
/**
|
|
@@ -1544,7 +1253,7 @@ var ProjectService = class extends BaseService {
|
|
|
1544
1253
|
}
|
|
1545
1254
|
throw new Error(response.message);
|
|
1546
1255
|
} catch (error) {
|
|
1547
|
-
throw new Error(`Failed to get project data: ${error.message}
|
|
1256
|
+
throw new Error(`Failed to get project data: ${error.message}`);
|
|
1548
1257
|
}
|
|
1549
1258
|
}
|
|
1550
1259
|
/**
|
|
@@ -1574,7 +1283,7 @@ var ProjectService = class extends BaseService {
|
|
|
1574
1283
|
}
|
|
1575
1284
|
throw new Error(response.message);
|
|
1576
1285
|
} catch (error) {
|
|
1577
|
-
throw new Error(`Failed to get project versions: ${error.message}
|
|
1286
|
+
throw new Error(`Failed to get project versions: ${error.message}`);
|
|
1578
1287
|
}
|
|
1579
1288
|
}
|
|
1580
1289
|
/**
|
|
@@ -1606,7 +1315,7 @@ var ProjectService = class extends BaseService {
|
|
|
1606
1315
|
}
|
|
1607
1316
|
throw new Error(response.message);
|
|
1608
1317
|
} catch (error) {
|
|
1609
|
-
throw new Error(`Failed to restore project version: ${error.message}
|
|
1318
|
+
throw new Error(`Failed to restore project version: ${error.message}`);
|
|
1610
1319
|
}
|
|
1611
1320
|
}
|
|
1612
1321
|
/**
|
|
@@ -1706,7 +1415,7 @@ var ProjectService = class extends BaseService {
|
|
|
1706
1415
|
}
|
|
1707
1416
|
throw new Error(response.message);
|
|
1708
1417
|
} catch (error) {
|
|
1709
|
-
throw new Error(`Failed to get favorite projects: ${error.message}
|
|
1418
|
+
throw new Error(`Failed to get favorite projects: ${error.message}`);
|
|
1710
1419
|
}
|
|
1711
1420
|
}
|
|
1712
1421
|
async addFavoriteProject(projectId) {
|
|
@@ -1724,7 +1433,7 @@ var ProjectService = class extends BaseService {
|
|
|
1724
1433
|
}
|
|
1725
1434
|
throw new Error(response.message);
|
|
1726
1435
|
} catch (error) {
|
|
1727
|
-
throw new Error(`Failed to add favorite project: ${error.message}
|
|
1436
|
+
throw new Error(`Failed to add favorite project: ${error.message}`);
|
|
1728
1437
|
}
|
|
1729
1438
|
}
|
|
1730
1439
|
async removeFavoriteProject(projectId) {
|
|
@@ -1742,7 +1451,7 @@ var ProjectService = class extends BaseService {
|
|
|
1742
1451
|
}
|
|
1743
1452
|
throw new Error(response.message);
|
|
1744
1453
|
} catch (error) {
|
|
1745
|
-
throw new Error(`Failed to remove favorite project: ${error.message}
|
|
1454
|
+
throw new Error(`Failed to remove favorite project: ${error.message}`);
|
|
1746
1455
|
}
|
|
1747
1456
|
}
|
|
1748
1457
|
// ==================== RECENT PROJECT METHODS ====================
|
|
@@ -1771,7 +1480,7 @@ var ProjectService = class extends BaseService {
|
|
|
1771
1480
|
}
|
|
1772
1481
|
throw new Error(response.message);
|
|
1773
1482
|
} catch (error) {
|
|
1774
|
-
throw new Error(`Failed to get recent projects: ${error.message}
|
|
1483
|
+
throw new Error(`Failed to get recent projects: ${error.message}`);
|
|
1775
1484
|
}
|
|
1776
1485
|
}
|
|
1777
1486
|
};
|