@symbo.ls/sdk 2.32.2 → 2.32.5
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 +43 -8
- package/dist/cjs/index.js +12 -4
- package/dist/cjs/services/AdminService.js +4 -4
- package/dist/cjs/services/AuthService.js +36 -149
- package/dist/cjs/services/BaseService.js +5 -18
- package/dist/cjs/services/BranchService.js +10 -10
- package/dist/cjs/services/CollabService.js +94 -61
- 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 +45 -35
- package/dist/cjs/services/PullRequestService.js +7 -7
- package/dist/cjs/services/ScreenshotService.js +304 -0
- package/dist/cjs/services/SubscriptionService.js +14 -14
- package/dist/cjs/services/index.js +4 -0
- package/dist/cjs/utils/TokenManager.js +16 -5
- package/dist/cjs/utils/changePreprocessor.js +134 -0
- package/dist/cjs/utils/jsonDiff.js +46 -4
- package/dist/cjs/utils/ordering.js +274 -0
- package/dist/cjs/utils/services.js +14 -1
- package/dist/esm/config/environment.js +43 -8
- package/dist/esm/index.js +1099 -417
- package/dist/esm/services/AdminService.js +68 -35
- package/dist/esm/services/AuthService.js +100 -168
- package/dist/esm/services/BaseService.js +64 -31
- package/dist/esm/services/BranchService.js +74 -41
- package/dist/esm/services/CollabService.js +570 -97
- package/dist/esm/services/CoreService.js +83 -50
- package/dist/esm/services/DnsService.js +68 -35
- package/dist/esm/services/FileService.js +66 -33
- package/dist/esm/services/PaymentService.js +66 -33
- package/dist/esm/services/PlanService.js +76 -43
- package/dist/esm/services/ProjectService.js +547 -66
- package/dist/esm/services/PullRequestService.js +71 -38
- package/dist/esm/services/ScreenshotService.js +992 -0
- package/dist/esm/services/SubscriptionService.js +78 -45
- package/dist/esm/services/index.js +1076 -412
- package/dist/esm/utils/CollabClient.js +89 -12
- package/dist/esm/utils/TokenManager.js +16 -5
- package/dist/esm/utils/changePreprocessor.js +442 -0
- package/dist/esm/utils/jsonDiff.js +46 -4
- package/dist/esm/utils/ordering.js +256 -0
- package/dist/esm/utils/services.js +14 -1
- package/dist/node/config/environment.js +43 -8
- package/dist/node/index.js +14 -5
- package/dist/node/services/AdminService.js +4 -4
- package/dist/node/services/AuthService.js +36 -139
- package/dist/node/services/BaseService.js +5 -18
- package/dist/node/services/BranchService.js +10 -10
- package/dist/node/services/CollabService.js +95 -62
- 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 +45 -35
- package/dist/node/services/PullRequestService.js +7 -7
- package/dist/node/services/ScreenshotService.js +285 -0
- package/dist/node/services/SubscriptionService.js +14 -14
- package/dist/node/services/index.js +4 -0
- package/dist/node/utils/TokenManager.js +16 -5
- package/dist/node/utils/changePreprocessor.js +115 -0
- package/dist/node/utils/jsonDiff.js +46 -4
- package/dist/node/utils/ordering.js +255 -0
- package/dist/node/utils/services.js +14 -1
- package/package.json +7 -6
- package/src/config/environment.js +48 -9
- package/src/index.js +38 -22
- package/src/services/AdminService.js +4 -4
- package/src/services/AuthService.js +42 -175
- package/src/services/BaseService.js +7 -24
- package/src/services/BranchService.js +10 -10
- package/src/services/CollabService.js +115 -74
- 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 +50 -35
- package/src/services/PullRequestService.js +7 -7
- package/src/services/ScreenshotService.js +258 -0
- package/src/services/SubscriptionService.js +14 -14
- package/src/services/index.js +6 -1
- package/src/utils/TokenManager.js +19 -5
- package/src/utils/changePreprocessor.js +139 -0
- package/src/utils/jsonDiff.js +40 -5
- package/src/utils/ordering.js +244 -0
- package/src/utils/services.js +15 -1
|
@@ -28,18 +28,28 @@ var CONFIG = {
|
|
|
28
28
|
// For based api
|
|
29
29
|
basedOrg: "symbols",
|
|
30
30
|
// For based api
|
|
31
|
-
githubClientId: "
|
|
31
|
+
githubClientId: "Ov23liAFrsR0StbAO6PO",
|
|
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
|
-
}
|
|
37
|
+
},
|
|
38
|
+
typesenseCollectionName: "docs",
|
|
39
|
+
typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
|
|
40
|
+
typesenseHost: "localhost",
|
|
41
|
+
typesensePort: "8108",
|
|
42
|
+
typesenseProtocol: "http"
|
|
38
43
|
},
|
|
39
44
|
development: {
|
|
40
45
|
socketUrl: "https://dev.api.symbols.app",
|
|
41
46
|
apiUrl: "https://dev.api.symbols.app",
|
|
42
|
-
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
47
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF",
|
|
48
|
+
typesenseCollectionName: "docs",
|
|
49
|
+
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
50
|
+
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
51
|
+
typesensePort: "443",
|
|
52
|
+
typesenseProtocol: "https"
|
|
43
53
|
},
|
|
44
54
|
testing: {
|
|
45
55
|
socketUrl: "https://test.api.symbols.app",
|
|
@@ -47,12 +57,22 @@ var CONFIG = {
|
|
|
47
57
|
basedEnv: "testing",
|
|
48
58
|
basedProject: "platform-v2-sm",
|
|
49
59
|
basedOrg: "symbols",
|
|
50
|
-
githubClientId: "Ov23liHxyWFBxS8f1gnF"
|
|
60
|
+
githubClientId: "Ov23liHxyWFBxS8f1gnF",
|
|
61
|
+
typesenseCollectionName: "docs",
|
|
62
|
+
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
63
|
+
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
64
|
+
typesensePort: "443",
|
|
65
|
+
typesenseProtocol: "https"
|
|
51
66
|
},
|
|
52
67
|
upcoming: {
|
|
53
68
|
socketUrl: "https://upcoming.api.symbols.app",
|
|
54
69
|
apiUrl: "https://upcoming.api.symbols.app",
|
|
55
|
-
githubClientId: "Ov23liWF7NvdZ056RV5J"
|
|
70
|
+
githubClientId: "Ov23liWF7NvdZ056RV5J",
|
|
71
|
+
typesenseCollectionName: "docs",
|
|
72
|
+
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
73
|
+
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
74
|
+
typesensePort: "443",
|
|
75
|
+
typesenseProtocol: "https"
|
|
56
76
|
},
|
|
57
77
|
staging: {
|
|
58
78
|
socketUrl: "https://staging.api.symbols.app",
|
|
@@ -60,7 +80,12 @@ var CONFIG = {
|
|
|
60
80
|
basedEnv: "staging",
|
|
61
81
|
basedProject: "platform-v2-sm",
|
|
62
82
|
basedOrg: "symbols",
|
|
63
|
-
githubClientId: "Ov23ligwZDQVD0VfuWNa"
|
|
83
|
+
githubClientId: "Ov23ligwZDQVD0VfuWNa",
|
|
84
|
+
typesenseCollectionName: "docs",
|
|
85
|
+
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
86
|
+
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
87
|
+
typesensePort: "443",
|
|
88
|
+
typesenseProtocol: "https"
|
|
64
89
|
},
|
|
65
90
|
production: {
|
|
66
91
|
socketUrl: "https://api.symbols.app",
|
|
@@ -68,7 +93,12 @@ var CONFIG = {
|
|
|
68
93
|
basedEnv: "production",
|
|
69
94
|
basedProject: "platform-v2-sm",
|
|
70
95
|
basedOrg: "symbols",
|
|
71
|
-
githubClientId: "Ov23liFAlOEIXtX3dBtR"
|
|
96
|
+
githubClientId: "Ov23liFAlOEIXtX3dBtR",
|
|
97
|
+
typesenseCollectionName: "docs",
|
|
98
|
+
typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
|
|
99
|
+
typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
|
|
100
|
+
typesensePort: "443",
|
|
101
|
+
typesenseProtocol: "https"
|
|
72
102
|
}
|
|
73
103
|
};
|
|
74
104
|
var getEnvironment = () => {
|
|
@@ -90,6 +120,11 @@ var getConfig = () => {
|
|
|
90
120
|
basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
|
|
91
121
|
basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
|
|
92
122
|
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,
|
|
93
128
|
isDevelopment: isDevelopment(env),
|
|
94
129
|
isTesting: env === "testing",
|
|
95
130
|
isStaging: env === "staging",
|
|
@@ -109,7 +144,7 @@ var getConfig = () => {
|
|
|
109
144
|
);
|
|
110
145
|
}
|
|
111
146
|
if (finalConfig.isDevelopment) {
|
|
112
|
-
console.
|
|
147
|
+
console.warn(
|
|
113
148
|
"environment in SDK:",
|
|
114
149
|
env || process.env.NODE_ENV || process.env.NODE_ENV
|
|
115
150
|
);
|
|
@@ -148,7 +183,7 @@ var TokenManager = class {
|
|
|
148
183
|
});
|
|
149
184
|
this.config = {
|
|
150
185
|
storagePrefix: "symbols_",
|
|
151
|
-
storageType: typeof window === "undefined" || process.env.NODE_ENV === "test" ? "memory" : "localStorage",
|
|
186
|
+
storageType: typeof window === "undefined" || process.env.NODE_ENV === "test" || process.env.NODE_ENV === "testing" ? "memory" : "localStorage",
|
|
152
187
|
// 'localStorage' | 'sessionStorage' | 'memory'
|
|
153
188
|
refreshBuffer: 60 * 1e3,
|
|
154
189
|
// Refresh 1 minute before expiry
|
|
@@ -188,15 +223,26 @@ var TokenManager = class {
|
|
|
188
223
|
if (typeof window === "undefined") {
|
|
189
224
|
return this._memoryStorage;
|
|
190
225
|
}
|
|
191
|
-
const
|
|
192
|
-
|
|
226
|
+
const safeGetStorage = (provider) => {
|
|
227
|
+
try {
|
|
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);
|
|
193
239
|
switch (this.config.storageType) {
|
|
194
240
|
case "sessionStorage":
|
|
195
|
-
return
|
|
241
|
+
return sessionStorageInstance || this._memoryStorage;
|
|
196
242
|
case "memory":
|
|
197
243
|
return this._memoryStorage;
|
|
198
244
|
default:
|
|
199
|
-
return
|
|
245
|
+
return localStorageInstance || this._memoryStorage;
|
|
200
246
|
}
|
|
201
247
|
}
|
|
202
248
|
/**
|
|
@@ -535,20 +581,10 @@ var BaseService = class {
|
|
|
535
581
|
}
|
|
536
582
|
this._tokenManager = getTokenManager({
|
|
537
583
|
apiUrl: this._apiUrl,
|
|
538
|
-
onTokenRefresh: (tokens) => {
|
|
539
|
-
this.updateContext({ authToken: tokens.accessToken });
|
|
540
|
-
},
|
|
541
|
-
onTokenExpired: () => {
|
|
542
|
-
this.updateContext({ authToken: null });
|
|
543
|
-
},
|
|
544
584
|
onTokenError: (error) => {
|
|
545
585
|
console.error("Token management error:", error);
|
|
546
586
|
}
|
|
547
587
|
});
|
|
548
|
-
const { authToken } = this._context;
|
|
549
|
-
if (authToken && !this._tokenManager.hasTokens()) {
|
|
550
|
-
this._tokenManager.setTokens({ access_token: authToken });
|
|
551
|
-
}
|
|
552
588
|
this._setReady();
|
|
553
589
|
} catch (error) {
|
|
554
590
|
this._setError(error);
|
|
@@ -557,7 +593,9 @@ var BaseService = class {
|
|
|
557
593
|
}
|
|
558
594
|
// Update context
|
|
559
595
|
updateContext(context) {
|
|
560
|
-
|
|
596
|
+
if (context && typeof context === "object") {
|
|
597
|
+
Object.assign(this._context, context);
|
|
598
|
+
}
|
|
561
599
|
}
|
|
562
600
|
// Get service status
|
|
563
601
|
getStatus() {
|
|
@@ -612,11 +650,6 @@ var BaseService = class {
|
|
|
612
650
|
error
|
|
613
651
|
);
|
|
614
652
|
}
|
|
615
|
-
} else if (this._requiresInit(options.methodName)) {
|
|
616
|
-
const { authToken } = this._context;
|
|
617
|
-
if (authToken) {
|
|
618
|
-
defaultHeaders.Authorization = `Bearer ${authToken}`;
|
|
619
|
-
}
|
|
620
653
|
}
|
|
621
654
|
try {
|
|
622
655
|
const response = await fetch(url, {
|
|
@@ -634,11 +667,11 @@ var BaseService = class {
|
|
|
634
667
|
error = await response.json();
|
|
635
668
|
} catch {
|
|
636
669
|
}
|
|
637
|
-
throw new Error(error.message || error.error || "Request failed");
|
|
670
|
+
throw new Error(error.message || error.error || "Request failed", { cause: error });
|
|
638
671
|
}
|
|
639
672
|
return response.status === 204 ? null : response.json();
|
|
640
673
|
} catch (error) {
|
|
641
|
-
throw new Error(`Request failed: ${error.message}
|
|
674
|
+
throw new Error(`Request failed: ${error.message}`, { cause: error });
|
|
642
675
|
}
|
|
643
676
|
}
|
|
644
677
|
// Helper method to determine if a method requires initialization
|
|
@@ -707,7 +740,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
707
740
|
}
|
|
708
741
|
throw new Error(response.message);
|
|
709
742
|
} catch (error) {
|
|
710
|
-
throw new Error(`Failed to create subscription: ${error.message}
|
|
743
|
+
throw new Error(`Failed to create subscription: ${error.message}`, { cause: error });
|
|
711
744
|
}
|
|
712
745
|
}
|
|
713
746
|
/**
|
|
@@ -728,7 +761,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
728
761
|
}
|
|
729
762
|
throw new Error(response.message);
|
|
730
763
|
} catch (error) {
|
|
731
|
-
throw new Error(`Failed to get project subscription status: ${error.message}
|
|
764
|
+
throw new Error(`Failed to get project subscription status: ${error.message}`, { cause: error });
|
|
732
765
|
}
|
|
733
766
|
}
|
|
734
767
|
/**
|
|
@@ -749,7 +782,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
749
782
|
}
|
|
750
783
|
throw new Error(response.message);
|
|
751
784
|
} catch (error) {
|
|
752
|
-
throw new Error(`Failed to get subscription usage: ${error.message}
|
|
785
|
+
throw new Error(`Failed to get subscription usage: ${error.message}`, { cause: error });
|
|
753
786
|
}
|
|
754
787
|
}
|
|
755
788
|
/**
|
|
@@ -770,7 +803,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
770
803
|
}
|
|
771
804
|
throw new Error(response.message);
|
|
772
805
|
} catch (error) {
|
|
773
|
-
throw new Error(`Failed to cancel subscription: ${error.message}
|
|
806
|
+
throw new Error(`Failed to cancel subscription: ${error.message}`, { cause: error });
|
|
774
807
|
}
|
|
775
808
|
}
|
|
776
809
|
/**
|
|
@@ -807,7 +840,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
807
840
|
}
|
|
808
841
|
throw new Error(response.message);
|
|
809
842
|
} catch (error) {
|
|
810
|
-
throw new Error(`Failed to list invoices: ${error.message}
|
|
843
|
+
throw new Error(`Failed to list invoices: ${error.message}`, { cause: error });
|
|
811
844
|
}
|
|
812
845
|
}
|
|
813
846
|
/**
|
|
@@ -834,7 +867,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
834
867
|
}
|
|
835
868
|
throw new Error(response.message);
|
|
836
869
|
} catch (error) {
|
|
837
|
-
throw new Error(`Failed to get portal URL: ${error.message}
|
|
870
|
+
throw new Error(`Failed to get portal URL: ${error.message}`, { cause: error });
|
|
838
871
|
}
|
|
839
872
|
}
|
|
840
873
|
// ==================== SUBSCRIPTION HELPER METHODS ====================
|
|
@@ -869,7 +902,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
869
902
|
const status = await this.getProjectStatus(projectId);
|
|
870
903
|
return status.hasSubscription === true;
|
|
871
904
|
} catch (error) {
|
|
872
|
-
throw new Error(`Failed to check subscription status: ${error.message}
|
|
905
|
+
throw new Error(`Failed to check subscription status: ${error.message}`, { cause: error });
|
|
873
906
|
}
|
|
874
907
|
}
|
|
875
908
|
/**
|
|
@@ -883,7 +916,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
883
916
|
}
|
|
884
917
|
return status.subscription;
|
|
885
918
|
} catch (error) {
|
|
886
|
-
throw new Error(`Failed to get project subscription: ${error.message}
|
|
919
|
+
throw new Error(`Failed to get project subscription: ${error.message}`, { cause: error });
|
|
887
920
|
}
|
|
888
921
|
}
|
|
889
922
|
/**
|
|
@@ -897,7 +930,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
897
930
|
}
|
|
898
931
|
return status.usage;
|
|
899
932
|
} catch (error) {
|
|
900
|
-
throw new Error(`Failed to get project usage: ${error.message}
|
|
933
|
+
throw new Error(`Failed to get project usage: ${error.message}`, { cause: error });
|
|
901
934
|
}
|
|
902
935
|
}
|
|
903
936
|
/**
|
|
@@ -911,7 +944,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
911
944
|
pagination: result.pagination || {}
|
|
912
945
|
};
|
|
913
946
|
} catch (error) {
|
|
914
|
-
throw new Error(`Failed to get invoices with pagination: ${error.message}
|
|
947
|
+
throw new Error(`Failed to get invoices with pagination: ${error.message}`, { cause: error });
|
|
915
948
|
}
|
|
916
949
|
}
|
|
917
950
|
/**
|
|
@@ -922,7 +955,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
922
955
|
const usage = await this.getUsage(subscriptionId);
|
|
923
956
|
return usage && usage.subscription && usage.subscription.status === "active";
|
|
924
957
|
} catch (error) {
|
|
925
|
-
throw new Error(`Failed to check subscription status: ${error.message}
|
|
958
|
+
throw new Error(`Failed to check subscription status: ${error.message}`, { cause: error });
|
|
926
959
|
}
|
|
927
960
|
}
|
|
928
961
|
/**
|
|
@@ -933,7 +966,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
933
966
|
const usage = await this.getUsage(subscriptionId);
|
|
934
967
|
return usage.limits || {};
|
|
935
968
|
} catch (error) {
|
|
936
|
-
throw new Error(`Failed to get subscription limits: ${error.message}
|
|
969
|
+
throw new Error(`Failed to get subscription limits: ${error.message}`, { cause: error });
|
|
937
970
|
}
|
|
938
971
|
}
|
|
939
972
|
/**
|
|
@@ -969,7 +1002,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
969
1002
|
}
|
|
970
1003
|
throw new Error(response.message);
|
|
971
1004
|
} catch (error) {
|
|
972
|
-
throw new Error(`Failed to change subscription: ${error.message}
|
|
1005
|
+
throw new Error(`Failed to change subscription: ${error.message}`, { cause: error });
|
|
973
1006
|
}
|
|
974
1007
|
}
|
|
975
1008
|
/**
|
|
@@ -997,7 +1030,7 @@ var SubscriptionService = class extends BaseService {
|
|
|
997
1030
|
}
|
|
998
1031
|
throw new Error(response.message);
|
|
999
1032
|
} catch (error) {
|
|
1000
|
-
throw new Error(`Failed to downgrade subscription: ${error.message}
|
|
1033
|
+
throw new Error(`Failed to downgrade subscription: ${error.message}`, { cause: error });
|
|
1001
1034
|
}
|
|
1002
1035
|
}
|
|
1003
1036
|
/**
|