@stacksjs/actions 0.72.102 → 0.72.103

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.
@@ -31,6 +31,37 @@ export declare function runActions(actions: Action[], options?: ActionOptions):
31
31
  export declare function runActionSequence(actions: Action[], options: ActionOptions | undefined, runner?: typeof runAction): Promise<any>;
32
32
  // looks in most common locations
33
33
  export declare function hasAction(action: Action): boolean;
34
- declare type ActionPath = string // TODO: narrow this by automating its generation
35
- type ActionName = string // TODO: narrow this by automating its generation
36
- type Action = ActionPath | ActionName | string;
34
+ /**
35
+ * Augmentation target: the actions this application can run.
36
+ *
37
+ * Filled by `storage/framework/types/registries.d.ts` from the same name map
38
+ * the resolver reads, so a name that typechecks is a name that resolves. Empty
39
+ * here by design - a package cannot know an application's actions.
40
+ */
41
+ // eslint-disable-next-line ts/no-empty-object-type -- augmentation target; empty by design
42
+ export declare interface RunnableActions {}
43
+ /** An action name, as narrow as the application has made it. */
44
+ export type RunnableActionName = keyof RunnableActions extends never
45
+ ? string
46
+ : Extract<keyof RunnableActions, string>;
47
+ /**
48
+ * What `runAction` accepts.
49
+ *
50
+ * This used to be
51
+ *
52
+ * type ActionPath = string // TODO: narrow this by automating its generation
53
+ * type ActionName = string // TODO: narrow this by automating its generation
54
+ * type Action = ActionPath | ActionName | string
55
+ *
56
+ * where all three members were `string`, so the union collapsed to `string`:
57
+ * no name was checked and none was offered as a completion. The registry the
58
+ * TODOs are asking for exists now, and `schedule.action()` already reads it.
59
+ *
60
+ * `(string & {})` rather than a bare `string` keeps the declared names as
61
+ * completions while still admitting the paths that are legitimately dynamic -
62
+ * `runAction('dev/views')` is a framework entry point, not an app action, and
63
+ * a `/actions/:name` route passes one straight through. A bare `string` in the
64
+ * union would erase the other members, which is the bug being fixed.
65
+ */
66
+ // eslint-disable-next-line ts/ban-types -- `string & {}` keeps literal completions alive
67
+ declare type Action = RunnableActionName | (string & {});
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@stacksjs/actions",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.72.102",
5
+ "version": "0.72.103",
6
6
  "description": "The Stacks actions.",
7
7
  "author": "Chris Breuer",
8
8
  "contributors": [
@@ -60,36 +60,36 @@
60
60
  "prepublishOnly": "bun run build"
61
61
  },
62
62
  "dependencies": {
63
- "@stacksjs/config": "0.72.102",
63
+ "@stacksjs/config": "0.72.103",
64
64
  "@stacksjs/bumpx": "^0.2.6",
65
65
  "@stacksjs/bunpress": "^0.2.8",
66
66
  "@stacksjs/logsmith": "^0.2.3",
67
- "@stacksjs/registry": "0.72.102",
67
+ "@stacksjs/registry": "0.72.103",
68
68
  "@stacksjs/stx": "^0.2.245",
69
69
  "@stacksjs/ts-cloud": "^0.12.7",
70
70
  "@stacksjs/ts-md": "^0.1.1"
71
71
  },
72
72
  "devDependencies": {
73
- "@stacksjs/api": "0.72.102",
74
- "@stacksjs/cli": "0.72.102",
75
- "@stacksjs/database": "0.72.102",
73
+ "@stacksjs/api": "0.72.103",
74
+ "@stacksjs/cli": "0.72.103",
75
+ "@stacksjs/database": "0.72.103",
76
76
  "@stacksjs/tlsx": "^0.13.2",
77
77
  "better-dx": "^0.2.24",
78
- "@stacksjs/dns": "0.72.102",
79
- "@stacksjs/enums": "0.72.102",
80
- "@stacksjs/env": "0.72.102",
81
- "@stacksjs/error-handling": "0.72.102",
82
- "@stacksjs/image": "0.72.102",
83
- "@stacksjs/logging": "0.72.102",
84
- "@stacksjs/path": "0.72.102",
85
- "@stacksjs/security": "0.72.102",
86
- "@stacksjs/server": "0.72.102",
87
- "@stacksjs/cms": "0.72.102",
88
- "@stacksjs/sites": "0.72.102",
89
- "@stacksjs/storage": "0.72.102",
90
- "@stacksjs/strings": "0.72.102",
91
- "@stacksjs/utils": "0.72.102",
92
- "@stacksjs/validation": "0.72.102"
78
+ "@stacksjs/dns": "0.72.103",
79
+ "@stacksjs/enums": "0.72.103",
80
+ "@stacksjs/env": "0.72.103",
81
+ "@stacksjs/error-handling": "0.72.103",
82
+ "@stacksjs/image": "0.72.103",
83
+ "@stacksjs/logging": "0.72.103",
84
+ "@stacksjs/path": "0.72.103",
85
+ "@stacksjs/security": "0.72.103",
86
+ "@stacksjs/server": "0.72.103",
87
+ "@stacksjs/cms": "0.72.103",
88
+ "@stacksjs/sites": "0.72.103",
89
+ "@stacksjs/storage": "0.72.103",
90
+ "@stacksjs/strings": "0.72.103",
91
+ "@stacksjs/utils": "0.72.103",
92
+ "@stacksjs/validation": "0.72.103"
93
93
  },
94
94
  "peerDependencies": {
95
95
  "pickier": "^0.1.58",