@terascope/job-components 2.12.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.
@@ -4,15 +4,15 @@ import { ValidatedJobConfig, OpConfig, APIConfig } from './interfaces/index.js';
4
4
  * Merges the provided inputSchema with commonSchema and then validates the
5
5
  * provided opConfig against the resulting schema.
6
6
  */
7
- export declare function validateOpConfig<T>(inputSchema: TF.Schema<any>, inputConfig: Record<string, any>): OpConfig & T;
7
+ export declare function validateOpConfig<T>(inputSchema: TF.Schema<any>, inputConfig: Record<string, any>, context: TF.Context): OpConfig & T;
8
8
  /**
9
9
  * Merges the provided inputSchema with commonSchema and then validates the
10
10
  * provided apiConfig against the resulting schema.
11
11
  */
12
- export declare function validateAPIConfig<T>(inputSchema: TF.Schema<any>, inputConfig: Record<string, any>): APIConfig & T;
12
+ export declare function validateAPIConfig<T>(inputSchema: TF.Schema<any>, inputConfig: Record<string, any>, context: TF.Context): APIConfig & T;
13
13
  /**
14
14
  * Merges the provided inputSchema with commonSchema and then validates the
15
15
  * provided jobConfig against the resulting schema.
16
16
  */
17
- export declare function validateJobConfig<T>(inputSchema: TF.Schema<any>, inputConfig: Record<string, any>): ValidatedJobConfig & T;
17
+ export declare function validateJobConfig<T>(inputSchema: TF.Schema<any>, inputConfig: Record<string, any>, context: TF.Context): ValidatedJobConfig & T;
18
18
  //# sourceMappingURL=config-validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-validators.d.ts","sourceRoot":"","sources":["../../src/config-validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGhF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAC9B,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9D,QAAQ,GAAG,CAAC,CAQd;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9D,SAAS,GAAG,CAAC,CASf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9D,kBAAkB,GAAG,CAAC,CAoBxB"}
1
+ {"version":3,"file":"config-validators.d.ts","sourceRoot":"","sources":["../../src/config-validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGhF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAC9B,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,GACnF,QAAQ,GAAG,CAAC,CAad;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,GACnF,SAAS,GAAG,CAAC,CAef;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,GACnF,kBAAkB,GAAG,CAAC,CAuBxB"}
@@ -4,9 +4,9 @@ import { opSchema, apiSchema } from './job-schemas.js';
4
4
  * Merges the provided inputSchema with commonSchema and then validates the
5
5
  * provided opConfig against the resulting schema.
6
6
  */
7
- export function validateOpConfig(inputSchema, inputConfig) {
7
+ export function validateOpConfig(inputSchema, inputConfig, context) {
8
8
  const schema = Object.assign({}, opSchema, inputSchema);
9
- const validator = new SchemaValidator(schema, inputConfig._op);
9
+ const validator = new SchemaValidator(schema, inputConfig._op, undefined, undefined, context);
10
10
  try {
11
11
  return validator.validate(inputConfig);
12
12
  }
@@ -18,9 +18,9 @@ export function validateOpConfig(inputSchema, inputConfig) {
18
18
  * Merges the provided inputSchema with commonSchema and then validates the
19
19
  * provided apiConfig against the resulting schema.
20
20
  */
21
- export function validateAPIConfig(inputSchema, inputConfig) {
21
+ export function validateAPIConfig(inputSchema, inputConfig, context) {
22
22
  const schema = Object.assign({}, apiSchema, inputSchema);
23
- const validator = new SchemaValidator(schema, inputConfig._name);
23
+ const validator = new SchemaValidator(schema, inputConfig._name, undefined, undefined, context);
24
24
  try {
25
25
  return validator.validate(inputConfig);
26
26
  }
@@ -32,8 +32,8 @@ export function validateAPIConfig(inputSchema, inputConfig) {
32
32
  * Merges the provided inputSchema with commonSchema and then validates the
33
33
  * provided jobConfig against the resulting schema.
34
34
  */
35
- export function validateJobConfig(inputSchema, inputConfig) {
36
- const validator = new SchemaValidator(inputSchema, inputConfig.name);
35
+ export function validateJobConfig(inputSchema, inputConfig, context) {
36
+ const validator = new SchemaValidator(inputSchema, inputConfig.name, undefined, undefined, context);
37
37
  try {
38
38
  const jobProperties = validator.validate(inputConfig);
39
39
  if ((jobProperties.cpu && jobProperties.resources_limits_cpu)
@@ -1 +1 @@
1
- {"version":3,"file":"config-validators.js","sourceRoot":"","sources":["../../src/config-validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC5B,WAA2B,EAAE,WAAgC;IAE7D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAA4B,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAe,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,WAAW,CAAC,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACnG,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC7B,WAA2B,EAAE,WAAgC;IAE7D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAA6B,CAAC;IACrF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAgB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAEhF,IAAI,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,CAAC,KAAK,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC7B,WAA2B,EAAE,WAAgC;IAE7D,MAAM,SAAS,GAAG,IAAI,eAAe,CACjC,WAAgD,EAChD,WAAW,CAAC,IAAI,CACnB,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEtD,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,oBAAoB,CAAC;eACtD,CAAC,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,sBAAsB,CAAC;eAC3D,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,uBAAuB,CAAC;eAC/D,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,EACtE,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,aAAa,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"config-validators.js","sourceRoot":"","sources":["../../src/config-validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC5B,WAA2B,EAAE,WAAgC,EAAE,OAAmB;IAElF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAA4B,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,eAAe,CACjC,MAAM,EACN,WAAW,CAAC,GAAG,EACf,SAAS,EACT,SAAS,EACT,OAAO,CAAC,CAAC;IACb,IAAI,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,WAAW,CAAC,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACnG,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC7B,WAA2B,EAAE,WAAgC,EAAE,OAAmB;IAElF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAA6B,CAAC;IACrF,MAAM,SAAS,GAAG,IAAI,eAAe,CACjC,MAAM,EACN,WAAW,CAAC,KAAK,EACjB,SAAS,EACT,SAAS,EACT,OAAO,CACV,CAAC;IAEF,IAAI,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,CAAC,KAAK,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC7B,WAA2B,EAAE,WAAgC,EAAE,OAAmB;IAElF,MAAM,SAAS,GAAG,IAAI,eAAe,CACjC,WAAgD,EAChD,WAAW,CAAC,IAAI,EAChB,SAAS,EACT,SAAS,EACT,OAAO,CACV,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEtD,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,oBAAoB,CAAC;eACtD,CAAC,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,sBAAsB,CAAC;eAC3D,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,uBAAuB,CAAC;eAC/D,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,EACtE,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,aAAa,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;AACL,CAAC"}
@@ -7,6 +7,13 @@ export declare class JobValidator {
7
7
  constructor(context: Context);
8
8
  /** Validate the job configuration, including the Operations and APIs configuration */
9
9
  validateConfig(jobSpec: Partial<Teraslice.JobConfig | Teraslice.JobConfigParams>): Promise<ValidatedJobConfig>;
10
+ /**
11
+ * Loads the slicer for the given job to determine if it is relocatable,
12
+ * then sets that value as a property on the jobConfig so it is persisted
13
+ * on the EX record. The K8s backend reads this property to apply the
14
+ * appropriate pod label.
15
+ */
16
+ private _applyRelocatable;
10
17
  hasSchema(obj: Record<string, any>, name: string): void;
11
18
  }
12
19
  //# sourceMappingURL=job-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-validator.d.ts","sourceRoot":"","sources":["../../src/job-validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAY,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUrE,qBAAa,YAAY;IACd,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,EAAE,OAAO;IAS5B,sFAAsF;IAChF,cAAc,CAChB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,GAClE,OAAO,CAAC,kBAAkB,CAAC;IA4H9B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAO1D"}
1
+ {"version":3,"file":"job-validator.d.ts","sourceRoot":"","sources":["../../src/job-validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAY,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUrE,qBAAa,YAAY;IACd,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,EAAE,OAAO;IAS5B,sFAAsF;IAChF,cAAc,CAChB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,GAClE,OAAO,CAAC,kBAAkB,CAAC;IA8H9B;;;;;OAKG;YACW,iBAAiB;IAmB/B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAO1D"}
@@ -18,7 +18,7 @@ export class JobValidator {
18
18
  /** Validate the job configuration, including the Operations and APIs configuration */
19
19
  async validateConfig(jobSpec) {
20
20
  // top level job validation occurs, but not operations
21
- const jobConfig = validateJobConfig(this.schema, cloneDeep(jobSpec));
21
+ const jobConfig = validateJobConfig(this.schema, cloneDeep(jobSpec), this.context);
22
22
  const assetIds = jobConfig.assets || [];
23
23
  const apis = {};
24
24
  const validateJobFns = [];
@@ -97,8 +97,27 @@ export class JobValidator {
97
97
  const api = apis[name];
98
98
  this.context.apis.executionContext.addToRegistry(name, api);
99
99
  });
100
+ await this._applyRelocatable(jobConfig);
100
101
  return jobConfig;
101
102
  }
103
+ /**
104
+ * Loads the slicer for the given job to determine if it is relocatable,
105
+ * then sets that value as a property on the jobConfig so it is persisted
106
+ * on the EX record. The K8s backend reads this property to apply the
107
+ * appropriate pod label.
108
+ */
109
+ async _applyRelocatable(jobConfig) {
110
+ try {
111
+ const readerModule = await this.opLoader.loadReader(jobConfig.operations[0]._op, jobConfig.assets || []);
112
+ const slicerInstance = new readerModule.Slicer(this.context, cloneDeep(jobConfig.operations[0]), jobConfig);
113
+ if (typeof slicerInstance.isRelocatable === 'function') {
114
+ jobConfig.relocatable = slicerInstance.isRelocatable();
115
+ }
116
+ }
117
+ catch (err) {
118
+ this.context.logger.warn(`Unable to determine relocatable for job: ${err}`);
119
+ }
120
+ }
102
121
  hasSchema(obj, name) {
103
122
  if (!obj.schema || typeof obj.schema !== 'function') {
104
123
  throw new Error(`${name} needs to have a method named "schema"`);
@@ -1 +1 @@
1
- {"version":3,"file":"job-validator.js","sourceRoot":"","sources":["../../src/job-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-validator.js","sourceRoot":"","sources":["../../src/job-validator.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,9 @@ export default class BaseSchema extends SchemaCore {
12
12
  }
13
13
  validate(inputConfig) {
14
14
  if (this.opType === 'api') {
15
- return validateAPIConfig(this.schema, inputConfig);
15
+ return validateAPIConfig(this.schema, inputConfig, this.context);
16
16
  }
17
- return validateOpConfig(this.schema, inputConfig);
17
+ return validateOpConfig(this.schema, inputConfig, this.context);
18
18
  }
19
19
  validateJob(_job) {
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-schema.js","sourceRoot":"","sources":["../../../src/operations/base-schema.ts"],"names":[],"mappings":"AACA,OAAO,UAAsB,MAAM,uBAAuB,CAAC;AAK3D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,UAC1B,SAAQ,UAAa;IACrB,MAAM;IACN,MAAM,CAA2B;IAEjC,YAAY,OAAgB,EAAE,SAAiB,WAAW;QACtD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAID,QAAQ,CAAC,WAAgC;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,iBAAiB,CAAI,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,gBAAgB,CAAI,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,IAAwB;IAEpC,CAAC;IAED,MAAM,CAAC,IAAI;QACP,OAAO,SAAS,CAAC;IACrB,CAAC;CAGJ"}
1
+ {"version":3,"file":"base-schema.js","sourceRoot":"","sources":["../../../src/operations/base-schema.ts"],"names":[],"mappings":"AACA,OAAO,UAAsB,MAAM,uBAAuB,CAAC;AAK3D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,UAC1B,SAAQ,UAAa;IACrB,MAAM;IACN,MAAM,CAA2B;IAEjC,YAAY,OAAgB,EAAE,SAAiB,WAAW;QACtD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAID,QAAQ,CAAC,WAAgC;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,iBAAiB,CAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,gBAAgB,CAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,WAAW,CAAC,IAAwB;IAEpC,CAAC;IAED,MAAM,CAAC,IAAI;QACP,OAAO,SAAS,CAAC;IACrB,CAAC;CAGJ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@terascope/job-components",
3
3
  "displayName": "Job Components",
4
- "version": "2.12.0",
4
+ "version": "2.13.0",
5
5
  "description": "A teraslice library for validating jobs schemas, registering apis, and defining and running new Job APIs",
6
6
  "homepage": "https://github.com/terascope/teraslice/tree/master/packages/job-components#readme",
7
7
  "bugs": {
@@ -28,14 +28,15 @@
28
28
  "prom-client": "~15.1.3",
29
29
  "semver": "~7.8.0",
30
30
  "uuid": "~14.0.0",
31
- "@terascope/core-utils": "~2.10.0",
32
- "@terascope/types": "~2.10.0"
31
+ "@terascope/core-utils": "~2.11.0",
32
+ "@terascope/types": "~2.11.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@jest/globals": "^30.4.1",
36
36
  "@types/semver": "~7.7.1",
37
37
  "benchmark": "~2.1.4",
38
38
  "fs-extra": "~11.3.5",
39
+ "jest-extended": "~7.0.0",
39
40
  "jest-fixtures": "~0.6.0"
40
41
  },
41
42
  "engines": {