sunsama-api 0.1.0
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/LICENSE +21 -0
- package/README.md +215 -0
- package/dist/cjs/client/index.js +347 -0
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/errors/index.js +110 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/queries/fragments/index.js +9 -0
- package/dist/cjs/queries/fragments/index.js.map +1 -0
- package/dist/cjs/queries/fragments/stream.js +74 -0
- package/dist/cjs/queries/fragments/stream.js.map +1 -0
- package/dist/cjs/queries/fragments/task.js +500 -0
- package/dist/cjs/queries/fragments/task.js.map +1 -0
- package/dist/cjs/queries/index.js +11 -0
- package/dist/cjs/queries/index.js.map +1 -0
- package/dist/cjs/queries/streams.js +19 -0
- package/dist/cjs/queries/streams.js.map +1 -0
- package/dist/cjs/queries/tasks.js +41 -0
- package/dist/cjs/queries/tasks.js.map +1 -0
- package/dist/cjs/queries/user.js +472 -0
- package/dist/cjs/queries/user.js.map +1 -0
- package/dist/cjs/types/api.js +9 -0
- package/dist/cjs/types/api.js.map +1 -0
- package/dist/cjs/types/client.js +6 -0
- package/dist/cjs/types/client.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/index.js +8 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/utils/index.js +63 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/esm/client/index.js +348 -0
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/errors/index.js +105 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/queries/fragments/index.js +6 -0
- package/dist/esm/queries/fragments/index.js.map +1 -0
- package/dist/esm/queries/fragments/stream.js +71 -0
- package/dist/esm/queries/fragments/stream.js.map +1 -0
- package/dist/esm/queries/fragments/task.js +497 -0
- package/dist/esm/queries/fragments/task.js.map +1 -0
- package/dist/esm/queries/index.js +8 -0
- package/dist/esm/queries/index.js.map +1 -0
- package/dist/esm/queries/streams.js +16 -0
- package/dist/esm/queries/streams.js.map +1 -0
- package/dist/esm/queries/tasks.js +38 -0
- package/dist/esm/queries/tasks.js.map +1 -0
- package/dist/esm/queries/user.js +469 -0
- package/dist/esm/queries/user.js.map +1 -0
- package/dist/esm/types/api.js +8 -0
- package/dist/esm/types/api.js.map +1 -0
- package/dist/esm/types/client.js +5 -0
- package/dist/esm/types/client.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/index.js +7 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/utils/index.js +57 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/types/client/index.d.ts +109 -0
- package/dist/types/client/index.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +67 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/queries/fragments/index.d.ts +6 -0
- package/dist/types/queries/fragments/index.d.ts.map +1 -0
- package/dist/types/queries/fragments/stream.d.ts +5 -0
- package/dist/types/queries/fragments/stream.d.ts.map +1 -0
- package/dist/types/queries/fragments/task.d.ts +8 -0
- package/dist/types/queries/fragments/task.d.ts.map +1 -0
- package/dist/types/queries/index.d.ts +8 -0
- package/dist/types/queries/index.d.ts.map +1 -0
- package/dist/types/queries/streams.d.ts +5 -0
- package/dist/types/queries/streams.d.ts.map +1 -0
- package/dist/types/queries/tasks.d.ts +6 -0
- package/dist/types/queries/tasks.d.ts.map +1 -0
- package/dist/types/queries/user.d.ts +5 -0
- package/dist/types/queries/user.d.ts.map +1 -0
- package/dist/types/types/api.d.ts +838 -0
- package/dist/types/types/api.d.ts.map +1 -0
- package/dist/types/types/client.d.ts +30 -0
- package/dist/types/types/client.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +58 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +9 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +35 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Error classes for the Sunsama API wrapper
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SunsamaTimeoutError = exports.SunsamaNetworkError = exports.SunsamaValidationError = exports.SunsamaAuthError = exports.SunsamaConfigError = exports.SunsamaApiError = exports.SunsamaError = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Base error class for all Sunsama-related errors
|
|
9
|
+
*/
|
|
10
|
+
class SunsamaError extends Error {
|
|
11
|
+
constructor(message, code, cause) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.cause = cause;
|
|
15
|
+
this.name = 'SunsamaError';
|
|
16
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
17
|
+
if (Error.captureStackTrace) {
|
|
18
|
+
Error.captureStackTrace(this, SunsamaError);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.SunsamaError = SunsamaError;
|
|
23
|
+
/**
|
|
24
|
+
* Error thrown when API requests fail
|
|
25
|
+
*/
|
|
26
|
+
class SunsamaApiError extends SunsamaError {
|
|
27
|
+
constructor(message, status, response, code) {
|
|
28
|
+
super(message, code);
|
|
29
|
+
this.status = status;
|
|
30
|
+
this.response = response;
|
|
31
|
+
this.name = 'SunsamaApiError';
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if this is a client error (4xx status code)
|
|
35
|
+
*/
|
|
36
|
+
isClientError() {
|
|
37
|
+
return this.status >= 400 && this.status < 500;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if this is a server error (5xx status code)
|
|
41
|
+
*/
|
|
42
|
+
isServerError() {
|
|
43
|
+
return this.status >= 500;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check if this is a rate limit error
|
|
47
|
+
*/
|
|
48
|
+
isRateLimitError() {
|
|
49
|
+
return this.status === 429;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check if this is an authentication error
|
|
53
|
+
*/
|
|
54
|
+
isAuthError() {
|
|
55
|
+
return this.status === 401 || this.status === 403;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.SunsamaApiError = SunsamaApiError;
|
|
59
|
+
/**
|
|
60
|
+
* Error thrown when client configuration is invalid
|
|
61
|
+
*/
|
|
62
|
+
class SunsamaConfigError extends SunsamaError {
|
|
63
|
+
constructor(message, code) {
|
|
64
|
+
super(message, code);
|
|
65
|
+
this.name = 'SunsamaConfigError';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.SunsamaConfigError = SunsamaConfigError;
|
|
69
|
+
/**
|
|
70
|
+
* Error thrown when authentication fails
|
|
71
|
+
*/
|
|
72
|
+
class SunsamaAuthError extends SunsamaError {
|
|
73
|
+
constructor(message, code, cause) {
|
|
74
|
+
super(message, code, cause);
|
|
75
|
+
this.name = 'SunsamaAuthError';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.SunsamaAuthError = SunsamaAuthError;
|
|
79
|
+
/**
|
|
80
|
+
* Error thrown when request validation fails
|
|
81
|
+
*/
|
|
82
|
+
class SunsamaValidationError extends SunsamaError {
|
|
83
|
+
constructor(message, field, code) {
|
|
84
|
+
super(message, code);
|
|
85
|
+
this.field = field;
|
|
86
|
+
this.name = 'SunsamaValidationError';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.SunsamaValidationError = SunsamaValidationError;
|
|
90
|
+
/**
|
|
91
|
+
* Error thrown when network requests fail
|
|
92
|
+
*/
|
|
93
|
+
class SunsamaNetworkError extends SunsamaError {
|
|
94
|
+
constructor(message, cause) {
|
|
95
|
+
super(message, 'NETWORK_ERROR', cause);
|
|
96
|
+
this.name = 'SunsamaNetworkError';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.SunsamaNetworkError = SunsamaNetworkError;
|
|
100
|
+
/**
|
|
101
|
+
* Error thrown when requests timeout
|
|
102
|
+
*/
|
|
103
|
+
class SunsamaTimeoutError extends SunsamaNetworkError {
|
|
104
|
+
constructor(timeout) {
|
|
105
|
+
super(`Request timed out after ${timeout}ms`);
|
|
106
|
+
this.name = 'SunsamaTimeoutError';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.SunsamaTimeoutError = SunsamaTimeoutError;
|
|
110
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IACrC,YACE,OAAe,EACC,IAAa,EACb,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAS;QACb,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAE3B,qFAAqF;QACrF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF;AAdD,oCAcC;AAED;;GAEG;AACH,MAAa,eAAgB,SAAQ,YAAY;IAC/C,YACE,OAAe,EACC,MAAc,EACd,QAAkB,EAClC,IAAa;QAEb,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAJL,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAU;QAIlC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,gBAAgB;QACrB,OAAO,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC;IACpD,CAAC;CACF;AAtCD,0CAsCC;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,YAAY;IAClD,YAAY,OAAe,EAAE,IAAa;QACxC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAED;;GAEG;AACH,MAAa,gBAAiB,SAAQ,YAAY;IAChD,YAAY,OAAe,EAAE,IAAa,EAAE,KAAa;QACvD,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED;;GAEG;AACH,MAAa,sBAAuB,SAAQ,YAAY;IACtD,YACE,OAAe,EACC,KAAc,EAC9B,IAAa;QAEb,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAHL,UAAK,GAAL,KAAK,CAAS;QAI9B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AATD,wDASC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAY;IACnD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,OAAe;QACzB,KAAK,CAAC,2BAA2B,OAAO,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sunsama API TypeScript Wrapper
|
|
4
|
+
*
|
|
5
|
+
* A comprehensive TypeScript wrapper for the Sunsama API, providing type-safe access
|
|
6
|
+
* to daily planning and task management functionality.
|
|
7
|
+
*
|
|
8
|
+
* @author Your Name
|
|
9
|
+
* @version 0.1.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SunsamaClient = void 0;
|
|
13
|
+
const tslib_1 = require("tslib");
|
|
14
|
+
// Main client export
|
|
15
|
+
var index_js_1 = require("./client/index.js");
|
|
16
|
+
Object.defineProperty(exports, "SunsamaClient", { enumerable: true, get: function () { return index_js_1.SunsamaClient; } });
|
|
17
|
+
// Error exports
|
|
18
|
+
tslib_1.__exportStar(require("./errors/index.js"), exports);
|
|
19
|
+
// Utility exports (if needed)
|
|
20
|
+
tslib_1.__exportStar(require("./utils/index.js"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;AAEH,qBAAqB;AACrB,8CAAkD;AAAzC,yGAAA,aAAa,OAAA;AAKtB,gBAAgB;AAChB,4DAAkC;AAElC,8BAA8B;AAC9B,2DAAiC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GraphQL fragments exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
tslib_1.__exportStar(require("./task.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./stream.js"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/queries/fragments/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oDAA0B;AAC1B,sDAA4B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Stream-related GraphQL fragments
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.STREAM_FRAGMENT = void 0;
|
|
7
|
+
const graphql_tag_1 = require("graphql-tag");
|
|
8
|
+
exports.STREAM_FRAGMENT = (0, graphql_tag_1.gql) `
|
|
9
|
+
fragment StreamData on Stream {
|
|
10
|
+
_id
|
|
11
|
+
groupId
|
|
12
|
+
createdAt
|
|
13
|
+
createdBy
|
|
14
|
+
streamName
|
|
15
|
+
category
|
|
16
|
+
categoryStreamId
|
|
17
|
+
personal
|
|
18
|
+
description
|
|
19
|
+
status
|
|
20
|
+
lastModified
|
|
21
|
+
slackChannelId
|
|
22
|
+
slackAccountId
|
|
23
|
+
standup {
|
|
24
|
+
channel
|
|
25
|
+
rule {
|
|
26
|
+
isoDays
|
|
27
|
+
hour
|
|
28
|
+
minute
|
|
29
|
+
__typename
|
|
30
|
+
}
|
|
31
|
+
nextStandupDate
|
|
32
|
+
lastStandupDate
|
|
33
|
+
timezone
|
|
34
|
+
__typename
|
|
35
|
+
}
|
|
36
|
+
editTrail {
|
|
37
|
+
userId
|
|
38
|
+
editDate
|
|
39
|
+
__typename
|
|
40
|
+
}
|
|
41
|
+
color
|
|
42
|
+
memberIds
|
|
43
|
+
private
|
|
44
|
+
projectIntegrations {
|
|
45
|
+
integration
|
|
46
|
+
projectId
|
|
47
|
+
accountId
|
|
48
|
+
userId
|
|
49
|
+
__typename
|
|
50
|
+
}
|
|
51
|
+
schedules {
|
|
52
|
+
userId
|
|
53
|
+
timeSpans {
|
|
54
|
+
id
|
|
55
|
+
dayIndex
|
|
56
|
+
start {
|
|
57
|
+
hour
|
|
58
|
+
minute
|
|
59
|
+
__typename
|
|
60
|
+
}
|
|
61
|
+
end {
|
|
62
|
+
hour
|
|
63
|
+
minute
|
|
64
|
+
__typename
|
|
65
|
+
}
|
|
66
|
+
__typename
|
|
67
|
+
}
|
|
68
|
+
__typename
|
|
69
|
+
}
|
|
70
|
+
deleted
|
|
71
|
+
__typename
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../src/queries/fragments/stream.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6CAAkC;AAErB,QAAA,eAAe,GAAG,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEjC,CAAC"}
|