@symbo.ls/sdk 2.32.0 → 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 +18 -114
- 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 +300 -907
- 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 +50 -452
- 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 -375
- package/dist/esm/services/PullRequestService.js +38 -71
- package/dist/esm/services/SubscriptionService.js +45 -78
- package/dist/esm/services/index.js +295 -884
- 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 +19 -115
- 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 +19 -142
- 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 -295
- package/dist/esm/services/ScreenshotService.js +0 -992
- package/dist/esm/utils/ordering.js +0 -277
- package/dist/node/services/ScreenshotService.js +0 -285
- package/dist/node/utils/ordering.js +0 -276
- package/src/services/ScreenshotService.js +0 -258
- package/src/utils/ordering.js +0 -240
|
@@ -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,279 +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 extractTopLevelKeysFromCode(code) {
|
|
828
|
-
const src = normaliseSchemaCode(code);
|
|
829
|
-
if (!src) {
|
|
830
|
-
return [];
|
|
831
|
-
}
|
|
832
|
-
const idx = src.indexOf("export default");
|
|
833
|
-
if (idx === -1) {
|
|
834
|
-
return [];
|
|
835
|
-
}
|
|
836
|
-
let i = src.indexOf("{", idx);
|
|
837
|
-
if (i === -1) {
|
|
838
|
-
return [];
|
|
839
|
-
}
|
|
840
|
-
const keys = [];
|
|
841
|
-
let depth = 0;
|
|
842
|
-
let inStr = false;
|
|
843
|
-
let strCh = "";
|
|
844
|
-
let inEsc = false;
|
|
845
|
-
for (; i < src.length; i++) {
|
|
846
|
-
const ch = src[i];
|
|
847
|
-
if (inStr) {
|
|
848
|
-
if (inEsc) {
|
|
849
|
-
inEsc = false;
|
|
850
|
-
} else if (ch === "\\") {
|
|
851
|
-
inEsc = true;
|
|
852
|
-
} else if (ch === strCh) {
|
|
853
|
-
inStr = false;
|
|
854
|
-
strCh = "";
|
|
855
|
-
}
|
|
856
|
-
continue;
|
|
857
|
-
}
|
|
858
|
-
if (ch === '"' || ch === "'" || ch === "`") {
|
|
859
|
-
inStr = true;
|
|
860
|
-
strCh = ch;
|
|
861
|
-
continue;
|
|
862
|
-
}
|
|
863
|
-
if (ch === "{") {
|
|
864
|
-
depth++;
|
|
865
|
-
continue;
|
|
866
|
-
}
|
|
867
|
-
if (ch === "}") {
|
|
868
|
-
depth--;
|
|
869
|
-
if (depth === 0) {
|
|
870
|
-
break;
|
|
871
|
-
}
|
|
872
|
-
continue;
|
|
873
|
-
}
|
|
874
|
-
if (depth !== 1) {
|
|
875
|
-
continue;
|
|
876
|
-
}
|
|
877
|
-
if (/[A-Za-z_$]/u.test(ch)) {
|
|
878
|
-
let j = i;
|
|
879
|
-
while (j < src.length && /[A-Za-z0-9_$]/u.test(src[j])) {
|
|
880
|
-
j++;
|
|
881
|
-
}
|
|
882
|
-
let k = j;
|
|
883
|
-
while (k < src.length && /\s/u.test(src[k])) {
|
|
884
|
-
k++;
|
|
885
|
-
}
|
|
886
|
-
if (src[k] === ":") {
|
|
887
|
-
const key = src.slice(i, j);
|
|
888
|
-
keys.push(key);
|
|
889
|
-
}
|
|
890
|
-
i = j;
|
|
891
|
-
continue;
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
|
-
if (!keys.length) {
|
|
895
|
-
const bodyStart = src.indexOf("{", idx);
|
|
896
|
-
const bodyEnd = src.lastIndexOf("}");
|
|
897
|
-
if (bodyStart === -1 || bodyEnd === -1 || bodyEnd <= bodyStart) {
|
|
898
|
-
return Array.from(new Set(keys));
|
|
899
|
-
}
|
|
900
|
-
const body = src.slice(bodyStart + 1, bodyEnd);
|
|
901
|
-
const re = /(?:[A-Za-z_$][A-Za-z0-9_$]*|"[^"]+"|'[^']+')\s*:/gu;
|
|
902
|
-
for (const m of body.matchAll(re)) {
|
|
903
|
-
const raw = m[0].split(":")[0].trim();
|
|
904
|
-
const key = raw[0] === '"' || raw[0] === "'" ? raw.slice(1, -1) : raw;
|
|
905
|
-
keys.push(key);
|
|
906
|
-
}
|
|
907
|
-
}
|
|
908
|
-
return Array.from(new Set(keys));
|
|
909
|
-
}
|
|
910
|
-
function computeOrdersForTuples(root, tuples = []) {
|
|
911
|
-
const preferredOrderMap = /* @__PURE__ */ new Map();
|
|
912
|
-
for (let i = 0; i < tuples.length; i++) {
|
|
913
|
-
const t = tuples[i];
|
|
914
|
-
if (!Array.isArray(t)) {
|
|
915
|
-
continue;
|
|
916
|
-
}
|
|
917
|
-
const [action, path, value] = t;
|
|
918
|
-
const p = normalizePath(path);
|
|
919
|
-
if (action !== "update" || !Array.isArray(p) || p.length < 3) {
|
|
920
|
-
continue;
|
|
921
|
-
}
|
|
922
|
-
if (p[0] !== "schema") {
|
|
923
|
-
continue;
|
|
924
|
-
}
|
|
925
|
-
const [, type, key] = p;
|
|
926
|
-
const containerPath = [type, key];
|
|
927
|
-
const uses = value && Array.isArray(value.uses) ? value.uses : null;
|
|
928
|
-
const code = value && value.code;
|
|
929
|
-
const obj = (() => {
|
|
930
|
-
try {
|
|
931
|
-
return root && typeof root.getByPath === "function" ? root.getByPath(containerPath) : null;
|
|
932
|
-
} catch {
|
|
933
|
-
return null;
|
|
934
|
-
}
|
|
935
|
-
})();
|
|
936
|
-
if (!obj) {
|
|
937
|
-
continue;
|
|
938
|
-
}
|
|
939
|
-
const present = new Set(Object.keys(obj));
|
|
940
|
-
const EXCLUDE_KEYS = /* @__PURE__ */ new Set(["__order"]);
|
|
941
|
-
const codeKeys = extractTopLevelKeysFromCode(code);
|
|
942
|
-
let resolved = [];
|
|
943
|
-
if (Array.isArray(codeKeys) && codeKeys.length) {
|
|
944
|
-
resolved = codeKeys.filter((k) => present.has(k) && !EXCLUDE_KEYS.has(k));
|
|
945
|
-
}
|
|
946
|
-
if (resolved.length && Array.isArray(uses) && uses.length) {
|
|
947
|
-
for (let u = 0; u < uses.length; u++) {
|
|
948
|
-
const keyName = uses[u];
|
|
949
|
-
if (present.has(keyName) && !EXCLUDE_KEYS.has(keyName) && !resolved.includes(keyName)) {
|
|
950
|
-
resolved.push(keyName);
|
|
951
|
-
}
|
|
952
|
-
}
|
|
953
|
-
}
|
|
954
|
-
if (resolved.length) {
|
|
955
|
-
preferredOrderMap.set(JSON.stringify(containerPath), { path: containerPath, keys: resolved });
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
const parents = getParentPathsFromTuples(tuples);
|
|
959
|
-
const orders = [];
|
|
960
|
-
const seen = /* @__PURE__ */ new Set();
|
|
961
|
-
preferredOrderMap.forEach((v) => {
|
|
962
|
-
const k = JSON.stringify(v.path);
|
|
963
|
-
if (!seen.has(k)) {
|
|
964
|
-
seen.add(k);
|
|
965
|
-
orders.push(v);
|
|
966
|
-
}
|
|
967
|
-
});
|
|
968
|
-
const fallbackOrders = computeOrdersFromState(root, parents);
|
|
969
|
-
for (let i = 0; i < fallbackOrders.length; i++) {
|
|
970
|
-
const v = fallbackOrders[i];
|
|
971
|
-
const k = JSON.stringify(v.path);
|
|
972
|
-
if (!seen.has(k)) {
|
|
973
|
-
seen.add(k);
|
|
974
|
-
orders.push(v);
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
return orders;
|
|
978
|
-
}
|
|
979
|
-
|
|
980
674
|
// src/services/ProjectService.js
|
|
981
675
|
var ProjectService = class extends BaseService {
|
|
982
676
|
// ==================== PROJECT METHODS ====================
|
|
@@ -993,7 +687,7 @@ var ProjectService = class extends BaseService {
|
|
|
993
687
|
}
|
|
994
688
|
throw new Error(response.message);
|
|
995
689
|
} catch (error) {
|
|
996
|
-
throw new Error(`Failed to create project: ${error.message}
|
|
690
|
+
throw new Error(`Failed to create project: ${error.message}`);
|
|
997
691
|
}
|
|
998
692
|
}
|
|
999
693
|
async getProjects(params = {}) {
|
|
@@ -1016,7 +710,7 @@ var ProjectService = class extends BaseService {
|
|
|
1016
710
|
}
|
|
1017
711
|
throw new Error(response.message);
|
|
1018
712
|
} catch (error) {
|
|
1019
|
-
throw new Error(`Failed to get projects: ${error.message}
|
|
713
|
+
throw new Error(`Failed to get projects: ${error.message}`);
|
|
1020
714
|
}
|
|
1021
715
|
}
|
|
1022
716
|
/**
|
|
@@ -1047,7 +741,7 @@ var ProjectService = class extends BaseService {
|
|
|
1047
741
|
}
|
|
1048
742
|
throw new Error(response.message);
|
|
1049
743
|
} catch (error) {
|
|
1050
|
-
throw new Error(`Failed to list public projects: ${error.message}
|
|
744
|
+
throw new Error(`Failed to list public projects: ${error.message}`);
|
|
1051
745
|
}
|
|
1052
746
|
}
|
|
1053
747
|
async getProject(projectId) {
|
|
@@ -1069,7 +763,7 @@ var ProjectService = class extends BaseService {
|
|
|
1069
763
|
}
|
|
1070
764
|
throw new Error(response.message);
|
|
1071
765
|
} catch (error) {
|
|
1072
|
-
throw new Error(`Failed to get project: ${error.message}
|
|
766
|
+
throw new Error(`Failed to get project: ${error.message}`);
|
|
1073
767
|
}
|
|
1074
768
|
}
|
|
1075
769
|
/**
|
|
@@ -1094,7 +788,7 @@ var ProjectService = class extends BaseService {
|
|
|
1094
788
|
}
|
|
1095
789
|
throw new Error(response.message);
|
|
1096
790
|
} catch (error) {
|
|
1097
|
-
throw new Error(`Failed to get public project: ${error.message}
|
|
791
|
+
throw new Error(`Failed to get public project: ${error.message}`);
|
|
1098
792
|
}
|
|
1099
793
|
}
|
|
1100
794
|
async getProjectByKey(key) {
|
|
@@ -1116,7 +810,7 @@ var ProjectService = class extends BaseService {
|
|
|
1116
810
|
}
|
|
1117
811
|
throw new Error(response.message);
|
|
1118
812
|
} catch (error) {
|
|
1119
|
-
throw new Error(`Failed to get project by key: ${error.message}
|
|
813
|
+
throw new Error(`Failed to get project by key: ${error.message}`);
|
|
1120
814
|
}
|
|
1121
815
|
}
|
|
1122
816
|
/**
|
|
@@ -1150,7 +844,7 @@ var ProjectService = class extends BaseService {
|
|
|
1150
844
|
}
|
|
1151
845
|
throw new Error(response.message);
|
|
1152
846
|
} catch (error) {
|
|
1153
|
-
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}`);
|
|
1154
848
|
}
|
|
1155
849
|
}
|
|
1156
850
|
async updateProject(projectId, data) {
|
|
@@ -1169,7 +863,7 @@ var ProjectService = class extends BaseService {
|
|
|
1169
863
|
}
|
|
1170
864
|
throw new Error(response.message);
|
|
1171
865
|
} catch (error) {
|
|
1172
|
-
throw new Error(`Failed to update project: ${error.message}
|
|
866
|
+
throw new Error(`Failed to update project: ${error.message}`);
|
|
1173
867
|
}
|
|
1174
868
|
}
|
|
1175
869
|
async updateProjectComponents(projectId, components) {
|
|
@@ -1191,7 +885,7 @@ var ProjectService = class extends BaseService {
|
|
|
1191
885
|
}
|
|
1192
886
|
throw new Error(response.message);
|
|
1193
887
|
} catch (error) {
|
|
1194
|
-
throw new Error(`Failed to update project components: ${error.message}
|
|
888
|
+
throw new Error(`Failed to update project components: ${error.message}`);
|
|
1195
889
|
}
|
|
1196
890
|
}
|
|
1197
891
|
async updateProjectSettings(projectId, settings) {
|
|
@@ -1210,7 +904,7 @@ var ProjectService = class extends BaseService {
|
|
|
1210
904
|
}
|
|
1211
905
|
throw new Error(response.message);
|
|
1212
906
|
} catch (error) {
|
|
1213
|
-
throw new Error(`Failed to update project settings: ${error.message}
|
|
907
|
+
throw new Error(`Failed to update project settings: ${error.message}`);
|
|
1214
908
|
}
|
|
1215
909
|
}
|
|
1216
910
|
async updateProjectName(projectId, name) {
|
|
@@ -1229,7 +923,7 @@ var ProjectService = class extends BaseService {
|
|
|
1229
923
|
}
|
|
1230
924
|
throw new Error(response.message);
|
|
1231
925
|
} catch (error) {
|
|
1232
|
-
throw new Error(`Failed to update project name: ${error.message}
|
|
926
|
+
throw new Error(`Failed to update project name: ${error.message}`);
|
|
1233
927
|
}
|
|
1234
928
|
}
|
|
1235
929
|
async updateProjectPackage(projectId, pkg) {
|
|
@@ -1248,7 +942,7 @@ var ProjectService = class extends BaseService {
|
|
|
1248
942
|
}
|
|
1249
943
|
throw new Error(response.message);
|
|
1250
944
|
} catch (error) {
|
|
1251
|
-
throw new Error(`Failed to update project package: ${error.message}
|
|
945
|
+
throw new Error(`Failed to update project package: ${error.message}`);
|
|
1252
946
|
}
|
|
1253
947
|
}
|
|
1254
948
|
async duplicateProject(projectId, newName, newKey, targetUserId) {
|
|
@@ -1267,7 +961,7 @@ var ProjectService = class extends BaseService {
|
|
|
1267
961
|
}
|
|
1268
962
|
throw new Error(response.message);
|
|
1269
963
|
} catch (error) {
|
|
1270
|
-
throw new Error(`Failed to duplicate project: ${error.message}
|
|
964
|
+
throw new Error(`Failed to duplicate project: ${error.message}`);
|
|
1271
965
|
}
|
|
1272
966
|
}
|
|
1273
967
|
async removeProject(projectId) {
|
|
@@ -1285,7 +979,7 @@ var ProjectService = class extends BaseService {
|
|
|
1285
979
|
}
|
|
1286
980
|
throw new Error(response.message);
|
|
1287
981
|
} catch (error) {
|
|
1288
|
-
throw new Error(`Failed to remove project: ${error.message}
|
|
982
|
+
throw new Error(`Failed to remove project: ${error.message}`);
|
|
1289
983
|
}
|
|
1290
984
|
}
|
|
1291
985
|
async checkProjectKeyAvailability(key) {
|
|
@@ -1304,8 +998,7 @@ var ProjectService = class extends BaseService {
|
|
|
1304
998
|
throw new Error(response.message);
|
|
1305
999
|
} catch (error) {
|
|
1306
1000
|
throw new Error(
|
|
1307
|
-
`Failed to check project key availability: ${error.message}
|
|
1308
|
-
{ cause: error }
|
|
1001
|
+
`Failed to check project key availability: ${error.message}`
|
|
1309
1002
|
);
|
|
1310
1003
|
}
|
|
1311
1004
|
}
|
|
@@ -1325,7 +1018,7 @@ var ProjectService = class extends BaseService {
|
|
|
1325
1018
|
}
|
|
1326
1019
|
throw new Error(response.message);
|
|
1327
1020
|
} catch (error) {
|
|
1328
|
-
throw new Error(`Failed to get project members: ${error.message}
|
|
1021
|
+
throw new Error(`Failed to get project members: ${error.message}`);
|
|
1329
1022
|
}
|
|
1330
1023
|
}
|
|
1331
1024
|
async inviteMember(projectId, email, role = "guest", options = {}) {
|
|
@@ -1354,7 +1047,7 @@ var ProjectService = class extends BaseService {
|
|
|
1354
1047
|
}
|
|
1355
1048
|
throw new Error(response.message);
|
|
1356
1049
|
} catch (error) {
|
|
1357
|
-
throw new Error(`Failed to invite member: ${error.message}
|
|
1050
|
+
throw new Error(`Failed to invite member: ${error.message}`);
|
|
1358
1051
|
}
|
|
1359
1052
|
}
|
|
1360
1053
|
async acceptInvite(token) {
|
|
@@ -1373,7 +1066,7 @@ var ProjectService = class extends BaseService {
|
|
|
1373
1066
|
}
|
|
1374
1067
|
throw new Error(response.message);
|
|
1375
1068
|
} catch (error) {
|
|
1376
|
-
throw new Error(`Failed to accept invite: ${error.message}
|
|
1069
|
+
throw new Error(`Failed to accept invite: ${error.message}`);
|
|
1377
1070
|
}
|
|
1378
1071
|
}
|
|
1379
1072
|
async updateMemberRole(projectId, memberId, role) {
|
|
@@ -1395,7 +1088,7 @@ var ProjectService = class extends BaseService {
|
|
|
1395
1088
|
}
|
|
1396
1089
|
throw new Error(response.message);
|
|
1397
1090
|
} catch (error) {
|
|
1398
|
-
throw new Error(`Failed to update member role: ${error.message}
|
|
1091
|
+
throw new Error(`Failed to update member role: ${error.message}`);
|
|
1399
1092
|
}
|
|
1400
1093
|
}
|
|
1401
1094
|
async removeMember(projectId, memberId) {
|
|
@@ -1416,7 +1109,7 @@ var ProjectService = class extends BaseService {
|
|
|
1416
1109
|
}
|
|
1417
1110
|
throw new Error(response.message);
|
|
1418
1111
|
} catch (error) {
|
|
1419
|
-
throw new Error(`Failed to remove member: ${error.message}
|
|
1112
|
+
throw new Error(`Failed to remove member: ${error.message}`);
|
|
1420
1113
|
}
|
|
1421
1114
|
}
|
|
1422
1115
|
// ==================== PROJECT LIBRARY METHODS ====================
|
|
@@ -1436,7 +1129,7 @@ var ProjectService = class extends BaseService {
|
|
|
1436
1129
|
}
|
|
1437
1130
|
throw new Error(response.message);
|
|
1438
1131
|
} catch (error) {
|
|
1439
|
-
throw new Error(`Failed to get available libraries: ${error.message}
|
|
1132
|
+
throw new Error(`Failed to get available libraries: ${error.message}`);
|
|
1440
1133
|
}
|
|
1441
1134
|
}
|
|
1442
1135
|
async getProjectLibraries(projectId) {
|
|
@@ -1454,7 +1147,7 @@ var ProjectService = class extends BaseService {
|
|
|
1454
1147
|
}
|
|
1455
1148
|
throw new Error(response.message);
|
|
1456
1149
|
} catch (error) {
|
|
1457
|
-
throw new Error(`Failed to get project libraries: ${error.message}
|
|
1150
|
+
throw new Error(`Failed to get project libraries: ${error.message}`);
|
|
1458
1151
|
}
|
|
1459
1152
|
}
|
|
1460
1153
|
async addProjectLibraries(projectId, libraryIds) {
|
|
@@ -1469,11 +1162,11 @@ var ProjectService = class extends BaseService {
|
|
|
1469
1162
|
methodName: "addProjectLibraries"
|
|
1470
1163
|
});
|
|
1471
1164
|
if (response.success) {
|
|
1472
|
-
return response;
|
|
1165
|
+
return response.data;
|
|
1473
1166
|
}
|
|
1474
1167
|
throw new Error(response.message);
|
|
1475
1168
|
} catch (error) {
|
|
1476
|
-
throw new Error(`Failed to add project libraries: ${error.message}
|
|
1169
|
+
throw new Error(`Failed to add project libraries: ${error.message}`);
|
|
1477
1170
|
}
|
|
1478
1171
|
}
|
|
1479
1172
|
async removeProjectLibraries(projectId, libraryIds) {
|
|
@@ -1492,7 +1185,7 @@ var ProjectService = class extends BaseService {
|
|
|
1492
1185
|
}
|
|
1493
1186
|
throw new Error(response.message);
|
|
1494
1187
|
} catch (error) {
|
|
1495
|
-
throw new Error(`Failed to remove project libraries: ${error.message}
|
|
1188
|
+
throw new Error(`Failed to remove project libraries: ${error.message}`);
|
|
1496
1189
|
}
|
|
1497
1190
|
}
|
|
1498
1191
|
// ==================== PROJECT DATA METHODS (SYMSTORY REPLACEMENT) ====================
|
|
@@ -1509,8 +1202,6 @@ var ProjectService = class extends BaseService {
|
|
|
1509
1202
|
throw new Error("Changes must be an array");
|
|
1510
1203
|
}
|
|
1511
1204
|
const { message, branch = "main", type = "patch" } = options;
|
|
1512
|
-
const state = this._context && this._context.state;
|
|
1513
|
-
const derivedOrders = options.orders || (state ? computeOrdersForTuples(state, changes) : []);
|
|
1514
1205
|
try {
|
|
1515
1206
|
const response = await this._request(`/projects/${projectId}/changes`, {
|
|
1516
1207
|
method: "POST",
|
|
@@ -1518,8 +1209,7 @@ var ProjectService = class extends BaseService {
|
|
|
1518
1209
|
changes,
|
|
1519
1210
|
message,
|
|
1520
1211
|
branch,
|
|
1521
|
-
type
|
|
1522
|
-
...derivedOrders && derivedOrders.length ? { orders: derivedOrders } : {}
|
|
1212
|
+
type
|
|
1523
1213
|
}),
|
|
1524
1214
|
methodName: "applyProjectChanges"
|
|
1525
1215
|
});
|
|
@@ -1528,7 +1218,7 @@ var ProjectService = class extends BaseService {
|
|
|
1528
1218
|
}
|
|
1529
1219
|
throw new Error(response.message);
|
|
1530
1220
|
} catch (error) {
|
|
1531
|
-
throw new Error(`Failed to apply project changes: ${error.message}
|
|
1221
|
+
throw new Error(`Failed to apply project changes: ${error.message}`);
|
|
1532
1222
|
}
|
|
1533
1223
|
}
|
|
1534
1224
|
/**
|
|
@@ -1563,7 +1253,7 @@ var ProjectService = class extends BaseService {
|
|
|
1563
1253
|
}
|
|
1564
1254
|
throw new Error(response.message);
|
|
1565
1255
|
} catch (error) {
|
|
1566
|
-
throw new Error(`Failed to get project data: ${error.message}
|
|
1256
|
+
throw new Error(`Failed to get project data: ${error.message}`);
|
|
1567
1257
|
}
|
|
1568
1258
|
}
|
|
1569
1259
|
/**
|
|
@@ -1593,7 +1283,7 @@ var ProjectService = class extends BaseService {
|
|
|
1593
1283
|
}
|
|
1594
1284
|
throw new Error(response.message);
|
|
1595
1285
|
} catch (error) {
|
|
1596
|
-
throw new Error(`Failed to get project versions: ${error.message}
|
|
1286
|
+
throw new Error(`Failed to get project versions: ${error.message}`);
|
|
1597
1287
|
}
|
|
1598
1288
|
}
|
|
1599
1289
|
/**
|
|
@@ -1625,7 +1315,7 @@ var ProjectService = class extends BaseService {
|
|
|
1625
1315
|
}
|
|
1626
1316
|
throw new Error(response.message);
|
|
1627
1317
|
} catch (error) {
|
|
1628
|
-
throw new Error(`Failed to restore project version: ${error.message}
|
|
1318
|
+
throw new Error(`Failed to restore project version: ${error.message}`);
|
|
1629
1319
|
}
|
|
1630
1320
|
}
|
|
1631
1321
|
/**
|
|
@@ -1725,7 +1415,7 @@ var ProjectService = class extends BaseService {
|
|
|
1725
1415
|
}
|
|
1726
1416
|
throw new Error(response.message);
|
|
1727
1417
|
} catch (error) {
|
|
1728
|
-
throw new Error(`Failed to get favorite projects: ${error.message}
|
|
1418
|
+
throw new Error(`Failed to get favorite projects: ${error.message}`);
|
|
1729
1419
|
}
|
|
1730
1420
|
}
|
|
1731
1421
|
async addFavoriteProject(projectId) {
|
|
@@ -1743,7 +1433,7 @@ var ProjectService = class extends BaseService {
|
|
|
1743
1433
|
}
|
|
1744
1434
|
throw new Error(response.message);
|
|
1745
1435
|
} catch (error) {
|
|
1746
|
-
throw new Error(`Failed to add favorite project: ${error.message}
|
|
1436
|
+
throw new Error(`Failed to add favorite project: ${error.message}`);
|
|
1747
1437
|
}
|
|
1748
1438
|
}
|
|
1749
1439
|
async removeFavoriteProject(projectId) {
|
|
@@ -1761,7 +1451,7 @@ var ProjectService = class extends BaseService {
|
|
|
1761
1451
|
}
|
|
1762
1452
|
throw new Error(response.message);
|
|
1763
1453
|
} catch (error) {
|
|
1764
|
-
throw new Error(`Failed to remove favorite project: ${error.message}
|
|
1454
|
+
throw new Error(`Failed to remove favorite project: ${error.message}`);
|
|
1765
1455
|
}
|
|
1766
1456
|
}
|
|
1767
1457
|
// ==================== RECENT PROJECT METHODS ====================
|
|
@@ -1790,7 +1480,7 @@ var ProjectService = class extends BaseService {
|
|
|
1790
1480
|
}
|
|
1791
1481
|
throw new Error(response.message);
|
|
1792
1482
|
} catch (error) {
|
|
1793
|
-
throw new Error(`Failed to get recent projects: ${error.message}
|
|
1483
|
+
throw new Error(`Failed to get recent projects: ${error.message}`);
|
|
1794
1484
|
}
|
|
1795
1485
|
}
|
|
1796
1486
|
};
|