tering-serieuze-types 3.9.0 → 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.
package/.oxfmtrc.json CHANGED
@@ -2,5 +2,17 @@
2
2
  "trailingComma": "all",
3
3
  "tabWidth": 4,
4
4
  "printWidth": 120,
5
+ "sortImports": {
6
+ "groups": [
7
+ "type-import",
8
+ ["value-builtin", "value-external"],
9
+ "type-internal",
10
+ "value-internal",
11
+ ["type-parent", "type-sibling", "type-index"],
12
+ ["value-parent", "value-sibling", "value-index"],
13
+ "unknown"
14
+ ],
15
+ "newlinesBetween": false
16
+ },
5
17
  "ignorePatterns": ["dist/", "*.yaml", "*.yml", "package-lock.json", "*.css"]
6
18
  }
package/.oxlintrc.json CHANGED
@@ -1,147 +1,210 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
-
4
- "plugins": ["typescript", "unicorn", "oxc", "import", "node", "promise"],
5
-
3
+ "plugins": [
4
+ "typescript",
5
+ "unicorn",
6
+ "oxc",
7
+ "import",
8
+ "vitest",
9
+ "node",
10
+ "promise",
11
+ "jest"
12
+ ],
6
13
  "categories": {
7
14
  "correctness": "error",
8
- "suspicious": "warn",
9
- "perf": "warn"
15
+ "suspicious": "error",
16
+ "perf": "error",
17
+ "restriction": "error",
18
+ "style": "error",
19
+ "pedantic": "error",
20
+ "nursery": "error"
10
21
  },
11
-
12
22
  "options": {
13
23
  "typeAware": true
14
24
  },
15
-
16
25
  "env": {
17
26
  "node": true,
18
27
  "es2024": true
19
28
  },
20
-
21
29
  "rules": {
22
- "oxc/approx-constant": "error",
23
- "oxc/bad-array-method-on-arguments": "error",
24
- "oxc/bad-bitwise-operator": "error",
25
- "oxc/bad-char-at-comparison": "error",
26
- "oxc/bad-comparison-sequence": "error",
27
- "oxc/bad-min-max-func": "error",
28
- "oxc/bad-object-literal-comparison": "error",
29
- "oxc/bad-replace-all-arg": "error",
30
- "oxc/branches-sharing-code": "warn",
31
- "oxc/const-comparisons": "error",
32
- "oxc/double-comparisons": "error",
33
- "oxc/erasing-op": "error",
34
- "oxc/misrefactored-assign-op": "error",
35
- "oxc/missing-throw": "error",
36
- "oxc/no-accumulating-spread": "error",
30
+ "oxc/no-async-await": "off",
37
31
  "oxc/no-barrel-file": "off",
38
- "oxc/no-const-enum": "error",
39
- "oxc/no-map-spread": "error",
40
- "oxc/number-arg-out-of-range": "error",
41
- "oxc/only-used-in-recursion": "warn",
42
- "oxc/uninvoked-array-callback": "error",
43
-
32
+ "oxc/no-optional-chaining": "off",
33
+ "import/no-cycle": "off",
34
+ "typescript/await-thenable": "off",
44
35
  "typescript/consistent-type-imports": "off",
36
+ "typescript/explicit-member-accessibility": "off",
45
37
  "typescript/no-extraneous-class": "off",
46
- "typescript/no-floating-promises": ["error", { "ignoreVoid": true }],
47
- "typescript/no-misused-promises": "warn",
48
- "typescript/no-unnecessary-condition": "warn",
49
- "typescript/switch-exhaustiveness-check": "error",
50
- "typescript/prefer-optional-chain": "error",
51
- "typescript/prefer-nullish-coalescing": "warn",
52
- "typescript/no-deprecated": "warn",
53
- "typescript/no-unsafe-enum-comparison": "error",
54
- "typescript/prefer-includes": "error",
55
- "typescript/prefer-string-starts-ends-with": "error",
56
- "typescript/prefer-find": "error",
57
- "typescript/no-base-to-string": "warn",
58
- "typescript/return-await": "error",
59
- "typescript/no-confusing-void-expression": "warn",
60
- "typescript/no-misused-spread": "error",
61
- "typescript/restrict-plus-operands": "warn",
62
- "typescript/restrict-template-expressions": "warn",
63
- "typescript/no-unnecessary-type-assertion": "error",
64
- "typescript/no-unnecessary-type-arguments": "off",
65
- "typescript/no-unnecessary-template-expression": "error",
66
- "typescript/no-non-null-assertion": "error",
67
- "typescript/no-inferrable-types": "error",
68
- "typescript/no-namespace": "error",
69
- "typescript/no-dynamic-delete": "error",
70
- "typescript/array-type": ["error", { "default": "array" }],
71
- "typescript/prefer-for-of": "error",
38
+ "typescript/no-unsafe-argument": "off",
39
+ "typescript/no-unsafe-assignment": "off",
40
+ "typescript/no-unsafe-call": "off",
41
+ "typescript/no-unsafe-member-access": "off",
42
+ "typescript/no-unsafe-return": "off",
43
+ "typescript/no-unsafe-type-assertion": "off",
44
+ "typescript/parameter-properties": "off",
72
45
  "typescript/prefer-literal-enum-member": "off",
73
- "typescript/prefer-readonly": "error",
74
- "typescript/prefer-function-type": "error",
75
- "typescript/prefer-promise-reject-errors": "warn",
76
- "typescript/only-throw-error": "error",
77
- "typescript/require-await": "error",
46
+ "typescript/prefer-readonly-parameter-types": "off",
78
47
  "typescript/strict-boolean-expressions": "off",
79
- "typescript/consistent-return": "warn",
80
-
81
- "eslint/complexity": ["error", { "max": 15 }],
82
- "eslint/no-await-in-loop": "error",
83
- "eslint/no-param-reassign": "error",
84
- "eslint/no-nested-ternary": "error",
85
- "eslint/no-else-return": "error",
86
- "eslint/yoda": "error",
87
- "eslint/curly": "error",
88
- "eslint/prefer-const": "error",
89
- "eslint/default-param-last": "error",
90
- "eslint/default-case": "error",
91
- "eslint/prefer-object-spread": "error",
92
- "eslint/prefer-destructuring": "warn",
93
- "eslint/operator-assignment": "error",
94
- "eslint/object-shorthand": "warn",
95
- "eslint/no-var": "error",
96
- "eslint/no-empty": "error",
97
- "eslint/no-empty-function": "error",
48
+ "typescript/array-type": [
49
+ "error",
50
+ {
51
+ "default": "array"
52
+ }
53
+ ],
54
+ "typescript/no-floating-promises": [
55
+ "error",
56
+ {
57
+ "ignoreVoid": true
58
+ }
59
+ ],
60
+ "eslint/arrow-body-style": "off",
61
+ "eslint/capitalized-comments": "off",
62
+ "eslint/class-methods-use-this": "off",
63
+ "eslint/func-style": "off",
64
+ "eslint/id-length": "off",
65
+ "eslint/max-classes-per-file": "off",
66
+ "eslint/max-lines-per-function": "off",
67
+ "eslint/max-params": "off",
68
+ "eslint/max-statements": "off",
69
+ "eslint/new-cap": "off",
70
+ "eslint/no-console": "off",
71
+ "eslint/no-magic-numbers": "off",
72
+ "eslint/no-ternary": "off",
73
+ "eslint/no-undefined": "off",
74
+ "eslint/no-void": "off",
75
+ "eslint/require-await": "off",
76
+ "eslint/sort-imports": "off",
77
+ "eslint/sort-keys": "off",
98
78
  "eslint/no-warning-comments": "warn",
99
- "eslint/radix": "error",
100
- "eslint/no-array-constructor": "error",
101
- "eslint/no-self-compare": "error",
102
- "eslint/no-new-func": "error",
103
- "eslint/no-script-url": "error",
104
- "eslint/no-useless-concat": "error",
105
-
106
- "import/no-cycle": "off",
107
- "import/no-self-import": "error",
108
- "import/no-duplicates": "error",
109
- "import/first": "error",
110
- "import/no-namespace": "error",
111
- "import/no-commonjs": "error",
112
- "import/no-mutable-exports": "error",
113
-
114
- "unicorn/prefer-node-protocol": "error",
115
- "unicorn/prefer-number-properties": "error",
116
- "unicorn/numeric-separators-style": "error",
117
- "unicorn/prefer-string-slice": "error",
118
- "unicorn/throw-new-error": "error",
119
- "unicorn/error-message": "error",
120
- "unicorn/new-for-builtins": "error",
121
- "unicorn/no-lonely-if": "error",
122
- "unicorn/explicit-length-check": "error",
123
- "unicorn/prefer-string-trim-start-end": "error",
124
- "unicorn/require-number-to-fixed-digits-argument": "error",
125
- "unicorn/no-await-in-promise-methods": "error",
126
- "unicorn/no-single-promise-in-promise-methods": "error",
127
- "unicorn/no-useless-spread": "error",
128
- "unicorn/prefer-structured-clone": "warn",
129
- "unicorn/consistent-function-scoping": "warn",
130
- "unicorn/no-thenable": "error",
131
- "unicorn/prefer-at": "warn",
132
- "unicorn/no-negation-in-equality-check": "error",
133
- "unicorn/no-useless-fallback-in-spread": "error",
134
-
135
- "promise/catch-or-return": "warn",
136
- "promise/no-return-in-finally": "error",
137
- "promise/no-multiple-resolved": "warn",
138
- "promise/valid-params": "error",
139
- "promise/no-nesting": "warn",
140
- "promise/prefer-await-to-callbacks": "warn",
141
-
142
- "node/no-path-concat": "error",
143
- "node/no-new-require": "error"
79
+ "eslint/complexity": [
80
+ "error",
81
+ {
82
+ "max": 15
83
+ }
84
+ ],
85
+ "import/consistent-type-specifier-style": "off",
86
+ "import/group-exports": "off",
87
+ "import/max-dependencies": "off",
88
+ "import/no-named-export": "off",
89
+ "import/no-nodejs-modules": "off",
90
+ "import/no-relative-parent-imports": "off",
91
+ "import/prefer-default-export": "off",
92
+ "node/no-process-env": "off",
93
+ "unicorn/no-null": "off",
94
+ "unicorn/prefer-top-level-await": "off",
95
+ "promise/avoid-new": "off",
96
+ "promise/prefer-await-to-then": "off",
97
+ "jest/consistent-test-it": "off",
98
+ "jest/max-expects": "off",
99
+ "jest/max-nested-describe": [
100
+ "error",
101
+ {
102
+ "max": 5
103
+ }
104
+ ],
105
+ "jest/no-alias-methods": "off",
106
+ "jest/no-conditional-in-test": "off",
107
+ "jest/no-confusing-set-timeout": "off",
108
+ "jest/no-deprecated-functions": "off",
109
+ "jest/no-done-callback": "off",
110
+ "jest/no-duplicate-hooks": "off",
111
+ "jest/no-hooks": "off",
112
+ "jest/no-identical-title": "off",
113
+ "jest/no-interpolation-in-snapshots": "off",
114
+ "jest/no-jasmine-globals": "off",
115
+ "jest/no-large-snapshots": "off",
116
+ "jest/no-mocks-import": "off",
117
+ "jest/no-restricted-jest-methods": "off",
118
+ "jest/no-restricted-matchers": "off",
119
+ "jest/no-test-prefixes": "off",
120
+ "jest/no-test-return-statement": "off",
121
+ "jest/no-unneeded-async-expect-function": "off",
122
+ "jest/no-untyped-mock-factory": "off",
123
+ "jest/padding-around-after-all-blocks": "off",
124
+ "jest/padding-around-test-blocks": "off",
125
+ "jest/prefer-called-with": "off",
126
+ "jest/prefer-comparison-matcher": "off",
127
+ "jest/prefer-each": "off",
128
+ "jest/prefer-ending-with-an-expect": "off",
129
+ "jest/prefer-equality-matcher": "off",
130
+ "jest/prefer-expect-resolves": "off",
131
+ "jest/prefer-hooks-in-order": "off",
132
+ "jest/prefer-hooks-on-top": "off",
133
+ "jest/prefer-importing-jest-globals": "off",
134
+ "jest/prefer-jest-mocked": "off",
135
+ "jest/prefer-lowercase-title": "off",
136
+ "jest/prefer-mock-promise-shorthand": "off",
137
+ "jest/prefer-mock-return-shorthand": "off",
138
+ "jest/prefer-spy-on": "off",
139
+ "jest/prefer-strict-equal": "off",
140
+ "jest/prefer-to-be": "off",
141
+ "jest/prefer-to-contain": "off",
142
+ "jest/prefer-to-have-been-called": "off",
143
+ "jest/prefer-to-have-been-called-times": "off",
144
+ "jest/prefer-to-have-length": "off",
145
+ "jest/prefer-todo": "off",
146
+ "jest/require-hook": "off",
147
+ "jest/require-top-level-describe": "off",
148
+ "jest/prefer-expect-assertions": "off",
149
+ "vitest/consistent-test-filename": "off",
150
+ "vitest/consistent-vitest-vi": "off",
151
+ "vitest/no-conditional-in-test": "off",
152
+ "vitest/no-import-node-test": "off",
153
+ "vitest/no-importing-vitest-globals": "off",
154
+ "vitest/prefer-called-exactly-once-with": "off",
155
+ "vitest/prefer-called-once": "off",
156
+ "vitest/prefer-called-times": "off",
157
+ "vitest/prefer-describe-function-title": "off",
158
+ "vitest/prefer-import-in-mock": "off",
159
+ "vitest/prefer-importing-vitest-globals": "off",
160
+ "vitest/prefer-strict-boolean-matchers": "off",
161
+ "vitest/prefer-to-be-falsy": "off",
162
+ "vitest/prefer-to-be-truthy": "off",
163
+ "vitest/require-test-timeout": "off",
164
+ "vitest/valid-title": "off",
165
+ "vitest/no-hooks": "off",
166
+ "vitest/prefer-expect-assertions": "off",
167
+ "vitest/max-expects": "off",
168
+ "jest/expect-expect": [
169
+ "error",
170
+ {
171
+ "assertFunctionNames": [
172
+ "expect",
173
+ "vitest.waitUntil",
174
+ "vi.waitUntil"
175
+ ]
176
+ }
177
+ ],
178
+ "jest/valid-title": [
179
+ "error",
180
+ {
181
+ "ignoreTypeOfDescribeName": true
182
+ }
183
+ ],
184
+ "eslint/no-undef": "off"
144
185
  },
145
-
146
- "ignorePatterns": ["dist", "node_modules"]
186
+ "overrides": [
187
+ {
188
+ "files": [
189
+ "**/*.spec.ts",
190
+ "test/**/*.ts"
191
+ ],
192
+ "rules": {
193
+ "typescript/no-non-null-assertion": "off",
194
+ "eslint/no-empty-function": "off",
195
+ "typescript/no-floating-promises": "off",
196
+ "vitest/require-mock-type-parameters": "off",
197
+ "eslint/no-loop-func": "off",
198
+ "eslint/init-declarations": "off",
199
+ "oxc/no-rest-spread-properties": "off",
200
+ "eslint/max-lines": "off"
201
+ }
202
+ }
203
+ ],
204
+ "ignorePatterns": [
205
+ "dist",
206
+ "node_modules",
207
+ "coverage",
208
+ "output"
209
+ ]
147
210
  }
package/dist/index.js CHANGED
@@ -67,8 +67,8 @@ module.exports = __toCommonJS(src_exports);
67
67
 
68
68
  // src/application.ts
69
69
  var import_swagger = require("@nestjs/swagger");
70
- var import_class_validator = require("class-validator");
71
70
  var import_class_transformer = require("class-transformer");
71
+ var import_class_validator = require("class-validator");
72
72
  var CustomApplicationProperties = class {
73
73
  };
74
74
  var Application = class {
@@ -389,6 +389,7 @@ __decorateClass([
389
389
  ], ToggleBoolDto.prototype, "field", 2);
390
390
  var WsUpdateStoreDto = class {
391
391
  mutation;
392
+ // oxlint-disable-next-line typescript/no-explicit-any -- base class; subclasses narrow via override
392
393
  payload;
393
394
  };
394
395
  var WsUpdateStoreSetAccount = class extends WsUpdateStoreDto {
@@ -399,6 +400,7 @@ var WsUpdateStoreSetAccount = class extends WsUpdateStoreDto {
399
400
  var WebsocketAction = class {
400
401
  serviceName;
401
402
  methodName;
403
+ // oxlint-disable-next-line typescript/no-explicit-any -- intentionally polymorphic; per-action shape
402
404
  data;
403
405
  };
404
406
  __decorateClass([
@@ -442,8 +444,8 @@ __decorateClass([
442
444
  ], Button.prototype, "ButtonHold", 2);
443
445
 
444
446
  // src/emulator.ts
445
- var import_class_validator5 = require("class-validator");
446
447
  var import_swagger7 = require("@nestjs/swagger");
448
+ var import_class_validator5 = require("class-validator");
447
449
  var City = /* @__PURE__ */ ((City2) => {
448
450
  City2["Waalwijk"] = "Waalwijk";
449
451
  City2["Sprang"] = "Sprang-Capelle";
@@ -459,8 +461,8 @@ __decorateClass([
459
461
 
460
462
  // src/jingle.ts
461
463
  var import_swagger8 = require("@nestjs/swagger");
462
- var import_class_validator6 = require("class-validator");
463
464
  var import_class_transformer4 = require("class-transformer");
465
+ var import_class_validator6 = require("class-validator");
464
466
  var Jingle = class {
465
467
  folder;
466
468
  file;
package/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { City } from './src';
2
2
 
3
- export * from './interfaces';
3
+ export type * from './interfaces';
4
4
  export * from './src';
5
5
 
6
6
  export type ClickType = 'ButtonSingleClick' | 'ButtonDoubleClick' | 'ButtonHold';
7
7
 
8
- export type FlicButtonPayload = {
8
+ export interface FlicButtonPayload {
9
9
  bdAddr: string;
10
- };
10
+ }
11
11
 
12
12
  export type FlicButtonClickPayload = FlicButtonPayload & {
13
13
  clickType: ClickType;
@@ -17,9 +17,9 @@ export type FlicButtonBatteryPayload = FlicButtonPayload & {
17
17
  batteryStatus: number;
18
18
  };
19
19
 
20
- export type BrandweerPayload = {
20
+ export interface BrandweerPayload {
21
21
  city: City;
22
22
  title: string;
23
23
  description: string;
24
24
  pubDate: Date;
25
- };
25
+ }
@@ -1,8 +1,8 @@
1
- import { type ClickType } from "../index";
1
+ import type { ClickType } from "../index";
2
2
 
3
- export * from "./mopidy";
4
- export * from "./token";
5
- export * from "./webamp";
3
+ export type * from "./mopidy";
4
+ export type * from "./token";
5
+ export type * from "./webamp";
6
6
 
7
7
  export interface RemoveButtonDto {
8
8
  bdAddr: string;
@@ -1,4 +1,4 @@
1
- import type Mopidy = require("mopidy");
1
+ import type Mopidy from "mopidy";
2
2
 
3
3
  type Artist = Omit<Mopidy.models.Artist, "musicbrainz_id">;
4
4
  type Album = Omit<Mopidy.models.Album, "artists" | "num_discs" | "musicbrainz_id"> & {
@@ -23,12 +23,14 @@ type TlTrack = Omit<Mopidy.models.TlTrack, "track"> & { track: Track };
23
23
  type Image = Mopidy.models.Image;
24
24
  type Playlist = Omit<Mopidy.models.Playlist, "tracks" | "last_modified" | "length">;
25
25
 
26
- export type HasImage = { image: Image | undefined };
27
- export type TlTrackWithImage = TlTrack & HasImage;
28
- export type AlbumWithImage = Album & HasImage;
29
- export type ArtistWithImage = Artist & HasImage;
30
- export type TrackWithImage = Track & HasImage;
31
- export type PlaylistWithImage = Playlist & HasImage;
26
+ interface HasImage {
27
+ image: Image | undefined;
28
+ }
29
+ type TlTrackWithImage = TlTrack & HasImage;
30
+ type AlbumWithImage = Album & HasImage;
31
+ type ArtistWithImage = Artist & HasImage;
32
+ type TrackWithImage = Track & HasImage;
33
+ type PlaylistWithImage = Playlist & HasImage;
32
34
 
33
35
  type SearchResult = Omit<Mopidy.models.SearchResult, "uri" | "tracks" | "albums" | "artists"> & {
34
36
  tracks: TrackWithImage[];
@@ -37,12 +39,10 @@ type SearchResult = Omit<Mopidy.models.SearchResult, "uri" | "tracks" | "albums"
37
39
  playlists: PlaylistWithImage[];
38
40
  };
39
41
 
40
- export type { Track, TlTrack, Artist, Image, SearchResult, Album };
41
-
42
- export type PlaybackState = "playing" | "paused" | "stopped";
43
- export type MopidyConnectionState = "connected" | "reconnecting" | "offline";
42
+ type PlaybackState = "playing" | "paused" | "stopped";
43
+ type MopidyConnectionState = "connected" | "reconnecting" | "offline";
44
44
 
45
- export interface MopidyData {
45
+ interface MopidyData {
46
46
  tracklist: TlTrack[];
47
47
  volume: number;
48
48
  playRandom: boolean;
@@ -55,12 +55,32 @@ export interface MopidyData {
55
55
  connectionState: MopidyConnectionState;
56
56
  }
57
57
 
58
- export type AlarmschijfResult = {
58
+ interface AlarmschijfResult {
59
59
  playlist: Track[];
60
60
  alarmschijf?: TrackWithImage;
61
- };
61
+ }
62
62
 
63
- export type ReleaseRadarData = {
63
+ interface ReleaseRadarData {
64
64
  tracks: TrackWithImage[];
65
65
  albums: AlbumWithImage[];
66
+ }
67
+
68
+ export type {
69
+ Album,
70
+ AlarmschijfResult,
71
+ AlbumWithImage,
72
+ Artist,
73
+ ArtistWithImage,
74
+ HasImage,
75
+ Image,
76
+ MopidyConnectionState,
77
+ MopidyData,
78
+ PlaybackState,
79
+ PlaylistWithImage,
80
+ ReleaseRadarData,
81
+ SearchResult,
82
+ TlTrack,
83
+ TlTrackWithImage,
84
+ Track,
85
+ TrackWithImage,
66
86
  };
@@ -17,6 +17,6 @@ export interface ApiTokenContent extends TokenContent {
17
17
  id: string;
18
18
  }
19
19
 
20
- export interface NewFrontendTokenContent extends Omit<FrontendTokenContent, "iat" | "exp"> {}
20
+ export type NewFrontendTokenContent = Omit<FrontendTokenContent, "iat" | "exp">;
21
21
 
22
- export interface NewApiTokenContent extends Omit<ApiTokenContent, "iat" | "exp"> {}
22
+ export type NewApiTokenContent = Omit<ApiTokenContent, "iat" | "exp">;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tering-serieuze-types",
3
- "version": "3.9.0",
3
+ "version": "4.0.0",
4
4
  "description": "Tering serieuze types",
5
5
  "author": "Frank",
6
6
  "repository": {
@@ -21,9 +21,9 @@
21
21
  "types": "index.d.ts",
22
22
  "devDependencies": {
23
23
  "esbuild": "^0.23.1",
24
- "oxfmt": "^0.44.0",
25
- "oxlint": "^1.60.0",
26
- "oxlint-tsgolint": "^0.20.0"
24
+ "oxfmt": "^0.47.0",
25
+ "oxlint": "^1.62.0",
26
+ "oxlint-tsgolint": "^0.22.1"
27
27
  },
28
28
  "dependencies": {
29
29
  "@nestjs/swagger": "^11.0.2",
@@ -1,6 +1,6 @@
1
1
  import { ApiProperty, OmitType } from "@nestjs/swagger";
2
- import { IsBoolean, IsNotEmpty, IsNumber, IsOptional, IsString, ValidateNested } from "class-validator";
3
2
  import { Type } from "class-transformer";
3
+ import { IsBoolean, IsNotEmpty, IsNumber, IsOptional, IsString, ValidateNested } from "class-validator";
4
4
 
5
5
  export class CustomApplicationProperties {
6
6
  [key: string]: string | number | boolean | string[] | number[] | boolean[] | (number | string)[];
package/src/button.ts CHANGED
@@ -9,6 +9,7 @@ export class WebsocketAction {
9
9
  methodName: string;
10
10
 
11
11
  @ApiProperty({ type: Object })
12
+ // oxlint-disable-next-line typescript/no-explicit-any -- intentionally polymorphic; per-action shape
12
13
  data: any;
13
14
  }
14
15
 
package/src/emulator.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { IsEnum } from "class-validator";
2
1
  import { ApiProperty } from "@nestjs/swagger";
2
+ import { IsEnum } from "class-validator";
3
3
 
4
4
  export enum City {
5
5
  Waalwijk = "Waalwijk",
package/src/index.ts CHANGED
@@ -12,8 +12,6 @@ export * from "./user";
12
12
  // Prevent 'Inferred type cannot be named' error
13
13
  export type { Type } from "@nestjs/common";
14
14
 
15
- export interface Dto {}
16
-
17
15
  export class P2000Payload {
18
16
  message: string;
19
17
  }
package/src/jingle.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ApiProperty, PickType } from "@nestjs/swagger";
2
- import { IsNotEmpty, IsString, ValidateNested } from "class-validator";
3
2
  import { Type } from "class-transformer";
3
+ import { IsNotEmpty, IsString, ValidateNested } from "class-validator";
4
4
 
5
5
  export class Jingle {
6
6
  @ApiProperty({ type: String, example: "internet-gekkies" })
package/src/session.ts CHANGED
@@ -4,9 +4,9 @@ import { IsDate } from "class-validator";
4
4
  import { User } from "./user";
5
5
 
6
6
  export enum TokenType {
7
- Refresh,
8
- Access,
9
- Api,
7
+ Refresh = 0,
8
+ Access = 1,
9
+ Api = 2,
10
10
  }
11
11
 
12
12
  export class ApiToken {
package/src/user.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { ApiProperty, PickType } from "@nestjs/swagger";
2
2
  import { Type } from "class-transformer";
3
3
  import { IsEmail, IsNumberString, ValidateNested } from "class-validator";
4
- import { Button } from "./button";
4
+ import type { DbAuthenticator } from "./authenticator";
5
5
  import { WindowState } from "./application";
6
- import { type DbAuthenticator } from "./authenticator";
6
+ import { Button } from "./button";
7
7
  import { ApiToken, Session } from "./session";
8
8
 
9
9
  export class User {
@@ -96,6 +96,7 @@ export class ToggleBoolDto {
96
96
  export class WsUpdateStoreDto {
97
97
  mutation: string;
98
98
 
99
+ // oxlint-disable-next-line typescript/no-explicit-any -- base class; subclasses narrow via override
99
100
  payload: any;
100
101
  }
101
102