@pikku/inspector 0.12.37 → 0.12.39

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/CHANGELOG.md CHANGED
@@ -1,3 +1,41 @@
1
+ ## 0.12.39
2
+
3
+ ### Patch Changes
4
+
5
+ - 4f92e6f: `pikku db` schema-codegen warnings are now coded diagnostics routed through the CLI logger instead of raw `console.warn`, so they participate in the existing `--fail-on-warn` gate.
6
+
7
+ Each warning now carries a PKU code and `warn` severity: `PKU481` (JSON/JSONB column with no concrete `tsType`, degrading to `unknown`), `PKU480` (column named like a date/bool but whose DB type contradicts it), and `PKU482` (a `format` annotation ignored on a non-string column). Running `pikku db migrate --fail-on-warn` (e.g. in CI) now turns these into a hard failure, forcing the `db/annotations.ts` entry — closing the loophole where an untyped jsonb column silently degrades type-safety. Default behaviour is unchanged: the warnings still print, and only fail the build when `--fail-on-warn` is set.
8
+
9
+ - daec082: Drop Node 22 support — the minimum supported runtime is now Node 24 (LTS).
10
+
11
+ Node 22 deadlocks `pikku dev` at `loadUserBootstrap` (tsx `register()` + `require(esm)` cycle handling on node 22.12+), and Node 20 is already below our floor. The `engines.node` requirement is raised to `>=24` across all packages, matching `.nvmrc` and the CI test matrix. Closes #751.
12
+
13
+ - ad26273: Remove 16 dormant `ErrorCode` enum entries that were defined but never emitted anywhere in the framework. These were placeholder registrations that were never wired to a diagnostic, or codes whose emission sites were removed in later refactors (e.g. `PKU901`, `PKU431`). A whole-repo audit found zero emission sites — no user could ever see them — so they only cluttered the registry and demanded docs pages for errors that cannot occur.
14
+
15
+ Removed: `PKU300`, `PKU426`, `PKU427`, `PKU431`, `PKU488`, `PKU529`, `PKU568`, `PKU685`, `PKU715`, `PKU736`, `PKU787`, `PKU835`, `PKU836`, `PKU901`, `PKU937`, `PKU975`.
16
+
17
+ A new guard test (`error-codes-emitted.test.ts`) fails if any `ErrorCode` value has no `ErrorCode.<NAME>` or raw `PKU###` reference in the source, so dead entries can't silently accumulate again.
18
+
19
+ - Updated dependencies [7b17b14]
20
+ - Updated dependencies [daec082]
21
+ - Updated dependencies [e0fd352]
22
+ - @pikku/core@0.12.58
23
+
24
+ ## 0.12.38
25
+
26
+ ### Patch Changes
27
+
28
+ - 66f3dae: Move `@pikku/core` from `dependencies` to `peerDependencies` in the last packages that still declared it as a regular dependency.
29
+
30
+ `@pikku/core` holds a single `pikkuState` registry and must resolve to exactly one copy at runtime — every wiring (workflows, RPCs, queue workers, middleware) registers into the copy it imports, and the runner reads the copy it imports. 35 packages already declare core as a peer for this reason; these six were the stragglers. Because they carried a regular `@pikku/core` dependency, bumping any one of them could leave a second, older core locked in a consumer's tree, splitting the registry so wirings silently fail to resolve (surfaced as `[PKU717] Multiple @pikku/core versions installed`).
31
+
32
+ Making core a peer everywhere means the consuming app provides the one copy (the react/react-dom singleton pattern), so duplication is structurally impossible. `@pikku/core` is also kept as a devDependency in each package so it still builds/typechecks standalone.
33
+
34
+ Backward-compatible for consumers that already list `@pikku/core` directly (every template does). A consumer that only pulled core transitively now gets a loud install-time peer warning instead of a silent runtime split — strictly better.
35
+
36
+ - Updated dependencies [ded4f90]
37
+ - @pikku/core@0.12.54
38
+
1
39
  ## 0.12.37
2
40
 
3
41
  ### Patch Changes
@@ -14,37 +14,25 @@ export declare enum ErrorCode {
14
14
  MISSING_URI = "PKU220",
15
15
  MISSING_FUNC = "PKU236",
16
16
  INVALID_TAGS_TYPE = "PKU247",
17
- INVALID_HANDLER = "PKU300",
18
17
  MISSING_TITLE = "PKU370",
19
18
  MISSING_QUEUE_NAME = "PKU384",
20
19
  MISSING_CHANNEL_NAME = "PKU400",
21
20
  CLI_CLIENTSIDE_RENDERER_HAS_SERVICES = "PKU672",
22
21
  SCENARIO_HAS_SERVICES = "PKU673",
23
22
  EXPECT_EVENTUALLY_SCENARIO_ONLY = "PKU675",
24
- DYNAMIC_STEP_NAME = "PKU529",
25
23
  WORKFLOW_ORCHESTRATOR_NOT_CONFIGURED = "PKU600",
26
24
  INVALID_DSL_WORKFLOW = "PKU641",
27
- CONFIG_TYPE_NOT_FOUND = "PKU426",
28
- CONFIG_TYPE_UNDEFINED = "PKU427",
29
- SCHEMA_NO_ROOT = "PKU431",
25
+ DB_COLUMN_NAME_TYPE_CONTRADICTION = "PKU480",
26
+ DB_JSON_COLUMN_UNTYPED = "PKU481",
27
+ DB_FORMAT_ON_NON_STRING = "PKU482",
30
28
  SCHEMA_GENERATION_ERROR = "PKU456",
31
- SCHEMA_LOAD_ERROR = "PKU488",
32
29
  INLINE_SCHEMA = "PKU489",
33
30
  FUNCTION_METADATA_NOT_FOUND = "PKU559",
34
- HANDLER_NOT_RESOLVED = "PKU568",
35
31
  DUPLICATE_AUTH_DEFINITION = "PKU581",
36
32
  AUTH_NOT_EXPORTED = "PKU582",
37
33
  ROUTE_PARAM_MISMATCH = "PKU571",
38
34
  ROUTE_QUERY_MISMATCH = "PKU572",
39
35
  AUTH_DISABLED_REQUIRES_SESSIONLESS = "PKU573",
40
- MIDDLEWARE_HANDLER_INVALID = "PKU685",
41
- MIDDLEWARE_TAG_INVALID = "PKU715",
42
- MIDDLEWARE_EMPTY_ARRAY = "PKU736",
43
- MIDDLEWARE_PATTERN_INVALID = "PKU787",
44
- PERMISSION_HANDLER_INVALID = "PKU835",
45
- PERMISSION_TAG_INVALID = "PKU836",
46
- PERMISSION_EMPTY_ARRAY = "PKU937",
47
- PERMISSION_PATTERN_INVALID = "PKU975",
48
36
  DUPLICATE_FUNCTION_VERSION = "PKU850",
49
37
  DUPLICATE_FUNCTION_NAME = "PKU851",
50
38
  MANIFEST_MISSING = "PKU860",
@@ -59,7 +47,6 @@ export declare enum ErrorCode {
59
47
  SERVICES_NOT_DESTRUCTURED = "PKU410",
60
48
  WIRES_NOT_DESTRUCTURED = "PKU411",
61
49
  DUPLICATE_CORE_VERSION = "PKU717",
62
- WORKFLOW_MULTI_QUEUE_NOT_SUPPORTED = "PKU901",
63
50
  PII_IN_OUTPUT = "PKU910",
64
51
  ADDON_WIRING_NOT_ALLOWED = "PKU920",
65
52
  ADDON_CONTRACT_HANDLERS_NOT_ALLOWED = "PKU921",
@@ -16,26 +16,23 @@ export var ErrorCode;
16
16
  ErrorCode["MISSING_URI"] = "PKU220";
17
17
  ErrorCode["MISSING_FUNC"] = "PKU236";
18
18
  ErrorCode["INVALID_TAGS_TYPE"] = "PKU247";
19
- ErrorCode["INVALID_HANDLER"] = "PKU300";
20
19
  ErrorCode["MISSING_TITLE"] = "PKU370";
21
20
  ErrorCode["MISSING_QUEUE_NAME"] = "PKU384";
22
21
  ErrorCode["MISSING_CHANNEL_NAME"] = "PKU400";
23
22
  ErrorCode["CLI_CLIENTSIDE_RENDERER_HAS_SERVICES"] = "PKU672";
24
23
  ErrorCode["SCENARIO_HAS_SERVICES"] = "PKU673";
25
24
  ErrorCode["EXPECT_EVENTUALLY_SCENARIO_ONLY"] = "PKU675";
26
- ErrorCode["DYNAMIC_STEP_NAME"] = "PKU529";
27
25
  ErrorCode["WORKFLOW_ORCHESTRATOR_NOT_CONFIGURED"] = "PKU600";
28
26
  ErrorCode["INVALID_DSL_WORKFLOW"] = "PKU641";
27
+ // Database schema codegen warnings
28
+ ErrorCode["DB_COLUMN_NAME_TYPE_CONTRADICTION"] = "PKU480";
29
+ ErrorCode["DB_JSON_COLUMN_UNTYPED"] = "PKU481";
30
+ ErrorCode["DB_FORMAT_ON_NON_STRING"] = "PKU482";
29
31
  // Configuration errors
30
- ErrorCode["CONFIG_TYPE_NOT_FOUND"] = "PKU426";
31
- ErrorCode["CONFIG_TYPE_UNDEFINED"] = "PKU427";
32
- ErrorCode["SCHEMA_NO_ROOT"] = "PKU431";
33
32
  ErrorCode["SCHEMA_GENERATION_ERROR"] = "PKU456";
34
- ErrorCode["SCHEMA_LOAD_ERROR"] = "PKU488";
35
33
  ErrorCode["INLINE_SCHEMA"] = "PKU489";
36
34
  // Function errors
37
35
  ErrorCode["FUNCTION_METADATA_NOT_FOUND"] = "PKU559";
38
- ErrorCode["HANDLER_NOT_RESOLVED"] = "PKU568";
39
36
  // Auth errors
40
37
  ErrorCode["DUPLICATE_AUTH_DEFINITION"] = "PKU581";
41
38
  ErrorCode["AUTH_NOT_EXPORTED"] = "PKU582";
@@ -43,15 +40,6 @@ export var ErrorCode;
43
40
  ErrorCode["ROUTE_PARAM_MISMATCH"] = "PKU571";
44
41
  ErrorCode["ROUTE_QUERY_MISMATCH"] = "PKU572";
45
42
  ErrorCode["AUTH_DISABLED_REQUIRES_SESSIONLESS"] = "PKU573";
46
- // Middleware/Permission errors
47
- ErrorCode["MIDDLEWARE_HANDLER_INVALID"] = "PKU685";
48
- ErrorCode["MIDDLEWARE_TAG_INVALID"] = "PKU715";
49
- ErrorCode["MIDDLEWARE_EMPTY_ARRAY"] = "PKU736";
50
- ErrorCode["MIDDLEWARE_PATTERN_INVALID"] = "PKU787";
51
- ErrorCode["PERMISSION_HANDLER_INVALID"] = "PKU835";
52
- ErrorCode["PERMISSION_TAG_INVALID"] = "PKU836";
53
- ErrorCode["PERMISSION_EMPTY_ARRAY"] = "PKU937";
54
- ErrorCode["PERMISSION_PATTERN_INVALID"] = "PKU975";
55
43
  // Versioning errors
56
44
  ErrorCode["DUPLICATE_FUNCTION_VERSION"] = "PKU850";
57
45
  ErrorCode["DUPLICATE_FUNCTION_NAME"] = "PKU851";
@@ -72,8 +60,6 @@ export var ErrorCode;
72
60
  ErrorCode["WIRES_NOT_DESTRUCTURED"] = "PKU411";
73
61
  // Dependency integrity errors
74
62
  ErrorCode["DUPLICATE_CORE_VERSION"] = "PKU717";
75
- // Feature Flag
76
- ErrorCode["WORKFLOW_MULTI_QUEUE_NOT_SUPPORTED"] = "PKU901";
77
63
  // Data classification errors
78
64
  ErrorCode["PII_IN_OUTPUT"] = "PKU910";
79
65
  // Addon authoring errors
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/inspector",
3
- "version": "0.12.37",
3
+ "version": "0.12.39",
4
4
  "author": "yasser.fadl@gmail.com",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
@@ -35,7 +35,6 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@openapi-contrib/json-schema-to-openapi-schema": "^4.3.1",
38
- "@pikku/core": "^0.12.53",
39
38
  "openapi-types": "^12.1.3",
40
39
  "path-to-regexp": "^8.3.0",
41
40
  "ts-json-schema-generator": "2.9.1-next.16",
@@ -44,10 +43,14 @@
44
43
  "zod": "^4.3.6",
45
44
  "zod-to-ts": "^2.1.0"
46
45
  },
46
+ "peerDependencies": {
47
+ "@pikku/core": "^0.12.58"
48
+ },
47
49
  "devDependencies": {
50
+ "@pikku/core": "^0.12.58",
48
51
  "@types/node": "^24.11.0"
49
52
  },
50
53
  "engines": {
51
- "node": ">=22"
54
+ "node": ">=24"
52
55
  }
53
56
  }
@@ -0,0 +1,76 @@
1
+ import { test } from 'node:test'
2
+ import { strict as assert } from 'node:assert'
3
+ import { readFileSync, readdirSync } from 'node:fs'
4
+ import { fileURLToPath } from 'node:url'
5
+ import { dirname, join } from 'node:path'
6
+
7
+ /**
8
+ * Guards against dead `ErrorCode` registry entries.
9
+ *
10
+ * Every value in the `ErrorCode` enum must have at least one emission site in
11
+ * the framework source — a `ErrorCode.<NAME>` reference or the raw `PKU###`
12
+ * string in a non-test `.ts` file under `packages/*​/src`. A code that is
13
+ * defined but never thrown is a dead entry: it can never appear in a user's
14
+ * terminal, yet it still demands a docs page and clutters the registry. This
15
+ * test fails and names any such entries so they get wired up or removed rather
16
+ * than silently accumulating.
17
+ */
18
+
19
+ const here = dirname(fileURLToPath(import.meta.url))
20
+ const packagesDir = join(here, '..', '..')
21
+ const errorCodesFile = join(here, 'error-codes.ts')
22
+
23
+ const enumMembers = [
24
+ ...readFileSync(errorCodesFile, 'utf8').matchAll(
25
+ /^\s*([A-Z0-9_]+)\s*=\s*'(PKU\d+)'/gm
26
+ ),
27
+ ].map((m) => ({ name: m[1], code: m[2] }))
28
+
29
+ const collectSource = () => {
30
+ const contents: string[] = []
31
+ for (const pkg of readdirSync(packagesDir, { withFileTypes: true })) {
32
+ if (!pkg.isDirectory()) continue
33
+ const srcDir = join(packagesDir, pkg.name, 'src')
34
+ let entries
35
+ try {
36
+ entries = readdirSync(srcDir, { recursive: true, withFileTypes: true })
37
+ } catch {
38
+ continue
39
+ }
40
+ for (const entry of entries) {
41
+ if (!entry.isFile()) continue
42
+ const name = entry.name
43
+ if (
44
+ !name.endsWith('.ts') ||
45
+ name.endsWith('.d.ts') ||
46
+ name.endsWith('.test.ts') ||
47
+ name === 'error-codes.ts'
48
+ ) {
49
+ continue
50
+ }
51
+ contents.push(readFileSync(join(entry.parentPath, name), 'utf8'))
52
+ }
53
+ }
54
+ return contents.join('\n')
55
+ }
56
+
57
+ test('every ErrorCode value has an emission site in the source', () => {
58
+ assert.ok(
59
+ enumMembers.length > 0,
60
+ 'Failed to parse any ErrorCode members from error-codes.ts'
61
+ )
62
+
63
+ const source = collectSource()
64
+
65
+ const dead = enumMembers.filter(
66
+ ({ name, code }) =>
67
+ !source.includes(`ErrorCode.${name}`) && !source.includes(code)
68
+ )
69
+
70
+ assert.deepEqual(
71
+ dead.map(({ code, name }) => `${code} ${name}`),
72
+ [],
73
+ `Dead ErrorCode entries (defined but never emitted). Wire them to a diagnostic or delete them:\n` +
74
+ dead.map(({ code, name }) => ` - ${code} ${name}`).join('\n')
75
+ )
76
+ })
@@ -16,28 +16,26 @@ export enum ErrorCode {
16
16
  MISSING_URI = 'PKU220',
17
17
  MISSING_FUNC = 'PKU236',
18
18
  INVALID_TAGS_TYPE = 'PKU247',
19
- INVALID_HANDLER = 'PKU300',
20
19
  MISSING_TITLE = 'PKU370',
21
20
  MISSING_QUEUE_NAME = 'PKU384',
22
21
  MISSING_CHANNEL_NAME = 'PKU400',
23
22
  CLI_CLIENTSIDE_RENDERER_HAS_SERVICES = 'PKU672',
24
23
  SCENARIO_HAS_SERVICES = 'PKU673',
25
24
  EXPECT_EVENTUALLY_SCENARIO_ONLY = 'PKU675',
26
- DYNAMIC_STEP_NAME = 'PKU529',
27
25
  WORKFLOW_ORCHESTRATOR_NOT_CONFIGURED = 'PKU600',
28
26
  INVALID_DSL_WORKFLOW = 'PKU641',
29
27
 
28
+ // Database schema codegen warnings
29
+ DB_COLUMN_NAME_TYPE_CONTRADICTION = 'PKU480',
30
+ DB_JSON_COLUMN_UNTYPED = 'PKU481',
31
+ DB_FORMAT_ON_NON_STRING = 'PKU482',
32
+
30
33
  // Configuration errors
31
- CONFIG_TYPE_NOT_FOUND = 'PKU426',
32
- CONFIG_TYPE_UNDEFINED = 'PKU427',
33
- SCHEMA_NO_ROOT = 'PKU431',
34
34
  SCHEMA_GENERATION_ERROR = 'PKU456',
35
- SCHEMA_LOAD_ERROR = 'PKU488',
36
35
  INLINE_SCHEMA = 'PKU489',
37
36
 
38
37
  // Function errors
39
38
  FUNCTION_METADATA_NOT_FOUND = 'PKU559',
40
- HANDLER_NOT_RESOLVED = 'PKU568',
41
39
 
42
40
  // Auth errors
43
41
  DUPLICATE_AUTH_DEFINITION = 'PKU581',
@@ -48,16 +46,6 @@ export enum ErrorCode {
48
46
  ROUTE_QUERY_MISMATCH = 'PKU572',
49
47
  AUTH_DISABLED_REQUIRES_SESSIONLESS = 'PKU573',
50
48
 
51
- // Middleware/Permission errors
52
- MIDDLEWARE_HANDLER_INVALID = 'PKU685',
53
- MIDDLEWARE_TAG_INVALID = 'PKU715',
54
- MIDDLEWARE_EMPTY_ARRAY = 'PKU736',
55
- MIDDLEWARE_PATTERN_INVALID = 'PKU787',
56
- PERMISSION_HANDLER_INVALID = 'PKU835',
57
- PERMISSION_TAG_INVALID = 'PKU836',
58
- PERMISSION_EMPTY_ARRAY = 'PKU937',
59
- PERMISSION_PATTERN_INVALID = 'PKU975',
60
-
61
49
  // Versioning errors
62
50
  DUPLICATE_FUNCTION_VERSION = 'PKU850',
63
51
  DUPLICATE_FUNCTION_NAME = 'PKU851',
@@ -84,9 +72,6 @@ export enum ErrorCode {
84
72
  // Dependency integrity errors
85
73
  DUPLICATE_CORE_VERSION = 'PKU717',
86
74
 
87
- // Feature Flag
88
- WORKFLOW_MULTI_QUEUE_NOT_SUPPORTED = 'PKU901',
89
-
90
75
  // Data classification errors
91
76
  PII_IN_OUTPUT = 'PKU910',
92
77
 
@@ -1668,7 +1668,7 @@ describe('addon bootstrap tree-shake', () => {
1668
1668
  ['console', { package: '@pikku/addon-console' }],
1669
1669
  ])
1670
1670
  state.rpc.usedAddons = new Set(['console'])
1671
- state.rpc.invokedFunctions = new Set(['console:streamFunctionTests'])
1671
+ state.rpc.invokedFunctions = new Set(['console:streamWorkflowRun'])
1672
1672
  mutate?.(state)
1673
1673
  return state
1674
1674
  }
@@ -1687,7 +1687,7 @@ describe('addon bootstrap tree-shake', () => {
1687
1687
  test('keeps an addon when a kept wiring targets one of its functions', () => {
1688
1688
  const state = withAddon((s) => {
1689
1689
  s.http.meta.get['/console/stream'] = {
1690
- pikkuFuncId: 'console:streamFunctionTests',
1690
+ pikkuFuncId: 'console:streamWorkflowRun',
1691
1691
  route: '/console/stream',
1692
1692
  method: 'GET',
1693
1693
  tags: [],
@@ -1697,7 +1697,7 @@ describe('addon bootstrap tree-shake', () => {
1697
1697
  })
1698
1698
  const filtered = filterInspectorState(
1699
1699
  state,
1700
- { names: ['console:streamFunctionTests'] },
1700
+ { names: ['console:streamWorkflowRun'] },
1701
1701
  mockLogger
1702
1702
  )
1703
1703
  assert.strictEqual(filtered.rpc.wireAddonDeclarations.size, 1)
@@ -1706,45 +1706,43 @@ describe('addon bootstrap tree-shake', () => {
1706
1706
 
1707
1707
  test('keeps an addon when a kept route ref()-targets one of its functions', () => {
1708
1708
  const state = withAddon((s) => {
1709
- s.http.meta.get['/function-tests/stream'] = {
1710
- pikkuFuncId: 'http:get:/function-tests/stream',
1711
- refTarget: 'console:streamFunctionTests',
1712
- route: '/function-tests/stream',
1709
+ s.http.meta.get['/workflow-run/stream'] = {
1710
+ pikkuFuncId: 'http:get:/workflow-run/stream',
1711
+ refTarget: 'console:streamWorkflowRun',
1712
+ route: '/workflow-run/stream',
1713
1713
  method: 'GET',
1714
1714
  tags: [],
1715
1715
  middleware: [],
1716
1716
  permissions: [],
1717
1717
  } as any
1718
- s.functions.meta['http:get:/function-tests/stream'] = {
1718
+ s.functions.meta['http:get:/workflow-run/stream'] = {
1719
1719
  services: { optimized: false, services: [] },
1720
1720
  } as any
1721
1721
  })
1722
1722
  const filtered = filterInspectorState(
1723
1723
  state,
1724
- { names: ['http:get:/function-tests/stream'] },
1724
+ { names: ['http:get:/workflow-run/stream'] },
1725
1725
  mockLogger
1726
1726
  )
1727
1727
  assert.strictEqual(filtered.rpc.wireAddonDeclarations.size, 1)
1728
1728
  assert.ok(filtered.rpc.wireAddonDeclarations.has('console'))
1729
1729
  assert.ok(
1730
- filtered.serviceAggregation.usedFunctions.has(
1731
- 'console:streamFunctionTests'
1732
- )
1730
+ filtered.serviceAggregation.usedFunctions.has('console:streamWorkflowRun')
1733
1731
  )
1734
1732
  })
1735
1733
 
1736
1734
  test('drops the addon when the ref()-wired route is filtered out', () => {
1737
1735
  const state = withAddon((s) => {
1738
- s.http.meta.get['/function-tests/stream'] = {
1739
- pikkuFuncId: 'http:get:/function-tests/stream',
1740
- refTarget: 'console:streamFunctionTests',
1741
- route: '/function-tests/stream',
1736
+ s.http.meta.get['/workflow-run/stream'] = {
1737
+ pikkuFuncId: 'http:get:/workflow-run/stream',
1738
+ refTarget: 'console:streamWorkflowRun',
1739
+ route: '/workflow-run/stream',
1742
1740
  method: 'GET',
1743
1741
  tags: [],
1744
1742
  middleware: [],
1745
1743
  permissions: [],
1746
1744
  } as any
1747
- s.functions.meta['http:get:/function-tests/stream'] = {
1745
+ s.functions.meta['http:get:/workflow-run/stream'] = {
1748
1746
  services: { optimized: false, services: [] },
1749
1747
  } as any
1750
1748
  })
@@ -1756,7 +1754,7 @@ describe('addon bootstrap tree-shake', () => {
1756
1754
  assert.strictEqual(filtered.rpc.wireAddonDeclarations.size, 0)
1757
1755
  assert.ok(
1758
1756
  !filtered.serviceAggregation.usedFunctions.has(
1759
- 'console:streamFunctionTests'
1757
+ 'console:streamWorkflowRun'
1760
1758
  )
1761
1759
  )
1762
1760
  })
@@ -206,17 +206,17 @@ describe('aggregateRequiredServices — per-function addon services', () => {
206
206
  test('a ref()-wired route (inline id + namespaced target) aggregates the target services', () => {
207
207
  const state = makeState({
208
208
  usedFunctions: [
209
- 'http:get:/function-tests/stream',
210
- 'console:streamFunctionTests',
209
+ 'http:get:/workflow-run/stream',
210
+ 'console:streamWorkflowRun',
211
211
  ],
212
212
  functionsMeta: {
213
- 'http:get:/function-tests/stream': {
213
+ 'http:get:/workflow-run/stream': {
214
214
  services: { optimized: false, services: [] },
215
215
  },
216
216
  },
217
217
  addonFunctions: {
218
218
  console: {
219
- streamFunctionTests: {
219
+ streamWorkflowRun: {
220
220
  services: { optimized: true, services: ['metaService'] },
221
221
  },
222
222
  },