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.
Files changed (93) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +215 -0
  3. package/dist/cjs/client/index.js +347 -0
  4. package/dist/cjs/client/index.js.map +1 -0
  5. package/dist/cjs/errors/index.js +110 -0
  6. package/dist/cjs/errors/index.js.map +1 -0
  7. package/dist/cjs/index.js +21 -0
  8. package/dist/cjs/index.js.map +1 -0
  9. package/dist/cjs/queries/fragments/index.js +9 -0
  10. package/dist/cjs/queries/fragments/index.js.map +1 -0
  11. package/dist/cjs/queries/fragments/stream.js +74 -0
  12. package/dist/cjs/queries/fragments/stream.js.map +1 -0
  13. package/dist/cjs/queries/fragments/task.js +500 -0
  14. package/dist/cjs/queries/fragments/task.js.map +1 -0
  15. package/dist/cjs/queries/index.js +11 -0
  16. package/dist/cjs/queries/index.js.map +1 -0
  17. package/dist/cjs/queries/streams.js +19 -0
  18. package/dist/cjs/queries/streams.js.map +1 -0
  19. package/dist/cjs/queries/tasks.js +41 -0
  20. package/dist/cjs/queries/tasks.js.map +1 -0
  21. package/dist/cjs/queries/user.js +472 -0
  22. package/dist/cjs/queries/user.js.map +1 -0
  23. package/dist/cjs/types/api.js +9 -0
  24. package/dist/cjs/types/api.js.map +1 -0
  25. package/dist/cjs/types/client.js +6 -0
  26. package/dist/cjs/types/client.js.map +1 -0
  27. package/dist/cjs/types/common.js +6 -0
  28. package/dist/cjs/types/common.js.map +1 -0
  29. package/dist/cjs/types/index.js +8 -0
  30. package/dist/cjs/types/index.js.map +1 -0
  31. package/dist/cjs/utils/index.js +63 -0
  32. package/dist/cjs/utils/index.js.map +1 -0
  33. package/dist/esm/client/index.js +348 -0
  34. package/dist/esm/client/index.js.map +1 -0
  35. package/dist/esm/errors/index.js +105 -0
  36. package/dist/esm/errors/index.js.map +1 -0
  37. package/dist/esm/index.js +16 -0
  38. package/dist/esm/index.js.map +1 -0
  39. package/dist/esm/queries/fragments/index.js +6 -0
  40. package/dist/esm/queries/fragments/index.js.map +1 -0
  41. package/dist/esm/queries/fragments/stream.js +71 -0
  42. package/dist/esm/queries/fragments/stream.js.map +1 -0
  43. package/dist/esm/queries/fragments/task.js +497 -0
  44. package/dist/esm/queries/fragments/task.js.map +1 -0
  45. package/dist/esm/queries/index.js +8 -0
  46. package/dist/esm/queries/index.js.map +1 -0
  47. package/dist/esm/queries/streams.js +16 -0
  48. package/dist/esm/queries/streams.js.map +1 -0
  49. package/dist/esm/queries/tasks.js +38 -0
  50. package/dist/esm/queries/tasks.js.map +1 -0
  51. package/dist/esm/queries/user.js +469 -0
  52. package/dist/esm/queries/user.js.map +1 -0
  53. package/dist/esm/types/api.js +8 -0
  54. package/dist/esm/types/api.js.map +1 -0
  55. package/dist/esm/types/client.js +5 -0
  56. package/dist/esm/types/client.js.map +1 -0
  57. package/dist/esm/types/common.js +5 -0
  58. package/dist/esm/types/common.js.map +1 -0
  59. package/dist/esm/types/index.js +7 -0
  60. package/dist/esm/types/index.js.map +1 -0
  61. package/dist/esm/utils/index.js +57 -0
  62. package/dist/esm/utils/index.js.map +1 -0
  63. package/dist/types/client/index.d.ts +109 -0
  64. package/dist/types/client/index.d.ts.map +1 -0
  65. package/dist/types/errors/index.d.ts +67 -0
  66. package/dist/types/errors/index.d.ts.map +1 -0
  67. package/dist/types/index.d.ts +14 -0
  68. package/dist/types/index.d.ts.map +1 -0
  69. package/dist/types/queries/fragments/index.d.ts +6 -0
  70. package/dist/types/queries/fragments/index.d.ts.map +1 -0
  71. package/dist/types/queries/fragments/stream.d.ts +5 -0
  72. package/dist/types/queries/fragments/stream.d.ts.map +1 -0
  73. package/dist/types/queries/fragments/task.d.ts +8 -0
  74. package/dist/types/queries/fragments/task.d.ts.map +1 -0
  75. package/dist/types/queries/index.d.ts +8 -0
  76. package/dist/types/queries/index.d.ts.map +1 -0
  77. package/dist/types/queries/streams.d.ts +5 -0
  78. package/dist/types/queries/streams.d.ts.map +1 -0
  79. package/dist/types/queries/tasks.d.ts +6 -0
  80. package/dist/types/queries/tasks.d.ts.map +1 -0
  81. package/dist/types/queries/user.d.ts +5 -0
  82. package/dist/types/queries/user.d.ts.map +1 -0
  83. package/dist/types/types/api.d.ts +838 -0
  84. package/dist/types/types/api.d.ts.map +1 -0
  85. package/dist/types/types/client.d.ts +30 -0
  86. package/dist/types/types/client.d.ts.map +1 -0
  87. package/dist/types/types/common.d.ts +58 -0
  88. package/dist/types/types/common.d.ts.map +1 -0
  89. package/dist/types/types/index.d.ts +9 -0
  90. package/dist/types/types/index.d.ts.map +1 -0
  91. package/dist/types/utils/index.d.ts +35 -0
  92. package/dist/types/utils/index.d.ts.map +1 -0
  93. 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"}