@norskvideo/norsk-manager-sdk 1.0.402-2025-05-02-3760ffa3 → 1.0.402-2025-05-12-3a6004a0

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.
@@ -255,7 +255,7 @@ export declare interface JobDeleted {
255
255
  }
256
256
 
257
257
  /** @public */
258
- export declare type JobFilter = TagFilter | IdFilter | DateFilter;
258
+ export declare type JobFilter = TagFilter | IdFilter | DateFilter | StateFilter | NoFilter;
259
259
 
260
260
  /** @public */
261
261
  export declare type JobHistoryEntry = JobHistoryJobCreated | JobHistoryJobUpdated | JobHistoryJobProvisioned | JobHistoryJobRunning | JobHistoryJobStopping | JobHistoryJobStopped | JobHistoryJobCompleted;
@@ -485,6 +485,11 @@ export declare interface NodeStopping {
485
485
  reason: "createFailed" | "pendingTimeExceeded" | "startupTimeExceeded" | "initialisationHealthPingTimeExceeded" | "healthPingTimeExceeded" | "duplicateJob" | "providerStop" | "providerTerminate" | "userRequested" | "unknownNode";
486
486
  }
487
487
 
488
+ /** @public */
489
+ export declare interface NoFilter {
490
+ filterType: "none";
491
+ }
492
+
488
493
  /**
489
494
  * @public
490
495
  * The entrypoint for all Norsk Manager applications
@@ -780,6 +785,21 @@ export declare type SpecificHostPort = {
780
785
  port: number;
781
786
  };
782
787
 
788
+ /** @public */
789
+ export declare type StateComparison = {
790
+ comparison: "eq";
791
+ value: JobState;
792
+ } | {
793
+ comparison: "neq";
794
+ value: JobState;
795
+ };
796
+
797
+ /** @public */
798
+ export declare interface StateFilter {
799
+ filterType: "state";
800
+ comparison: StateComparison;
801
+ }
802
+
783
803
  /** @public */
784
804
  export declare type TagComparison = {
785
805
  comparison: "eq";
package/lib/src/sdk.d.ts CHANGED
@@ -559,7 +559,24 @@ export interface DateFilter {
559
559
  comparison: DateComparison;
560
560
  }
561
561
  /** @public */
562
- export type JobFilter = TagFilter | IdFilter | DateFilter;
562
+ export type StateComparison = {
563
+ comparison: "eq";
564
+ value: JobState;
565
+ } | {
566
+ comparison: "neq";
567
+ value: JobState;
568
+ };
569
+ /** @public */
570
+ export interface StateFilter {
571
+ filterType: "state";
572
+ comparison: StateComparison;
573
+ }
574
+ /** @public */
575
+ export interface NoFilter {
576
+ filterType: "none";
577
+ }
578
+ /** @public */
579
+ export type JobFilter = TagFilter | IdFilter | DateFilter | StateFilter | NoFilter;
563
580
  /**
564
581
  * @public
565
582
  * Configuration for creating an event stream
package/lib/src/sdk.js CHANGED
@@ -896,9 +896,25 @@ function toDateFilter(filter) {
896
896
  comparison: comparison,
897
897
  });
898
898
  }
899
+ /** @internal */
900
+ function toStateFilter(filter) {
901
+ let comparison;
902
+ switch (filter.comparison.comparison) {
903
+ case "eq":
904
+ comparison = utils.mkCase({ eq: toJobState(filter.comparison.value) });
905
+ break;
906
+ case "neq":
907
+ comparison = utils.mkCase({ neq: toJobState(filter.comparison.value) });
908
+ break;
909
+ }
910
+ return (0, utils_1.provideFull)(ManagerPB.StateFilter, {
911
+ comparison: comparison,
912
+ });
913
+ }
899
914
  /** internal */
900
915
  function toJobFilter(jobFilter) {
901
- switch (jobFilter.filterType) {
916
+ const filter = jobFilter.filterType;
917
+ switch (filter) {
902
918
  case "tag":
903
919
  return (0, utils_1.provideFull)(ManagerPB.JobFilter, {
904
920
  jobFilter: utils.mkCase({ tagFilter: toTagFilter(jobFilter) }),
@@ -911,6 +927,16 @@ function toJobFilter(jobFilter) {
911
927
  return (0, utils_1.provideFull)(ManagerPB.JobFilter, {
912
928
  jobFilter: utils.mkCase({ dateFilter: toDateFilter(jobFilter) }),
913
929
  });
930
+ case "state":
931
+ return (0, utils_1.provideFull)(ManagerPB.JobFilter, {
932
+ jobFilter: utils.mkCase({ stateFilter: toStateFilter(jobFilter) }),
933
+ });
934
+ case "none":
935
+ return (0, utils_1.provideFull)(ManagerPB.JobFilter, { jobFilter: utils.mkCase({ noFilter: (0, utils_1.provideFull)(ManagerPB.NoFilter, {}) }) });
936
+ default: {
937
+ const exhaustiveCheck = filter;
938
+ throw new Error(`Unhandled case: ${exhaustiveCheck}`);
939
+ }
914
940
  }
915
941
  }
916
942
  /** @internal */
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "license": "MIT",
3
3
  "name": "@norskvideo/norsk-manager-sdk",
4
- "version": "1.0.402-2025-05-02-3760ffa3+nightly",
4
+ "version": "1.0.402-2025-05-12-3a6004a0+nightly",
5
5
  "dependencies": {
6
6
  "@bufbuild/protobuf": "^0.3.0",
7
7
  "@grpc/grpc-js": "~1.12.0",
8
- "@norskvideo/norsk-api": "1.0.402-2025-05-02-3760ffa3+nightly",
8
+ "@norskvideo/norsk-api": "1.0.402-2025-05-12-3a6004a0+nightly",
9
9
  "typescript-nullable": "^0.6.0"
10
10
  },
11
11
  "files": [
package/src/sdk.ts CHANGED
@@ -1730,11 +1730,45 @@ function toDateFilter(filter: DateFilter): ManagerPB.DateFilter {
1730
1730
  }
1731
1731
 
1732
1732
  /** @public */
1733
- export type JobFilter = TagFilter | IdFilter | DateFilter;
1733
+ export type StateComparison =
1734
+ | { comparison: "eq"; value: JobState }
1735
+ | { comparison: "neq"; value: JobState };
1736
+
1737
+ /** @public */
1738
+ export interface StateFilter {
1739
+ filterType: "state";
1740
+ comparison: StateComparison;
1741
+ }
1742
+
1743
+ /** @internal */
1744
+ function toStateFilter(filter: StateFilter): ManagerPB.StateFilter {
1745
+ let comparison: ManagerPB.StateFilter["comparison"];
1746
+
1747
+ switch (filter.comparison.comparison) {
1748
+ case "eq":
1749
+ comparison = utils.mkCase({ eq: toJobState(filter.comparison.value) });
1750
+ break;
1751
+ case "neq":
1752
+ comparison = utils.mkCase({ neq: toJobState(filter.comparison.value) });
1753
+ break;
1754
+ }
1755
+ return provideFull(ManagerPB.StateFilter, {
1756
+ comparison: comparison,
1757
+ });
1758
+ }
1759
+
1760
+ /** @public */
1761
+ export interface NoFilter {
1762
+ filterType: "none";
1763
+ }
1764
+
1765
+ /** @public */
1766
+ export type JobFilter = TagFilter | IdFilter | DateFilter | StateFilter | NoFilter;
1734
1767
 
1735
1768
  /** internal */
1736
1769
  function toJobFilter(jobFilter: JobFilter): ManagerPB.JobFilter {
1737
- switch (jobFilter.filterType) {
1770
+ const filter = jobFilter.filterType;
1771
+ switch (filter) {
1738
1772
  case "tag":
1739
1773
  return provideFull(ManagerPB.JobFilter, {
1740
1774
  jobFilter: utils.mkCase({ tagFilter: toTagFilter(jobFilter) }),
@@ -1747,6 +1781,16 @@ function toJobFilter(jobFilter: JobFilter): ManagerPB.JobFilter {
1747
1781
  return provideFull(ManagerPB.JobFilter, {
1748
1782
  jobFilter: utils.mkCase({ dateFilter: toDateFilter(jobFilter) }),
1749
1783
  });
1784
+ case "state":
1785
+ return provideFull(ManagerPB.JobFilter, {
1786
+ jobFilter: utils.mkCase({ stateFilter: toStateFilter(jobFilter) }),
1787
+ });
1788
+ case "none":
1789
+ return provideFull(ManagerPB.JobFilter, { jobFilter: utils.mkCase({ noFilter: provideFull(ManagerPB.NoFilter, {}) }) });
1790
+ default: {
1791
+ const exhaustiveCheck: never = filter;
1792
+ throw new Error(`Unhandled case: ${exhaustiveCheck}`);
1793
+ }
1750
1794
  }
1751
1795
  }
1752
1796