lucid-package 0.0.44 → 0.0.45

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lucid-package",
3
- "version": "0.0.44",
3
+ "version": "0.0.45",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -3,19 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readManifest = exports.SettingType = void 0;
4
4
  const fs = require("fs");
5
5
  const fsPromises = require("fs/promises");
6
- const checks_1 = require("lucid-extension-sdk/sdk/core/checks");
7
- const validators_1 = require("lucid-extension-sdk/sdk/core/validators/validators");
6
+ const lucid_extension_sdk_1 = require("lucid-extension-sdk");
8
7
  const supportedproduct_1 = require("./supportedproduct");
9
8
  var SettingType;
10
9
  (function (SettingType) {
11
10
  SettingType["STRING"] = "string";
12
11
  })(SettingType = exports.SettingType || (exports.SettingType = {}));
13
12
  const versionRegex = /^\d+\.\d+\.\d+$/;
13
+ const uuidRegex = /^[a-f\d]{8}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{12}$/i;
14
14
  function validateManifestOrThrow(manifest) {
15
- if (!(0, checks_1.isObject)(manifest)) {
15
+ if (!(0, lucid_extension_sdk_1.isObject)(manifest)) {
16
16
  throw new Error('manifest.json must be a valid JSON object');
17
17
  }
18
- if (!(0, checks_1.isString)(manifest['version']) || !versionRegex.test(manifest['version'])) {
18
+ if (manifest['id'] !== undefined && (!(0, lucid_extension_sdk_1.isString)(manifest['id']) || !uuidRegex.test(manifest['id']))) {
19
+ throw new Error('manifest.json: If "id" is specified, must be a UUID matching the package ID from the Lucid developer portal');
20
+ }
21
+ if (!(0, lucid_extension_sdk_1.isString)(manifest['version']) || !versionRegex.test(manifest['version'])) {
19
22
  throw new Error('manifest.json: "version" must be a string in the format <major>.<minor>.<patch>');
20
23
  }
21
24
  function validateUniqueNames(kindOfThings, things) {
@@ -24,55 +27,55 @@ function validateManifestOrThrow(manifest) {
24
27
  }
25
28
  }
26
29
  if (manifest['settings']) {
27
- if (!(0, checks_1.isTypedArray)(checks_1.isObject)(manifest['settings'])) {
30
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isObject)(manifest['settings'])) {
28
31
  throw new Error('manifest.json: "settings" must be an array of objects');
29
32
  }
30
33
  validateUniqueNames('settings', manifest['settings']);
31
34
  for (const setting of manifest['settings']) {
32
- if (!(0, checks_1.isString)(setting['name'])) {
35
+ if (!(0, lucid_extension_sdk_1.isString)(setting['name'])) {
33
36
  throw new Error('manifest.json: setting "name" must be a string');
34
37
  }
35
- if (!(0, checks_1.isString)(setting['label'])) {
38
+ if (!(0, lucid_extension_sdk_1.isString)(setting['label'])) {
36
39
  throw new Error('manifest.json: setting "label" must be a string');
37
40
  }
38
- if (!(0, checks_1.isString)(setting['description'])) {
41
+ if (!(0, lucid_extension_sdk_1.isString)(setting['description'])) {
39
42
  throw new Error('manifest.json: setting "description" must be a string');
40
43
  }
41
- if (!(0, validators_1.enumValidator)(SettingType)(setting['type'])) {
44
+ if (!(0, lucid_extension_sdk_1.enumValidator)(SettingType)(setting['type'])) {
42
45
  throw new Error('manifest.json: setting "type" must be "string"');
43
46
  }
44
47
  }
45
48
  }
46
49
  if (manifest['extensions']) {
47
- if (!(0, checks_1.isTypedArray)(checks_1.isObject)(manifest['extensions'])) {
50
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isObject)(manifest['extensions'])) {
48
51
  throw new Error('manifest.json: "extensions" must be an array of objects');
49
52
  }
50
53
  validateUniqueNames('extensions', manifest['extensions']);
51
54
  for (const extension of manifest['extensions']) {
52
- if (!(0, checks_1.isString)(extension['name'])) {
55
+ if (!(0, lucid_extension_sdk_1.isString)(extension['name'])) {
53
56
  throw new Error('manifest.json: extension "name" must be a string');
54
57
  }
55
- if (!(0, checks_1.isString)(extension['title'])) {
58
+ if (!(0, lucid_extension_sdk_1.isString)(extension['title'])) {
56
59
  throw new Error('manifest.json: extension "title" must be a string');
57
60
  }
58
- if (!(0, checks_1.isString)(extension['codePath'])) {
61
+ if (!(0, lucid_extension_sdk_1.isString)(extension['codePath'])) {
59
62
  throw new Error('manifest.json: extension "codePath" must be a string');
60
63
  }
61
- if (!(0, checks_1.isTypedArray)(checks_1.isString)(extension['scopes'])) {
64
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isString)(extension['scopes'])) {
62
65
  throw new Error('manifest.json: extension "scopes" must be a string array');
63
66
  }
64
67
  if ((extension['product'] && extension['products']) ||
65
- (!(0, checks_1.isDef)(extension['product']) && !(0, checks_1.isDef)(extension['products']))) {
68
+ (!(0, lucid_extension_sdk_1.isDef)(extension['product']) && !(0, lucid_extension_sdk_1.isDef)(extension['products']))) {
66
69
  throw new Error('either the "product" or "products" field must be specified and not both');
67
70
  }
68
71
  const supportedProducts = Object.values(supportedproduct_1.SupportedProduct);
69
72
  if (extension['product']) {
70
- if (!(0, validators_1.enumValidator)(supportedproduct_1.SupportedProduct)(extension['product'])) {
73
+ if (!(0, lucid_extension_sdk_1.enumValidator)(supportedproduct_1.SupportedProduct)(extension['product'])) {
71
74
  throw new Error(`manifest.json: found ${extension['product']}. extension "product" must be one of ${supportedProducts}`);
72
75
  }
73
76
  }
74
77
  if (extension['products']) {
75
- if (!(0, checks_1.isTypedArray)((0, validators_1.enumValidator)(supportedproduct_1.SupportedProduct))(extension['products']) ||
78
+ if (!(0, lucid_extension_sdk_1.isTypedArray)((0, lucid_extension_sdk_1.enumValidator)(supportedproduct_1.SupportedProduct))(extension['products']) ||
76
79
  extension['products'].length === 0) {
77
80
  throw new Error(`manifest.json: found ${extension['products']}. extension "products" must be an array containing values from ${supportedProducts}`);
78
81
  }
@@ -80,15 +83,15 @@ function validateManifestOrThrow(manifest) {
80
83
  }
81
84
  }
82
85
  if (manifest['shapeLibraries']) {
83
- if (!(0, checks_1.isTypedArray)(checks_1.isObject)(manifest['shapeLibraries'])) {
86
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isObject)(manifest['shapeLibraries'])) {
84
87
  throw new Error('manifest.json: "shapeLibraries" must be an array of objects');
85
88
  }
86
89
  validateUniqueNames('shapeLibraries', manifest['shapeLibraries']);
87
90
  for (const shapeLibrary of manifest['shapeLibraries']) {
88
- if (!(0, checks_1.isString)(shapeLibrary['name'])) {
91
+ if (!(0, lucid_extension_sdk_1.isString)(shapeLibrary['name'])) {
89
92
  throw new Error('manifest.json: shape library "name" must be a string');
90
93
  }
91
- if (!(0, checks_1.isString)(shapeLibrary['lcszPath'])) {
94
+ if (!(0, lucid_extension_sdk_1.isString)(shapeLibrary['lcszPath'])) {
92
95
  throw new Error('manifest.json: shape library "lcszPath" must be a string');
93
96
  }
94
97
  if (shapeLibrary['product'] !== 'chart' && shapeLibrary['product'] !== 'spark') {
@@ -97,15 +100,15 @@ function validateManifestOrThrow(manifest) {
97
100
  }
98
101
  }
99
102
  if (manifest['oauthProviders']) {
100
- if (!(0, checks_1.isTypedArray)(checks_1.isObject)(manifest['oauthProviders'])) {
103
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isObject)(manifest['oauthProviders'])) {
101
104
  throw new Error('manifest.json: "oauthProviders" must be an array of objects');
102
105
  }
103
106
  validateUniqueNames('oauthProviders', manifest['oauthProviders']);
104
107
  for (const provider of manifest['oauthProviders']) {
105
- if (!(0, checks_1.isString)(provider['name'])) {
108
+ if (!(0, lucid_extension_sdk_1.isString)(provider['name'])) {
106
109
  throw new Error('manifest.json: OAuth provider "name" must be a string');
107
110
  }
108
- if (!(0, checks_1.isString)(provider['title'])) {
111
+ if (!(0, lucid_extension_sdk_1.isString)(provider['title'])) {
109
112
  throw new Error('manifest.json: OAuth provider "title" must be a string');
110
113
  }
111
114
  if (provider['grantType'] &&
@@ -113,7 +116,7 @@ function validateManifestOrThrow(manifest) {
113
116
  provider['grantType'] !== 'clientCredentials') {
114
117
  throw new Error('manifest.json: OAuth provider "grantType" must be "authorizationCode" or "clientCredentials"');
115
118
  }
116
- if (provider['grantType'] === 'authorizationCode' && !(0, checks_1.isString)(provider['authorizationUrl'])) {
119
+ if (provider['grantType'] === 'authorizationCode' && !(0, lucid_extension_sdk_1.isString)(provider['authorizationUrl'])) {
117
120
  throw new Error('manifest.json: OAuth provider "authorizationUrl" must be a string');
118
121
  }
119
122
  if (provider['grantType'] === 'clientCredentials' && provider['authorizationUrl']) {
@@ -122,13 +125,13 @@ function validateManifestOrThrow(manifest) {
122
125
  if (provider['grantType'] === 'clientCredentials' && provider['usePkce']) {
123
126
  throw new Error('manifest.json: OAuth provider "usePkce" must not be provided when grantType is "clientCredentials"');
124
127
  }
125
- if (!(0, checks_1.isString)(provider['tokenUrl'])) {
128
+ if (!(0, lucid_extension_sdk_1.isString)(provider['tokenUrl'])) {
126
129
  throw new Error('manifest.json: OAuth provider "tokenUrl" must be a string');
127
130
  }
128
- if (!(0, checks_1.isTypedArray)(checks_1.isString)(provider['scopes'])) {
131
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isString)(provider['scopes'])) {
129
132
  throw new Error('manifest.json: OAuth provider "scopes" must be a string array');
130
133
  }
131
- if (!(0, checks_1.isTypedArray)(checks_1.isString)(provider['domainWhitelist'])) {
134
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isString)(provider['domainWhitelist'])) {
132
135
  throw new Error('manifest.json: OAuth provider "domainWhitelist" must be a string array');
133
136
  }
134
137
  if (provider['clientAuthentication'] !== 'basic' &&
@@ -138,54 +141,54 @@ function validateManifestOrThrow(manifest) {
138
141
  }
139
142
  }
140
143
  if (manifest['mergeProviders']) {
141
- if (!(0, checks_1.isTypedArray)(checks_1.isObject)(manifest['mergeProviders'])) {
144
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isObject)(manifest['mergeProviders'])) {
142
145
  throw new Error('manifest.json: "mergeProviders" must be an array of objects');
143
146
  }
144
147
  validateUniqueNames('mergeProviders', manifest['mergeProviders']);
145
148
  for (const provider of manifest['mergeProviders']) {
146
- if (!(0, checks_1.isString)(provider['name'])) {
149
+ if (!(0, lucid_extension_sdk_1.isString)(provider['name'])) {
147
150
  throw new Error('manifest.json: Merge provider "name" must be a string');
148
151
  }
149
- if (!(0, checks_1.isString)(provider['title'])) {
152
+ if (!(0, lucid_extension_sdk_1.isString)(provider['title'])) {
150
153
  throw new Error('manifest.json: Merge provider "title" must be a string');
151
154
  }
152
- if (!(0, checks_1.isTypedArray)(checks_1.isString)(provider['categories'])) {
155
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isString)(provider['categories'])) {
153
156
  throw new Error('manifest.json: Merge provider "categories" must be a string array');
154
157
  }
155
- if (provider['integration'] && !(0, checks_1.isString)(provider['integration'])) {
158
+ if (provider['integration'] && !(0, lucid_extension_sdk_1.isString)(provider['integration'])) {
156
159
  throw new Error('manifest.json: Merge provider "integration" must be a string');
157
160
  }
158
161
  }
159
162
  }
160
163
  if (manifest['dataConnectors']) {
161
- if (!(0, checks_1.isTypedArray)(checks_1.isObject)(manifest['dataConnectors'])) {
164
+ if (!(0, lucid_extension_sdk_1.isTypedArray)(lucid_extension_sdk_1.isObject)(manifest['dataConnectors'])) {
162
165
  throw new Error('manifest.json: "dataConnectors" must be an array of objects');
163
166
  }
164
167
  validateUniqueNames('dataConnectors', manifest['dataConnectors']);
165
168
  for (const provider of manifest['dataConnectors']) {
166
- if (!(0, checks_1.isString)(provider['name'])) {
169
+ if (!(0, lucid_extension_sdk_1.isString)(provider['name'])) {
167
170
  throw new Error('manifest.json: Data connector "name" must be a string');
168
171
  }
169
- if (!(0, checks_1.isString)(provider['oauthProviderName'])) {
172
+ if (!(0, lucid_extension_sdk_1.isString)(provider['oauthProviderName'])) {
170
173
  throw new Error('manifest.json: Data connector "oauthProviderName" must be a string');
171
174
  }
172
- if (!(0, checks_1.isString)(provider['callbackBaseUrl'])) {
175
+ if (!(0, lucid_extension_sdk_1.isString)(provider['callbackBaseUrl'])) {
173
176
  throw new Error('manifest.json: Data connector "callbackBaseUrl" must be a string');
174
177
  }
175
- if (!(0, checks_1.isRecord)(checks_1.isString)(provider['callbackEvents'])) {
178
+ if (!(0, lucid_extension_sdk_1.isRecord)(lucid_extension_sdk_1.isString)(provider['callbackEvents'])) {
176
179
  throw new Error('manifest.json: Data connector "callbackEvents" must be a record from strings to strings');
177
180
  }
178
181
  }
179
182
  }
180
183
  }
181
184
  function deepMixin(target, mixin) {
182
- if ((0, checks_1.isArray)(target) && (0, checks_1.isArray)(mixin)) {
185
+ if ((0, lucid_extension_sdk_1.isArray)(target) && (0, lucid_extension_sdk_1.isArray)(mixin)) {
183
186
  for (let i = 0; i < mixin.length; i++) {
184
187
  const value = mixin[i];
185
188
  if (i >= target.length) {
186
189
  target[i] = value;
187
190
  }
188
- else if ((0, checks_1.isObject)(value) || (0, checks_1.isArray)(value)) {
191
+ else if ((0, lucid_extension_sdk_1.isObject)(value) || (0, lucid_extension_sdk_1.isArray)(value)) {
189
192
  deepMixin(target[i], value);
190
193
  }
191
194
  else {
@@ -193,10 +196,10 @@ function deepMixin(target, mixin) {
193
196
  }
194
197
  }
195
198
  }
196
- else if ((0, checks_1.isObject)(target) && (0, checks_1.isObject)(mixin)) {
199
+ else if ((0, lucid_extension_sdk_1.isObject)(target) && (0, lucid_extension_sdk_1.isObject)(mixin)) {
197
200
  for (var key in mixin) {
198
201
  const value = mixin[key];
199
- if ((0, checks_1.isObject)(value) || (0, checks_1.isArray)(value)) {
202
+ if ((0, lucid_extension_sdk_1.isObject)(value) || (0, lucid_extension_sdk_1.isArray)(value)) {
200
203
  deepMixin(target[key], value);
201
204
  }
202
205
  else {