@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
|
|
@@ -688,7 +721,7 @@ var PlanService = class extends BaseService {
|
|
|
688
721
|
}
|
|
689
722
|
throw new Error(response.message);
|
|
690
723
|
} catch (error) {
|
|
691
|
-
throw new Error(`Failed to get plans: ${error.message}
|
|
724
|
+
throw new Error(`Failed to get plans: ${error.message}`, { cause: error });
|
|
692
725
|
}
|
|
693
726
|
}
|
|
694
727
|
/**
|
|
@@ -708,7 +741,7 @@ var PlanService = class extends BaseService {
|
|
|
708
741
|
}
|
|
709
742
|
throw new Error(response.message);
|
|
710
743
|
} catch (error) {
|
|
711
|
-
throw new Error(`Failed to get plan: ${error.message}
|
|
744
|
+
throw new Error(`Failed to get plan: ${error.message}`, { cause: error });
|
|
712
745
|
}
|
|
713
746
|
}
|
|
714
747
|
// ==================== ADMIN PLAN METHODS ====================
|
|
@@ -727,7 +760,7 @@ var PlanService = class extends BaseService {
|
|
|
727
760
|
}
|
|
728
761
|
throw new Error(response.message);
|
|
729
762
|
} catch (error) {
|
|
730
|
-
throw new Error(`Failed to get admin plans: ${error.message}
|
|
763
|
+
throw new Error(`Failed to get admin plans: ${error.message}`, { cause: error });
|
|
731
764
|
}
|
|
732
765
|
}
|
|
733
766
|
/**
|
|
@@ -749,7 +782,7 @@ var PlanService = class extends BaseService {
|
|
|
749
782
|
}
|
|
750
783
|
throw new Error(response.message);
|
|
751
784
|
} catch (error) {
|
|
752
|
-
throw new Error(`Failed to create plan: ${error.message}
|
|
785
|
+
throw new Error(`Failed to create plan: ${error.message}`, { cause: error });
|
|
753
786
|
}
|
|
754
787
|
}
|
|
755
788
|
/**
|
|
@@ -774,7 +807,7 @@ var PlanService = class extends BaseService {
|
|
|
774
807
|
}
|
|
775
808
|
throw new Error(response.message);
|
|
776
809
|
} catch (error) {
|
|
777
|
-
throw new Error(`Failed to update plan: ${error.message}
|
|
810
|
+
throw new Error(`Failed to update plan: ${error.message}`, { cause: error });
|
|
778
811
|
}
|
|
779
812
|
}
|
|
780
813
|
/**
|
|
@@ -795,7 +828,7 @@ var PlanService = class extends BaseService {
|
|
|
795
828
|
}
|
|
796
829
|
throw new Error(response.message);
|
|
797
830
|
} catch (error) {
|
|
798
|
-
throw new Error(`Failed to delete plan: ${error.message}
|
|
831
|
+
throw new Error(`Failed to delete plan: ${error.message}`, { cause: error });
|
|
799
832
|
}
|
|
800
833
|
}
|
|
801
834
|
/**
|
|
@@ -813,7 +846,7 @@ var PlanService = class extends BaseService {
|
|
|
813
846
|
}
|
|
814
847
|
throw new Error(response.message);
|
|
815
848
|
} catch (error) {
|
|
816
|
-
throw new Error(`Failed to initialize plans: ${error.message}
|
|
849
|
+
throw new Error(`Failed to initialize plans: ${error.message}`, { cause: error });
|
|
817
850
|
}
|
|
818
851
|
}
|
|
819
852
|
// ==================== PLAN HELPER METHODS ====================
|
|
@@ -828,7 +861,7 @@ var PlanService = class extends BaseService {
|
|
|
828
861
|
}
|
|
829
862
|
return plans;
|
|
830
863
|
} catch (error) {
|
|
831
|
-
throw new Error(`Failed to get plans with validation: ${error.message}
|
|
864
|
+
throw new Error(`Failed to get plans with validation: ${error.message}`, { cause: error });
|
|
832
865
|
}
|
|
833
866
|
}
|
|
834
867
|
/**
|
|
@@ -845,7 +878,7 @@ var PlanService = class extends BaseService {
|
|
|
845
878
|
}
|
|
846
879
|
return plan;
|
|
847
880
|
} catch (error) {
|
|
848
|
-
throw new Error(`Failed to get plan with validation: ${error.message}
|
|
881
|
+
throw new Error(`Failed to get plan with validation: ${error.message}`, { cause: error });
|
|
849
882
|
}
|
|
850
883
|
}
|
|
851
884
|
/**
|
|
@@ -897,7 +930,7 @@ var PlanService = class extends BaseService {
|
|
|
897
930
|
const plans = await this.getPlans();
|
|
898
931
|
return plans.filter((plan) => plan.active !== false);
|
|
899
932
|
} catch (error) {
|
|
900
|
-
throw new Error(`Failed to get active plans: ${error.message}
|
|
933
|
+
throw new Error(`Failed to get active plans: ${error.message}`, { cause: error });
|
|
901
934
|
}
|
|
902
935
|
}
|
|
903
936
|
/**
|
|
@@ -911,7 +944,7 @@ var PlanService = class extends BaseService {
|
|
|
911
944
|
return price >= minPrice && price <= maxPrice;
|
|
912
945
|
});
|
|
913
946
|
} catch (error) {
|
|
914
|
-
throw new Error(`Failed to get plans by price range: ${error.message}
|
|
947
|
+
throw new Error(`Failed to get plans by price range: ${error.message}`, { cause: error });
|
|
915
948
|
}
|
|
916
949
|
}
|
|
917
950
|
/**
|
|
@@ -929,7 +962,7 @@ var PlanService = class extends BaseService {
|
|
|
929
962
|
}
|
|
930
963
|
return plan;
|
|
931
964
|
} catch (error) {
|
|
932
|
-
throw new Error(`Failed to get plan by key: ${error.message}
|
|
965
|
+
throw new Error(`Failed to get plan by key: ${error.message}`, { cause: error });
|
|
933
966
|
}
|
|
934
967
|
}
|
|
935
968
|
};
|