@sailpoint/connector-sdk 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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -0
  3. package/dist/bin/spcx.d.ts +3 -0
  4. package/dist/bin/spcx.d.ts.map +1 -0
  5. package/dist/bin/spcx.js +139 -0
  6. package/dist/bin/spcx.js.map +1 -0
  7. package/dist/lib/async-context.d.ts +5 -0
  8. package/dist/lib/async-context.d.ts.map +1 -0
  9. package/dist/lib/async-context.js +7 -0
  10. package/dist/lib/async-context.js.map +1 -0
  11. package/dist/lib/commands/command.d.ts +77 -0
  12. package/dist/lib/commands/command.d.ts.map +1 -0
  13. package/dist/lib/commands/command.js +79 -0
  14. package/dist/lib/commands/command.js.map +1 -0
  15. package/dist/lib/commands/index.d.ts +16 -0
  16. package/dist/lib/commands/index.d.ts.map +1 -0
  17. package/dist/lib/commands/index.js +29 -0
  18. package/dist/lib/commands/index.js.map +1 -0
  19. package/dist/lib/commands/std-account-create.d.ts +17 -0
  20. package/dist/lib/commands/std-account-create.d.ts.map +1 -0
  21. package/dist/lib/commands/std-account-create.js +4 -0
  22. package/dist/lib/commands/std-account-create.js.map +1 -0
  23. package/dist/lib/commands/std-account-delete.d.ts +10 -0
  24. package/dist/lib/commands/std-account-delete.d.ts.map +1 -0
  25. package/dist/lib/commands/std-account-delete.js +4 -0
  26. package/dist/lib/commands/std-account-delete.js.map +1 -0
  27. package/dist/lib/commands/std-account-disable.d.ts +14 -0
  28. package/dist/lib/commands/std-account-disable.d.ts.map +1 -0
  29. package/dist/lib/commands/std-account-disable.js +4 -0
  30. package/dist/lib/commands/std-account-disable.js.map +1 -0
  31. package/dist/lib/commands/std-account-discover-schema.d.ts +11 -0
  32. package/dist/lib/commands/std-account-discover-schema.d.ts.map +1 -0
  33. package/dist/lib/commands/std-account-discover-schema.js +4 -0
  34. package/dist/lib/commands/std-account-discover-schema.js.map +1 -0
  35. package/dist/lib/commands/std-account-enable.d.ts +14 -0
  36. package/dist/lib/commands/std-account-enable.d.ts.map +1 -0
  37. package/dist/lib/commands/std-account-enable.js +4 -0
  38. package/dist/lib/commands/std-account-enable.js.map +1 -0
  39. package/dist/lib/commands/std-account-list.d.ts +10 -0
  40. package/dist/lib/commands/std-account-list.d.ts.map +1 -0
  41. package/dist/lib/commands/std-account-list.js +4 -0
  42. package/dist/lib/commands/std-account-list.js.map +1 -0
  43. package/dist/lib/commands/std-account-read.d.ts +14 -0
  44. package/dist/lib/commands/std-account-read.d.ts.map +1 -0
  45. package/dist/lib/commands/std-account-read.js +4 -0
  46. package/dist/lib/commands/std-account-read.js.map +1 -0
  47. package/dist/lib/commands/std-account-unlock.d.ts +14 -0
  48. package/dist/lib/commands/std-account-unlock.d.ts.map +1 -0
  49. package/dist/lib/commands/std-account-unlock.js +4 -0
  50. package/dist/lib/commands/std-account-unlock.js.map +1 -0
  51. package/dist/lib/commands/std-account-update.d.ts +31 -0
  52. package/dist/lib/commands/std-account-update.d.ts.map +1 -0
  53. package/dist/lib/commands/std-account-update.js +11 -0
  54. package/dist/lib/commands/std-account-update.js.map +1 -0
  55. package/dist/lib/commands/std-change-password.d.ts +12 -0
  56. package/dist/lib/commands/std-change-password.d.ts.map +1 -0
  57. package/dist/lib/commands/std-change-password.js +4 -0
  58. package/dist/lib/commands/std-change-password.js.map +1 -0
  59. package/dist/lib/commands/std-entitlement-list.d.ts +15 -0
  60. package/dist/lib/commands/std-entitlement-list.d.ts.map +1 -0
  61. package/dist/lib/commands/std-entitlement-list.js +4 -0
  62. package/dist/lib/commands/std-entitlement-list.js.map +1 -0
  63. package/dist/lib/commands/std-entitlement-read.d.ts +15 -0
  64. package/dist/lib/commands/std-entitlement-read.d.ts.map +1 -0
  65. package/dist/lib/commands/std-entitlement-read.js +4 -0
  66. package/dist/lib/commands/std-entitlement-read.js.map +1 -0
  67. package/dist/lib/commands/std-spec-read.d.ts +11 -0
  68. package/dist/lib/commands/std-spec-read.d.ts.map +1 -0
  69. package/dist/lib/commands/std-spec-read.js +4 -0
  70. package/dist/lib/commands/std-spec-read.js.map +1 -0
  71. package/dist/lib/commands/std-test-connection.d.ts +5 -0
  72. package/dist/lib/commands/std-test-connection.d.ts.map +1 -0
  73. package/dist/lib/commands/std-test-connection.js +4 -0
  74. package/dist/lib/commands/std-test-connection.js.map +1 -0
  75. package/dist/lib/config.d.ts +10 -0
  76. package/dist/lib/config.d.ts.map +1 -0
  77. package/dist/lib/config.js +36 -0
  78. package/dist/lib/config.js.map +1 -0
  79. package/dist/lib/connector-spec.d.ts +6 -0
  80. package/dist/lib/connector-spec.d.ts.map +1 -0
  81. package/dist/lib/connector-spec.js +14 -0
  82. package/dist/lib/connector-spec.js.map +1 -0
  83. package/dist/lib/connector.d.ts +107 -0
  84. package/dist/lib/connector.d.ts.map +1 -0
  85. package/dist/lib/connector.js +160 -0
  86. package/dist/lib/connector.js.map +1 -0
  87. package/dist/lib/error.d.ts +15 -0
  88. package/dist/lib/error.d.ts.map +1 -0
  89. package/dist/lib/error.js +23 -0
  90. package/dist/lib/error.js.map +1 -0
  91. package/dist/lib/handler.d.ts +29 -0
  92. package/dist/lib/handler.d.ts.map +1 -0
  93. package/dist/lib/handler.js +4 -0
  94. package/dist/lib/handler.js.map +1 -0
  95. package/dist/lib/index.d.ts +8 -0
  96. package/dist/lib/index.d.ts.map +1 -0
  97. package/dist/lib/index.js +21 -0
  98. package/dist/lib/index.js.map +1 -0
  99. package/dist/lib/logger/index.d.ts +2 -0
  100. package/dist/lib/logger/index.d.ts.map +1 -0
  101. package/dist/lib/logger/index.js +14 -0
  102. package/dist/lib/logger/index.js.map +1 -0
  103. package/dist/lib/logger/logger.d.ts +23 -0
  104. package/dist/lib/logger/logger.d.ts.map +1 -0
  105. package/dist/lib/logger/logger.js +44 -0
  106. package/dist/lib/logger/logger.js.map +1 -0
  107. package/dist/lib/response/index.d.ts +21 -0
  108. package/dist/lib/response/index.d.ts.map +1 -0
  109. package/dist/lib/response/index.js +21 -0
  110. package/dist/lib/response/index.js.map +1 -0
  111. package/package.json +79 -0
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021. SailPoint Technologies, Inc. All rights reserved. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createConnector = exports.Connector = void 0;
5
+ const connector_spec_1 = require("./connector-spec");
6
+ const commands_1 = require("./commands");
7
+ const response_1 = require("./response");
8
+ const async_context_1 = require("./async-context");
9
+ const SDK_VERSION = 0;
10
+ /**
11
+ * Connector to build by attaching handlers for supported commands.
12
+ */
13
+ class Connector {
14
+ constructor() {
15
+ this._sdkVersion = Connector.SDK_VERSION;
16
+ this._handlers = new Map();
17
+ this.command(commands_1.StandardCommand.StdSpecRead, connector_spec_1.StdSpecReadDefaultHandler);
18
+ }
19
+ /**
20
+ * Get this Connector SDK's major version
21
+ */
22
+ get sdkVersion() {
23
+ return this._sdkVersion;
24
+ }
25
+ /**
26
+ * Get the map of command handlers
27
+ */
28
+ get handlers() {
29
+ return this._handlers;
30
+ }
31
+ /**
32
+ * Add a handler for 'std:account:create' command
33
+ * @param handler handler
34
+ */
35
+ stdAccountCreate(handler) {
36
+ return this.command(commands_1.StandardCommand.StdAccountCreate, handler);
37
+ }
38
+ /**
39
+ * Add a handler for 'std:account:delete' command
40
+ * @param handler handler
41
+ */
42
+ stdAccountDelete(handler) {
43
+ return this.command(commands_1.StandardCommand.StdAccountDelete, handler);
44
+ }
45
+ /**
46
+ * Add a handler for 'std:account:delete' command
47
+ * @param handler handler
48
+ */
49
+ stdAccountDisable(handler) {
50
+ return this.command(commands_1.StandardCommand.StdAccountDisable, handler);
51
+ }
52
+ /**
53
+ * Add a handler for 'std:account:discover-schema' command
54
+ * @param handler handler
55
+ */
56
+ stdAccountDiscoverSchema(handler) {
57
+ return this.command(commands_1.StandardCommand.StdAccountDiscoverSchema, handler);
58
+ }
59
+ /**
60
+ * Add a handler for 'std:account:enable' command
61
+ * @param handler handler
62
+ */
63
+ stdAccountEnable(handler) {
64
+ return this.command(commands_1.StandardCommand.StdAccountEnable, handler);
65
+ }
66
+ /**
67
+ * Add a handler for 'std:account:list' command
68
+ * @param handler handler
69
+ */
70
+ stdAccountList(handler) {
71
+ return this.command(commands_1.StandardCommand.StdAccountList, handler);
72
+ }
73
+ /**
74
+ * Add a handler for 'std:account:read' command
75
+ * @param handler handler
76
+ */
77
+ stdAccountRead(handler) {
78
+ return this.command(commands_1.StandardCommand.StdAccountRead, handler);
79
+ }
80
+ /**
81
+ * Add a handler for 'std:account:unlock' command
82
+ * @param handler handler
83
+ */
84
+ stdAccountUnlock(handler) {
85
+ return this.command(commands_1.StandardCommand.StdAccountUnlock, handler);
86
+ }
87
+ /**
88
+ * Add a handler for 'std:account:update' command
89
+ * @param handler handler
90
+ */
91
+ stdAccountUpdate(handler) {
92
+ return this.command(commands_1.StandardCommand.StdAccountUpdate, handler);
93
+ }
94
+ /**
95
+ * Add a handler for 'std:entitlement:list' command
96
+ * @param handler handler
97
+ */
98
+ stdEntitlementList(handler) {
99
+ return this.command(commands_1.StandardCommand.StdEntitlementList, handler);
100
+ }
101
+ /**
102
+ * Add a handler for 'std:entitlement:read' command
103
+ * @param handler handler
104
+ */
105
+ stdEntitlementRead(handler) {
106
+ return this.command(commands_1.StandardCommand.StdEntitlementRead, handler);
107
+ }
108
+ /**
109
+ * Add a handler for 'std:test-connection' command
110
+ * @param handler handler
111
+ */
112
+ stdTestConnection(handler) {
113
+ return this.command(commands_1.StandardCommand.StdTestConnection, handler);
114
+ }
115
+ /**
116
+ * Add a handler for 'std:change-password' command
117
+ * @param handler handler
118
+ */
119
+ stdChangePassword(handler) {
120
+ return this.command(commands_1.StandardCommand.StdChangePassword, handler);
121
+ }
122
+ /**
123
+ * Add a handler for a command of specified type
124
+ * @param type command type
125
+ * @param handler handler
126
+ */
127
+ command(type, handler) {
128
+ this._handlers.set(type, handler);
129
+ return this;
130
+ }
131
+ /**
132
+ * Execute the handler for given command type
133
+ *
134
+ * Note: This function MUST NOT be called by the connector directly
135
+ *
136
+ * @param type command type
137
+ * @param context connector context
138
+ * @param input command input
139
+ * @param res writable
140
+ */
141
+ async _exec(type, context, input, res) {
142
+ const handler = this._handlers.get(type);
143
+ if (!handler) {
144
+ throw new Error(`unsupported command: ${type}`);
145
+ }
146
+ await async_context_1.contextState.run(context, () => {
147
+ return handler(context, input, new response_1.ResponseStream(res));
148
+ });
149
+ }
150
+ }
151
+ exports.Connector = Connector;
152
+ Connector.SDK_VERSION = SDK_VERSION;
153
+ /**
154
+ * Creates a connector instance with default options
155
+ */
156
+ const createConnector = () => {
157
+ return new Connector();
158
+ };
159
+ exports.createConnector = createConnector;
160
+ //# sourceMappingURL=connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../../lib/connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Connector error types
3
+ */
4
+ export declare enum ConnectorErrorType {
5
+ Generic = "generic",
6
+ NotFound = "notFound"
7
+ }
8
+ /**
9
+ * Connector error types
10
+ */
11
+ export declare class ConnectorError extends Error {
12
+ type: ConnectorErrorType;
13
+ constructor(message: string, type?: ConnectorErrorType);
14
+ }
15
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../lib/error.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,kBAAkB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACrB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACrC,IAAI,EAAE,kBAAkB,CAAA;gBAEZ,OAAO,EAAC,MAAM,EAAE,IAAI,qBAA6B;CAIhE"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021. SailPoint Technologies, Inc. All rights reserved. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ConnectorError = exports.ConnectorErrorType = void 0;
5
+ /**
6
+ * Connector error types
7
+ */
8
+ var ConnectorErrorType;
9
+ (function (ConnectorErrorType) {
10
+ ConnectorErrorType["Generic"] = "generic";
11
+ ConnectorErrorType["NotFound"] = "notFound";
12
+ })(ConnectorErrorType = exports.ConnectorErrorType || (exports.ConnectorErrorType = {}));
13
+ /**
14
+ * Connector error types
15
+ */
16
+ class ConnectorError extends Error {
17
+ constructor(message, type = ConnectorErrorType.Generic) {
18
+ super(message);
19
+ this.type = type;
20
+ }
21
+ }
22
+ exports.ConnectorError = ConnectorError;
23
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../lib/error.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;AAE3E;;GAEG;AACH,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC7B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;AACtB,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,KAAK;IAGrC,YAAY,OAAc,EAAE,IAAI,GAAG,kBAAkB,CAAC,OAAO;QACzD,KAAK,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,CAAC;CACD;AAPD,wCAOC"}
@@ -0,0 +1,29 @@
1
+ import { StdAccountCreateInput, StdAccountCreateOutput, StdAccountDeleteInput, StdAccountDeleteOutput, StdAccountDisableInput, StdAccountDisableOutput, StdAccountDiscoverSchemaOutput, StdAccountEnableInput, StdAccountEnableOutput, StdAccountListOutput, StdAccountReadInput, StdAccountReadOutput, StdAccountUnlockInput, StdAccountUnlockOutput, StdAccountUpdateInput, StdAccountUpdateOutput, StdEntitlementListInput, StdEntitlementListOutput, StdEntitlementReadInput, StdEntitlementReadOutput, StdTestConnectionOutput, StdChangePasswordInput, StdChangePasswordOutput } from './commands';
2
+ import { Response } from './response';
3
+ /**
4
+ * Connector context object
5
+ */
6
+ export interface Context {
7
+ id?: string;
8
+ name?: string;
9
+ version?: number;
10
+ invocationId?: string;
11
+ requestId?: string;
12
+ commandType?: string;
13
+ [prop: string]: any;
14
+ }
15
+ export declare type StdAccountCreateHandler = (context: Context, input: StdAccountCreateInput, res: Response<StdAccountCreateOutput>) => Promise<void>;
16
+ export declare type StdAccountDeleteHandler = (context: Context, input: StdAccountDeleteInput, res: Response<StdAccountDeleteOutput>) => Promise<void>;
17
+ export declare type StdAccountDisableHandler = (context: Context, input: StdAccountDisableInput, res: Response<StdAccountDisableOutput>) => Promise<void>;
18
+ export declare type StdAccountDiscoverSchemaHandler = (context: Context, input: undefined, res: Response<StdAccountDiscoverSchemaOutput>) => Promise<void>;
19
+ export declare type StdAccountEnableHandler = (context: Context, input: StdAccountEnableInput, res: Response<StdAccountEnableOutput>) => Promise<void>;
20
+ export declare type StdAccountListHandler = (context: Context, input: undefined, res: Response<StdAccountListOutput>) => Promise<void>;
21
+ export declare type StdAccountReadHandler = (context: Context, input: StdAccountReadInput, res: Response<StdAccountReadOutput>) => Promise<void>;
22
+ export declare type StdAccountUnlockHandler = (context: Context, input: StdAccountUnlockInput, res: Response<StdAccountUnlockOutput>) => Promise<void>;
23
+ export declare type StdAccountUpdateHandler = (context: Context, input: StdAccountUpdateInput, res: Response<StdAccountUpdateOutput>) => Promise<void>;
24
+ export declare type StdEntitlementListHandler = (context: Context, input: StdEntitlementListInput, res: Response<StdEntitlementListOutput>) => Promise<void>;
25
+ export declare type StdEntitlementReadHandler = (context: Context, input: StdEntitlementReadInput, res: Response<StdEntitlementReadOutput>) => Promise<void>;
26
+ export declare type StdTestConnectionHandler = (context: Context, input: undefined, res: Response<StdTestConnectionOutput>) => Promise<void>;
27
+ export declare type StdChangePasswordHandler = (context: Context, input: StdChangePasswordInput, res: Response<StdChangePasswordOutput>) => Promise<void>;
28
+ export declare type CommandHandler = (context: Context, input: any, res: Response<any>) => Promise<void>;
29
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../lib/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021. SailPoint Technologies, Inc. All rights reserved. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../lib/handler.ts"],"names":[],"mappings":";AAAA,2EAA2E"}
@@ -0,0 +1,8 @@
1
+ export * from './commands';
2
+ export * from './config';
3
+ export * from './connector';
4
+ export * from './error';
5
+ export * from './handler';
6
+ export * from './response';
7
+ export * from './logger';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021. SailPoint Technologies, Inc. All rights reserved. */
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
6
+ }) : (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ o[k2] = m[k];
9
+ }));
10
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ __exportStar(require("./commands"), exports);
15
+ __exportStar(require("./config"), exports);
16
+ __exportStar(require("./connector"), exports);
17
+ __exportStar(require("./error"), exports);
18
+ __exportStar(require("./handler"), exports);
19
+ __exportStar(require("./response"), exports);
20
+ __exportStar(require("./logger"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;;;;;;;;;;AAE3E,6CAA0B;AAC1B,2CAAwB;AACxB,8CAA2B;AAC3B,0CAAuB;AACvB,4CAAyB;AACzB,6CAA0B;AAC1B,2CAAwB"}
@@ -0,0 +1,2 @@
1
+ export * from './logger';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/logger/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./logger"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/logger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwB"}
@@ -0,0 +1,23 @@
1
+ export declare const logLevel: () => string;
2
+ export declare const logger: import("pino").Logger<{
3
+ timestamp: false;
4
+ messageKey: string;
5
+ level: string;
6
+ base: undefined;
7
+ formatters: {
8
+ level: (label: string) => {
9
+ level: string;
10
+ };
11
+ };
12
+ mixin(): {
13
+ [x: string]: any;
14
+ id?: string | undefined;
15
+ name?: string | undefined;
16
+ version?: number | undefined;
17
+ invocationId?: string | undefined;
18
+ requestId?: string | undefined;
19
+ commandType?: string | undefined;
20
+ };
21
+ mixinMergeStrategy(mergeObject: any, mixinObject: any): any;
22
+ }>;
23
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../lib/logger/logger.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,QAAO,MAc3B,CAAA;AAED,eAAO,MAAM,MAAM;;;;;;uBAMF,MAAM;;;;;;;;;;;;;oCASY,GAAG,eAAc,GAAG;EAGrD,CAAA"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logger = exports.logLevel = void 0;
7
+ const pino_1 = __importDefault(require("pino"));
8
+ const async_context_1 = require("../async-context");
9
+ // sets log-level based on env variable
10
+ const logLevel = () => {
11
+ const config = process.env['CONNECTOR_CONFIG'];
12
+ if (config != undefined) {
13
+ const configDecoded = JSON.parse(Buffer.from(config, 'base64').toString());
14
+ const debugLoggingEnabled = configDecoded['spConnDebugLoggingEnabled'];
15
+ if (debugLoggingEnabled != undefined && debugLoggingEnabled === true) {
16
+ return 'debug';
17
+ }
18
+ else {
19
+ return 'info';
20
+ }
21
+ }
22
+ return 'info';
23
+ };
24
+ exports.logLevel = logLevel;
25
+ exports.logger = pino_1.default({
26
+ timestamp: false,
27
+ messageKey: 'message',
28
+ level: exports.logLevel(),
29
+ base: undefined,
30
+ formatters: {
31
+ level: (label) => {
32
+ return { level: label.toUpperCase() };
33
+ },
34
+ },
35
+ mixin() {
36
+ return {
37
+ ...async_context_1.contextState.getStore()
38
+ };
39
+ },
40
+ mixinMergeStrategy(mergeObject, mixinObject) {
41
+ return { ...mergeObject, ...mixinObject };
42
+ }
43
+ });
44
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../lib/logger/logger.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,oDAAgD;AAEhD,uCAAuC;AAChC,MAAM,QAAQ,GAAG,GAAW,EAAE;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,MAAM,IAAI,SAAS,EAAE;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE3E,MAAM,mBAAmB,GAAG,aAAa,CAAC,2BAA2B,CAAC,CAAC;QACvE,IAAI,mBAAmB,IAAI,SAAS,IAAI,mBAAmB,KAAK,IAAI,EAAE;YAClE,OAAO,OAAO,CAAC;SAClB;aAAM;YACH,OAAO,MAAM,CAAC;SACjB;KACJ;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAdY,QAAA,QAAQ,YAcpB;AAEY,QAAA,MAAM,GAAG,cAAI,CAAC;IACvB,SAAS,EAAC,KAAK;IAClB,UAAU,EAAE,SAAS;IAClB,KAAK,EAAE,gBAAQ,EAAE;IACjB,IAAI,EAAC,SAAS;IACjB,UAAU,EAAE;QACX,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE;YACxB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAA;QACtC,CAAC;KACD;IACE,KAAK;QACD,OAAO;YACH,GAAG,4BAAY,CAAC,QAAQ,EAAE;SAC7B,CAAC;IACN,CAAC;IACD,kBAAkB,CAAC,WAAe,EAAE,WAAe;QAC/C,OAAO,EAAC,GAAG,WAAW,EAAE,GAAG,WAAW,EAAC,CAAA;IAC3C,CAAC;CACJ,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { Writable } from 'stream';
3
+ /**
4
+ * Response interface
5
+ */
6
+ export interface Response<T> {
7
+ send(output: T): void;
8
+ }
9
+ /**
10
+ * Response implementation for sending command output in chunks
11
+ */
12
+ export declare class ResponseStream<T> implements Response<T> {
13
+ protected readonly _writable: Writable;
14
+ constructor(writable: Writable);
15
+ /**
16
+ * Send command output
17
+ * @param chunk output chunk
18
+ */
19
+ send(chunk: T): void;
20
+ }
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/response/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;CACrB;AAED;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAA;gBAE1B,QAAQ,EAAE,QAAQ;IAI9B;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAGpB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021. SailPoint Technologies, Inc. All rights reserved. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ResponseStream = void 0;
5
+ /**
6
+ * Response implementation for sending command output in chunks
7
+ */
8
+ class ResponseStream {
9
+ constructor(writable) {
10
+ this._writable = writable;
11
+ }
12
+ /**
13
+ * Send command output
14
+ * @param chunk output chunk
15
+ */
16
+ send(chunk) {
17
+ this._writable.write(chunk);
18
+ }
19
+ }
20
+ exports.ResponseStream = ResponseStream;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/response/index.ts"],"names":[],"mappings":";AAAA,2EAA2E;;;AAW3E;;GAEG;AACH,MAAa,cAAc;IAG1B,YAAY,QAAkB;QAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,KAAQ;QACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;CACD;AAdD,wCAcC"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@sailpoint/connector-sdk",
3
+ "version": "0.0.1",
4
+ "description": "JavaScript framework to build SailPoint Connectors",
5
+ "author": "SailPoint Technologies, Inc.",
6
+ "license": "Copyright (c) 2021. SailPoint Technologies, Inc. All rights reserved.",
7
+ "keywords": [
8
+ "sailpoint",
9
+ "connector"
10
+ ],
11
+ "main": "dist/lib/index.js",
12
+ "types": "dist/lib/index.d.ts",
13
+ "bin": {
14
+ "spcx": "dist/bin/spcx.js"
15
+ },
16
+ "files": [
17
+ "dist/**/*"
18
+ ],
19
+ "engines": {
20
+ "node": ">=16.2.0"
21
+ },
22
+ "scripts": {
23
+ "clean": "shx rm -rf ./dist ./coverage",
24
+ "prebuild": "npm run clean",
25
+ "build": "npx tsc",
26
+ "prettier": "npx prettier --write .",
27
+ "test": "jest --coverage",
28
+ "prepare": "npm run build"
29
+ },
30
+ "dependencies": {
31
+ "archiver": "^5.3.1",
32
+ "express": "^4.17.1",
33
+ "pino": "^8.5.0"
34
+ },
35
+ "devDependencies": {
36
+ "@tsconfig/node16": "1.0.1",
37
+ "@types/archiver": "^5.3.1",
38
+ "@types/express": "^4.17.13",
39
+ "@types/jest": "^28.1.2",
40
+ "@types/node": "^16.4.12",
41
+ "@types/semver": "^7.3.6",
42
+ "jest": "^28.1.1",
43
+ "mock-fs": "^5.1.0",
44
+ "prettier": "2.3.2",
45
+ "semver": "^7.3.5",
46
+ "shx": "^0.3.4",
47
+ "ts-jest": "^28.0.5",
48
+ "ts-node": "^10.0.0",
49
+ "typescript": "^4.3.5"
50
+ },
51
+ "overrides": {
52
+ "minimist": "^1.2.6",
53
+ "debug": "^4.3.4"
54
+ },
55
+ "jest": {
56
+ "preset": "ts-jest",
57
+ "testEnvironment": "node",
58
+ "testPathIgnorePatterns": [
59
+ "examples"
60
+ ],
61
+ "clearMocks": true,
62
+ "collectCoverage": true,
63
+ "coverageThreshold": {
64
+ "global": {
65
+ "statements": 90,
66
+ "branches": 90,
67
+ "functions": 90,
68
+ "lines": 90
69
+ }
70
+ }
71
+ },
72
+ "prettier": {
73
+ "printWidth": 120,
74
+ "trailingComma": "es5",
75
+ "tabWidth": 4,
76
+ "semi": false,
77
+ "singleQuote": true
78
+ }
79
+ }