@transcend-io/cli 6.7.0 → 6.9.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 (88) hide show
  1. package/README.md +87 -6
  2. package/build/cli-pull-datapoints.d.ts +3 -0
  3. package/build/cli-pull-datapoints.d.ts.map +1 -0
  4. package/build/cli-pull-datapoints.js +93 -0
  5. package/build/cli-pull-datapoints.js.map +1 -0
  6. package/build/cli-request-export.js.map +1 -1
  7. package/build/codecs.d.ts +1826 -4
  8. package/build/codecs.d.ts.map +1 -1
  9. package/build/codecs.js +232 -2
  10. package/build/codecs.js.map +1 -1
  11. package/build/constants.d.ts +1 -0
  12. package/build/constants.d.ts.map +1 -1
  13. package/build/constants.js +8 -1
  14. package/build/constants.js.map +1 -1
  15. package/build/data-inventory/index.d.ts +2 -0
  16. package/build/data-inventory/index.d.ts.map +1 -0
  17. package/build/data-inventory/index.js +18 -0
  18. package/build/data-inventory/index.js.map +1 -0
  19. package/build/data-inventory/pullAllDatapoints.d.ts +78 -0
  20. package/build/data-inventory/pullAllDatapoints.d.ts.map +1 -0
  21. package/build/data-inventory/pullAllDatapoints.js +242 -0
  22. package/build/data-inventory/pullAllDatapoints.js.map +1 -0
  23. package/build/enums.d.ts +3 -1
  24. package/build/enums.d.ts.map +1 -1
  25. package/build/enums.js +2 -0
  26. package/build/enums.js.map +1 -1
  27. package/build/graphql/fetchAllAssessmentTemplates.d.ts +44 -0
  28. package/build/graphql/fetchAllAssessmentTemplates.d.ts.map +1 -0
  29. package/build/graphql/fetchAllAssessmentTemplates.js +31 -0
  30. package/build/graphql/fetchAllAssessmentTemplates.js.map +1 -0
  31. package/build/graphql/fetchAllAssessments.d.ts +309 -0
  32. package/build/graphql/fetchAllAssessments.d.ts.map +1 -0
  33. package/build/graphql/fetchAllAssessments.js +32 -0
  34. package/build/graphql/fetchAllAssessments.js.map +1 -0
  35. package/build/graphql/fetchAllRequestIdentifiers.d.ts +2 -2
  36. package/build/graphql/gqls/assessment.d.ts +3 -0
  37. package/build/graphql/gqls/assessment.d.ts.map +1 -0
  38. package/build/graphql/gqls/assessment.js +287 -0
  39. package/build/graphql/gqls/assessment.js.map +1 -0
  40. package/build/graphql/gqls/assessmentTemplate.d.ts +2 -0
  41. package/build/graphql/gqls/assessmentTemplate.d.ts.map +1 -0
  42. package/build/graphql/gqls/assessmentTemplate.js +70 -0
  43. package/build/graphql/gqls/assessmentTemplate.js.map +1 -0
  44. package/build/graphql/gqls/dataPoint.d.ts +3 -0
  45. package/build/graphql/gqls/dataPoint.d.ts.map +1 -1
  46. package/build/graphql/gqls/dataPoint.js +51 -12
  47. package/build/graphql/gqls/dataPoint.js.map +1 -1
  48. package/build/graphql/gqls/dataSilo.d.ts +1 -0
  49. package/build/graphql/gqls/dataSilo.d.ts.map +1 -1
  50. package/build/graphql/gqls/dataSilo.js +16 -1
  51. package/build/graphql/gqls/dataSilo.js.map +1 -1
  52. package/build/graphql/gqls/index.d.ts +2 -0
  53. package/build/graphql/gqls/index.d.ts.map +1 -1
  54. package/build/graphql/gqls/index.js +2 -0
  55. package/build/graphql/gqls/index.js.map +1 -1
  56. package/build/graphql/index.d.ts +4 -0
  57. package/build/graphql/index.d.ts.map +1 -1
  58. package/build/graphql/index.js +4 -0
  59. package/build/graphql/index.js.map +1 -1
  60. package/build/graphql/parseAssessmentDisplayLogic.d.ts +56 -0
  61. package/build/graphql/parseAssessmentDisplayLogic.d.ts.map +1 -0
  62. package/build/graphql/parseAssessmentDisplayLogic.js +62 -0
  63. package/build/graphql/parseAssessmentDisplayLogic.js.map +1 -0
  64. package/build/graphql/parseAssessmentRiskLogic.d.ts +27 -0
  65. package/build/graphql/parseAssessmentRiskLogic.d.ts.map +1 -0
  66. package/build/graphql/parseAssessmentRiskLogic.js +51 -0
  67. package/build/graphql/parseAssessmentRiskLogic.js.map +1 -0
  68. package/build/graphql/pullTranscendConfiguration.d.ts.map +1 -1
  69. package/build/graphql/pullTranscendConfiguration.js +220 -1
  70. package/build/graphql/pullTranscendConfiguration.js.map +1 -1
  71. package/build/graphql/syncDataSilos.d.ts +1 -1
  72. package/build/graphql/syncDataSilos.d.ts.map +1 -1
  73. package/build/graphql/syncDataSilos.js +8 -3
  74. package/build/graphql/syncDataSilos.js.map +1 -1
  75. package/build/index.d.ts +1 -0
  76. package/build/index.d.ts.map +1 -1
  77. package/build/index.js +1 -0
  78. package/build/index.js.map +1 -1
  79. package/build/manual-enrichment/pullManualEnrichmentIdentifiersToCsv.d.ts.map +1 -1
  80. package/build/manual-enrichment/pullManualEnrichmentIdentifiersToCsv.js.map +1 -1
  81. package/build/requests/approvePrivacyRequests.d.ts.map +1 -1
  82. package/build/requests/approvePrivacyRequests.js +15 -4
  83. package/build/requests/approvePrivacyRequests.js.map +1 -1
  84. package/build/requests/bulkRestartRequests.js.map +1 -1
  85. package/build/requests/pullPrivacyRequests.d.ts.map +1 -1
  86. package/build/requests/pullPrivacyRequests.js.map +1 -1
  87. package/build/tsbuildinfo +1 -1
  88. package/package.json +3 -2
@@ -0,0 +1,242 @@
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.pullAllDatapoints = void 0;
7
+ /* eslint-disable max-lines */
8
+ const keyBy_1 = __importDefault(require("lodash/keyBy"));
9
+ const uniq_1 = __importDefault(require("lodash/uniq"));
10
+ const chunk_1 = __importDefault(require("lodash/chunk"));
11
+ const cli_progress_1 = __importDefault(require("cli-progress"));
12
+ const graphql_request_1 = require("graphql-request");
13
+ const colors_1 = __importDefault(require("colors"));
14
+ const sortBy_1 = __importDefault(require("lodash/sortBy"));
15
+ const graphql_1 = require("../graphql");
16
+ const logger_1 = require("../logger");
17
+ const bluebird_1 = require("bluebird");
18
+ /**
19
+ * Pull subdatapoint information
20
+ *
21
+ * @param client - Client to use for the request
22
+ * @param options - Options
23
+ */
24
+ async function pullSubDatapoints(client, { dataSiloIds = [], includeGuessedCategories, includeAttributes, parentCategories = [], subCategories = [], pageSize = 1000, } = {}) {
25
+ var _a;
26
+ const subDataPoints = [];
27
+ // Time duration
28
+ const t0 = new Date().getTime();
29
+ // create a new progress bar instance and use shades_classic theme
30
+ const progressBar = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
31
+ // Filters
32
+ const filterBy = {
33
+ ...(parentCategories.length > 0 ? { category: parentCategories } : {}),
34
+ ...(subCategories.length > 0 ? { subCategoryIds: subCategories } : {}),
35
+ ...(dataSiloIds.length > 0 ? { dataSilos: dataSiloIds } : {}),
36
+ };
37
+ // Build a GraphQL client
38
+ const { subDataPoints: { totalCount }, } = await (0, graphql_1.makeGraphQLRequest)(client, graphql_1.SUB_DATA_POINTS_COUNT, {
39
+ filterBy,
40
+ });
41
+ logger_1.logger.info(colors_1.default.magenta('[Step 1/3] Pulling in all subdatapoints'));
42
+ progressBar.start(totalCount, 0);
43
+ let total = 0;
44
+ let shouldContinue = false;
45
+ let cursor;
46
+ let offset = 0;
47
+ do {
48
+ try {
49
+ const { subDataPoints: { nodes },
50
+ // eslint-disable-next-line no-await-in-loop
51
+ } = await (0, graphql_1.makeGraphQLRequest)(client, (0, graphql_request_1.gql) `
52
+ query TranscendCliSubDataPointCsvExport(
53
+ $filterBy: SubDataPointFiltersInput
54
+ $first: Int!
55
+ $offset: Int!
56
+ ) {
57
+ subDataPoints(
58
+ filterBy: $filterBy
59
+ first: $first
60
+ offset: $offset
61
+ useMaster: false
62
+ ) {
63
+ nodes {
64
+ id
65
+ name
66
+ description
67
+ dataPointId
68
+ dataSiloId
69
+ purposes {
70
+ name
71
+ purpose
72
+ }
73
+ categories {
74
+ name
75
+ category
76
+ }
77
+ ${includeGuessedCategories
78
+ ? `pendingCategoryGuesses {
79
+ category {
80
+ name
81
+ category
82
+ }
83
+ status
84
+ classifierVersion
85
+ }`
86
+ : ''}
87
+ ${includeAttributes
88
+ ? `attributeValues {
89
+ attributeKey {
90
+ name
91
+ }
92
+ name
93
+ }`
94
+ : ''}
95
+ }
96
+ }
97
+ }
98
+ `, {
99
+ first: pageSize,
100
+ offset,
101
+ filterBy: {
102
+ ...filterBy,
103
+ // TODO: https://transcend.height.app/T-40484 - add cursor support
104
+ // ...(cursor ? { cursor: { id: cursor } } : {}),
105
+ },
106
+ });
107
+ cursor = (_a = nodes[nodes.length - 1]) === null || _a === void 0 ? void 0 : _a.id;
108
+ subDataPoints.push(...nodes);
109
+ shouldContinue = nodes.length === pageSize;
110
+ total += nodes.length;
111
+ offset += nodes.length;
112
+ progressBar.update(total);
113
+ }
114
+ catch (err) {
115
+ logger_1.logger.error(colors_1.default.red(`An error fetching subdatapoints for cursor ${cursor} and offset ${offset}`));
116
+ throw err;
117
+ }
118
+ } while (shouldContinue);
119
+ progressBar.stop();
120
+ const t1 = new Date().getTime();
121
+ const totalTime = t1 - t0;
122
+ const sorted = (0, sortBy_1.default)(subDataPoints, 'name');
123
+ logger_1.logger.info(colors_1.default.green(`Successfully pulled in ${sorted.length} subdatapoints in ${totalTime / 1000} seconds!`));
124
+ return sorted;
125
+ }
126
+ /**
127
+ * Pull datapoint information
128
+ *
129
+ * @param client - Client to use for the request
130
+ * @param options - Options
131
+ */
132
+ async function pullDatapoints(client, { dataPointIds = [], pageSize = 100, }) {
133
+ const dataPoints = [];
134
+ // Time duration
135
+ const t0 = new Date().getTime();
136
+ // create a new progress bar instance and use shades_classic theme
137
+ const progressBar = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
138
+ logger_1.logger.info(colors_1.default.magenta(`[Step 2/3] Fetching metadata for ${dataPointIds.length} datapoints`));
139
+ // Group by 100
140
+ const dataPointsGrouped = (0, chunk_1.default)(dataPointIds, pageSize);
141
+ progressBar.start(dataPointIds.length, 0);
142
+ let total = 0;
143
+ await (0, bluebird_1.mapSeries)(dataPointsGrouped, async (dataPointIdsGroup) => {
144
+ try {
145
+ const { dataPoints: { nodes }, } = await (0, graphql_1.makeGraphQLRequest)(client, graphql_1.DATAPOINT_EXPORT, {
146
+ first: pageSize,
147
+ filterBy: {
148
+ ids: dataPointIdsGroup,
149
+ },
150
+ });
151
+ dataPoints.push(...nodes);
152
+ total += dataPointIdsGroup.length;
153
+ progressBar.update(total);
154
+ }
155
+ catch (err) {
156
+ logger_1.logger.error(colors_1.default.red(`An error fetching subdatapoints for IDs ${dataPointIdsGroup.join(', ')}`));
157
+ throw err;
158
+ }
159
+ });
160
+ progressBar.stop();
161
+ const t1 = new Date().getTime();
162
+ const totalTime = t1 - t0;
163
+ logger_1.logger.info(colors_1.default.green(`Successfully pulled in ${dataPoints.length} dataPoints in ${totalTime / 1000} seconds!`));
164
+ return dataPoints;
165
+ }
166
+ /**
167
+ * Pull data silo information
168
+ *
169
+ * @param client - Client to use for the request
170
+ * @param options - Options
171
+ */
172
+ async function pullDataSilos(client, { dataSiloIds = [], pageSize = 100, }) {
173
+ const dataSilos = [];
174
+ // Time duration
175
+ const t0 = new Date().getTime();
176
+ // create a new progress bar instance and use shades_classic theme
177
+ const progressBar = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
178
+ logger_1.logger.info(colors_1.default.magenta(`[Step 3/3] Fetching metadata for ${dataSiloIds.length} data silos`));
179
+ // Group by 100
180
+ const dataSilosGrouped = (0, chunk_1.default)(dataSiloIds, pageSize);
181
+ progressBar.start(dataSiloIds.length, 0);
182
+ let total = 0;
183
+ await (0, bluebird_1.mapSeries)(dataSilosGrouped, async (dataSiloIdsGroup) => {
184
+ try {
185
+ const { dataSilos: { nodes }, } = await (0, graphql_1.makeGraphQLRequest)(client, graphql_1.DATA_SILO_EXPORT, {
186
+ first: pageSize,
187
+ filterBy: {
188
+ ids: dataSiloIdsGroup,
189
+ },
190
+ });
191
+ dataSilos.push(...nodes);
192
+ total += dataSiloIdsGroup.length;
193
+ progressBar.update(total);
194
+ }
195
+ catch (err) {
196
+ logger_1.logger.error(colors_1.default.red(`An error fetching data silos for IDs ${dataSiloIdsGroup.join(', ')}`));
197
+ throw err;
198
+ }
199
+ });
200
+ progressBar.stop();
201
+ const t1 = new Date().getTime();
202
+ const totalTime = t1 - t0;
203
+ logger_1.logger.info(colors_1.default.green(`Successfully pulled in ${dataSilos.length} data silos in ${totalTime / 1000} seconds!`));
204
+ return dataSilos;
205
+ }
206
+ /**
207
+ * Pull all datapoints from the data inventory.
208
+ *
209
+ * @param client - Client to use for the request
210
+ * @param options - Options
211
+ */
212
+ async function pullAllDatapoints(client, { dataSiloIds = [], includeGuessedCategories, includeAttributes, parentCategories = [], subCategories = [], pageSize = 1000, } = {}) {
213
+ // Subdatapoint information
214
+ const subDatapoints = await pullSubDatapoints(client, {
215
+ dataSiloIds,
216
+ includeGuessedCategories,
217
+ includeAttributes,
218
+ parentCategories,
219
+ subCategories,
220
+ pageSize,
221
+ });
222
+ // The datapoint ids to grab
223
+ const dataPointIds = (0, uniq_1.default)(subDatapoints.map((point) => point.dataPointId));
224
+ const dataPoints = await pullDatapoints(client, {
225
+ dataPointIds,
226
+ });
227
+ const dataPointById = (0, keyBy_1.default)(dataPoints, 'id');
228
+ // The data silo IDs to grab
229
+ const allDataSiloIds = (0, uniq_1.default)(subDatapoints.map((point) => point.dataSiloId));
230
+ const dataSilos = await pullDataSilos(client, {
231
+ dataSiloIds: allDataSiloIds,
232
+ });
233
+ const dataSiloById = (0, keyBy_1.default)(dataSilos, 'id');
234
+ return subDatapoints.map((subDataPoint) => ({
235
+ ...subDataPoint,
236
+ dataPoint: dataPointById[subDataPoint.dataPointId],
237
+ dataSilo: dataSiloById[subDataPoint.dataSiloId],
238
+ }));
239
+ }
240
+ exports.pullAllDatapoints = pullAllDatapoints;
241
+ /* eslint-enable max-lines */
242
+ //# sourceMappingURL=pullAllDatapoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pullAllDatapoints.js","sourceRoot":"","sources":["../../src/data-inventory/pullAllDatapoints.ts"],"names":[],"mappings":"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"}
package/build/enums.d.ts CHANGED
@@ -29,7 +29,9 @@ export declare enum TranscendPullResource {
29
29
  Teams = "teams",
30
30
  PrivacyCenters = "privacyCenters",
31
31
  Policies = "policies",
32
- Messages = "messages"
32
+ Messages = "messages",
33
+ Assessments = "assessments",
34
+ AssessmentTemplates = "assessmentTemplates"
33
35
  }
34
36
  /**
35
37
  * Names of built in policies for pathfinder
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,UAAU,iBAAiB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAK/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAc1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,OAAO,YAAY;IACnB,UAAU,iBAAiB;IAC3B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;IAC/C,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAK/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC9B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAc1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
package/build/enums.js CHANGED
@@ -35,6 +35,8 @@ var TranscendPullResource;
35
35
  TranscendPullResource["PrivacyCenters"] = "privacyCenters";
36
36
  TranscendPullResource["Policies"] = "policies";
37
37
  TranscendPullResource["Messages"] = "messages";
38
+ TranscendPullResource["Assessments"] = "assessments";
39
+ TranscendPullResource["AssessmentTemplates"] = "assessmentTemplates";
38
40
  })(TranscendPullResource = exports.TranscendPullResource || (exports.TranscendPullResource = {}));
39
41
  /**
40
42
  * Names of built in policies for pathfinder
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD;;GAEG;AACH,IAAY,qBA6BX;AA7BD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,8DAAqC,CAAA;IACrC,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,oDAA2B,CAAA;IAC3B,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,sDAA6B,CAAA;IAC7B,0CAAiB,CAAA;IACjB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kEAAyC,CAAA;IACzC,oDAA2B,CAAA;IAC3B,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,0DAAiC,CAAA;IACjC,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;AACvB,CAAC,EA7BW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA6BhC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAA,qBAAQ,EAAC;IAC3C,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;CACjD,CAAC,CAAC;AAQH;;;GAGG;AACU,QAAA,eAAe,GAAG,IAAA,qBAAQ,EAAC;IACtC,cAAc,EAAE,sBAAsB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,6BAA6B;IACpC,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,2CAA2C;IACpD,IAAI,EAAE,4BAA4B;IAClC,GAAG,EAAE,mCAAmC;IACxC,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD;;GAEG;AACH,IAAY,qBA+BX;AA/BD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,gDAAuB,CAAA;IACvB,8DAAqC,CAAA;IACrC,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,oDAA2B,CAAA;IAC3B,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,sDAA6B,CAAA;IAC7B,0CAAiB,CAAA;IACjB,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,0DAAiC,CAAA;IACjC,kEAAyC,CAAA;IACzC,oDAA2B,CAAA;IAC3B,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,0DAAiC,CAAA;IACjC,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,oDAA2B,CAAA;IAC3B,oEAA2C,CAAA;AAC7C,CAAC,EA/BW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA+BhC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAA,qBAAQ,EAAC;IAC3C,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,gBAAgB;IAChC,sBAAsB,EAAE,wBAAwB;CACjD,CAAC,CAAC;AAQH;;;GAGG;AACU,QAAA,eAAe,GAAG,IAAA,qBAAQ,EAAC;IACtC,cAAc,EAAE,sBAAsB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,6BAA6B;IACpC,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE,2CAA2C;IACpD,IAAI,EAAE,4BAA4B;IAClC,GAAG,EAAE,mCAAmC;IACxC,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { GraphQLClient } from 'graphql-request';
2
+ import type { AssessmentSection, RetentionSchedule, UserPreview } from './fetchAllAssessments';
3
+ import { AssessmentFormTemplateSource, AssessmentFormTemplateStatus } from '@transcend-io/privacy-types';
4
+ /**
5
+ * Represents an assessment template with various properties and metadata.
6
+ */
7
+ export interface AssessmentTemplate {
8
+ /** The ID of the assessment template */
9
+ id: string;
10
+ /** The user who created the assessment template */
11
+ creator: UserPreview;
12
+ /** The user who last edited the assessment template */
13
+ lastEditor: UserPreview;
14
+ /** The title of the assessment template */
15
+ title: string;
16
+ /** The description of the assessment template */
17
+ description: string;
18
+ /** The current status of the assessment template */
19
+ status: AssessmentFormTemplateStatus;
20
+ /** The source fo the form template */
21
+ source: AssessmentFormTemplateSource;
22
+ /** ID of parent template */
23
+ parentId: string;
24
+ /** Indicates if the assessment template is locked */
25
+ isLocked: boolean;
26
+ /** Indicates if the assessment template is archived */
27
+ isArchived: boolean;
28
+ /** The date when the assessment template was created */
29
+ createdAt: string;
30
+ /** The date when the assessment template was last updated */
31
+ updatedAt: string;
32
+ /** The retention schedule of the assessment template */
33
+ retentionSchedule?: RetentionSchedule;
34
+ /** The sections of the assessment template */
35
+ sections: AssessmentSection[];
36
+ }
37
+ /**
38
+ * Fetch all assessment templates in the organization
39
+ *
40
+ * @param client - GraphQL client
41
+ * @returns All assessment templates in the organization
42
+ */
43
+ export declare function fetchAllAssessmentTemplates(client: GraphQLClient): Promise<AssessmentTemplate[]>;
44
+ //# sourceMappingURL=fetchAllAssessmentTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchAllAssessmentTemplates.d.ts","sourceRoot":"","sources":["../../src/graphql/fetchAllAssessmentTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,OAAO,EAAE,WAAW,CAAC;IACrB,uDAAuD;IACvD,UAAU,EAAE,WAAW,CAAC;IACxB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,MAAM,EAAE,4BAA4B,CAAC;IACrC,sCAAsC;IACtC,MAAM,EAAE,4BAA4B,CAAC;IACrC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAC;IACpB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,8CAA8C;IAC9C,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAID;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchAllAssessmentTemplates = void 0;
4
+ const gqls_1 = require("./gqls");
5
+ const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
6
+ const PAGE_SIZE = 20;
7
+ /**
8
+ * Fetch all assessment templates in the organization
9
+ *
10
+ * @param client - GraphQL client
11
+ * @returns All assessment templates in the organization
12
+ */
13
+ async function fetchAllAssessmentTemplates(client) {
14
+ const assessmentTemplates = [];
15
+ let offset = 0;
16
+ let shouldContinue = false;
17
+ do {
18
+ const { assessmentFormTemplates: { nodes },
19
+ // eslint-disable-next-line no-await-in-loop
20
+ } = await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.ASSESSMENT_TEMPLATES, {
21
+ first: PAGE_SIZE,
22
+ offset,
23
+ });
24
+ assessmentTemplates.push(...nodes);
25
+ offset += PAGE_SIZE;
26
+ shouldContinue = nodes.length === PAGE_SIZE;
27
+ } while (shouldContinue);
28
+ return assessmentTemplates.sort((a, b) => a.title.localeCompare(b.title));
29
+ }
30
+ exports.fetchAllAssessmentTemplates = fetchAllAssessmentTemplates;
31
+ //# sourceMappingURL=fetchAllAssessmentTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchAllAssessmentTemplates.js","sourceRoot":"","sources":["../../src/graphql/fetchAllAssessmentTemplates.ts"],"names":[],"mappings":";;;AACA,iCAA8C;AAC9C,6DAA0D;AA6C1D,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;GAKG;AACI,KAAK,UAAU,2BAA2B,CAC/C,MAAqB;IAErB,MAAM,mBAAmB,GAAyB,EAAE,CAAC;IACrD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,GAAG;QACD,MAAM,EACJ,uBAAuB,EAAE,EAAE,KAAK,EAAE;QAClC,4CAA4C;UAC7C,GAAG,MAAM,IAAA,uCAAkB,EAMzB,MAAM,EAAE,2BAAoB,EAAE;YAC/B,KAAK,EAAE,SAAS;YAChB,MAAM;SACP,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC;QACpB,cAAc,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;KAC7C,QAAQ,cAAc,EAAE;IAEzB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AA3BD,kEA2BC"}