openxiangda-contracts 2.11.0 → 2.13.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.
@@ -156,7 +156,7 @@ function validateSource(field, path, diagnostics) {
156
156
  const type = String(field.type || '');
157
157
  if (field.source === undefined) {
158
158
  if (DATA_RESOURCE_REFERENCE_FIELD_TYPES.has(type)) {
159
- diagnostics.push(diagnostic('DATA_RESOURCE_FIELD_SOURCE_REQUIRED', `${path}.source 是动态资源引用的必填协议`, `${path}.source`));
159
+ diagnostics.push(diagnostic('DATA_RESOURCE_FIELD_SOURCE_REQUIRED', `${path}.source 是动态资源引用的必填协议`, `${path}.source`, `resource-ref 字段必须声明来源协议,例如 source: { kind: 'resource', resourceCode: '目标资源', labelField: '标题字段', searchFields: ['标题字段'], pageSize: 20, loadMode: 'search' };labelField 必须指向目标的 text.short/text.long 字段`));
160
160
  }
161
161
  return;
162
162
  }
@@ -243,16 +243,28 @@ function validateScalarConfig(field, path, diagnostics) {
243
243
  diagnostics.push(diagnostic('DATA_RESOURCE_FIELD_MAX_LENGTH_INVALID', `${path}.maxLength 只能用于文本且范围为 1 到 1000000`, `${path}.maxLength`));
244
244
  }
245
245
  if (field.precision !== undefined || field.scale !== undefined) {
246
- const precision = Number(field.precision);
247
- const scale = Number(field.scale ?? 0);
248
- if (type !== 'number.decimal' ||
249
- !Number.isInteger(precision) ||
250
- precision < 1 ||
251
- precision > 1000 ||
252
- !Number.isInteger(scale) ||
253
- scale < 0 ||
254
- scale > precision) {
255
- diagnostics.push(diagnostic('DATA_RESOURCE_FIELD_DECIMAL_CONFIG_INVALID', `${path}.precision/scale 必须是合法的 decimal 精度`, path));
246
+ const precision = field.precision === undefined ? undefined : Number(field.precision);
247
+ const scale = field.scale === undefined ? undefined : Number(field.scale);
248
+ const precisionValid = precision === undefined ||
249
+ (Number.isInteger(precision) && precision >= 1 && precision <= 1000);
250
+ if (type === 'number.integer') {
251
+ // 整数可声明可选 precision(数字位数);不允许小数位。
252
+ if (!precisionValid || (scale !== undefined && scale !== 0)) {
253
+ diagnostics.push(diagnostic('DATA_RESOURCE_FIELD_DECIMAL_CONFIG_INVALID', `${path}.precision 必须是 1-1000 的整数位数;number.integer 不支持 scale 小数位`, `${path}.precision`));
254
+ }
255
+ }
256
+ else if (type === 'number.decimal') {
257
+ const scaleValue = Number(field.scale ?? 0);
258
+ if (field.precision === undefined ||
259
+ !precisionValid ||
260
+ !Number.isInteger(scaleValue) ||
261
+ scaleValue < 0 ||
262
+ scaleValue > Number(precision)) {
263
+ diagnostics.push(diagnostic('DATA_RESOURCE_FIELD_DECIMAL_CONFIG_INVALID', `${path}.precision/scale 必须是合法的 decimal 精度(precision 1-1000 必填,scale 0 到 precision),例如 { precision: 12, scale: 2 }`, `${path}.precision`));
264
+ }
265
+ }
266
+ else {
267
+ diagnostics.push(diagnostic('DATA_RESOURCE_FIELD_DECIMAL_CONFIG_INVALID', `${path}.precision/scale 只能用于 number.integer / number.decimal 字段`, path));
256
268
  }
257
269
  }
258
270
  if (field.min !== undefined || field.max !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"data-field-validation.js","sourceRoot":"","sources":["../src/data-field-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-field-validation.js","sourceRoot":"","sources":["../src/data-field-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,QAAQ,EACR,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IAC5C,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,qBAAqB;IACrB,uBAAuB;IACvB,MAAM;IACN,OAAO;IACP,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,mCAAmC,GAAG,IAAI,GAAG,CAAC;IAClD,qBAAqB;IACrB,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,MAAM;IACN,MAAM;IACN,UAAU;IACV,SAAS;IACT,SAAS;IACT,QAAQ;IACR,WAAW;IACX,WAAW;IACX,OAAO;IACP,KAAK;IACL,KAAK;IACL,eAAe;IACf,eAAe;IACf,MAAM;IACN,QAAQ;IACR,UAAU;CACX,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AAEvE,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,WAAW,CAAC,IAAI,CACd,UAAU,CACR,sCAAsC,EACtC,GAAG,IAAI,IAAI,GAAG,aAAa,EAC3B,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAChE,WAAW,CAAC,IAAI,CACd,UAAU,CACR,qCAAqC,EACrC,GAAG,IAAI,IAAI,GAAG,cAAc,EAC5B,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,WAAW,CAAC,IAAI,CACd,UAAU,CACR,sCAAsC,EACtC,GAAG,IAAI,YAAY,EACnB,GAAG,IAAI,OAAO,CACf,CACF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,gCAAgC,EACvC,GAAG,IAAI,WAAW,CACnB,CACF,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1C,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACzC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/C,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAChD,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/C,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,gBAAgB,CAAC;IACrE,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAChF,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,IAAI,+CAA+C,EACtD,GAAG,IAAI,gBAAgB,CACxB,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACpD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,iDAAiD,EACjD,GAAG,IAAI,iDAAiD,EACxD,GAAG,IAAI,gBAAgB,CACxB,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,WAAW,CAAC,IAAI,CACd,UAAU,CACR,sCAAsC,EACtC,GAAG,IAAI,uBAAuB,EAC9B,GAAG,IAAI,UAAU,CAClB,CACF,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,WAAW,CAAC,IAAI,CACd,UAAU,CACR,0CAA0C,EAC1C,GAAG,IAAI,uCAAuC,EAC9C,GAAG,IAAI,UAAU,CAClB,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAC1B,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,qCAAqC,EACrC,GAAG,IAAI,2BAA2B,EAClC,GAAG,IAAI,UAAU,CAClB,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,CAAC,KAAgB,EAAE,QAAgB,EAAE,KAAa,EAAE,EAAE;QAClE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,QAAQ,eAAe,EAC1B,QAAQ,CACT,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,KAAK,IAAI,CAAC,CAAC;YACX,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,KAAK,GAAG,CAAC;YAC5C,IAAI,KAAK,GAAG,IAAI;gBAAE,OAAO;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CACd,UAAU,CACR,oCAAoC,EACpC,GAAG,WAAW,QAAQ,EACtB,WAAW,CACZ,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1E,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,WAAW,IAAI,GAAG,OAAO,EAC5B,GAAG,WAAW,IAAI,GAAG,EAAE,CACxB,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,aAAa,CAC9B,IAAI,CAAC,KAAK,EACV,GAAG,WAAW,QAAQ,EACtB,WAAW,CACZ,CAAC;YACF,MAAM,UAAU,GAAG,aAAa,CAC9B,IAAI,CAAC,KAAK,EACV,GAAG,WAAW,QAAQ,EACtB,WAAW,CACZ,CAAC;YACF,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAClD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,2CAA2C,EAC3C,GAAG,WAAW,mBAAmB,EACjC,GAAG,WAAW,QAAQ,CACvB,CACF,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,IACE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG;oBAC/B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACrC,CAAC;oBACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,0CAA0C,EAC1C,GAAG,WAAW,gBAAgB,EAC9B,GAAG,WAAW,QAAQ,CACvB,CACF,CAAC;gBACJ,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO;YACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,WAAW,oBAAoB,EAClC,GAAG,WAAW,WAAW,CAC1B,CACF,CAAC;YACJ,CAAC;iBAAM,IACL,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,EAC1B,CAAC;gBACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,WAAW,4BAA4B,EAC1C,GAAG,WAAW,WAAW,CAC1B,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;QACjB,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,sBAAsB,EAC7B,GAAG,IAAI,UAAU,CAClB,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,mCAAmC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,qCAAqC,EACrC,GAAG,IAAI,sBAAsB,EAC7B,GAAG,IAAI,SAAS,EAChB,wMAAwM,CACzM,CACF,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,mCAAmC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9E,WAAW,CAAC,IAAI,CACd,UAAU,CACR,oCAAoC,EACpC,GAAG,IAAI,oCAAoC,EAC3C,GAAG,IAAI,SAAS,CACjB,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,MAAM;QACN,cAAc;QACd,YAAY;QACZ,cAAc;QACd,mBAAmB;QACnB,gBAAgB;QAChB,SAAS;QACT,UAAU;QACV,UAAU;KACX,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,IAAI,WAAW,GAAG,OAAO,EAC5B,GAAG,IAAI,WAAW,GAAG,EAAE,CACxB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,MAAM,CAAC,IAAI,KAAK,UAAU;QAC1B,CAAC,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,EACnC,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,2CAA2C,EAC3C,GAAG,IAAI,2CAA2C,EAClD,GAAG,IAAI,SAAS,CACjB,CACF,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC1E,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,GAAG,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,KAAK,CAAC,MAAM,GAAG,KAAK;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EACpC,CAAC;YACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,2CAA2C,EAC3C,GAAG,IAAI,WAAW,GAAG,UAAU,KAAK,WAAW,EAC/C,GAAG,IAAI,WAAW,GAAG,EAAE,CACxB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAChC,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,8CAA8C,EAC9C,GAAG,IAAI,8BAA8B,EACrC,GAAG,IAAI,kBAAkB,CAC1B,CACF,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7B,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EACpD,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,8CAA8C,EAC9C,GAAG,IAAI,iCAAiC,EACxC,GAAG,IAAI,kBAAkB,CAC1B,CACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,EAAE,CAAC;IACX,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,EACvD,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,2BAA2B,EAClC,GAAG,IAAI,iBAAiB,CACzB,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,UAAU,GAAG,GAAG,IAAI,mBAAmB,KAAK,GAAG,CAAC;QACtD,IACE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9B,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAC/C,CAAC;YACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,2CAA2C,EAC3C,GAAG,UAAU,gBAAgB,EAC7B,UAAU,CACX,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CACd,UAAU,CACR,iDAAiD,EACjD,GAAG,UAAU,gCAAgC,EAC7C,UAAU,CACX,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,IACE,KAAK,CAAC,SAAS,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvD,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,EACtC,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,wCAAwC,EACxC,GAAG,IAAI,mCAAmC,EAC1C,GAAG,IAAI,YAAY,CACpB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,cAAc,GAClB,SAAS,KAAK,SAAS;YACvB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,kCAAkC;YAClC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5D,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,0DAA0D,EACjE,GAAG,IAAI,YAAY,CACpB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC5C,IACE,KAAK,CAAC,SAAS,KAAK,SAAS;gBAC7B,CAAC,cAAc;gBACf,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;gBAC7B,UAAU,GAAG,CAAC;gBACd,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,EAC9B,CAAC;gBACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,4GAA4G,EACnH,GAAG,IAAI,YAAY,CACpB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,0DAA0D,EACjE,IAAI,CACL,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,WAAW,GACf,IAAI,KAAK,gBAAgB,IAAI,IAAI,KAAK,gBAAgB,CAAC;QACzD,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,kBAAkB,GACtB,IAAI,KAAK,gBAAgB;YACzB,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvD,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9D,IACE,CAAC,WAAW;YACZ,CAAC,YAAY;YACb,CAAC,YAAY;YACb,CAAC,kBAAkB;YACnB,CAAC,OAAO,KAAK,SAAS;gBACpB,OAAO,KAAK,SAAS;gBACrB,OAAO,GAAG,OAAO,CAAC,EACpB,CAAC;YACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,yCAAyC,EAChD,IAAI,CACL,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAChF,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,4CAA4C,EAC5C,GAAG,IAAI,0BAA0B,EACjC,GAAG,IAAI,gBAAgB,CACxB,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IACrC,IACE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EACrB,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,kCAAkC,EAClC,GAAG,IAAI,0CAA0C,EACjD,GAAG,IAAI,OAAO,CACf,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,2CAA2C,EAC3C,GAAG,IAAI,SAAS,GAAG,OAAO,EAC1B,GAAG,IAAI,SAAS,GAAG,EAAE,CACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,IAAI,CAAC,QAAQ,KAAK,SAAS;QAC3B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAC9B,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,wCAAwC,EACxC,GAAG,IAAI,4BAA4B,EACnC,GAAG,IAAI,gBAAgB,CACxB,CACF,CAAC;IACJ,CAAC;IACD,IACE,IAAI,CAAC,SAAS,KAAK,SAAS;QAC5B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,EAChC,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,uCAAuC,EACvC,GAAG,IAAI,8BAA8B,EACrC,GAAG,IAAI,iBAAiB,CACzB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,CAAC,MAAM,GAAG,EAAE;YAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC;YACtD,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EACtC,CAAC;YACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,yCAAyC,EACzC,GAAG,IAAI,iCAAiC,EACxC,GAAG,IAAI,cAAc,CACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,KAAK,SAAS;QAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,KAAK,CAAC,IAAI,KAAK,WAAW,EAC1B,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,IAAI,yBAAyB,EAChC,GAAG,IAAI,gBAAgB,CACxB,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CACd,UAAU,CACR,qCAAqC,EACrC,GAAG,IAAI,qBAAqB,EAC5B,GAAG,IAAI,SAAS,CACjB,CACF,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,WAAW,CAAC,IAAI,CACd,UAAU,CACR,oCAAoC,EACpC,GAAG,IAAI,4BAA4B,EACnC,GAAG,IAAI,SAAS,CACjB,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,IAAI,WAAW,GAAG,OAAO,EAC5B,GAAG,IAAI,WAAW,GAAG,EAAE,CACxB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;QAC3B,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,EAChE,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,2CAA2C,EAC3C,GAAG,IAAI,0BAA0B,EACjC,GAAG,IAAI,gBAAgB,CACxB,CACF,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;QAC3B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAC7B,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,2CAA2C,EAC3C,GAAG,IAAI,2BAA2B,EAClC,GAAG,IAAI,gBAAgB,CACxB,CACF,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,KAAK,KAAK,SAAS;QAC1B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACjE,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,0CAA0C,EAC1C,GAAG,IAAI,yBAAyB,EAChC,GAAG,IAAI,eAAe,CACvB,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAA8B,EAC9B,IAAY,EACZ,WAAyB;IAEzB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,WAAW,CAAC,IAAI,CACd,UAAU,CACR,uCAAuC,EACvC,GAAG,IAAI,sBAAsB,EAC7B,GAAG,IAAI,WAAW,CACnB,CACF,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,WAAW,CAAC,IAAI,CACd,UAAU,CACR,sCAAsC,EACtC,GAAG,IAAI,yBAAyB,EAChC,GAAG,IAAI,WAAW,CACnB,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,IACE,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EACrC,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,6CAA6C,EAC7C,GAAG,IAAI,6BAA6B,EACpC,GAAG,IAAI,WAAW,CACnB,CACF,CAAC;IACJ,CAAC;IACD,IACE,QAAQ,CAAC,OAAO,KAAK,SAAS;QAC9B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAChC,CAAC;QACD,WAAW,CAAC,IAAI,CACd,UAAU,CACR,+CAA+C,EAC/C,GAAG,IAAI,8BAA8B,EACrC,GAAG,IAAI,mBAAmB,CAC3B,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -16,4 +16,5 @@ export * from './workflow-detail.js';
16
16
  export * from './validation.js';
17
17
  export * from './workflow-correction.js';
18
18
  export * from './native-compiler/workflow-instance-policy.js';
19
+ export { validateDataFieldDefinition } from './data-field-validation.js';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -16,4 +16,5 @@ export * from './workflow-detail.js';
16
16
  export * from './validation.js';
17
17
  export * from './workflow-correction.js';
18
18
  export * from './native-compiler/workflow-instance-policy.js';
19
+ export { validateDataFieldDefinition } from './data-field-validation.js';
19
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1632,6 +1632,8 @@ const ANONYMOUS_PUBLIC_OPERATIONS = new Set([
1632
1632
  'create',
1633
1633
  'own.list',
1634
1634
  'own.read',
1635
+ 'public.list',
1636
+ 'public.read',
1635
1637
  ]);
1636
1638
  function validateAnonymousPublicAccess(value, config, pointer) {
1637
1639
  const access = object(value, pointer);
@@ -1645,19 +1647,26 @@ function validateAnonymousPublicAccess(value, config, pointer) {
1645
1647
  resource,
1646
1648
  ]));
1647
1649
  const policyCodes = new Set();
1648
- const routeCodes = new Set();
1650
+ const declaredPolicyCodes = new Set(policies.map((rawPolicy) => String(rawPolicy?.code || '')));
1649
1651
  policies.forEach((rawPolicy, index) => {
1650
1652
  const policyPointer = `${pointer}/policies/${index}`;
1651
1653
  const policy = object(rawPolicy, policyPointer);
1652
- exactKeys(policy, ['code', 'routeCode', 'mode', 'resourceCode', 'operations', 'fields'], policyPointer, ['requiredFields', 'ownRecordFields', 'draft', 'validations']);
1654
+ exactKeys(policy, ['code', 'routeCode', 'mode', 'resourceCode', 'operations', 'fields'], policyPointer, [
1655
+ 'requiredFields',
1656
+ 'ownRecordFields',
1657
+ 'publicRecordFields',
1658
+ 'publicFilters',
1659
+ 'serverGeneratedFields',
1660
+ 'schedule',
1661
+ 'publicSubtableFields',
1662
+ 'draft',
1663
+ 'validations',
1664
+ ]);
1653
1665
  const code = stableCode(policy.code, `${policyPointer}/code`);
1654
1666
  if (policyCodes.has(code)) {
1655
1667
  fail('NATIVE_PUBLIC_POLICY_DUPLICATE', `${policyPointer}/code`);
1656
1668
  }
1657
1669
  const routeCode = stableCode(policy.routeCode, `${policyPointer}/routeCode`);
1658
- if (routeCodes.has(routeCode)) {
1659
- fail('NATIVE_PUBLIC_ROUTE_DUPLICATE', `${policyPointer}/routeCode`);
1660
- }
1661
1670
  const route = routes.get(routeCode);
1662
1671
  if (!route ||
1663
1672
  route.surface !== 'user' ||
@@ -1676,7 +1685,7 @@ function validateAnonymousPublicAccess(value, config, pointer) {
1676
1685
  String(field.code),
1677
1686
  String(field.type),
1678
1687
  ]));
1679
- const operations = uniqueStrings(policy.operations, `${policyPointer}/operations`, 6);
1688
+ const operations = uniqueStrings(policy.operations, `${policyPointer}/operations`, 8);
1680
1689
  if (operations.length < 1 ||
1681
1690
  operations.some(operation => !ANONYMOUS_PUBLIC_OPERATIONS.has(operation))) {
1682
1691
  fail('NATIVE_PUBLIC_OPERATION_INVALID', `${policyPointer}/operations`);
@@ -1688,7 +1697,11 @@ function validateAnonymousPublicAccess(value, config, pointer) {
1688
1697
  if (fields.length < 1 || fields.some(field => !declaredFields.has(field))) {
1689
1698
  fail('NATIVE_PUBLIC_FIELD_INVALID', `${policyPointer}/fields`);
1690
1699
  }
1691
- for (const optionalFieldSet of ['requiredFields', 'ownRecordFields']) {
1700
+ for (const optionalFieldSet of [
1701
+ 'requiredFields',
1702
+ 'ownRecordFields',
1703
+ 'publicRecordFields',
1704
+ ]) {
1692
1705
  if (!Object.prototype.hasOwnProperty.call(policy, optionalFieldSet))
1693
1706
  continue;
1694
1707
  const selected = uniqueStrings(policy[optionalFieldSet], `${policyPointer}/${optionalFieldSet}`, 64);
@@ -1696,6 +1709,137 @@ function validateAnonymousPublicAccess(value, config, pointer) {
1696
1709
  fail('NATIVE_PUBLIC_FIELD_SCOPE_INVALID', `${policyPointer}/${optionalFieldSet}`);
1697
1710
  }
1698
1711
  }
1712
+ const serverGeneratedFields = Object.prototype.hasOwnProperty.call(policy, 'serverGeneratedFields')
1713
+ ? boundedArray(policy.serverGeneratedFields, `${policyPointer}/serverGeneratedFields`, 16)
1714
+ : [];
1715
+ const generatedFieldCodes = new Set();
1716
+ serverGeneratedFields.forEach((rawGenerated, generatedIndex) => {
1717
+ const generatedPointer = `${policyPointer}/serverGeneratedFields/${generatedIndex}`;
1718
+ const generated = object(rawGenerated, generatedPointer);
1719
+ exactKeys(generated, ['field', 'kind'], generatedPointer);
1720
+ const field = fieldCodeValue(generated.field, `${generatedPointer}/field`);
1721
+ if (generatedFieldCodes.has(field) ||
1722
+ !declaredFields.has(field) ||
1723
+ fields.includes(field) ||
1724
+ (declaredFields.get(field) !== 'text.short' &&
1725
+ declaredFields.get(field) !== 'text.long')) {
1726
+ fail('NATIVE_PUBLIC_SERVER_GENERATED_FIELD_INVALID', `${generatedPointer}/field`);
1727
+ }
1728
+ equal(generated.kind, 'random-token', `${generatedPointer}/kind`);
1729
+ generatedFieldCodes.add(field);
1730
+ });
1731
+ const schedule = Object.prototype.hasOwnProperty.call(policy, 'schedule')
1732
+ ? object(policy.schedule, `${policyPointer}/schedule`)
1733
+ : null;
1734
+ if (schedule) {
1735
+ const scheduleKeys = [
1736
+ 'campusPolicyCode',
1737
+ 'rulePolicyCode',
1738
+ 'campusField',
1739
+ 'ruleCampusField',
1740
+ 'ruleWeekdaysField',
1741
+ 'ruleOpenAtField',
1742
+ 'ruleCloseAtField',
1743
+ 'ruleSlotMinutesField',
1744
+ 'ruleAdvanceHoursField',
1745
+ 'ruleAdvanceDaysField',
1746
+ 'campusEnabledField',
1747
+ 'ruleEnabledField',
1748
+ 'dateField',
1749
+ 'timeField',
1750
+ ];
1751
+ exactKeys(schedule, scheduleKeys, `${policyPointer}/schedule`);
1752
+ for (const key of ['campusPolicyCode', 'rulePolicyCode']) {
1753
+ stableCode(schedule[key], `${policyPointer}/schedule/${key}`);
1754
+ }
1755
+ for (const key of scheduleKeys.filter(key => !['campusPolicyCode', 'rulePolicyCode'].includes(key))) {
1756
+ fieldCodeValue(schedule[key], `${policyPointer}/schedule/${key}`);
1757
+ }
1758
+ for (const field of [schedule.campusField, schedule.dateField, schedule.timeField]) {
1759
+ if (!fields.includes(String(field))) {
1760
+ fail('NATIVE_PUBLIC_SCHEDULE_FIELD_INVALID', `${policyPointer}/schedule`);
1761
+ }
1762
+ }
1763
+ if (!declaredPolicyCodes.has(String(schedule.campusPolicyCode)) ||
1764
+ !declaredPolicyCodes.has(String(schedule.rulePolicyCode))) {
1765
+ fail('NATIVE_PUBLIC_SCHEDULE_POLICY_INVALID', `${policyPointer}/schedule`);
1766
+ }
1767
+ }
1768
+ const publicFilters = Object.prototype.hasOwnProperty.call(policy, 'publicFilters')
1769
+ ? boundedArray(policy.publicFilters, `${policyPointer}/publicFilters`, 16)
1770
+ : [];
1771
+ const filterFields = new Set();
1772
+ publicFilters.forEach((rawFilter, filterIndex) => {
1773
+ const filterPointer = `${policyPointer}/publicFilters/${filterIndex}`;
1774
+ const filter = object(rawFilter, filterPointer);
1775
+ exactKeys(filter, ['field', 'operator', 'value'], filterPointer);
1776
+ const field = fieldCodeValue(filter.field, `${filterPointer}/field`);
1777
+ if (filterFields.has(field)) {
1778
+ fail('NATIVE_PUBLIC_FILTER_DUPLICATE', `${filterPointer}/field`);
1779
+ }
1780
+ if (!fields.includes(field)) {
1781
+ fail('NATIVE_PUBLIC_FILTER_FIELD_INVALID', `${filterPointer}/field`);
1782
+ }
1783
+ equal(filter.operator, 'eq', `${filterPointer}/operator`);
1784
+ if (![
1785
+ 'boolean',
1786
+ 'text.short',
1787
+ 'text.long',
1788
+ 'number.integer',
1789
+ 'number.decimal',
1790
+ 'date',
1791
+ 'time',
1792
+ ].includes(declaredFields.get(field) || '')) {
1793
+ fail('NATIVE_PUBLIC_FILTER_FIELD_INVALID', `${filterPointer}/field`);
1794
+ }
1795
+ if (filter.value !== null &&
1796
+ typeof filter.value !== 'string' &&
1797
+ typeof filter.value !== 'number' &&
1798
+ typeof filter.value !== 'boolean') {
1799
+ fail('NATIVE_PUBLIC_FILTER_VALUE_INVALID', `${filterPointer}/value`);
1800
+ }
1801
+ filterFields.add(field);
1802
+ });
1803
+ const publicSubtableFields = Object.prototype.hasOwnProperty.call(policy, 'publicSubtableFields')
1804
+ ? object(policy.publicSubtableFields, `${policyPointer}/publicSubtableFields`)
1805
+ : null;
1806
+ if (publicSubtableFields) {
1807
+ if (Object.keys(publicSubtableFields).length > 64) {
1808
+ fail('NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID', `${policyPointer}/publicSubtableFields`);
1809
+ }
1810
+ for (const [parentFieldCode, rawChildFields] of Object.entries(publicSubtableFields)) {
1811
+ const parentField = resource.schema.fields.find((field) => String(field.code) === parentFieldCode);
1812
+ const childResourceCode = String(parentField?.subtable?.resourceCode || '');
1813
+ const childResource = resources.get(childResourceCode);
1814
+ const childFieldTypes = new Map((childResource?.schema?.fields || []).map((field) => [
1815
+ String(field.code),
1816
+ String(field.type),
1817
+ ]));
1818
+ const selected = uniqueStrings(rawChildFields, `${policyPointer}/publicSubtableFields/${parentFieldCode}`, 64);
1819
+ if (!fields.includes(parentFieldCode) ||
1820
+ declaredFields.get(parentFieldCode) !== 'subtable' ||
1821
+ !childResource ||
1822
+ selected.length < 1 ||
1823
+ selected.some(field => !childFieldTypes.has(field)) ||
1824
+ selected.some(field => childFieldTypes.get(field) === 'subtable') ||
1825
+ selected.some(field => childFieldTypes.get(field) === 'signature')) {
1826
+ fail('NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID', `${policyPointer}/publicSubtableFields/${parentFieldCode}`);
1827
+ }
1828
+ }
1829
+ }
1830
+ if (operations.some(operation => operation.startsWith('public.'))) {
1831
+ if (!Object.prototype.hasOwnProperty.call(policy, 'publicRecordFields')) {
1832
+ fail('NATIVE_PUBLIC_RECORD_FIELDS_REQUIRED', `${policyPointer}/publicRecordFields`);
1833
+ }
1834
+ const publicRecordFields = uniqueStrings(policy.publicRecordFields, `${policyPointer}/publicRecordFields`, 64);
1835
+ if (publicRecordFields.length < 1 ||
1836
+ publicRecordFields.some(field => !fields.includes(field)) ||
1837
+ publicRecordFields.some(field => declaredFields.get(field) === 'signature' ||
1838
+ (declaredFields.get(field) === 'subtable' &&
1839
+ !publicSubtableFields?.[field]))) {
1840
+ fail('NATIVE_PUBLIC_RECORD_FIELDS_INVALID', `${policyPointer}/publicRecordFields`);
1841
+ }
1842
+ }
1699
1843
  const requiredFields = Object.prototype.hasOwnProperty.call(policy, 'requiredFields')
1700
1844
  ? uniqueStrings(policy.requiredFields, `${policyPointer}/requiredFields`, 64)
1701
1845
  : [];
@@ -1709,6 +1853,10 @@ function validateAnonymousPublicAccess(value, config, pointer) {
1709
1853
  if (operations.includes('create') && !nativeCreate) {
1710
1854
  fail('NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE', `${policyPointer}/fields`);
1711
1855
  }
1856
+ if (operations.includes('create') &&
1857
+ !Object.prototype.hasOwnProperty.call(policy, 'draft')) {
1858
+ fail('NATIVE_PUBLIC_DRAFT_REQUIRED', `${policyPointer}/draft`);
1859
+ }
1712
1860
  if (operations.includes('create')) {
1713
1861
  for (const fieldCode of requiredCreateFields) {
1714
1862
  const missingSet = !fields.includes(fieldCode)
@@ -1752,7 +1900,6 @@ function validateAnonymousPublicAccess(value, config, pointer) {
1752
1900
  validationCodes.add(validationCode);
1753
1901
  });
1754
1902
  policyCodes.add(code);
1755
- routeCodes.add(routeCode);
1756
1903
  });
1757
1904
  }
1758
1905
  function validateAnonymousPublicAccessContract(value, pointer) {
@@ -1777,6 +1924,62 @@ function compileAnonymousPublicAccess(config) {
1777
1924
  ...(policy.ownRecordFields
1778
1925
  ? { ownRecordFields: uniqueSorted(policy.ownRecordFields) }
1779
1926
  : {}),
1927
+ ...(policy.publicRecordFields
1928
+ ? { publicRecordFields: uniqueSorted(policy.publicRecordFields) }
1929
+ : {}),
1930
+ ...(policy.publicFilters
1931
+ ? {
1932
+ publicFilters: policy.publicFilters
1933
+ .map((filter) => ({
1934
+ field: filter.field,
1935
+ operator: filter.operator,
1936
+ value: filter.value,
1937
+ }))
1938
+ .sort((left, right) => compareText(left.field, right.field)),
1939
+ }
1940
+ : {}),
1941
+ ...(policy.publicSubtableFields
1942
+ ? {
1943
+ publicSubtableFields: Object.fromEntries(Object.entries(policy.publicSubtableFields)
1944
+ .sort(([left], [right]) => left.localeCompare(right))
1945
+ .map(([field, childFields]) => [
1946
+ field,
1947
+ uniqueSorted(Array.isArray(childFields)
1948
+ ? childFields.map(String)
1949
+ : []),
1950
+ ])),
1951
+ }
1952
+ : {}),
1953
+ ...(policy.serverGeneratedFields
1954
+ ? {
1955
+ serverGeneratedFields: policy.serverGeneratedFields
1956
+ .map((generated) => ({
1957
+ field: generated.field,
1958
+ kind: generated.kind,
1959
+ }))
1960
+ .sort((left, right) => compareText(left.field, right.field)),
1961
+ }
1962
+ : {}),
1963
+ ...(policy.schedule
1964
+ ? {
1965
+ schedule: {
1966
+ campusPolicyCode: policy.schedule.campusPolicyCode,
1967
+ rulePolicyCode: policy.schedule.rulePolicyCode,
1968
+ campusField: policy.schedule.campusField,
1969
+ ruleCampusField: policy.schedule.ruleCampusField,
1970
+ ruleWeekdaysField: policy.schedule.ruleWeekdaysField,
1971
+ ruleOpenAtField: policy.schedule.ruleOpenAtField,
1972
+ ruleCloseAtField: policy.schedule.ruleCloseAtField,
1973
+ ruleSlotMinutesField: policy.schedule.ruleSlotMinutesField,
1974
+ ruleAdvanceHoursField: policy.schedule.ruleAdvanceHoursField,
1975
+ ruleAdvanceDaysField: policy.schedule.ruleAdvanceDaysField,
1976
+ campusEnabledField: policy.schedule.campusEnabledField,
1977
+ ruleEnabledField: policy.schedule.ruleEnabledField,
1978
+ dateField: policy.schedule.dateField,
1979
+ timeField: policy.schedule.timeField,
1980
+ },
1981
+ }
1982
+ : {}),
1780
1983
  ...(policy.draft ? { draft: { ...policy.draft } } : {}),
1781
1984
  ...(policy.validations
1782
1985
  ? {