@servicenow/sdk-build-core 3.0.2 → 4.0.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 (252) hide show
  1. package/dist/app.d.ts +25 -0
  2. package/dist/app.js +8 -0
  3. package/dist/app.js.map +1 -0
  4. package/dist/compiler.d.ts +60 -0
  5. package/dist/compiler.js +320 -0
  6. package/dist/compiler.js.map +1 -0
  7. package/dist/compression.d.ts +7 -0
  8. package/dist/compression.js +79 -0
  9. package/dist/compression.js.map +1 -0
  10. package/dist/crypto.d.ts +1 -0
  11. package/dist/crypto.js +9 -0
  12. package/dist/crypto.js.map +1 -0
  13. package/dist/diagnostic.d.ts +41 -0
  14. package/dist/diagnostic.js +130 -0
  15. package/dist/diagnostic.js.map +1 -0
  16. package/dist/{plugins/Diagnostic.d.ts → fluent-diagnostic.d.ts} +3 -2
  17. package/dist/fluent-diagnostic.js +23 -0
  18. package/dist/fluent-diagnostic.js.map +1 -0
  19. package/dist/fluent-directive.d.ts +8 -0
  20. package/dist/fluent-directive.js +54 -0
  21. package/dist/fluent-directive.js.map +1 -0
  22. package/dist/fluent-file.d.ts +5 -0
  23. package/dist/fluent-file.js +15 -0
  24. package/dist/fluent-file.js.map +1 -0
  25. package/dist/formatter.d.ts +11 -0
  26. package/dist/formatter.js +77 -0
  27. package/dist/formatter.js.map +1 -0
  28. package/dist/fs.d.ts +174 -0
  29. package/dist/fs.js +313 -0
  30. package/dist/fs.js.map +1 -0
  31. package/dist/guid.d.ts +2 -0
  32. package/dist/{GUID.js → guid.js} +3 -6
  33. package/dist/guid.js.map +1 -0
  34. package/dist/index.d.ts +19 -5
  35. package/dist/index.js +19 -5
  36. package/dist/index.js.map +1 -1
  37. package/dist/json.d.ts +5 -0
  38. package/dist/json.js +43 -0
  39. package/dist/json.js.map +1 -0
  40. package/dist/keys-registry.d.ts +64 -0
  41. package/dist/keys-registry.js +339 -0
  42. package/dist/keys-registry.js.map +1 -0
  43. package/dist/logger.d.ts +8 -0
  44. package/dist/logger.js +17 -0
  45. package/dist/logger.js.map +1 -0
  46. package/dist/now-config.d.ts +348 -0
  47. package/dist/now-config.js +283 -0
  48. package/dist/now-config.js.map +1 -0
  49. package/dist/path.d.ts +3 -0
  50. package/dist/path.js +12 -0
  51. package/dist/path.js.map +1 -0
  52. package/dist/plugins/cache.d.ts +20 -0
  53. package/dist/plugins/cache.js +46 -0
  54. package/dist/plugins/cache.js.map +1 -0
  55. package/dist/plugins/context.d.ts +85 -0
  56. package/dist/plugins/{Context.js → context.js} +1 -1
  57. package/dist/plugins/context.js.map +1 -0
  58. package/dist/plugins/database.d.ts +27 -0
  59. package/dist/plugins/database.js +102 -0
  60. package/dist/plugins/database.js.map +1 -0
  61. package/dist/plugins/file.d.ts +10 -0
  62. package/dist/plugins/{behaviors/Arranger.js → file.js} +1 -1
  63. package/dist/plugins/file.js.map +1 -0
  64. package/dist/plugins/index.d.ts +9 -5
  65. package/dist/plugins/index.js +9 -6
  66. package/dist/plugins/index.js.map +1 -1
  67. package/dist/plugins/plugin.d.ts +478 -0
  68. package/dist/plugins/plugin.js +533 -0
  69. package/dist/plugins/plugin.js.map +1 -0
  70. package/dist/plugins/product.d.ts +15 -0
  71. package/dist/plugins/product.js +38 -0
  72. package/dist/plugins/product.js.map +1 -0
  73. package/dist/plugins/project.d.ts +25 -0
  74. package/dist/plugins/{behaviors/Generator.js → project.js} +1 -1
  75. package/dist/plugins/project.js.map +1 -0
  76. package/dist/plugins/shape.d.ts +424 -0
  77. package/dist/plugins/shape.js +1181 -0
  78. package/dist/plugins/shape.js.map +1 -0
  79. package/dist/plugins/time.d.ts +12 -0
  80. package/dist/plugins/time.js +84 -0
  81. package/dist/plugins/time.js.map +1 -0
  82. package/dist/plugins/usage.d.ts +11 -0
  83. package/dist/plugins/usage.js +26 -0
  84. package/dist/plugins/usage.js.map +1 -0
  85. package/dist/prettier/config-loader.d.ts +13 -0
  86. package/dist/prettier/config-loader.js +105 -0
  87. package/dist/prettier/config-loader.js.map +1 -0
  88. package/dist/telemetry/index.d.ts +25 -0
  89. package/dist/telemetry/index.js +18 -0
  90. package/dist/telemetry/index.js.map +1 -0
  91. package/dist/typescript.d.ts +293 -0
  92. package/dist/typescript.js +454 -0
  93. package/dist/typescript.js.map +1 -0
  94. package/dist/util/get-file-type.d.ts +2 -0
  95. package/dist/util/get-file-type.js +13 -0
  96. package/dist/util/get-file-type.js.map +1 -0
  97. package/dist/util/index.d.ts +2 -6
  98. package/dist/util/index.js +2 -6
  99. package/dist/util/index.js.map +1 -1
  100. package/dist/util/{Scope.js → is-sn-scope.js} +1 -1
  101. package/dist/util/is-sn-scope.js.map +1 -0
  102. package/dist/xml.d.ts +24 -0
  103. package/dist/xml.js +71 -0
  104. package/dist/xml.js.map +1 -0
  105. package/now.config.schema.json +336 -0
  106. package/package.json +22 -12
  107. package/src/app.ts +33 -0
  108. package/src/compiler.ts +384 -0
  109. package/src/compression.ts +93 -0
  110. package/src/crypto.ts +5 -0
  111. package/src/diagnostic.ts +108 -0
  112. package/src/{plugins/Diagnostic.ts → fluent-diagnostic.ts} +3 -10
  113. package/src/fluent-directive.ts +63 -0
  114. package/src/fluent-file.ts +13 -0
  115. package/src/formatter.ts +58 -0
  116. package/src/fs.ts +438 -0
  117. package/src/{GUID.ts → guid.ts} +2 -6
  118. package/src/index.ts +19 -5
  119. package/src/json.ts +20 -0
  120. package/src/keys-registry.ts +384 -0
  121. package/src/logger.ts +20 -0
  122. package/src/now-config.ts +337 -0
  123. package/src/path.ts +9 -0
  124. package/src/plugins/cache.ts +45 -0
  125. package/src/plugins/context.ts +93 -0
  126. package/src/plugins/database.ts +121 -0
  127. package/src/plugins/file.ts +19 -0
  128. package/src/plugins/index.ts +9 -5
  129. package/src/plugins/plugin.ts +995 -0
  130. package/src/plugins/product.ts +44 -0
  131. package/src/plugins/project.ts +39 -0
  132. package/src/plugins/shape.ts +1532 -0
  133. package/src/plugins/time.ts +108 -0
  134. package/src/plugins/usage.ts +26 -0
  135. package/src/prettier/config-loader.ts +130 -0
  136. package/src/telemetry/index.ts +27 -0
  137. package/src/typescript.ts +502 -0
  138. package/src/util/get-file-type.ts +11 -0
  139. package/src/util/index.ts +2 -6
  140. package/src/xml.ts +86 -0
  141. package/dist/GUID.d.ts +0 -2
  142. package/dist/GUID.js.map +0 -1
  143. package/dist/IncludePaths.d.ts +0 -25
  144. package/dist/IncludePaths.js +0 -97
  145. package/dist/IncludePaths.js.map +0 -1
  146. package/dist/Keys.d.ts +0 -32
  147. package/dist/Keys.js +0 -245
  148. package/dist/Keys.js.map +0 -1
  149. package/dist/TypeScript.d.ts +0 -5
  150. package/dist/TypeScript.js +0 -58
  151. package/dist/TypeScript.js.map +0 -1
  152. package/dist/XML.d.ts +0 -32
  153. package/dist/XML.js +0 -77
  154. package/dist/XML.js.map +0 -1
  155. package/dist/plugins/Context.d.ts +0 -190
  156. package/dist/plugins/Context.js.map +0 -1
  157. package/dist/plugins/Diagnostic.js +0 -28
  158. package/dist/plugins/Diagnostic.js.map +0 -1
  159. package/dist/plugins/Plugin.d.ts +0 -175
  160. package/dist/plugins/Plugin.js +0 -15
  161. package/dist/plugins/Plugin.js.map +0 -1
  162. package/dist/plugins/behaviors/Arranger.d.ts +0 -26
  163. package/dist/plugins/behaviors/Arranger.js.map +0 -1
  164. package/dist/plugins/behaviors/Composer.d.ts +0 -102
  165. package/dist/plugins/behaviors/Composer.js +0 -15
  166. package/dist/plugins/behaviors/Composer.js.map +0 -1
  167. package/dist/plugins/behaviors/Diagnostics.d.ts +0 -7
  168. package/dist/plugins/behaviors/Diagnostics.js +0 -3
  169. package/dist/plugins/behaviors/Diagnostics.js.map +0 -1
  170. package/dist/plugins/behaviors/Generator.d.ts +0 -21
  171. package/dist/plugins/behaviors/Generator.js.map +0 -1
  172. package/dist/plugins/behaviors/OwnedTables.d.ts +0 -6
  173. package/dist/plugins/behaviors/OwnedTables.js +0 -3
  174. package/dist/plugins/behaviors/OwnedTables.js.map +0 -1
  175. package/dist/plugins/behaviors/PostProcessor.d.ts +0 -5
  176. package/dist/plugins/behaviors/PostProcessor.js +0 -3
  177. package/dist/plugins/behaviors/PostProcessor.js.map +0 -1
  178. package/dist/plugins/behaviors/Serializer.d.ts +0 -30
  179. package/dist/plugins/behaviors/Serializer.js +0 -3
  180. package/dist/plugins/behaviors/Serializer.js.map +0 -1
  181. package/dist/plugins/behaviors/Transformer.d.ts +0 -23
  182. package/dist/plugins/behaviors/Transformer.js +0 -3
  183. package/dist/plugins/behaviors/Transformer.js.map +0 -1
  184. package/dist/plugins/behaviors/extractors/Data.d.ts +0 -119
  185. package/dist/plugins/behaviors/extractors/Data.js +0 -244
  186. package/dist/plugins/behaviors/extractors/Data.js.map +0 -1
  187. package/dist/plugins/behaviors/extractors/Extractors.d.ts +0 -63
  188. package/dist/plugins/behaviors/extractors/Extractors.js +0 -3
  189. package/dist/plugins/behaviors/extractors/Extractors.js.map +0 -1
  190. package/dist/plugins/behaviors/extractors/index.d.ts +0 -2
  191. package/dist/plugins/behaviors/extractors/index.js +0 -19
  192. package/dist/plugins/behaviors/extractors/index.js.map +0 -1
  193. package/dist/plugins/behaviors/index.d.ts +0 -9
  194. package/dist/plugins/behaviors/index.js +0 -26
  195. package/dist/plugins/behaviors/index.js.map +0 -1
  196. package/dist/plugins/util/CallExpression.d.ts +0 -5
  197. package/dist/plugins/util/CallExpression.js +0 -88
  198. package/dist/plugins/util/CallExpression.js.map +0 -1
  199. package/dist/plugins/util/CodeTransformation.d.ts +0 -95
  200. package/dist/plugins/util/CodeTransformation.js +0 -624
  201. package/dist/plugins/util/CodeTransformation.js.map +0 -1
  202. package/dist/plugins/util/ObjectLiteral.d.ts +0 -9
  203. package/dist/plugins/util/ObjectLiteral.js +0 -37
  204. package/dist/plugins/util/ObjectLiteral.js.map +0 -1
  205. package/dist/plugins/util/index.d.ts +0 -3
  206. package/dist/plugins/util/index.js +0 -20
  207. package/dist/plugins/util/index.js.map +0 -1
  208. package/dist/util/Debug.d.ts +0 -4
  209. package/dist/util/Debug.js +0 -20
  210. package/dist/util/Debug.js.map +0 -1
  211. package/dist/util/Directive.d.ts +0 -16
  212. package/dist/util/Directive.js +0 -107
  213. package/dist/util/Directive.js.map +0 -1
  214. package/dist/util/RuntimeTableSchema.d.ts +0 -5
  215. package/dist/util/RuntimeTableSchema.js +0 -58
  216. package/dist/util/RuntimeTableSchema.js.map +0 -1
  217. package/dist/util/Scope.js.map +0 -1
  218. package/dist/util/Util.d.ts +0 -1
  219. package/dist/util/Util.js +0 -12
  220. package/dist/util/Util.js.map +0 -1
  221. package/dist/util/XMLUploadParser.d.ts +0 -22
  222. package/dist/util/XMLUploadParser.js +0 -67
  223. package/dist/util/XMLUploadParser.js.map +0 -1
  224. package/src/IncludePaths.ts +0 -122
  225. package/src/Keys.ts +0 -274
  226. package/src/TypeScript.ts +0 -65
  227. package/src/XML.ts +0 -92
  228. package/src/plugins/Context.ts +0 -239
  229. package/src/plugins/Plugin.ts +0 -278
  230. package/src/plugins/behaviors/Arranger.ts +0 -42
  231. package/src/plugins/behaviors/Composer.ts +0 -125
  232. package/src/plugins/behaviors/Diagnostics.ts +0 -12
  233. package/src/plugins/behaviors/Generator.ts +0 -31
  234. package/src/plugins/behaviors/OwnedTables.ts +0 -5
  235. package/src/plugins/behaviors/PostProcessor.ts +0 -6
  236. package/src/plugins/behaviors/Serializer.ts +0 -40
  237. package/src/plugins/behaviors/Transformer.ts +0 -32
  238. package/src/plugins/behaviors/extractors/Data.ts +0 -332
  239. package/src/plugins/behaviors/extractors/Extractors.ts +0 -73
  240. package/src/plugins/behaviors/extractors/index.ts +0 -2
  241. package/src/plugins/behaviors/index.ts +0 -9
  242. package/src/plugins/util/CallExpression.ts +0 -110
  243. package/src/plugins/util/CodeTransformation.ts +0 -731
  244. package/src/plugins/util/ObjectLiteral.ts +0 -37
  245. package/src/plugins/util/index.ts +0 -3
  246. package/src/util/Debug.ts +0 -24
  247. package/src/util/Directive.ts +0 -123
  248. package/src/util/RuntimeTableSchema.ts +0 -44
  249. package/src/util/Util.ts +0 -7
  250. package/src/util/XMLUploadParser.ts +0 -90
  251. /package/dist/util/{Scope.d.ts → is-sn-scope.d.ts} +0 -0
  252. /package/src/util/{Scope.ts → is-sn-scope.ts} +0 -0
@@ -0,0 +1,339 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.KeysRegistry = exports.KEYS_FILE_NAME = exports.KEYS_MODULE = void 0;
27
+ const path_1 = require("./path");
28
+ const typescript_1 = require("./typescript");
29
+ const guid_1 = require("./guid");
30
+ const z = __importStar(require("zod"));
31
+ const json_1 = require("./json");
32
+ const formatter_1 = require("./formatter");
33
+ exports.KEYS_MODULE = '@servicenow/sdk/global';
34
+ exports.KEYS_FILE_NAME = 'keys.ts';
35
+ const NestedCoalesceKeysSchema = z.lazy(() => z.record(z.string().or(z.object({
36
+ id: z.string(),
37
+ key: NestedCoalesceKeysSchema,
38
+ }))));
39
+ const CompositeKeySchema = z.object({
40
+ table: z.string(),
41
+ id: z.string(),
42
+ deleted: z.boolean().optional(),
43
+ key: NestedCoalesceKeysSchema,
44
+ });
45
+ const KeysSchema = z.object({
46
+ explicit: z
47
+ .record(z.string().or(z.number()), z.object({
48
+ table: z.string(),
49
+ id: z.string(),
50
+ deleted: z.boolean().optional(),
51
+ }))
52
+ .default({}),
53
+ composite: z.array(CompositeKeySchema).default([]),
54
+ deleted: z.record(z.string(), z.array(z.string())).default({}),
55
+ });
56
+ class KeysRegistry {
57
+ formatter;
58
+ file;
59
+ usedIds = new Set();
60
+ registry;
61
+ constructor(compiler, project, fs) {
62
+ this.formatter = new formatter_1.Formatter(fs);
63
+ const keysFilePath = path_1.path.resolve(project.rootDir, project.config.generatedDir, exports.KEYS_FILE_NAME);
64
+ const existingFile = compiler.addSourceFileAtPathIfExists(keysFilePath);
65
+ if (existingFile) {
66
+ this.registry = KeysRegistry.parseKeysFile(existingFile);
67
+ this.file = existingFile;
68
+ }
69
+ else {
70
+ this.registry = KeysSchema.parse({});
71
+ this.file = compiler.createSourceFile(keysFilePath, KeysRegistry.getCode({}), {
72
+ overwrite: true,
73
+ scriptKind: typescript_1.ts.ScriptKind.TS,
74
+ });
75
+ }
76
+ }
77
+ static parseKeysFile(keysFile) {
78
+ const keysInterface = KeysRegistry.getKeysInterface(keysFile);
79
+ const parsedType = (0, typescript_1.parseType)(keysInterface.getType(), keysInterface, (unparsableType) => {
80
+ if (unparsableType.isArray()) {
81
+ return []; // If the keys file doesn't have composite keys, it will be an unparsable array so just return an empty one
82
+ }
83
+ else {
84
+ throw `Unparsable type in keys.ts: ${unparsableType.getText()}`;
85
+ }
86
+ });
87
+ const result = KeysSchema.safeParse(parsedType);
88
+ if (!result.success) {
89
+ throw new Error(`Keys registry is malformed: ${json_1.JSON5.stringify(result.error.format(), { space: 4 })}`);
90
+ }
91
+ return result.data;
92
+ }
93
+ static getKeysInterface(keysFile) {
94
+ return keysFile
95
+ .getModuleOrThrow('global')
96
+ .getModuleOrThrow('Now')
97
+ .getModuleOrThrow('Internal')
98
+ .getInterfaceOrThrow('Keys');
99
+ }
100
+ use(key) {
101
+ if (key.deleted) {
102
+ key.deleted = false; // If it was previously registered as deleted, reverse it
103
+ }
104
+ this.usedIds.add(key.id);
105
+ return key;
106
+ }
107
+ getSourceFile() {
108
+ return this.file;
109
+ }
110
+ queryExplicitKey(table, key) {
111
+ const existing = this.registry.explicit[key];
112
+ return existing?.table === table ? existing : undefined;
113
+ }
114
+ queryExplicitId(table, key) {
115
+ return this.queryExplicitKey(table, key)?.id;
116
+ }
117
+ registerExplicitKey(table, key, guidOverride) {
118
+ const existing = this.queryExplicitKey(table, key);
119
+ if (existing) {
120
+ return this.use(existing);
121
+ }
122
+ let id;
123
+ if (guidOverride) {
124
+ id = guidOverride;
125
+ }
126
+ else if (typeof key === 'string' && (0, guid_1.isGUID)(key)) {
127
+ id = key;
128
+ }
129
+ else {
130
+ id = (0, guid_1.GUID)();
131
+ }
132
+ const newKey = { table, id };
133
+ this.registry.explicit[key] = newKey;
134
+ return this.use(newKey);
135
+ }
136
+ registerExplicitId(table, key, guidOverride) {
137
+ return this.registerExplicitKey(table, key, guidOverride).id;
138
+ }
139
+ deleteExplicitKey(table, key, guidOverride) {
140
+ const registeredKey = this.registerExplicitKey(table, key, guidOverride);
141
+ registeredKey.deleted = true;
142
+ return registeredKey;
143
+ }
144
+ deleteExplicitId(table, key, guidOverride) {
145
+ return this.deleteExplicitKey(table, key, guidOverride).id;
146
+ }
147
+ queryCompositeKey(table, query, guid) {
148
+ const serializedQuery = this.serializeCoalesceKeys(query);
149
+ return this.registry.composite.find((existing) => existing.table === table &&
150
+ (existing.id === guid || this.coalesceKeysAreEqual(existing.key, serializedQuery, table)));
151
+ }
152
+ queryCompositeId(table, query) {
153
+ return this.queryCompositeKey(table, query)?.id;
154
+ }
155
+ registerCompositeKey(table, key, guidOverride) {
156
+ const existing = this.queryCompositeKey(table, key, guidOverride);
157
+ if (existing) {
158
+ return this.use(existing);
159
+ }
160
+ const newKey = {
161
+ table,
162
+ id: guidOverride ?? (0, guid_1.GUID)(),
163
+ key: this.serializeCoalesceKeys(key),
164
+ };
165
+ const registry = (this.registry.composite ??= []);
166
+ registry.push(newKey);
167
+ return this.use(newKey);
168
+ }
169
+ registerCompositeId(table, key, guidOverride) {
170
+ return this.registerCompositeKey(table, key, guidOverride).id;
171
+ }
172
+ deleteCompositeKey(table, key, guidOverride) {
173
+ const registeredKey = this.registerCompositeKey(table, key, guidOverride);
174
+ registeredKey.deleted = true;
175
+ return registeredKey;
176
+ }
177
+ deleteCompositeId(table, key, guidOverride) {
178
+ return this.deleteCompositeKey(table, key, guidOverride).id;
179
+ }
180
+ serializeCoalesceKeys(keys) {
181
+ if (Object.keys(keys).length <= 0) {
182
+ throw new Error('Coalesce keys object is empty.');
183
+ }
184
+ return Object.fromEntries(Object.entries(keys).map(([k, v]) => {
185
+ if (!v) {
186
+ return [k, 'NULL']; // Nullish or empty values should be represented as "NULL" to be consistent with how the platform handles coalesce strategies
187
+ }
188
+ else if (typeof v === 'string') {
189
+ return [k, v];
190
+ }
191
+ else {
192
+ const nestedKeys = v.getKeys();
193
+ if (nestedKeys) {
194
+ return [k, { id: v.getValue(), key: this.serializeCoalesceKeys(nestedKeys) }];
195
+ }
196
+ else {
197
+ return [k, v.getValue()];
198
+ }
199
+ }
200
+ }));
201
+ }
202
+ /**
203
+ * Checks if the coalesce keys from `left` are equal to those specified in `right`. If there
204
+ * are keys in `left` that aren't present in `right`, they are ignored. However, if there are
205
+ * keys in `right` that aren't present in `left`, the two are considered NOT equal.
206
+ *
207
+ * If any nested coalesce keys are present on either side, they are considered equal when any
208
+ * ONE of the following conditions are met:
209
+ *
210
+ * A) One of the values is a string that matches the nested key's ID
211
+ *
212
+ * { id: '123', key: { k: 'v' } } == '123' }
213
+ *
214
+ * B) Both values are nested keys with matching IDs
215
+ *
216
+ * { id: '123', key: { k: 'v' } } == { id: '123', key: { ... } }
217
+ *
218
+ * C) Both values are nested keys with matching coalesce values
219
+ *
220
+ * { id: '123', key: { k: 'v' } } == { id: '456', key: { k: 'v' } }
221
+ *
222
+ * For condition C, the nested keys are compared recursively, so if they contain any of their
223
+ * own nested keys, they will be compared in the same way.
224
+ */
225
+ coalesceKeysAreEqual(leftOrig, rightOrig, table) {
226
+ const left = table ? this.mapLegacyKeys(leftOrig, table) : leftOrig;
227
+ const right = table ? this.mapLegacyKeys(rightOrig, table) : rightOrig;
228
+ for (const [k, rightValue] of Object.entries(right)) {
229
+ const match = () => {
230
+ const leftValue = left[k];
231
+ switch (typeof leftValue) {
232
+ case 'string': {
233
+ // Left is a plain value or ID
234
+ const newLeft = this.queryExplicitId(k, leftValue) ?? leftValue; // query if we have a legacy explicit ID and use that sys_Id if found
235
+ return typeof rightValue === 'string'
236
+ ? newLeft === rightValue // Right is the same plain value or ID
237
+ : newLeft === rightValue.id; // Right is a nested key with the same ID
238
+ }
239
+ case 'object': // Left is a nested key
240
+ return typeof rightValue === 'string'
241
+ ? leftValue.id === rightValue // Right is the same ID
242
+ : leftValue.id === rightValue.id || // Right is a nested key with the same ID
243
+ this.coalesceKeysAreEqual(leftValue.key, rightValue.key); // Right is a nested key with matching coalesce values
244
+ default:
245
+ return false;
246
+ }
247
+ };
248
+ if (!match()) {
249
+ return false; // Give up as soon as we find any mismatch
250
+ }
251
+ }
252
+ return true; // All keys matched
253
+ }
254
+ mapLegacyKeys(obj, table) {
255
+ // Copy to avoid messing up future iterations
256
+ const newObj = Object.assign({}, obj);
257
+ // Map old and new values to the table name in case we need to query explicit IDs
258
+ const legacyKeyMap = {
259
+ list: 'sys_ui_list',
260
+ list_id: 'sys_ui_list',
261
+ route: 'sys_ws_operation',
262
+ web_service_operation: 'sys_ws_operation',
263
+ web_service_header: 'sys_ws_header',
264
+ attr: table === 'sys_ws_query_parameter_map' ? 'sys_ws_query_parameter' : 'sys_ws_header', // attr maps to a different table depending on the type of record
265
+ web_service_query_parameter: 'sys_ws_query_parameter',
266
+ };
267
+ // Legacy key equivalence for comparison
268
+ Object.entries(newObj).forEach(([key, value]) => {
269
+ if (legacyKeyMap[key]) {
270
+ newObj[legacyKeyMap[key]] = value;
271
+ delete newObj[key];
272
+ }
273
+ });
274
+ if (newObj['rest']) {
275
+ delete newObj['rest'];
276
+ }
277
+ return newObj;
278
+ }
279
+ getEffectiveExplicitKeys() {
280
+ return Object.fromEntries(Object.entries(this.registry.explicit)
281
+ .sort(([a], [b]) => a.localeCompare(b))
282
+ .filter(([, v]) => !this.registry.composite.some((k) => k.table === v.table && k.id === v.id)) // Filter out any explicit IDs that became coalescing IDs later
283
+ .map(([k, v]) => [k, this.usedIds.has(v.id) ? v : { ...v, deleted: true }]));
284
+ }
285
+ getEffectiveCompositeKeys() {
286
+ return this.registry.composite
287
+ .sort((a, b) => a.id.localeCompare(b.id))
288
+ .map((v) => this.usedIds.has(v.id)
289
+ ? 'deleted' in v
290
+ ? // Seems silly but this is to make sure the position of the "delete" prop is consistent
291
+ { table: v.table, id: v.id, deleted: v.deleted, key: v.key }
292
+ : v
293
+ : { table: v.table, id: v.id, deleted: true, key: v.key });
294
+ }
295
+ getEffectiveDeletedKeys() {
296
+ const explicit = Object.values(this.getEffectiveExplicitKeys()).filter((k) => k.deleted);
297
+ const composite = this.getEffectiveCompositeKeys().filter((k) => k.deleted);
298
+ const deleted = Object.entries(this.registry.deleted).flatMap(([table, keys]) => keys.map((id) => ({ table, id })));
299
+ return [...explicit, ...composite, ...deleted].sort((a, b) => a.id.localeCompare(b.id));
300
+ }
301
+ async commit(formatter = this.formatter) {
302
+ const explicit = this.getEffectiveExplicitKeys();
303
+ const composite = this.getEffectiveCompositeKeys();
304
+ const deleted = this.registry.deleted;
305
+ const registry = {
306
+ ...(Object.keys(explicit).length > 0 ? { explicit } : {}),
307
+ ...(composite.length > 0 ? { composite } : {}),
308
+ ...(Object.keys(deleted).length > 0 ? { deleted } : {}),
309
+ };
310
+ const formatted = await formatter.format(KeysRegistry.getCode(registry), this.file.getFilePath());
311
+ this.file.replaceText([this.file.getPos(), this.file.getEnd()], formatted);
312
+ this.registry = KeysRegistry.parseKeysFile(this.file);
313
+ }
314
+ static getCode(registry) {
315
+ return `import '${exports.KEYS_MODULE}'
316
+
317
+ declare global {
318
+ namespace Now {
319
+ namespace Internal {
320
+ interface Keys extends KeysRegistry ${json_1.JSON5.stringify(registry, { space: 4 })}
321
+ }
322
+ }
323
+ }
324
+ `;
325
+ }
326
+ reload() {
327
+ this.registry = KeysRegistry.parseKeysFile(this.file);
328
+ this.usedIds.clear();
329
+ }
330
+ getValue() {
331
+ return {
332
+ explicit: this.registry.explicit,
333
+ composite: this.registry.composite,
334
+ deleted: this.registry.deleted,
335
+ };
336
+ }
337
+ }
338
+ exports.KeysRegistry = KeysRegistry;
339
+ //# sourceMappingURL=keys-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys-registry.js","sourceRoot":"","sources":["../src/keys-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA6B;AAC7B,6CAA4C;AAG5C,iCAAqC;AACrC,uCAAwB;AAExB,iCAA8B;AAC9B,2CAAuC;AAG1B,QAAA,WAAW,GAAG,wBAAwB,CAAA;AACtC,QAAA,cAAc,GAAG,SAAS,CAAA;AAEvC,MAAM,wBAAwB,GAAqE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3G,CAAC,CAAC,MAAM,CACJ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CACT,CAAC,CAAC,MAAM,CAAC;IACL,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,GAAG,EAAE,wBAAwB;CAChC,CAAC,CACL,CACJ,CACJ,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,GAAG,EAAE,wBAAwB;CAChC,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,QAAQ,EAAE,CAAC;SACN,MAAM,CACH,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EACzB,CAAC,CAAC,MAAM,CAAC;QACL,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC,CACL;SACA,OAAO,CAAC,EAAE,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjE,CAAC,CAAA;AAEF,MAAa,YAAY;IACJ,SAAS,CAAW;IACpB,IAAI,CAAe;IACnB,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAA;IACzC,QAAQ,CAA2B;IAE3C,YAAY,QAAkB,EAAE,OAAY,EAAE,EAAc;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,EAAE,CAAC,CAAA;QAClC,MAAM,YAAY,GAAG,WAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAc,CAAC,CAAA;QAC/F,MAAM,YAAY,GAAG,QAAQ,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAA;QAEvE,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;YACxD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACpC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAC1E,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,eAAE,CAAC,UAAU,CAAC,EAAE;aAC/B,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,QAAuB;QACxC,MAAM,aAAa,GAAG,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,aAAa,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,cAAc,EAAE,EAAE;YACpF,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3B,OAAO,EAAE,CAAA,CAAC,2GAA2G;YACzH,CAAC;iBAAM,CAAC;gBACJ,MAAM,+BAA+B,cAAc,CAAC,OAAO,EAAE,EAAE,CAAA;YACnE,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC1G,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAA;IACtB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,QAAuB;QACnD,OAAO,QAAQ;aACV,gBAAgB,CAAC,QAAQ,CAAC;aAC1B,gBAAgB,CAAC,KAAK,CAAC;aACvB,gBAAgB,CAAC,UAAU,CAAC;aAC5B,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAEO,GAAG,CAAuE,GAAM;QACpF,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,GAAG,CAAC,OAAO,GAAG,KAAK,CAAA,CAAC,yDAAyD;QACjF,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACxB,OAAO,GAAG,CAAA;IACd,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEO,gBAAgB,CAAC,KAAa,EAAE,GAAoB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC5C,OAAO,QAAQ,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3D,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,GAAoB;QAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAA;IAChD,CAAC;IAEO,mBAAmB,CAAC,KAAa,EAAE,GAAoB,EAAE,YAAqB;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAClD,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7B,CAAC;QAED,IAAI,EAAU,CAAA;QACd,IAAI,YAAY,EAAE,CAAC;YACf,EAAE,GAAG,YAAY,CAAA;QACrB,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAA,aAAM,EAAC,GAAG,CAAC,EAAE,CAAC;YAChD,EAAE,GAAG,GAAG,CAAA;QACZ,CAAC;aAAM,CAAC;YACJ,EAAE,GAAG,IAAA,WAAI,GAAE,CAAA;QACf,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;QAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,kBAAkB,CAAC,KAAa,EAAE,GAAoB,EAAE,YAAqB;QACzE,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAA;IAChE,CAAC;IAEO,iBAAiB,CAAC,KAAa,EAAE,GAAoB,EAAE,YAAqB;QAChF,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;QACxE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;QAC5B,OAAO,aAAa,CAAA;IACxB,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,GAAoB,EAAE,YAAqB;QACvE,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAA;IAC9D,CAAC;IAEO,iBAAiB,CACrB,KAAa,EACb,KAAmB,EACnB,IAAa;QAEb,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAC/B,CAAC,QAAQ,EAAE,EAAE,CACT,QAAQ,CAAC,KAAK,KAAK,KAAK;YACxB,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAChG,CAAA;IACL,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,KAAmB;QAC/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;IACnD,CAAC;IAEO,oBAAoB,CAAC,KAAa,EAAE,GAAiB,EAAE,YAAqB;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;QACjE,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG;YACX,KAAK;YACL,EAAE,EAAE,YAAY,IAAI,IAAA,WAAI,GAAE;YAC1B,GAAG,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;SACvC,CAAA;QAED,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,EAAE,CAAC,CAAA;QACjD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,mBAAmB,CAAC,KAAa,EAAE,GAAiB,EAAE,YAAqB;QACvE,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAA;IACjE,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,GAAiB,EAAE,YAAqB;QAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;QACzE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;QAC5B,OAAO,aAAa,CAAA;IACxB,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,GAAiB,EAAE,YAAqB;QACrE,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAA;IAC/D,CAAC;IAEO,qBAAqB,CAAC,IAAkB;QAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACrD,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACL,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA,CAAC,6HAA6H;YACpJ,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACJ,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;gBAC9B,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;gBACjF,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CACL,CAAA;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACK,oBAAoB,CACxB,QAA+D,EAC/D,SAAgE,EAChE,KAAc;QAEd,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACtE,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,GAAG,EAAE;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBACzB,QAAQ,OAAO,SAAS,EAAE,CAAC;oBACvB,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACZ,8BAA8B;wBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,SAAS,CAAA,CAAC,qEAAqE;wBACrI,OAAO,OAAO,UAAU,KAAK,QAAQ;4BACjC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,sCAAsC;4BAC/D,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,CAAA,CAAC,yCAAyC;oBAC7E,CAAC;oBACD,KAAK,QAAQ,EAAE,uBAAuB;wBAClC,OAAO,OAAO,UAAU,KAAK,QAAQ;4BACjC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,UAAU,CAAC,uBAAuB;4BACrD,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,IAAI,yCAAyC;gCACvE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA,CAAC,sDAAsD;oBAC7H;wBACI,OAAO,KAAK,CAAA;gBACpB,CAAC;YACL,CAAC,CAAA;YAED,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACX,OAAO,KAAK,CAAA,CAAC,0CAA0C;YAC3D,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA,CAAC,mBAAmB;IACnC,CAAC;IAED,aAAa,CAAC,GAAwB,EAAE,KAAc;QAClD,6CAA6C;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAErC,iFAAiF;QACjF,MAAM,YAAY,GAAG;YACjB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,kBAAkB;YACzB,qBAAqB,EAAE,kBAAkB;YACzC,kBAAkB,EAAE,eAAe;YACnC,IAAI,EAAE,KAAK,KAAK,4BAA4B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,eAAe,EAAE,iEAAiE;YAC5J,2BAA2B,EAAE,wBAAwB;SACxD,CAAA;QAED,wCAAwC;QACxC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5C,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;gBACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;QACL,CAAC,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,wBAAwB;QACpB,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,+DAA+D;aAC7J,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAClF,CAAA;IACL,CAAC;IAED,yBAAyB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,CAAC,CAAC,SAAS,IAAI,CAAC;gBACZ,CAAC,CAAC,uFAAuF;oBACvF,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;gBAC9D,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAChE,CAAA;IACT,CAAC;IAED,uBAAuB;QACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACxF,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAC5E,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CACpC,CAAA;QAED,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAuB,IAAI,CAAC,SAAS;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAA;QAErC,MAAM,QAAQ,GAAuC;YACjD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAA;QAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACjG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QAC1E,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,QAA4C;QAC/D,OAAO,WAAW,mBAAW;;;;;kDAKa,YAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;;;;CAIxF,CAAA;IACG,CAAC;IAED,MAAM;QACF,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAED,QAAQ;QACJ,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAChC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;YAClC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;SACjC,CAAA;IACL,CAAC;CACJ;AAhVD,oCAgVC"}
@@ -0,0 +1,8 @@
1
+ export type Logger = {
2
+ info: (...data: any[]) => void;
3
+ warn: (...data: any[]) => void;
4
+ error: (...data: any[]) => void;
5
+ debug: (...data: any[]) => void;
6
+ };
7
+ export declare function createConsoleLogger(): Logger;
8
+ export declare function createSilentLogger(): Logger;
package/dist/logger.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createConsoleLogger = createConsoleLogger;
4
+ exports.createSilentLogger = createSilentLogger;
5
+ // TODO: This is not needed, get rid of it
6
+ function createConsoleLogger() {
7
+ return console;
8
+ }
9
+ function createSilentLogger() {
10
+ return {
11
+ info: () => { },
12
+ warn: () => { },
13
+ error: () => { },
14
+ debug: () => { },
15
+ };
16
+ }
17
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;AAQA,kDAEC;AAED,gDAOC;AAZD,0CAA0C;AAC1C,SAAgB,mBAAmB;IAC/B,OAAO,OAAO,CAAA;AAClB,CAAC;AAED,SAAgB,kBAAkB;IAC9B,OAAO;QACH,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;KAClB,CAAA;AACL,CAAC"}