@pax8-cta/core 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 (226) hide show
  1. package/LICENSE +198 -0
  2. package/dist/auth/device-code-login.d.ts +40 -0
  3. package/dist/auth/device-code-login.d.ts.map +1 -0
  4. package/dist/auth/device-code-login.js +59 -0
  5. package/dist/auth/device-code-login.js.map +1 -0
  6. package/dist/auth/gdap-client.d.ts +81 -0
  7. package/dist/auth/gdap-client.d.ts.map +1 -0
  8. package/dist/auth/gdap-client.js +128 -0
  9. package/dist/auth/gdap-client.js.map +1 -0
  10. package/dist/auth/index.d.ts +19 -0
  11. package/dist/auth/index.d.ts.map +1 -0
  12. package/dist/auth/index.js +19 -0
  13. package/dist/auth/index.js.map +1 -0
  14. package/dist/auth/token-manager.d.ts +54 -0
  15. package/dist/auth/token-manager.d.ts.map +1 -0
  16. package/dist/auth/token-manager.js +150 -0
  17. package/dist/auth/token-manager.js.map +1 -0
  18. package/dist/client.d.ts +27 -0
  19. package/dist/client.d.ts.map +1 -0
  20. package/dist/client.js +27 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/config/client.d.ts +24 -0
  23. package/dist/config/client.d.ts.map +1 -0
  24. package/dist/config/client.js +18 -0
  25. package/dist/config/client.js.map +1 -0
  26. package/dist/config/index.d.ts +18 -0
  27. package/dist/config/index.d.ts.map +1 -0
  28. package/dist/config/index.js +18 -0
  29. package/dist/config/index.js.map +1 -0
  30. package/dist/config/loader.d.ts +81 -0
  31. package/dist/config/loader.d.ts.map +1 -0
  32. package/dist/config/loader.js +271 -0
  33. package/dist/config/loader.js.map +1 -0
  34. package/dist/config/schema.d.ts +751 -0
  35. package/dist/config/schema.d.ts.map +1 -0
  36. package/dist/config/schema.js +556 -0
  37. package/dist/config/schema.js.map +1 -0
  38. package/dist/constants.d.ts +116 -0
  39. package/dist/constants.d.ts.map +1 -0
  40. package/dist/constants.js +170 -0
  41. package/dist/constants.js.map +1 -0
  42. package/dist/dataverse/agent-resolver.d.ts +98 -0
  43. package/dist/dataverse/agent-resolver.d.ts.map +1 -0
  44. package/dist/dataverse/agent-resolver.js +185 -0
  45. package/dist/dataverse/agent-resolver.js.map +1 -0
  46. package/dist/dataverse/client.d.ts +104 -0
  47. package/dist/dataverse/client.d.ts.map +1 -0
  48. package/dist/dataverse/client.js +272 -0
  49. package/dist/dataverse/client.js.map +1 -0
  50. package/dist/dataverse/connection-refs.d.ts +115 -0
  51. package/dist/dataverse/connection-refs.d.ts.map +1 -0
  52. package/dist/dataverse/connection-refs.js +203 -0
  53. package/dist/dataverse/connection-refs.js.map +1 -0
  54. package/dist/dataverse/index.d.ts +20 -0
  55. package/dist/dataverse/index.d.ts.map +1 -0
  56. package/dist/dataverse/index.js +20 -0
  57. package/dist/dataverse/index.js.map +1 -0
  58. package/dist/dataverse/solution-ops.d.ts +100 -0
  59. package/dist/dataverse/solution-ops.d.ts.map +1 -0
  60. package/dist/dataverse/solution-ops.js +288 -0
  61. package/dist/dataverse/solution-ops.js.map +1 -0
  62. package/dist/errors.d.ts +171 -0
  63. package/dist/errors.d.ts.map +1 -0
  64. package/dist/errors.js +178 -0
  65. package/dist/errors.js.map +1 -0
  66. package/dist/index.d.ts +27 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +40 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/mock/demo-data.d.ts +213 -0
  71. package/dist/mock/demo-data.d.ts.map +1 -0
  72. package/dist/mock/demo-data.js +1096 -0
  73. package/dist/mock/demo-data.js.map +1 -0
  74. package/dist/mock/demo-deployment-store.d.ts +77 -0
  75. package/dist/mock/demo-deployment-store.d.ts.map +1 -0
  76. package/dist/mock/demo-deployment-store.js +85 -0
  77. package/dist/mock/demo-deployment-store.js.map +1 -0
  78. package/dist/powerplatform/admin-client.d.ts +226 -0
  79. package/dist/powerplatform/admin-client.d.ts.map +1 -0
  80. package/dist/powerplatform/admin-client.js +315 -0
  81. package/dist/powerplatform/admin-client.js.map +1 -0
  82. package/dist/powerplatform/index.d.ts +18 -0
  83. package/dist/powerplatform/index.d.ts.map +1 -0
  84. package/dist/powerplatform/index.js +18 -0
  85. package/dist/powerplatform/index.js.map +1 -0
  86. package/dist/powerplatform/tenant-discovery.d.ts +100 -0
  87. package/dist/powerplatform/tenant-discovery.d.ts.map +1 -0
  88. package/dist/powerplatform/tenant-discovery.js +205 -0
  89. package/dist/powerplatform/tenant-discovery.js.map +1 -0
  90. package/dist/preconditions/check.d.ts +41 -0
  91. package/dist/preconditions/check.d.ts.map +1 -0
  92. package/dist/preconditions/check.js +173 -0
  93. package/dist/preconditions/check.js.map +1 -0
  94. package/dist/preconditions/index.d.ts +20 -0
  95. package/dist/preconditions/index.d.ts.map +1 -0
  96. package/dist/preconditions/index.js +20 -0
  97. package/dist/preconditions/index.js.map +1 -0
  98. package/dist/preconditions/loader.d.ts +33 -0
  99. package/dist/preconditions/loader.d.ts.map +1 -0
  100. package/dist/preconditions/loader.js +65 -0
  101. package/dist/preconditions/loader.js.map +1 -0
  102. package/dist/preconditions/schema.d.ts +103 -0
  103. package/dist/preconditions/schema.d.ts.map +1 -0
  104. package/dist/preconditions/schema.js +93 -0
  105. package/dist/preconditions/schema.js.map +1 -0
  106. package/dist/preconditions/types.d.ts +118 -0
  107. package/dist/preconditions/types.d.ts.map +1 -0
  108. package/dist/preconditions/types.js +17 -0
  109. package/dist/preconditions/types.js.map +1 -0
  110. package/dist/queue/index.d.ts +17 -0
  111. package/dist/queue/index.d.ts.map +1 -0
  112. package/dist/queue/index.js +17 -0
  113. package/dist/queue/index.js.map +1 -0
  114. package/dist/queue/memory-queue.d.ts +86 -0
  115. package/dist/queue/memory-queue.d.ts.map +1 -0
  116. package/dist/queue/memory-queue.js +221 -0
  117. package/dist/queue/memory-queue.js.map +1 -0
  118. package/dist/services/audit-log.d.ts +59 -0
  119. package/dist/services/audit-log.d.ts.map +1 -0
  120. package/dist/services/audit-log.js +193 -0
  121. package/dist/services/audit-log.js.map +1 -0
  122. package/dist/services/auth-error-parser.d.ts +36 -0
  123. package/dist/services/auth-error-parser.d.ts.map +1 -0
  124. package/dist/services/auth-error-parser.js +90 -0
  125. package/dist/services/auth-error-parser.js.map +1 -0
  126. package/dist/services/deployment-doctor.d.ts +109 -0
  127. package/dist/services/deployment-doctor.d.ts.map +1 -0
  128. package/dist/services/deployment-doctor.js +476 -0
  129. package/dist/services/deployment-doctor.js.map +1 -0
  130. package/dist/services/deployment-notifications.d.ts +41 -0
  131. package/dist/services/deployment-notifications.d.ts.map +1 -0
  132. package/dist/services/deployment-notifications.js +161 -0
  133. package/dist/services/deployment-notifications.js.map +1 -0
  134. package/dist/services/deployment-progress.d.ts +89 -0
  135. package/dist/services/deployment-progress.d.ts.map +1 -0
  136. package/dist/services/deployment-progress.js +244 -0
  137. package/dist/services/deployment-progress.js.map +1 -0
  138. package/dist/services/deployment-service.d.ts +97 -0
  139. package/dist/services/deployment-service.d.ts.map +1 -0
  140. package/dist/services/deployment-service.js +375 -0
  141. package/dist/services/deployment-service.js.map +1 -0
  142. package/dist/services/drift-analyzer.d.ts +86 -0
  143. package/dist/services/drift-analyzer.d.ts.map +1 -0
  144. package/dist/services/drift-analyzer.js +273 -0
  145. package/dist/services/drift-analyzer.js.map +1 -0
  146. package/dist/services/environment-setup.d.ts +97 -0
  147. package/dist/services/environment-setup.d.ts.map +1 -0
  148. package/dist/services/environment-setup.js +250 -0
  149. package/dist/services/environment-setup.js.map +1 -0
  150. package/dist/services/health-check.d.ts +168 -0
  151. package/dist/services/health-check.d.ts.map +1 -0
  152. package/dist/services/health-check.js +705 -0
  153. package/dist/services/health-check.js.map +1 -0
  154. package/dist/services/index.d.ts +39 -0
  155. package/dist/services/index.d.ts.map +1 -0
  156. package/dist/services/index.js +39 -0
  157. package/dist/services/index.js.map +1 -0
  158. package/dist/services/logger.d.ts +139 -0
  159. package/dist/services/logger.d.ts.map +1 -0
  160. package/dist/services/logger.js +268 -0
  161. package/dist/services/logger.js.map +1 -0
  162. package/dist/services/notification-service.d.ts +55 -0
  163. package/dist/services/notification-service.d.ts.map +1 -0
  164. package/dist/services/notification-service.js +184 -0
  165. package/dist/services/notification-service.js.map +1 -0
  166. package/dist/services/risk-analyzer.d.ts +252 -0
  167. package/dist/services/risk-analyzer.d.ts.map +1 -0
  168. package/dist/services/risk-analyzer.js +866 -0
  169. package/dist/services/risk-analyzer.js.map +1 -0
  170. package/dist/services/rollback.d.ts +57 -0
  171. package/dist/services/rollback.d.ts.map +1 -0
  172. package/dist/services/rollback.js +270 -0
  173. package/dist/services/rollback.js.map +1 -0
  174. package/dist/services/scheduler.d.ts +80 -0
  175. package/dist/services/scheduler.d.ts.map +1 -0
  176. package/dist/services/scheduler.js +350 -0
  177. package/dist/services/scheduler.js.map +1 -0
  178. package/dist/services/secrets.d.ts +31 -0
  179. package/dist/services/secrets.d.ts.map +1 -0
  180. package/dist/services/secrets.js +206 -0
  181. package/dist/services/secrets.js.map +1 -0
  182. package/dist/services/settings-service.d.ts +132 -0
  183. package/dist/services/settings-service.d.ts.map +1 -0
  184. package/dist/services/settings-service.js +378 -0
  185. package/dist/services/settings-service.js.map +1 -0
  186. package/dist/services/solution-diff.d.ts +127 -0
  187. package/dist/services/solution-diff.d.ts.map +1 -0
  188. package/dist/services/solution-diff.js +260 -0
  189. package/dist/services/solution-diff.js.map +1 -0
  190. package/dist/services/solution-mode-detector.d.ts +35 -0
  191. package/dist/services/solution-mode-detector.d.ts.map +1 -0
  192. package/dist/services/solution-mode-detector.js +84 -0
  193. package/dist/services/solution-mode-detector.js.map +1 -0
  194. package/dist/services/tenant-resolver.d.ts +55 -0
  195. package/dist/services/tenant-resolver.d.ts.map +1 -0
  196. package/dist/services/tenant-resolver.js +126 -0
  197. package/dist/services/tenant-resolver.js.map +1 -0
  198. package/dist/services/unmanaged-customizations.d.ts +104 -0
  199. package/dist/services/unmanaged-customizations.d.ts.map +1 -0
  200. package/dist/services/unmanaged-customizations.js +521 -0
  201. package/dist/services/unmanaged-customizations.js.map +1 -0
  202. package/dist/services/url-templater.d.ts +184 -0
  203. package/dist/services/url-templater.d.ts.map +1 -0
  204. package/dist/services/url-templater.js +327 -0
  205. package/dist/services/url-templater.js.map +1 -0
  206. package/dist/services/version-checker.d.ts +108 -0
  207. package/dist/services/version-checker.d.ts.map +1 -0
  208. package/dist/services/version-checker.js +403 -0
  209. package/dist/services/version-checker.js.map +1 -0
  210. package/dist/services/waves.d.ts +90 -0
  211. package/dist/services/waves.d.ts.map +1 -0
  212. package/dist/services/waves.js +222 -0
  213. package/dist/services/waves.js.map +1 -0
  214. package/dist/services/webhook.d.ts +95 -0
  215. package/dist/services/webhook.d.ts.map +1 -0
  216. package/dist/services/webhook.js +244 -0
  217. package/dist/services/webhook.js.map +1 -0
  218. package/dist/utils/deployment-tools.d.ts +110 -0
  219. package/dist/utils/deployment-tools.d.ts.map +1 -0
  220. package/dist/utils/deployment-tools.js +121 -0
  221. package/dist/utils/deployment-tools.js.map +1 -0
  222. package/dist/utils/index.d.ts +17 -0
  223. package/dist/utils/index.d.ts.map +1 -0
  224. package/dist/utils/index.js +18 -0
  225. package/dist/utils/index.js.map +1 -0
  226. package/package.json +49 -0
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Copyright 2024 Pax8, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Structured error codes for Pax8 CTA.
18
+ *
19
+ * These codes are used by the CLI error handler to provide actionable
20
+ * recovery guidance. When adding a new code, also update the CLI
21
+ * error-handler.ts `formatError` function to handle it.
22
+ */
23
+ export declare enum ErrorCode {
24
+ AUTH_FAILED = "AUTH_FAILED",
25
+ AUTH_TOKEN_EXPIRED = "AUTH_TOKEN_EXPIRED",
26
+ AUTH_APP_NOT_FOUND = "AUTH_APP_NOT_FOUND",
27
+ AUTH_INVALID_SECRET = "AUTH_INVALID_SECRET",
28
+ AUTH_ACCOUNT_NOT_FOUND = "AUTH_ACCOUNT_NOT_FOUND",
29
+ AUTH_INVALID_CLIENT = "AUTH_INVALID_CLIENT",
30
+ GDAP_MISSING = "GDAP_MISSING",
31
+ GDAP_APP_USER_NOT_REGISTERED = "GDAP_APP_USER_NOT_REGISTERED",
32
+ GDAP_SETUP_FAILED = "GDAP_SETUP_FAILED",
33
+ GDAP_ENVIRONMENT_ID_MISSING = "GDAP_ENVIRONMENT_ID_MISSING",
34
+ PERMISSION_DENIED = "PERMISSION_DENIED",
35
+ PERMISSION_PRIVILEGE_MISSING = "PERMISSION_PRIVILEGE_MISSING",
36
+ DATAVERSE_API_ERROR = "DATAVERSE_API_ERROR",
37
+ DATAVERSE_NOT_MEMBER = "DATAVERSE_NOT_MEMBER",
38
+ DATAVERSE_FORBIDDEN = "DATAVERSE_FORBIDDEN",
39
+ DATAVERSE_UNAUTHORIZED = "DATAVERSE_UNAUTHORIZED",
40
+ SOLUTION_NOT_FOUND = "SOLUTION_NOT_FOUND",
41
+ SOLUTION_IMPORT_FAILED = "SOLUTION_IMPORT_FAILED",
42
+ SOLUTION_EXPORT_FAILED = "SOLUTION_EXPORT_FAILED",
43
+ SOLUTION_PARSE_FAILED = "SOLUTION_PARSE_FAILED",
44
+ AGENT_NOT_FOUND = "AGENT_NOT_FOUND",
45
+ AGENT_URL_INVALID = "AGENT_URL_INVALID",
46
+ AGENT_RESOLUTION_FAILED = "AGENT_RESOLUTION_FAILED",
47
+ CONFIG_NOT_FOUND = "CONFIG_NOT_FOUND",
48
+ CONFIG_INVALID = "CONFIG_INVALID",
49
+ CONFIG_READ_FAILED = "CONFIG_READ_FAILED",
50
+ CONFIG_PARSE_FAILED = "CONFIG_PARSE_FAILED",
51
+ CONFIG_SECRET_MISSING = "CONFIG_SECRET_MISSING",
52
+ NETWORK_CONNECTION_REFUSED = "NETWORK_CONNECTION_REFUSED",
53
+ NETWORK_TIMEOUT = "NETWORK_TIMEOUT",
54
+ NETWORK_DNS_FAILED = "NETWORK_DNS_FAILED",
55
+ NETWORK_ERROR = "NETWORK_ERROR",
56
+ QUEUE_CONNECTION_FAILED = "QUEUE_CONNECTION_FAILED",
57
+ DEPLOYMENT_FAILED = "DEPLOYMENT_FAILED",
58
+ DEPLOYMENT_VALIDATION_FAILED = "DEPLOYMENT_VALIDATION_FAILED",
59
+ DEPLOYMENT_TIMEOUT = "DEPLOYMENT_TIMEOUT",
60
+ UNKNOWN = "UNKNOWN"
61
+ }
62
+ /**
63
+ * Context information attached to structured errors.
64
+ */
65
+ export interface CtaErrorContext {
66
+ environmentUrl?: string;
67
+ tenantId?: string;
68
+ tenantName?: string;
69
+ solutionName?: string;
70
+ clientId?: string;
71
+ environmentId?: string;
72
+ [key: string]: unknown;
73
+ }
74
+ /**
75
+ * Base error class for all Pax8 CTA errors.
76
+ *
77
+ * Extends the native Error with a machine-readable `code` field
78
+ * (from the ErrorCode enum) and optional structured context, so the
79
+ * CLI error handler can switch on `error.code` or use `instanceof`
80
+ * instead of regex-matching message strings.
81
+ */
82
+ export declare class CtaError extends Error {
83
+ readonly code: ErrorCode;
84
+ readonly context?: CtaErrorContext | undefined;
85
+ readonly name: string;
86
+ constructor(code: ErrorCode, message: string, context?: CtaErrorContext | undefined, options?: {
87
+ cause?: unknown;
88
+ });
89
+ }
90
+ /**
91
+ * Authentication and token errors.
92
+ */
93
+ export declare class AuthError extends CtaError {
94
+ readonly name = "AuthError";
95
+ constructor(code: ErrorCode.AUTH_FAILED | ErrorCode.AUTH_TOKEN_EXPIRED | ErrorCode.AUTH_APP_NOT_FOUND | ErrorCode.AUTH_INVALID_SECRET | ErrorCode.AUTH_ACCOUNT_NOT_FOUND | ErrorCode.AUTH_INVALID_CLIENT, message: string, context?: CtaErrorContext, options?: {
96
+ cause?: unknown;
97
+ });
98
+ }
99
+ /**
100
+ * GDAP and application-user setup errors.
101
+ */
102
+ export declare class GdapError extends CtaError {
103
+ readonly name = "GdapError";
104
+ constructor(code: ErrorCode.GDAP_MISSING | ErrorCode.GDAP_APP_USER_NOT_REGISTERED | ErrorCode.GDAP_SETUP_FAILED | ErrorCode.GDAP_ENVIRONMENT_ID_MISSING, message: string, context?: CtaErrorContext, options?: {
105
+ cause?: unknown;
106
+ });
107
+ }
108
+ /**
109
+ * Dataverse API errors.
110
+ */
111
+ export declare class DataverseApiError extends CtaError {
112
+ readonly name = "DataverseApiError";
113
+ readonly statusCode?: number;
114
+ constructor(code: ErrorCode.DATAVERSE_API_ERROR | ErrorCode.DATAVERSE_NOT_MEMBER | ErrorCode.DATAVERSE_FORBIDDEN | ErrorCode.DATAVERSE_UNAUTHORIZED | ErrorCode.PERMISSION_DENIED | ErrorCode.PERMISSION_PRIVILEGE_MISSING, message: string, statusCode?: number, context?: CtaErrorContext, options?: {
115
+ cause?: unknown;
116
+ });
117
+ }
118
+ /**
119
+ * Solution-related errors.
120
+ */
121
+ export declare class SolutionError extends CtaError {
122
+ readonly name = "SolutionError";
123
+ constructor(code: ErrorCode.SOLUTION_NOT_FOUND | ErrorCode.SOLUTION_IMPORT_FAILED | ErrorCode.SOLUTION_EXPORT_FAILED | ErrorCode.SOLUTION_PARSE_FAILED, message: string, context?: CtaErrorContext, options?: {
124
+ cause?: unknown;
125
+ });
126
+ }
127
+ /**
128
+ * Agent resolution errors.
129
+ */
130
+ export declare class AgentResolutionError extends CtaError {
131
+ readonly name = "AgentResolutionError";
132
+ constructor(code: ErrorCode.AGENT_NOT_FOUND | ErrorCode.AGENT_URL_INVALID | ErrorCode.AGENT_RESOLUTION_FAILED, message: string, context?: CtaErrorContext, options?: {
133
+ cause?: unknown;
134
+ });
135
+ }
136
+ /**
137
+ * Configuration errors.
138
+ */
139
+ export declare class ConfigValidationError extends CtaError {
140
+ readonly name = "ConfigValidationError";
141
+ constructor(code: ErrorCode.CONFIG_NOT_FOUND | ErrorCode.CONFIG_INVALID | ErrorCode.CONFIG_READ_FAILED | ErrorCode.CONFIG_PARSE_FAILED | ErrorCode.CONFIG_SECRET_MISSING, message: string, context?: CtaErrorContext, options?: {
142
+ cause?: unknown;
143
+ });
144
+ }
145
+ /**
146
+ * Network errors.
147
+ */
148
+ export declare class NetworkError extends CtaError {
149
+ readonly name = "NetworkError";
150
+ constructor(code: ErrorCode.NETWORK_CONNECTION_REFUSED | ErrorCode.NETWORK_TIMEOUT | ErrorCode.NETWORK_DNS_FAILED | ErrorCode.NETWORK_ERROR, message: string, context?: CtaErrorContext, options?: {
151
+ cause?: unknown;
152
+ });
153
+ }
154
+ /**
155
+ * Deployment errors.
156
+ */
157
+ export declare class DeploymentError extends CtaError {
158
+ readonly name = "DeploymentError";
159
+ constructor(code: ErrorCode.DEPLOYMENT_FAILED | ErrorCode.DEPLOYMENT_VALIDATION_FAILED | ErrorCode.DEPLOYMENT_TIMEOUT, message: string, context?: CtaErrorContext, options?: {
160
+ cause?: unknown;
161
+ });
162
+ }
163
+ /**
164
+ * Helper to check if an error is an CtaError with a specific code.
165
+ */
166
+ export declare function isErrorCode(error: unknown, code: ErrorCode): boolean;
167
+ /**
168
+ * Helper to check if an error is any CtaError.
169
+ */
170
+ export declare function isCtaError(error: unknown): error is CtaError;
171
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js ADDED
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Copyright 2024 Pax8, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Structured error codes for Pax8 CTA.
18
+ *
19
+ * These codes are used by the CLI error handler to provide actionable
20
+ * recovery guidance. When adding a new code, also update the CLI
21
+ * error-handler.ts `formatError` function to handle it.
22
+ */
23
+ export var ErrorCode;
24
+ (function (ErrorCode) {
25
+ // Authentication
26
+ ErrorCode["AUTH_FAILED"] = "AUTH_FAILED";
27
+ ErrorCode["AUTH_TOKEN_EXPIRED"] = "AUTH_TOKEN_EXPIRED";
28
+ ErrorCode["AUTH_APP_NOT_FOUND"] = "AUTH_APP_NOT_FOUND";
29
+ ErrorCode["AUTH_INVALID_SECRET"] = "AUTH_INVALID_SECRET";
30
+ ErrorCode["AUTH_ACCOUNT_NOT_FOUND"] = "AUTH_ACCOUNT_NOT_FOUND";
31
+ ErrorCode["AUTH_INVALID_CLIENT"] = "AUTH_INVALID_CLIENT";
32
+ // GDAP / Application user
33
+ ErrorCode["GDAP_MISSING"] = "GDAP_MISSING";
34
+ ErrorCode["GDAP_APP_USER_NOT_REGISTERED"] = "GDAP_APP_USER_NOT_REGISTERED";
35
+ ErrorCode["GDAP_SETUP_FAILED"] = "GDAP_SETUP_FAILED";
36
+ ErrorCode["GDAP_ENVIRONMENT_ID_MISSING"] = "GDAP_ENVIRONMENT_ID_MISSING";
37
+ // Permissions
38
+ ErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED";
39
+ ErrorCode["PERMISSION_PRIVILEGE_MISSING"] = "PERMISSION_PRIVILEGE_MISSING";
40
+ // Dataverse
41
+ ErrorCode["DATAVERSE_API_ERROR"] = "DATAVERSE_API_ERROR";
42
+ ErrorCode["DATAVERSE_NOT_MEMBER"] = "DATAVERSE_NOT_MEMBER";
43
+ ErrorCode["DATAVERSE_FORBIDDEN"] = "DATAVERSE_FORBIDDEN";
44
+ ErrorCode["DATAVERSE_UNAUTHORIZED"] = "DATAVERSE_UNAUTHORIZED";
45
+ // Solutions
46
+ ErrorCode["SOLUTION_NOT_FOUND"] = "SOLUTION_NOT_FOUND";
47
+ ErrorCode["SOLUTION_IMPORT_FAILED"] = "SOLUTION_IMPORT_FAILED";
48
+ ErrorCode["SOLUTION_EXPORT_FAILED"] = "SOLUTION_EXPORT_FAILED";
49
+ ErrorCode["SOLUTION_PARSE_FAILED"] = "SOLUTION_PARSE_FAILED";
50
+ // Agent resolution
51
+ ErrorCode["AGENT_NOT_FOUND"] = "AGENT_NOT_FOUND";
52
+ ErrorCode["AGENT_URL_INVALID"] = "AGENT_URL_INVALID";
53
+ ErrorCode["AGENT_RESOLUTION_FAILED"] = "AGENT_RESOLUTION_FAILED";
54
+ // Configuration
55
+ ErrorCode["CONFIG_NOT_FOUND"] = "CONFIG_NOT_FOUND";
56
+ ErrorCode["CONFIG_INVALID"] = "CONFIG_INVALID";
57
+ ErrorCode["CONFIG_READ_FAILED"] = "CONFIG_READ_FAILED";
58
+ ErrorCode["CONFIG_PARSE_FAILED"] = "CONFIG_PARSE_FAILED";
59
+ ErrorCode["CONFIG_SECRET_MISSING"] = "CONFIG_SECRET_MISSING";
60
+ // Network
61
+ ErrorCode["NETWORK_CONNECTION_REFUSED"] = "NETWORK_CONNECTION_REFUSED";
62
+ ErrorCode["NETWORK_TIMEOUT"] = "NETWORK_TIMEOUT";
63
+ ErrorCode["NETWORK_DNS_FAILED"] = "NETWORK_DNS_FAILED";
64
+ ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
65
+ // Queue / Redis
66
+ ErrorCode["QUEUE_CONNECTION_FAILED"] = "QUEUE_CONNECTION_FAILED";
67
+ // Deployment
68
+ ErrorCode["DEPLOYMENT_FAILED"] = "DEPLOYMENT_FAILED";
69
+ ErrorCode["DEPLOYMENT_VALIDATION_FAILED"] = "DEPLOYMENT_VALIDATION_FAILED";
70
+ ErrorCode["DEPLOYMENT_TIMEOUT"] = "DEPLOYMENT_TIMEOUT";
71
+ // Generic
72
+ ErrorCode["UNKNOWN"] = "UNKNOWN";
73
+ })(ErrorCode || (ErrorCode = {}));
74
+ /**
75
+ * Base error class for all Pax8 CTA errors.
76
+ *
77
+ * Extends the native Error with a machine-readable `code` field
78
+ * (from the ErrorCode enum) and optional structured context, so the
79
+ * CLI error handler can switch on `error.code` or use `instanceof`
80
+ * instead of regex-matching message strings.
81
+ */
82
+ export class CtaError extends Error {
83
+ code;
84
+ context;
85
+ name = "CtaError";
86
+ constructor(code, message, context, options) {
87
+ super(message, options);
88
+ this.code = code;
89
+ this.context = context;
90
+ }
91
+ }
92
+ /**
93
+ * Authentication and token errors.
94
+ */
95
+ export class AuthError extends CtaError {
96
+ name = "AuthError";
97
+ constructor(code, message, context, options) {
98
+ super(code, message, context, options);
99
+ }
100
+ }
101
+ /**
102
+ * GDAP and application-user setup errors.
103
+ */
104
+ export class GdapError extends CtaError {
105
+ name = "GdapError";
106
+ constructor(code, message, context, options) {
107
+ super(code, message, context, options);
108
+ }
109
+ }
110
+ /**
111
+ * Dataverse API errors.
112
+ */
113
+ export class DataverseApiError extends CtaError {
114
+ name = "DataverseApiError";
115
+ statusCode;
116
+ constructor(code, message, statusCode, context, options) {
117
+ super(code, message, context, options);
118
+ this.statusCode = statusCode;
119
+ }
120
+ }
121
+ /**
122
+ * Solution-related errors.
123
+ */
124
+ export class SolutionError extends CtaError {
125
+ name = "SolutionError";
126
+ constructor(code, message, context, options) {
127
+ super(code, message, context, options);
128
+ }
129
+ }
130
+ /**
131
+ * Agent resolution errors.
132
+ */
133
+ export class AgentResolutionError extends CtaError {
134
+ name = "AgentResolutionError";
135
+ constructor(code, message, context, options) {
136
+ super(code, message, context, options);
137
+ }
138
+ }
139
+ /**
140
+ * Configuration errors.
141
+ */
142
+ export class ConfigValidationError extends CtaError {
143
+ name = "ConfigValidationError";
144
+ constructor(code, message, context, options) {
145
+ super(code, message, context, options);
146
+ }
147
+ }
148
+ /**
149
+ * Network errors.
150
+ */
151
+ export class NetworkError extends CtaError {
152
+ name = "NetworkError";
153
+ constructor(code, message, context, options) {
154
+ super(code, message, context, options);
155
+ }
156
+ }
157
+ /**
158
+ * Deployment errors.
159
+ */
160
+ export class DeploymentError extends CtaError {
161
+ name = "DeploymentError";
162
+ constructor(code, message, context, options) {
163
+ super(code, message, context, options);
164
+ }
165
+ }
166
+ /**
167
+ * Helper to check if an error is an CtaError with a specific code.
168
+ */
169
+ export function isErrorCode(error, code) {
170
+ return error instanceof CtaError && error.code === code;
171
+ }
172
+ /**
173
+ * Helper to check if an error is any CtaError.
174
+ */
175
+ export function isCtaError(error) {
176
+ return error instanceof CtaError;
177
+ }
178
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright 2024 Pax8, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from "./errors.js";
17
+ export * from "./constants.js";
18
+ export * from "./utils/index.js";
19
+ export * from "./config/index.js";
20
+ export * from "./auth/index.js";
21
+ export * from "./dataverse/index.js";
22
+ export * from "./powerplatform/index.js";
23
+ export * from "./services/index.js";
24
+ export * from "./mock/demo-data.js";
25
+ export * from "./mock/demo-deployment-store.js";
26
+ export * from "./preconditions/index.js";
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAGhD,cAAc,0BAA0B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Copyright 2024 Pax8, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ // Errors
17
+ export * from "./errors.js";
18
+ // Constants
19
+ export * from "./constants.js";
20
+ // Utilities
21
+ export * from "./utils/index.js";
22
+ // Configuration
23
+ export * from "./config/index.js";
24
+ // Authentication
25
+ export * from "./auth/index.js";
26
+ // Dataverse
27
+ export * from "./dataverse/index.js";
28
+ // Power Platform Admin
29
+ export * from "./powerplatform/index.js";
30
+ // Services
31
+ export * from "./services/index.js";
32
+ // Mock/Demo data
33
+ export * from "./mock/demo-data.js";
34
+ export * from "./mock/demo-deployment-store.js";
35
+ // Preconditions (preflight)
36
+ export * from "./preconditions/index.js";
37
+ // Test utilities are available at:
38
+ // import { createMockTokenManager, ... } from '@pax8-cta/core/dist/__tests__/test-utils.js'
39
+ // Do NOT export them from main index to avoid vitest being bundled in production
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,SAAS;AACT,cAAc,aAAa,CAAC;AAE5B,YAAY;AACZ,cAAc,gBAAgB,CAAC;AAE/B,YAAY;AACZ,cAAc,kBAAkB,CAAC;AAEjC,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,iBAAiB;AACjB,cAAc,iBAAiB,CAAC;AAEhC,YAAY;AACZ,cAAc,sBAAsB,CAAC;AAErC,uBAAuB;AACvB,cAAc,0BAA0B,CAAC;AAEzC,WAAW;AACX,cAAc,qBAAqB,CAAC;AAEpC,iBAAiB;AACjB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAEhD,4BAA4B;AAC5B,cAAc,0BAA0B,CAAC;AAEzC,mCAAmC;AACnC,4FAA4F;AAC5F,iFAAiF"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Copyright 2024 Pax8, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Demo/mock data for testing the UX without real Azure connections
18
+ *
19
+ * Enable by setting DEMO_MODE=true in environment variables
20
+ */
21
+ import { Config, TenantConfig, DeploymentJob } from "../config/schema.js";
22
+ /**
23
+ * Check if demo mode is enabled
24
+ */
25
+ export declare function isDemoMode(): boolean;
26
+ /**
27
+ * Risk profile types for demo tenants
28
+ */
29
+ export type DemoRiskProfile = "healthy" | "test" | "problematic" | "production-critical";
30
+ /**
31
+ * GDAP status types for demo tenants
32
+ */
33
+ export type DemoGdapStatus = "valid" | "missing_role" | "expired" | "propagating" | "expiring_soon";
34
+ /**
35
+ * Connection status types for demo tenants
36
+ */
37
+ export type DemoConnectionStatus = "valid" | "expired" | "missing" | "expiring_certificate";
38
+ /**
39
+ * Demo-mode tenant config. Same shape as `TenantConfig` from the YAML schema
40
+ * but with a stronger `metadata` type that can carry richer data than the
41
+ * runtime YAML loader allows (nested arrays, objects, `null`). Production
42
+ * `tenants.yaml` files still flow through the strict primitive-only schema.
43
+ */
44
+ export type DemoTenantConfig = Omit<TenantConfig, "metadata"> & {
45
+ metadata?: DemoTenantMetadata;
46
+ };
47
+ /**
48
+ * Snapshot of one tenant-config resource (a CA policy, a transport rule, a
49
+ * connection ref…) used by the Phase 1 preflight diff engine. The shape
50
+ * mirrors what real Microsoft Graph TCM responses will look like in Phase 2,
51
+ * so the resolver swap is a one-line change in `risk-analyzer.ts`.
52
+ *
53
+ * - `resourceType` and `resourceMatcher` are how the diff engine pairs this
54
+ * snapshot to a manifest precondition (matched by `displayName` etc.).
55
+ * - `currentProperties` carries whatever properties the manifest's
56
+ * requirements address, walked via dot-path.
57
+ */
58
+ export interface DemoPreconditionState {
59
+ resourceType: string;
60
+ resourceMatcher: Record<string, string>;
61
+ resourceDisplayName: string;
62
+ currentProperties: Record<string, unknown>;
63
+ }
64
+ /**
65
+ * Per-solution version status for a demo tenant.
66
+ * Acts as the single source of truth for both `solutions drift` and
67
+ * `solutions show --tenants` so the two views never contradict each other.
68
+ *
69
+ * `deployedVersion === null` means the solution has never been deployed to
70
+ * this tenant. Any other string is the version currently installed.
71
+ */
72
+ export interface DemoDeployedSolution {
73
+ uniqueName: string;
74
+ deployedVersion: string | null;
75
+ /** When this version was last deployed (ISO timestamp). */
76
+ deployedAt?: string;
77
+ }
78
+ /**
79
+ * Extended demo metadata for risk analysis scenarios
80
+ */
81
+ export interface DemoTenantMetadata {
82
+ industry: string;
83
+ employees: number;
84
+ contractTier: string;
85
+ riskProfile: DemoRiskProfile;
86
+ gdapStatus: DemoGdapStatus;
87
+ gdapIssue?: string;
88
+ gdapRelationshipExpiry?: string;
89
+ connectionStatus: DemoConnectionStatus;
90
+ connectionIssue?: string;
91
+ recentFailures: number;
92
+ lastSuccessfulDeployment?: string;
93
+ lastDeploymentError?: string;
94
+ disabledReason?: string;
95
+ /**
96
+ * Authoritative per-solution version state for this tenant.
97
+ * Read by both `solutions drift` and `solutions show --tenants` so the
98
+ * two commands always agree about which tenant is current vs outdated.
99
+ */
100
+ deployedSolutions?: DemoDeployedSolution[];
101
+ /**
102
+ * Deployment history signal for risk analysis. Used by
103
+ * `generateDemoDeployHistory` to derive last-deploy-result, success rate,
104
+ * and recency. Lets a tenant naturally land in HIGH risk without
105
+ * touching the algorithm.
106
+ */
107
+ deploymentHistory?: {
108
+ totalDeploys: number;
109
+ successfulDeploys: number;
110
+ /** Days since last deploy attempt. */
111
+ lastDeployDaysAgo: number;
112
+ lastDeployResult: "success" | "failure";
113
+ };
114
+ /**
115
+ * Synthetic per-tenant precondition state for Phase 1 preflight. Each
116
+ * entry is a snapshot of one tenant-config resource (CA policy, transport
117
+ * rule, connection ref…) the manifest may target. Phase 2 replaces this
118
+ * with live Microsoft Graph TCM lookups.
119
+ */
120
+ preconditionState?: DemoPreconditionState[];
121
+ }
122
+ /**
123
+ * Get demo metadata for a tenant by ID.
124
+ * Returns typed metadata or undefined for non-demo tenants.
125
+ */
126
+ export declare function getDemoTenantMetadata(tenantId: string): DemoTenantMetadata | undefined;
127
+ /**
128
+ * `DEMO_TENANTS` exposed as `TenantConfig[]` for compatibility with all
129
+ * downstream callers. The metadata still carries the rich `DemoTenantMetadata`
130
+ * shape — read it via `getDemoTenantMetadata()` to recover the typed view.
131
+ */
132
+ export declare const DEMO_TENANTS: TenantConfig[];
133
+ /**
134
+ * Demo configuration
135
+ */
136
+ export declare const DEMO_CONFIG: Config;
137
+ /**
138
+ * Generate a mock deployment with realistic-looking data
139
+ * Uses seeded randomness based on deployment ID for consistent results
140
+ */
141
+ export declare function generateMockDeployment(overrides?: Partial<DeploymentJob>): DeploymentJob;
142
+ /**
143
+ * Generate a list of mock deployments for history view.
144
+ * Uses deterministic IDs based on index for consistent data across refreshes.
145
+ *
146
+ * Deployment history is designed to exercise risk analysis scenarios:
147
+ * - 70% success, 20% failure, 10% partial (completed with tenant failures)
148
+ * - Varied time distribution: recent (last 7 days), medium (last 30 days), old (90+ days)
149
+ * - Varied durations: fast (2-5 min), normal (8-15 min), slow (20-45 min)
150
+ * - Different error types: permission, timeout, connection, validation
151
+ */
152
+ export declare function generateMockDeploymentHistory(count?: number): DeploymentJob[];
153
+ /**
154
+ * Mock solution metadata with extended details
155
+ */
156
+ export declare const DEMO_SOLUTIONS: {
157
+ uniqueName: string;
158
+ friendlyName: string;
159
+ version: string;
160
+ isManaged: boolean;
161
+ publisherName: string;
162
+ description: string;
163
+ category: string;
164
+ capabilities: string[];
165
+ tags: string[];
166
+ dependencies: string[];
167
+ connectionReferences: {
168
+ name: string;
169
+ connectorId: string;
170
+ required: boolean;
171
+ }[];
172
+ environmentVariables: ({
173
+ name: string;
174
+ type: string;
175
+ required: boolean;
176
+ defaultValue?: undefined;
177
+ } | {
178
+ name: string;
179
+ type: string;
180
+ required: boolean;
181
+ defaultValue: string;
182
+ })[];
183
+ lastPublished: string;
184
+ sizeKb: number;
185
+ changelog: string;
186
+ }[];
187
+ /**
188
+ * Simulate async operation with random delay
189
+ */
190
+ export declare function simulateDelay(minMs?: number, maxMs?: number): Promise<void>;
191
+ /**
192
+ * Mock tenant health check result
193
+ */
194
+ export declare function generateMockHealthCheck(_tenantId: string): {
195
+ healthy: boolean;
196
+ checks: Array<{
197
+ name: string;
198
+ passed: boolean;
199
+ message?: string;
200
+ }>;
201
+ };
202
+ /**
203
+ * Mock deployment preview/diff
204
+ */
205
+ export declare function generateMockDeploymentPreview(_solutionName: string, tenantName: string): {
206
+ willInstall: boolean;
207
+ willUpgrade: boolean;
208
+ sourceVersion: string;
209
+ targetVersion: string | null;
210
+ warnings: string[];
211
+ estimatedDurationMs: number;
212
+ };
213
+ //# sourceMappingURL=demo-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-data.d.ts","sourceRoot":"","sources":["../../src/mock/demo-data.ts"],"names":[],"mappings":"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"}