@osise/api-client 0.0.1
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/README.md +474 -0
- package/dist/cjs/api/admin.js +277 -0
- package/dist/cjs/api/admin.js.map +1 -0
- package/dist/cjs/api/artisans.js +277 -0
- package/dist/cjs/api/artisans.js.map +1 -0
- package/dist/cjs/api/auth.js +83 -0
- package/dist/cjs/api/auth.js.map +1 -0
- package/dist/cjs/api/consumers.js +170 -0
- package/dist/cjs/api/consumers.js.map +1 -0
- package/dist/cjs/api/index.js +22 -0
- package/dist/cjs/api/index.js.map +1 -0
- package/dist/cjs/api/jobs.js +202 -0
- package/dist/cjs/api/jobs.js.map +1 -0
- package/dist/cjs/hooks/index.js +435 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/index.js +189 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types/admin.js +6 -0
- package/dist/cjs/types/admin.js.map +1 -0
- package/dist/cjs/types/artisan.js +6 -0
- package/dist/cjs/types/artisan.js.map +1 -0
- package/dist/cjs/types/auth.js +6 -0
- package/dist/cjs/types/auth.js.map +1 -0
- package/dist/cjs/types/common.js +6 -0
- package/dist/cjs/types/common.js.map +1 -0
- package/dist/cjs/types/consumer.js +6 -0
- package/dist/cjs/types/consumer.js.map +1 -0
- package/dist/cjs/types/enums.js +226 -0
- package/dist/cjs/types/enums.js.map +1 -0
- package/dist/cjs/types/index.js +35 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/job.js +6 -0
- package/dist/cjs/types/job.js.map +1 -0
- package/dist/cjs/utils/http-client.js +214 -0
- package/dist/cjs/utils/http-client.js.map +1 -0
- package/dist/cjs/utils/index.js +19 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/storage.js +105 -0
- package/dist/cjs/utils/storage.js.map +1 -0
- package/dist/esm/api/admin.js +269 -0
- package/dist/esm/api/admin.js.map +1 -0
- package/dist/esm/api/artisans.js +270 -0
- package/dist/esm/api/artisans.js.map +1 -0
- package/dist/esm/api/auth.js +79 -0
- package/dist/esm/api/auth.js.map +1 -0
- package/dist/esm/api/consumers.js +165 -0
- package/dist/esm/api/consumers.js.map +1 -0
- package/dist/esm/api/index.js +6 -0
- package/dist/esm/api/index.js.map +1 -0
- package/dist/esm/api/jobs.js +197 -0
- package/dist/esm/api/jobs.js.map +1 -0
- package/dist/esm/hooks/index.js +408 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/index.js +165 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/admin.js +5 -0
- package/dist/esm/types/admin.js.map +1 -0
- package/dist/esm/types/artisan.js +5 -0
- package/dist/esm/types/artisan.js.map +1 -0
- package/dist/esm/types/auth.js +5 -0
- package/dist/esm/types/auth.js.map +1 -0
- package/dist/esm/types/common.js +5 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/consumer.js +5 -0
- package/dist/esm/types/consumer.js.map +1 -0
- package/dist/esm/types/enums.js +223 -0
- package/dist/esm/types/enums.js.map +1 -0
- package/dist/esm/types/index.js +19 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/job.js +5 -0
- package/dist/esm/types/job.js.map +1 -0
- package/dist/esm/utils/http-client.js +208 -0
- package/dist/esm/utils/http-client.js.map +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/storage.js +99 -0
- package/dist/esm/utils/storage.js.map +1 -0
- package/dist/types/api/admin.d.ts +188 -0
- package/dist/types/api/admin.d.ts.map +1 -0
- package/dist/types/api/artisans.d.ts +183 -0
- package/dist/types/api/artisans.d.ts.map +1 -0
- package/dist/types/api/auth.d.ts +58 -0
- package/dist/types/api/auth.d.ts.map +1 -0
- package/dist/types/api/consumers.d.ts +113 -0
- package/dist/types/api/consumers.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +6 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/jobs.d.ts +136 -0
- package/dist/types/api/jobs.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +225 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +127 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/admin.d.ts +226 -0
- package/dist/types/types/admin.d.ts.map +1 -0
- package/dist/types/types/artisan.d.ts +438 -0
- package/dist/types/types/artisan.d.ts.map +1 -0
- package/dist/types/types/auth.d.ts +92 -0
- package/dist/types/types/auth.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +105 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/consumer.d.ts +144 -0
- package/dist/types/types/consumer.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +199 -0
- package/dist/types/types/enums.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +12 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/job.d.ts +226 -0
- package/dist/types/types/job.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts +65 -0
- package/dist/types/utils/http-client.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/storage.d.ts +48 -0
- package/dist/types/utils/storage.d.ts.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumers API
|
|
3
|
+
* Handles consumer profile, addresses, favorites, and notifications
|
|
4
|
+
*/
|
|
5
|
+
export class ConsumersApi {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
this.basePath = '/api/v1/consumers';
|
|
9
|
+
}
|
|
10
|
+
// ==================== Profile ====================
|
|
11
|
+
/**
|
|
12
|
+
* Register consumer profile after authentication
|
|
13
|
+
*/
|
|
14
|
+
async register(data) {
|
|
15
|
+
return this.http.post(`${this.basePath}/register`, data);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get current consumer's profile
|
|
19
|
+
*/
|
|
20
|
+
async getProfile() {
|
|
21
|
+
return this.http.get(`${this.basePath}/profile`);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Update consumer profile
|
|
25
|
+
*/
|
|
26
|
+
async updateProfile(data) {
|
|
27
|
+
return this.http.patch(`${this.basePath}/profile`, data);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Upload profile photo (Uploadcare URL)
|
|
31
|
+
*/
|
|
32
|
+
async uploadProfilePhoto(photoUrl) {
|
|
33
|
+
return this.http.post(`${this.basePath}/profile/photo`, { photoUrl });
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Update account type (Individual/Business)
|
|
37
|
+
*/
|
|
38
|
+
async updateAccountType(accountType) {
|
|
39
|
+
return this.http.patch(`${this.basePath}/profile/account-type`, { accountType });
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Request account deletion (NDPR compliance)
|
|
43
|
+
*/
|
|
44
|
+
async requestAccountDeletion(data) {
|
|
45
|
+
return this.http.post(`${this.basePath}/profile/delete-request`, data);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Export consumer data (NDPR compliance)
|
|
49
|
+
*/
|
|
50
|
+
async exportData() {
|
|
51
|
+
return this.http.get(`${this.basePath}/profile/export`);
|
|
52
|
+
}
|
|
53
|
+
// ==================== Addresses ====================
|
|
54
|
+
/**
|
|
55
|
+
* Get all addresses for the consumer
|
|
56
|
+
*/
|
|
57
|
+
async getAddresses() {
|
|
58
|
+
return this.http.get(`${this.basePath}/addresses`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get a specific address
|
|
62
|
+
*/
|
|
63
|
+
async getAddress(addressId) {
|
|
64
|
+
return this.http.get(`${this.basePath}/addresses/${addressId}`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Add a new address
|
|
68
|
+
*/
|
|
69
|
+
async addAddress(data) {
|
|
70
|
+
return this.http.post(`${this.basePath}/addresses`, data);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Update an existing address
|
|
74
|
+
*/
|
|
75
|
+
async updateAddress(addressId, data) {
|
|
76
|
+
return this.http.patch(`${this.basePath}/addresses/${addressId}`, data);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Delete an address
|
|
80
|
+
*/
|
|
81
|
+
async deleteAddress(addressId) {
|
|
82
|
+
return this.http.delete(`${this.basePath}/addresses/${addressId}`);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Set an address as the default
|
|
86
|
+
*/
|
|
87
|
+
async setDefaultAddress(addressId) {
|
|
88
|
+
return this.http.post(`${this.basePath}/addresses/${addressId}/set-default`);
|
|
89
|
+
}
|
|
90
|
+
// ==================== Favorites ====================
|
|
91
|
+
/**
|
|
92
|
+
* Get favorite artisans
|
|
93
|
+
*/
|
|
94
|
+
async getFavorites(params) {
|
|
95
|
+
return this.http.get(`${this.basePath}/favorites`, params);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Add artisan to favorites
|
|
99
|
+
*/
|
|
100
|
+
async addFavorite(artisanId, notes) {
|
|
101
|
+
return this.http.post(`${this.basePath}/favorites/${artisanId}`, { notes });
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Remove artisan from favorites
|
|
105
|
+
*/
|
|
106
|
+
async removeFavorite(artisanId) {
|
|
107
|
+
return this.http.delete(`${this.basePath}/favorites/${artisanId}`);
|
|
108
|
+
}
|
|
109
|
+
// ==================== Notifications ====================
|
|
110
|
+
/**
|
|
111
|
+
* Get notification settings
|
|
112
|
+
*/
|
|
113
|
+
async getNotificationSettings() {
|
|
114
|
+
return this.http.get(`${this.basePath}/notifications/settings`);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Update notification settings
|
|
118
|
+
*/
|
|
119
|
+
async updateNotificationSettings(data) {
|
|
120
|
+
return this.http.put(`${this.basePath}/notifications/settings`, data);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export class ConsumerAddressesApi {
|
|
124
|
+
constructor(http) {
|
|
125
|
+
this.http = http;
|
|
126
|
+
this.basePath = '/api/v1/consumers/addresses';
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get all addresses for the consumer
|
|
130
|
+
*/
|
|
131
|
+
async getAll() {
|
|
132
|
+
return this.http.get(this.basePath);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get a specific address
|
|
136
|
+
*/
|
|
137
|
+
async get(addressId) {
|
|
138
|
+
return this.http.get(`${this.basePath}/${addressId}`);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Add a new address
|
|
142
|
+
*/
|
|
143
|
+
async create(data) {
|
|
144
|
+
return this.http.post(this.basePath, data);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Update an existing address
|
|
148
|
+
*/
|
|
149
|
+
async update(addressId, data) {
|
|
150
|
+
return this.http.patch(`${this.basePath}/${addressId}`, data);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Delete an address
|
|
154
|
+
*/
|
|
155
|
+
async delete(addressId) {
|
|
156
|
+
return this.http.delete(`${this.basePath}/${addressId}`);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Set an address as the default
|
|
160
|
+
*/
|
|
161
|
+
async setDefault(addressId) {
|
|
162
|
+
return this.http.post(`${this.basePath}/${addressId}/set-default`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=consumers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumers.js","sourceRoot":"","sources":["../../../src/api/consumers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jobs API
|
|
3
|
+
* Handles job requests, quotes, payments, ratings, and disputes
|
|
4
|
+
*/
|
|
5
|
+
import { JobStatus, } from '../types';
|
|
6
|
+
export class JobsApi {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
this.basePath = '/api/v1/jobs';
|
|
10
|
+
}
|
|
11
|
+
// ==================== Consumer Job Operations ====================
|
|
12
|
+
/**
|
|
13
|
+
* Create a new job request
|
|
14
|
+
*/
|
|
15
|
+
async create(data) {
|
|
16
|
+
return this.http.post(this.basePath, data);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get a specific job by ID
|
|
20
|
+
*/
|
|
21
|
+
async get(jobId) {
|
|
22
|
+
return this.http.get(`${this.basePath}/${jobId}`);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Update a pending job request
|
|
26
|
+
*/
|
|
27
|
+
async update(jobId, data) {
|
|
28
|
+
return this.http.patch(`${this.basePath}/${jobId}`, data);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get consumer's jobs (paginated with filters)
|
|
32
|
+
*/
|
|
33
|
+
async list(params) {
|
|
34
|
+
return this.http.get(this.basePath, params);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Cancel a job
|
|
38
|
+
*/
|
|
39
|
+
async cancel(jobId, data) {
|
|
40
|
+
return this.http.post(`${this.basePath}/${jobId}/cancel`, data);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get job timeline/history
|
|
44
|
+
*/
|
|
45
|
+
async getTimeline(jobId) {
|
|
46
|
+
return this.http.get(`${this.basePath}/${jobId}/timeline`);
|
|
47
|
+
}
|
|
48
|
+
// ==================== Quote Operations (Consumer) ====================
|
|
49
|
+
/**
|
|
50
|
+
* Get the current quote for a job
|
|
51
|
+
*/
|
|
52
|
+
async getQuote(jobId) {
|
|
53
|
+
return this.http.get(`${this.basePath}/${jobId}/quote`);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Approve or reject a quote
|
|
57
|
+
*/
|
|
58
|
+
async respondToQuote(jobId, data) {
|
|
59
|
+
return this.http.post(`${this.basePath}/${jobId}/quote/respond`, data);
|
|
60
|
+
}
|
|
61
|
+
// ==================== Payment Operations ====================
|
|
62
|
+
/**
|
|
63
|
+
* Get payment details for a job
|
|
64
|
+
*/
|
|
65
|
+
async getPayment(jobId) {
|
|
66
|
+
return this.http.get(`${this.basePath}/${jobId}/payment`);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Initiate payment for a job
|
|
70
|
+
*/
|
|
71
|
+
async initiatePayment(jobId, data) {
|
|
72
|
+
return this.http.post(`${this.basePath}/${jobId}/payment/initiate`, data);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Verify payment (callback from payment gateway)
|
|
76
|
+
*/
|
|
77
|
+
async verifyPayment(jobId, reference) {
|
|
78
|
+
return this.http.post(`${this.basePath}/${jobId}/payment/verify`, { reference });
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Mark payment as cash (for cash payments)
|
|
82
|
+
*/
|
|
83
|
+
async markCashPayment(jobId) {
|
|
84
|
+
return this.http.post(`${this.basePath}/${jobId}/payment/cash`);
|
|
85
|
+
}
|
|
86
|
+
// ==================== Rating Operations ====================
|
|
87
|
+
/**
|
|
88
|
+
* Get rating for a completed job
|
|
89
|
+
*/
|
|
90
|
+
async getRating(jobId) {
|
|
91
|
+
return this.http.get(`${this.basePath}/${jobId}/rating`);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Submit rating for a completed job
|
|
95
|
+
*/
|
|
96
|
+
async submitRating(jobId, data) {
|
|
97
|
+
return this.http.post(`${this.basePath}/${jobId}/rating`, data);
|
|
98
|
+
}
|
|
99
|
+
// ==================== Dispute Operations ====================
|
|
100
|
+
/**
|
|
101
|
+
* Get dispute for a job
|
|
102
|
+
*/
|
|
103
|
+
async getDispute(jobId) {
|
|
104
|
+
return this.http.get(`${this.basePath}/${jobId}/dispute`);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create a dispute for a job
|
|
108
|
+
*/
|
|
109
|
+
async createDispute(jobId, data) {
|
|
110
|
+
return this.http.post(`${this.basePath}/${jobId}/dispute`, data);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export class ArtisanJobsApi {
|
|
114
|
+
constructor(http) {
|
|
115
|
+
this.http = http;
|
|
116
|
+
this.basePath = '/api/v1/artisans/jobs';
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get assigned jobs for artisan (paginated with filters)
|
|
120
|
+
*/
|
|
121
|
+
async list(params) {
|
|
122
|
+
return this.http.get(this.basePath, params);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get a specific assigned job
|
|
126
|
+
*/
|
|
127
|
+
async get(jobId) {
|
|
128
|
+
return this.http.get(`${this.basePath}/${jobId}`);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Accept an assigned job
|
|
132
|
+
*/
|
|
133
|
+
async accept(jobId) {
|
|
134
|
+
return this.http.post(`${this.basePath}/${jobId}/accept`);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Decline an assigned job
|
|
138
|
+
*/
|
|
139
|
+
async decline(jobId, reason) {
|
|
140
|
+
return this.http.post(`${this.basePath}/${jobId}/decline`, { reason });
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Update job status (en_route, arrived, in_progress, completed)
|
|
144
|
+
*/
|
|
145
|
+
async updateStatus(jobId, data) {
|
|
146
|
+
return this.http.patch(`${this.basePath}/${jobId}/status`, data);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Start traveling to job location
|
|
150
|
+
*/
|
|
151
|
+
async startEnRoute(jobId) {
|
|
152
|
+
return this.updateStatus(jobId, { status: JobStatus.ArtisanEnRoute });
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Mark arrival at job location (GPS verified)
|
|
156
|
+
*/
|
|
157
|
+
async markArrived(jobId, location) {
|
|
158
|
+
return this.updateStatus(jobId, { status: JobStatus.Arrived, location });
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Start work on the job
|
|
162
|
+
*/
|
|
163
|
+
async startWork(jobId) {
|
|
164
|
+
return this.updateStatus(jobId, { status: JobStatus.InProgress });
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Mark job as completed
|
|
168
|
+
*/
|
|
169
|
+
async complete(jobId, notes) {
|
|
170
|
+
return this.updateStatus(jobId, { status: JobStatus.Completed, notes });
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Submit a quote for the job
|
|
174
|
+
*/
|
|
175
|
+
async submitQuote(jobId, data) {
|
|
176
|
+
return this.http.post(`${this.basePath}/${jobId}/quote`, data);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Revise a rejected quote
|
|
180
|
+
*/
|
|
181
|
+
async reviseQuote(jobId, data) {
|
|
182
|
+
return this.http.put(`${this.basePath}/${jobId}/quote`, data);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Update location while en route
|
|
186
|
+
*/
|
|
187
|
+
async updateLocation(jobId, data) {
|
|
188
|
+
return this.http.post(`${this.basePath}/${jobId}/location`, data);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Respond to a consumer review
|
|
192
|
+
*/
|
|
193
|
+
async respondToReview(jobId, response) {
|
|
194
|
+
return this.http.post(`${this.basePath}/${jobId}/review/respond`, { response });
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/api/jobs.ts"],"names":[],"mappings":"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"}
|