@workflow/utils 4.1.0-beta.11 → 4.1.0-beta.13

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/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { pluralize } from './pluralize.js';
2
2
  export { once, type PromiseWithResolvers, withResolvers } from './promise.js';
3
3
  export { parseDurationToDate } from './time.js';
4
+ export { isVercelWorldTarget, resolveWorkflowTargetWorld, usesVercelWorld, } from './world-target.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { pluralize } from './pluralize.js';
2
2
  export { once, withResolvers } from './promise.js';
3
3
  export { parseDurationToDate } from './time.js';
4
+ export { isVercelWorldTarget, resolveWorkflowTargetWorld, usesVercelWorld, } from './world-target.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAA6B,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAA6B,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
@@ -1,37 +1,37 @@
1
1
  /**
2
2
  * Parse a workflow name into its components.
3
3
  *
4
- * @param name - The workflow name to parse.
5
- * @returns An object with `shortName`, `path`, and `functionName` properties.
4
+ * @param name - The workflow name to parse (e.g., "workflow//./src/jobs/order//processOrder" or "workflow//mypackage@1.0.0//processOrder").
5
+ * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` properties.
6
6
  * When the name is invalid, returns `null`.
7
7
  */
8
8
  export declare function parseWorkflowName(name: string): {
9
9
  shortName: string;
10
- path: string;
10
+ moduleSpecifier: string;
11
11
  functionName: string;
12
12
  } | null;
13
13
  /**
14
14
  * Parse a step name into its components.
15
15
  *
16
- * @param name - The step name to parse.
17
- * @returns An object with `shortName`, `path`, and `functionName` properties.
16
+ * @param name - The step name to parse (e.g., "step//./src/jobs/order//fetchData" or "step//@myorg/tasks@2.0.0//processOrder").
17
+ * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` properties.
18
18
  * When the name is invalid, returns `null`.
19
19
  */
20
20
  export declare function parseStepName(name: string): {
21
21
  shortName: string;
22
- path: string;
22
+ moduleSpecifier: string;
23
23
  functionName: string;
24
24
  } | null;
25
25
  /**
26
26
  * Parse a class ID into its components.
27
27
  *
28
- * @param name - The class ID to parse (e.g., "class//path/to/file.ts//ClassName").
29
- * @returns An object with `shortName`, `path`, and `functionName` (className) properties.
28
+ * @param name - The class ID to parse (e.g., "class//./src/models/Point//Point" or "class//point@0.0.1//Point").
29
+ * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` (className) properties.
30
30
  * When the name is invalid, returns `null`.
31
31
  */
32
32
  export declare function parseClassName(name: string): {
33
33
  shortName: string;
34
- path: string;
34
+ moduleSpecifier: string;
35
35
  functionName: string;
36
36
  } | null;
37
37
  //# sourceMappingURL=parse-name.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-name.d.ts","sourceRoot":"","sources":["../src/parse-name.ts"],"names":[],"mappings":"AA2CA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM;eA1C9B,MAAM;UAAQ,MAAM;kBAAgB,MAAM;SA4CzD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM;eArD1B,MAAM;UAAQ,MAAM;kBAAgB,MAAM;SAuDzD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM;eAhE3B,MAAM;UAAQ,MAAM;kBAAgB,MAAM;SAkEzD"}
1
+ {"version":3,"file":"parse-name.d.ts","sourceRoot":"","sources":["../src/parse-name.ts"],"names":[],"mappings":"AAyDA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM;eAxD9B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SA0DpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM;eAnE1B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SAqEpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM;eA9E3B,MAAM;qBAAmB,MAAM;kBAAgB,MAAM;SAgFpE"}
@@ -7,36 +7,51 @@ function parseName(tag, name) {
7
7
  if (typeof name !== 'string') {
8
8
  return null;
9
9
  }
10
- // Looks like {prefix}//{filepath}//{function_name}"
10
+ // Looks like {prefix}//{moduleSpecifier}//{function_name}"
11
11
  // Where:
12
- // - {prefix} is either 'workflow' or 'step'
13
- // - {filepath} is the path to the file
14
- // - {function_name} is the name of the function
15
- const [prefix, path, ...functionNameParts] = name.split('//');
16
- if (prefix !== tag || !path || functionNameParts.length === 0) {
12
+ // - {prefix} is either 'workflow', 'step', or 'class'
13
+ // - {moduleSpecifier} is either:
14
+ // - A module specifier (e.g., `point@0.0.1`, `@myorg/shared@1.2.3`) when provided via plugin config
15
+ // - A relative path prefixed with `./` (e.g., `./src/jobs/order`) when no specifier is provided
16
+ // - {function_name} is the name of the function (with nested functions using `/` separators)
17
+ const [prefix, moduleSpecifier, ...functionNameParts] = name.split('//');
18
+ if (prefix !== tag || !moduleSpecifier || functionNameParts.length === 0) {
17
19
  return null;
18
20
  }
19
- let shortName = functionNameParts.at(-1) ?? '';
20
21
  const functionName = functionNameParts.join('//');
21
- const filename = path.split('/').at(-1) ?? '';
22
- const fileNameWithoutExtension = filename.split('.').at(0) ?? '';
23
- // Default exports will use the file name as the short name. "__default" was only
22
+ // For nested functions like "processOrder/innerStep", get just "innerStep"
23
+ let shortName = functionName.split('/').at(-1) ?? '';
24
+ // Extract a reasonable name for default exports
25
+ // For module specifiers like "point@0.0.1", use the package name "point"
26
+ // For relative paths like "./src/jobs/order", use the last segment "order"
27
+ let moduleShortName = '';
28
+ if (moduleSpecifier.startsWith('./')) {
29
+ // Relative path: use the last path segment
30
+ moduleShortName = moduleSpecifier.split('/').at(-1) ?? '';
31
+ }
32
+ else {
33
+ // Module specifier: extract package name (strip version and scope)
34
+ // e.g., "@myorg/shared@1.2.3" -> "shared", "point@0.0.1" -> "point"
35
+ const withoutVersion = moduleSpecifier.split('@').slice(0, -1).join('@') ||
36
+ moduleSpecifier.split('@')[0];
37
+ moduleShortName = withoutVersion?.split('/').at(-1) ?? '';
38
+ }
39
+ // Default exports will use the module short name. "__default" was only
24
40
  // used for one package version, so this is a minor backwards compatibility fix.
25
- if (['default', '__default'].includes(shortName) &&
26
- fileNameWithoutExtension) {
27
- shortName = fileNameWithoutExtension;
41
+ if (['default', '__default'].includes(shortName) && moduleShortName) {
42
+ shortName = moduleShortName;
28
43
  }
29
44
  return {
30
45
  shortName,
31
- path,
46
+ moduleSpecifier,
32
47
  functionName,
33
48
  };
34
49
  }
35
50
  /**
36
51
  * Parse a workflow name into its components.
37
52
  *
38
- * @param name - The workflow name to parse.
39
- * @returns An object with `shortName`, `path`, and `functionName` properties.
53
+ * @param name - The workflow name to parse (e.g., "workflow//./src/jobs/order//processOrder" or "workflow//mypackage@1.0.0//processOrder").
54
+ * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` properties.
40
55
  * When the name is invalid, returns `null`.
41
56
  */
42
57
  export function parseWorkflowName(name) {
@@ -45,8 +60,8 @@ export function parseWorkflowName(name) {
45
60
  /**
46
61
  * Parse a step name into its components.
47
62
  *
48
- * @param name - The step name to parse.
49
- * @returns An object with `shortName`, `path`, and `functionName` properties.
63
+ * @param name - The step name to parse (e.g., "step//./src/jobs/order//fetchData" or "step//@myorg/tasks@2.0.0//processOrder").
64
+ * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` properties.
50
65
  * When the name is invalid, returns `null`.
51
66
  */
52
67
  export function parseStepName(name) {
@@ -55,8 +70,8 @@ export function parseStepName(name) {
55
70
  /**
56
71
  * Parse a class ID into its components.
57
72
  *
58
- * @param name - The class ID to parse (e.g., "class//path/to/file.ts//ClassName").
59
- * @returns An object with `shortName`, `path`, and `functionName` (className) properties.
73
+ * @param name - The class ID to parse (e.g., "class//./src/models/Point//Point" or "class//point@0.0.1//Point").
74
+ * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` (className) properties.
60
75
  * When the name is invalid, returns `null`.
61
76
  */
62
77
  export function parseClassName(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"parse-name.js","sourceRoot":"","sources":["../src/parse-name.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,SAAS,SAAS,CAChB,GAAW,EACX,IAAY;IAEZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,oDAAoD;IACpD,SAAS;IACT,4CAA4C;IAC5C,uCAAuC;IACvC,gDAAgD;IAChD,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,wBAAwB,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjE,iFAAiF;IACjF,gFAAgF;IAChF,IACE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,wBAAwB,EACxB,CAAC;QACD,SAAS,GAAG,wBAAwB,CAAC;IACvC,CAAC;IAED,OAAO;QACL,SAAS;QACT,IAAI;QACJ,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"parse-name.js","sourceRoot":"","sources":["../src/parse-name.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,SAAS,SAAS,CAChB,GAAW,EACX,IAAY;IAEZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,2DAA2D;IAC3D,SAAS;IACT,sDAAsD;IACtD,iCAAiC;IACjC,sGAAsG;IACtG,kGAAkG;IAClG,6FAA6F;IAC7F,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,2EAA2E;IAC3E,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAErD,gDAAgD;IAChD,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,2CAA2C;QAC3C,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,mEAAmE;QACnE,oEAAoE;QACpE,MAAM,cAAc,GAClB,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACjD,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,eAAe,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;IAED,uEAAuE;IACvE,gFAAgF;IAChF,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;QACpE,SAAS,GAAG,eAAe,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,SAAS;QACT,eAAe;QACf,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type WorkflowEnvironment = Record<string, string | undefined>;
2
+ export declare function resolveWorkflowTargetWorld(env?: WorkflowEnvironment): string;
3
+ export declare function isVercelWorldTarget(targetWorld: string): boolean;
4
+ export declare function usesVercelWorld(env?: WorkflowEnvironment): boolean;
5
+ //# sourceMappingURL=world-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world-target.d.ts","sourceRoot":"","sources":["../src/world-target.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAErE,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,mBAAiC,GACrC,MAAM,CAOR;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,eAAe,CAC7B,GAAG,GAAE,mBAAiC,GACrC,OAAO,CAET"}
@@ -0,0 +1,14 @@
1
+ export function resolveWorkflowTargetWorld(env = process.env) {
2
+ const configuredWorld = env.WORKFLOW_TARGET_WORLD;
3
+ if (configuredWorld) {
4
+ return configuredWorld;
5
+ }
6
+ return env.VERCEL_DEPLOYMENT_ID ? 'vercel' : 'local';
7
+ }
8
+ export function isVercelWorldTarget(targetWorld) {
9
+ return targetWorld === 'vercel' || targetWorld === '@workflow/world-vercel';
10
+ }
11
+ export function usesVercelWorld(env = process.env) {
12
+ return isVercelWorldTarget(resolveWorkflowTargetWorld(env));
13
+ }
14
+ //# sourceMappingURL=world-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world-target.js","sourceRoot":"","sources":["../src/world-target.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CACxC,MAA2B,OAAO,CAAC,GAAG;IAEtC,MAAM,eAAe,GAAG,GAAG,CAAC,qBAAqB,CAAC;IAClD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,wBAAwB,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAA2B,OAAO,CAAC,GAAG;IAEtC,OAAO,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@workflow/utils",
3
3
  "description": "Utility functions for Workflow DevKit",
4
- "version": "4.1.0-beta.11",
4
+ "version": "4.1.0-beta.13",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "files": [
@@ -37,7 +37,7 @@
37
37
  "devDependencies": {
38
38
  "@types/ms": "2.1.0",
39
39
  "@types/node": "22.19.0",
40
- "vitest": "^3.2.4",
40
+ "vitest": "^4.0.18",
41
41
  "@workflow/tsconfig": "4.0.1-beta.0"
42
42
  },
43
43
  "dependencies": {