@workflow/utils 4.1.1 → 4.1.3
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/check-data-dir.js +1 -1
- package/dist/get-port.d.ts.map +1 -1
- package/dist/get-port.js +27 -1
- package/dist/index.js +1 -1
- package/dist/parse-name.js +1 -1
- package/dist/pluralize.js +1 -1
- package/dist/promise.js +1 -1
- package/dist/time.js +1 -1
- package/dist/world-target.js +1 -1
- package/package.json +1 -1
- package/dist/check-data-dir.js.map +0 -1
- package/dist/get-port.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/parse-name.js.map +0 -1
- package/dist/pluralize.js.map +0 -1
- package/dist/promise.js.map +0 -1
- package/dist/time.js.map +0 -1
- package/dist/world-target.js.map +0 -1
package/dist/check-data-dir.js
CHANGED
|
@@ -150,4 +150,4 @@ export async function findWorkflowDataDir(cwd) {
|
|
|
150
150
|
shortName: getDirShortName(absoluteCwd),
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
|
-
//# sourceMappingURL=check-data-dir.js.map
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZGF0YS1kaXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2hlY2stZGF0YS1kaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGVBQWU7Q0FDUCxDQUFDO0FBYVg7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFZO0lBQy9CLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGNBQWMsQ0FBQyxJQUFZLEVBQUUsUUFBaUI7SUFDckQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFVBQWtCO0lBQ2hELE1BQU0sS0FB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O2dCQUNMLFVBQVUsRUFBRSxXQUFXO2dCQUN2QixPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsU0FBUyxFQUFFLGVBQWUsQ0FBQyxXQUFXLENBQUM7YUFDeEMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsOERBQThEO0lBQzlELElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUM3QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUIsT0FBTyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDM0IsOENBQThDO1FBQzlDLEtBQUssTUFBTSxJQUFJLElBQUkseUJBQXlCLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hDLElBQUksTUFBTSxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsT0FBTztvQkFDTCxVQUFVLEVBQUUsVUFBVTtvQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQzFCLFNBQVMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDO2lCQUN2QyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLDhCQUE4QjtRQUN2QyxDQUFDO1FBQ0QsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUN6QixDQUFDO0lBRUQsMkRBQTJEO0lBRTNELE9BQU87UUFDTCxVQUFVLEVBQUUsV0FBVztRQUN2QixPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQztLQUN4QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFjY2VzcyB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgZGlybmFtZSwgaXNBYnNvbHV0ZSwgam9pbiwgcmVzb2x2ZSwgc2VwIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuLyoqXG4gKiBLbm93biBwYXRocyB3aGVyZSB3b3JrZmxvdyBkYXRhIG1pZ2h0IGJlIHN0b3JlZCwgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHBvc3NpYmxlV29ya2Zsb3dEYXRhUGF0aHMgPSBbXG4gICcubmV4dC93b3JrZmxvdy1kYXRhJyxcbiAgJy53b3JrZmxvdy1kYXRhJyxcbiAgJ3dvcmtmbG93LWRhdGEnLFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0RhdGFEaXJJbmZvIHtcbiAgLyoqIEFic29sdXRlIHBhdGggdG8gdGhlIHdvcmtmbG93IGRhdGEgZGlyZWN0b3J5LCBpZiBmb3VuZC4gQWJzZW5jZSBpbmRpY2F0ZXMgdGhhdCB0aGUgZm9sZGVyIGRvZXMgbm90IHBvaW50IHRvIGEgcHJvamVjdCBvciBmb2xkZXIgd2l0aGluIGEgdmFsaWQgbG9jYWwgd29ybGQuICovXG4gIGRhdGFEaXI/OiBzdHJpbmc7XG4gIC8qKiBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBwcm9qZWN0IHJvb3QgKHBhcmVudCBvZiB0aGUgd29ya2Zsb3cgZGF0YSBmb2xkZXIpICovXG4gIHByb2plY3REaXI6IHN0cmluZztcbiAgLyoqIFNob3J0IG5hbWUgZm9yIGRpc3BsYXk6IHVwIHRvIGxhc3QgdHdvIGZvbGRlciBuYW1lcyBvZiBwcm9qZWN0RGlyICovXG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICAvKiogRXJyb3IgbWVzc2FnZSBpZiB0aGUgZ2l2ZW4gcGF0aCBjb3VsZG4ndCBiZSBhY2Nlc3NlZCAoZG9lc24ndCBleGlzdCBvciBpcyBub3QgcmVhZGFibGUpICovXG4gIGVycm9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV4cGFuZHMgYSBwYXRoIHRoYXQgc3RhcnRzIHdpdGggfiB0byB1c2UgdGhlIHVzZXIncyBob21lIGRpcmVjdG9yeS5cbiAqL1xuZnVuY3Rpb24gZXhwYW5kVGlsZGUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHBhdGguc3RhcnRzV2l0aCgnficpKSB7XG4gICAgcmV0dXJuIGpvaW4oaG9tZWRpcigpLCBwYXRoLnNsaWNlKDEpKTtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcGF0aCB0byBhbiBhYnNvbHV0ZSBwYXRoLlxuICovXG5mdW5jdGlvbiB0b0Fic29sdXRlUGF0aChwYXRoOiBzdHJpbmcsIGJhc2VQYXRoPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZXhwYW5kZWQgPSBleHBhbmRUaWxkZShwYXRoKTtcbiAgaWYgKGlzQWJzb2x1dGUoZXhwYW5kZWQpKSB7XG4gICAgcmV0dXJuIHJlc29sdmUoZXhwYW5kZWQpO1xuICB9XG4gIHJldHVybiByZXNvbHZlKGJhc2VQYXRoIHx8IHByb2Nlc3MuY3dkKCksIGV4cGFuZGVkKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB1cCB0byB0aGUgbGFzdCB0d28gZm9sZGVyIG5hbWVzIGZyb20gYSBwYXRoIGZvciBhIHNob3J0IGRpc3BsYXkgbmFtZS5cbiAqXG4gKiBFeGFtcGxlczpcbiAqIC0gYC9Vc2Vycy9wZXRlci9jb2RlL215cHJvamVjdGAg4oaSIGBjb2RlL215cHJvamVjdGBcbiAqIC0gYC9teXByb2plY3RgIOKGkiBgbXlwcm9qZWN0YFxuICogLSBgL2Ag4oaSIGAvYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlyU2hvcnROYW1lKHByb2plY3REaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzID0gcHJvamVjdERpci5zcGxpdChzZXApLmZpbHRlcihCb29sZWFuKTtcbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnLyc7XG4gIH1cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBwYXJ0c1swXTtcbiAgfVxuICByZXR1cm4gcGFydHMuc2xpY2UoLTIpLmpvaW4oJy8nKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBkaXJlY3RvcnkgZXhpc3RzLlxuICovXG5hc3luYyBmdW5jdGlvbiBkaXJlY3RvcnlFeGlzdHMocGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYWNjZXNzKHBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIHBhdGggaXMgaXRzZWxmIGEgd29ya2Zsb3cgZGF0YSBkaXJlY3RvcnlcbiAqIChlbmRzIHdpdGggb25lIG9mIHRoZSBwb3NzaWJsZVdvcmtmbG93RGF0YVBhdGhzKS5cbiAqXG4gKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBzdWZmaXggYW5kIHRoZSBwcm9qZWN0RGlyIGlmIGZvdW5kLlxuICovXG5mdW5jdGlvbiBjaGVja0lmUGF0aElzV29ya2Zsb3dEYXRhRGlyKFxuICBhYnNvbHV0ZVBhdGg6IHN0cmluZ1xuKTogeyBzdWZmaXg6IHN0cmluZzsgcHJvamVjdERpcjogc3RyaW5nIH0gfCBudWxsIHtcbiAgZm9yIChjb25zdCBzdWZmaXggb2YgcG9zc2libGVXb3JrZmxvd0RhdGFQYXRocykge1xuICAgIC8vIEhhbmRsZSBib3RoIGZvcndhcmQgc2xhc2hlcyBhbmQgdGhlIHBsYXRmb3JtJ3Mgc2VwYXJhdG9yXG4gICAgY29uc3Qgbm9ybWFsaXplZFN1ZmZpeCA9IHN1ZmZpeC5zcGxpdCgnLycpLmpvaW4oc2VwKTtcbiAgICBpZiAoYWJzb2x1dGVQYXRoLmVuZHNXaXRoKG5vcm1hbGl6ZWRTdWZmaXgpKSB7XG4gICAgICAvLyBDYWxjdWxhdGUgaG93IG1hbnkgZGlyZWN0b3JpZXMgdXAgd2UgbmVlZCB0byBnb1xuICAgICAgY29uc3Qgc3VmZml4UGFydHMgPSBzdWZmaXguc3BsaXQoJy8nKS5sZW5ndGg7XG4gICAgICBsZXQgcHJvamVjdERpciA9IGFic29sdXRlUGF0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3VmZml4UGFydHM7IGkrKykge1xuICAgICAgICBwcm9qZWN0RGlyID0gZGlybmFtZShwcm9qZWN0RGlyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHN1ZmZpeCwgcHJvamVjdERpciB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgd29ya2Zsb3cgZGF0YSBkaXJlY3Rvcnkgc3RhcnRpbmcgZnJvbSB0aGUgZ2l2ZW4gcGF0aC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgc2V2ZXJhbCBjYXNlczpcbiAqIDEuIFRoZSBwYXRoIGl0c2VsZiBpcyBhIHdvcmtmbG93IGRhdGEgZGlyZWN0b3J5XG4gKiAyLiBUaGUgcGF0aCBjb250YWlucyBvbmUgb2YgdGhlIGtub3duIHdvcmtmbG93IGRhdGEgZGlyZWN0b3JpZXNcbiAqIDMuIFRoZSBwYXRoIGlzIHNvbWV3aGVyZSBpbnNpZGUgYSBwcm9qZWN0IHdpdGggd29ya2Zsb3cgZGF0YVxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgZGlyZWN0b3J5IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIChjYW4gYmUgcmVsYXRpdmUsIGFic29sdXRlLCBvciB1c2UgfilcbiAqIEByZXR1cm5zIEluZm9ybWF0aW9uIGFib3V0IHRoZSBmb3VuZCB3b3JrZmxvdyBkYXRhIGRpcmVjdG9yeSwgb3IgbnVsbCBpZiBub3QgZm91bmRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRXb3JrZmxvd0RhdGFEaXIoXG4gIGN3ZDogc3RyaW5nXG4pOiBQcm9taXNlPFdvcmtmbG93RGF0YURpckluZm8+IHtcbiAgY29uc3QgYWJzb2x1dGVDd2QgPSB0b0Fic29sdXRlUGF0aChjd2QpO1xuXG4gIC8vIFByZS1jaGVjayBpZiB0aGUgcGFzc2VkIHBhdGggaXMgdmFsaWQgYXQgYWxsXG4gIGlmICghKGF3YWl0IGRpcmVjdG9yeUV4aXN0cyhhYnNvbHV0ZUN3ZCkpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb2plY3REaXI6IGFic29sdXRlQ3dkLFxuICAgICAgZGF0YURpcjogdW5kZWZpbmVkLFxuICAgICAgc2hvcnROYW1lOiBnZXREaXJTaG9ydE5hbWUoYWJzb2x1dGVDd2QpLFxuICAgICAgZXJyb3I6ICdGb2xkZXIgZG9lcyBub3QgZXhpc3QnLFxuICAgIH07XG4gIH1cblxuICAvLyBDYXNlIDE6IENoZWNrIGlmIHRoZSBwYXRoIGl0c2VsZiBpcyBhbHJlYWR5IGEgd29ya2Zsb3cgZGF0YSBkaXJlY3RvcnlcbiAgY29uc3QgaXNEYXRhRGlyID0gY2hlY2tJZlBhdGhJc1dvcmtmbG93RGF0YURpcihhYnNvbHV0ZUN3ZCk7XG4gIGlmIChpc0RhdGFEaXIgJiYgKGF3YWl0IGRpcmVjdG9yeUV4aXN0cyhhYnNvbHV0ZUN3ZCkpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb2plY3REaXI6IGlzRGF0YURpci5wcm9qZWN0RGlyLFxuICAgICAgZGF0YURpcjogYWJzb2x1dGVDd2QsXG4gICAgICBzaG9ydE5hbWU6IGdldERpclNob3J0TmFtZShpc0RhdGFEaXIucHJvamVjdERpciksXG4gICAgfTtcbiAgfVxuXG4gIC8vIENhc2UgMjogQ2hlY2sgaWYgY3dkIGNvbnRhaW5zIG9uZSBvZiB0aGUgd29ya2Zsb3cgZGF0YSBkaXJlY3Rvcmllc1xuICBmb3IgKGNvbnN0IHBhdGggb2YgcG9zc2libGVXb3JrZmxvd0RhdGFQYXRocykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gam9pbihhYnNvbHV0ZUN3ZCwgcGF0aCk7XG4gICAgaWYgKGF3YWl0IGRpcmVjdG9yeUV4aXN0cyhmdWxsUGF0aCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb2plY3REaXI6IGFic29sdXRlQ3dkLFxuICAgICAgICBkYXRhRGlyOiByZXNvbHZlKGZ1bGxQYXRoKSxcbiAgICAgICAgc2hvcnROYW1lOiBnZXREaXJTaG9ydE5hbWUoYWJzb2x1dGVDd2QpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBDYXNlIDM6IFdhbGsgdXAgdGhlIGRpcmVjdG9yeSB0cmVlIHRvIGZpbmQgdGhlIHByb2plY3Qgcm9vdFxuICBsZXQgY3VycmVudERpciA9IGFic29sdXRlQ3dkO1xuICBjb25zdCByb290ID0gcmVzb2x2ZSgnLycpO1xuXG4gIHdoaWxlIChjdXJyZW50RGlyICE9PSByb290KSB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IHdvcmtmbG93IGRhdGEgcGF0aCBleGlzdHMgaGVyZVxuICAgIGZvciAoY29uc3QgcGF0aCBvZiBwb3NzaWJsZVdvcmtmbG93RGF0YVBhdGhzKSB7XG4gICAgICBjb25zdCBmdWxsUGF0aCA9IGpvaW4oY3VycmVudERpciwgcGF0aCk7XG4gICAgICBpZiAoYXdhaXQgZGlyZWN0b3J5RXhpc3RzKGZ1bGxQYXRoKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHByb2plY3REaXI6IGN1cnJlbnREaXIsXG4gICAgICAgICAgZGF0YURpcjogcmVzb2x2ZShmdWxsUGF0aCksXG4gICAgICAgICAgc2hvcnROYW1lOiBnZXREaXJTaG9ydE5hbWUoY3VycmVudERpciksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50RGlyID0gZGlybmFtZShjdXJyZW50RGlyKTtcbiAgICBpZiAocGFyZW50RGlyID09PSBjdXJyZW50RGlyKSB7XG4gICAgICBicmVhazsgLy8gUmVhY2hlZCB0aGUgZmlsZXN5c3RlbSByb290XG4gICAgfVxuICAgIGN1cnJlbnREaXIgPSBwYXJlbnREaXI7XG4gIH1cblxuICAvLyBJZiB3ZSBnZXQgaGVyZSwgd2UgZGlkbid0IGZpbmQgYSB3b3JrZmxvdyBkYXRhIGRpcmVjdG9yeVxuXG4gIHJldHVybiB7XG4gICAgcHJvamVjdERpcjogYWJzb2x1dGVDd2QsXG4gICAgZGF0YURpcjogdW5kZWZpbmVkLFxuICAgIHNob3J0TmFtZTogZ2V0RGlyU2hvcnROYW1lKGFic29sdXRlQ3dkKSxcbiAgfTtcbn1cbiJdfQ==
|
package/dist/get-port.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-port.d.ts","sourceRoot":"","sources":["../src/get-port.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-port.d.ts","sourceRoot":"","sources":["../src/get-port.ts"],"names":[],"mappings":"AAgPA;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBrD;AAED;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG3D;AAMD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiCD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqC7B"}
|
package/dist/get-port.js
CHANGED
|
@@ -17,6 +17,28 @@ function parsePort(value, radix = 10) {
|
|
|
17
17
|
// Since /proc is a virtual Linux filesystem, this causes build failures in @sveltejs/adapter-vercel.
|
|
18
18
|
const join = (arr, sep) => arr.join(sep);
|
|
19
19
|
const PROC_ROOT = join(['', 'proc'], '/');
|
|
20
|
+
function getReportedPorts() {
|
|
21
|
+
const report = process.report?.getReport?.();
|
|
22
|
+
const handles = report?.libuv;
|
|
23
|
+
if (!handles) {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
const ports = [];
|
|
27
|
+
const seen = new Set();
|
|
28
|
+
for (const handle of handles) {
|
|
29
|
+
if (handle.type !== 'tcp' ||
|
|
30
|
+
handle.is_active !== true ||
|
|
31
|
+
handle.remoteEndpoint !== null) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const port = parsePort(String(handle.localEndpoint?.port));
|
|
35
|
+
if (port !== undefined && !seen.has(port)) {
|
|
36
|
+
ports.push(port);
|
|
37
|
+
seen.add(port);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return ports;
|
|
41
|
+
}
|
|
20
42
|
/**
|
|
21
43
|
* Gets ALL listening ports for the current process on Linux by reading /proc filesystem.
|
|
22
44
|
* Returns ports in order of file descriptor (deterministic ordering).
|
|
@@ -183,6 +205,10 @@ async function getWindowsPorts(pid) {
|
|
|
183
205
|
export async function getAllPorts() {
|
|
184
206
|
const { pid, platform } = process;
|
|
185
207
|
try {
|
|
208
|
+
const reportedPorts = getReportedPorts();
|
|
209
|
+
if (reportedPorts.length > 0) {
|
|
210
|
+
return reportedPorts;
|
|
211
|
+
}
|
|
186
212
|
switch (platform) {
|
|
187
213
|
case 'linux':
|
|
188
214
|
return await getLinuxPorts(pid);
|
|
@@ -274,4 +300,4 @@ export async function getWorkflowPort(options) {
|
|
|
274
300
|
}
|
|
275
301
|
return ports[0];
|
|
276
302
|
}
|
|
277
|
-
//# sourceMappingURL=get-port.js.map
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2V0LXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTFDOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQUssR0FBRyxFQUFFO0lBQzFDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELG1GQUFtRjtBQUNuRixnR0FBZ0c7QUFDaEcscUdBQXFHO0FBQ3JHLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBYSxFQUFFLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFXMUMsU0FBUyxnQkFBZ0I7SUFDdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFFN0IsQ0FBQztJQUNkLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUM7SUFFOUIs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LENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxxRUFBcUU7SUFDckUsNEJBQTRCO0lBQzVCLDhDQUE4QztJQUM5QyxrQ0FBa0M7SUFDbEMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxhQUFhLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUNYLCtEQUErRCxFQUMvRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY0ZpbGUgfSBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgcmVhZGRpciwgcmVhZEZpbGUsIHJlYWRsaW5rIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICdub2RlOnV0aWwnO1xuXG5jb25zdCBleGVjRmlsZUFzeW5jID0gcHJvbWlzaWZ5KGV4ZWNGaWxlKTtcblxuLyoqXG4gKiBQYXJzZXMgYSBwb3J0IHN0cmluZyBhbmQgcmV0dXJucyBpdCBpZiB2YWxpZCAoMC02NTUzNSksIG90aGVyd2lzZSB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUG9ydCh2YWx1ZTogc3RyaW5nLCByYWRpeCA9IDEwKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcG9ydCA9IHBhcnNlSW50KHZhbHVlLCByYWRpeCk7XG4gIGlmICghTnVtYmVyLmlzTmFOKHBvcnQpICYmIHBvcnQgPj0gMCAmJiBwb3J0IDw9IDY1NTM1KSB7XG4gICAgcmV0dXJuIHBvcnQ7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8gTk9URTogV2UgYnVpbGQgL3Byb2MgcGF0aHMgZHluYW1pY2FsbHkgdG8gcHJldmVudCBAdmVyY2VsL25mdCBmcm9tIHRyYWNpbmcgdGhlbS5cbi8vIE5GVCdzIHN0YXRpYyBhbmFseXNpcyB0cmllcyB0byBidW5kbGUgYW55IGZpbGUgcGF0aCBsaXRlcmFsIGl0IGZpbmRzIChlLmcuLCAnL3Byb2MvbmV0L3RjcCcpLlxuLy8gU2luY2UgL3Byb2MgaXMgYSB2aXJ0dWFsIExpbnV4IGZpbGVzeXN0ZW0sIHRoaXMgY2F1c2VzIGJ1aWxkIGZhaWx1cmVzIGluIEBzdmVsdGVqcy9hZGFwdGVyLXZlcmNlbC5cbmNvbnN0IGpvaW4gPSAoYXJyOiBzdHJpbmdbXSwgc2VwOiBzdHJpbmcpID0+IGFyci5qb2luKHNlcCk7XG5jb25zdCBQUk9DX1JPT1QgPSBqb2luKFsnJywgJ3Byb2MnXSwgJy8nKTtcblxuaW50ZXJmYWNlIExpYnV2VGNwSGFuZGxlIHtcbiAgdHlwZT86IHN0cmluZztcbiAgaXNfYWN0aXZlPzogYm9vbGVhbjtcbiAgbG9jYWxFbmRwb2ludD86IHtcbiAgICBwb3J0PzogbnVtYmVyO1xuICB9O1xuICByZW1vdGVFbmRwb2ludD86IHVua25vd247XG59XG5cbmZ1bmN0aW9uIGdldFJlcG9ydGVkUG9ydHMoKTogbnVtYmVyW10ge1xuICBjb25zdCByZXBvcnQgPSBwcm9jZXNzLnJlcG9ydD8uZ2V0UmVwb3J0Py4oKSBhc1xuICAgIHwgeyBsaWJ1dj86IExpYnV2VGNwSGFuZGxlW10gfVxuICAgIHwgdW5kZWZpbmVkO1xuICBjb25zdCBoYW5kbGVzID0gcmVwb3J0Py5saWJ1djtcblxuICBpZiAoIWhhbmRsZXMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwb3J0czogbnVtYmVyW10gPSBbXTtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuXG4gIGZvciAoY29uc3QgaGFuZGxlIG9mIGhhbmRsZXMpIHtcbiAgICBpZiAoXG4gICAgICBoYW5kbGUudHlwZSAhPT0gJ3RjcCcgfHxcbiAgICAgIGhhbmRsZS5pc19hY3RpdmUgIT09IHRydWUgfHxcbiAgICAgIGhhbmRsZS5yZW1vdGVFbmRwb2ludCAhPT0gbnVsbFxuICAgICkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcG9ydCA9IHBhcnNlUG9ydChTdHJpbmcoaGFuZGxlLmxvY2FsRW5kcG9pbnQ/LnBvcnQpKTtcbiAgICBpZiAocG9ydCAhPT0gdW5kZWZpbmVkICYmICFzZWVuLmhhcyhwb3J0KSkge1xuICAgICAgcG9ydHMucHVzaChwb3J0KTtcbiAgICAgIHNlZW4uYWRkKHBvcnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwb3J0cztcbn1cblxuLyoqXG4gKiBHZXRzIEFMTCBsaXN0ZW5pbmcgcG9ydHMgZm9yIHRoZSBjdXJyZW50IHByb2Nlc3Mgb24gTGludXggYnkgcmVhZGluZyAvcHJvYyBmaWxlc3lzdGVtLlxuICogUmV0dXJucyBwb3J0cyBpbiBvcmRlciBvZiBmaWxlIGRlc2NyaXB0b3IgKGRldGVybWluaXN0aWMgb3JkZXJpbmcpLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMaW51eFBvcnRzKHBpZDogbnVtYmVyKTogUHJvbWlzZTxudW1iZXJbXT4ge1xuICBjb25zdCBsaXN0ZW5TdGF0ZSA9ICcwQSc7IC8vIFRDUCBMSVNURU4gc3RhdGUgaW4gL3Byb2MvbmV0L3RjcFxuICBjb25zdCB0Y3BGaWxlcyA9IFtgJHtQUk9DX1JPT1R9L25ldC90Y3BgLCBgJHtQUk9DX1JPT1R9L25ldC90Y3A2YF0gYXMgY29uc3Q7XG5cbiAgLy8gU3RlcCAxOiBHZXQgc29ja2V0IGlub2RlcyBmcm9tIC9wcm9jLzxwaWQ+L2ZkLyBpbiBvcmRlclxuICAvLyBXZSBwcmVzZXJ2ZSBvcmRlciB0byBtYWludGFpbiBkZXRlcm1pbmlzdGljIGJlaGF2aW9yXG4gIC8vIFVzZSBib3RoIGFycmF5IChmb3Igb3JkZXIpIGFuZCBTZXQgKGZvciBPKDEpIGxvb2t1cClcbiAgY29uc3Qgc29ja2V0SW5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzb2NrZXRJbm9kZXNTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgZmRQYXRoID0gYCR7UFJPQ19ST09UfS8ke3BpZH0vZmRgO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgZmRzID0gYXdhaXQgcmVhZGRpcihmZFBhdGgpO1xuICAgIC8vIFNvcnQgRkRzIG51bWVyaWNhbGx5IHRvIGVuc3VyZSBkZXRlcm1pbmlzdGljIG9yZGVyIChGRHMgYXJlIGFsd2F5cyBudW1lcmljIHN0cmluZ3MpXG4gICAgY29uc3Qgc29ydGVkRmRzID0gZmRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG51bUEgPSBOdW1iZXIucGFyc2VJbnQoYSwgMTApO1xuICAgICAgY29uc3QgbnVtQiA9IE51bWJlci5wYXJzZUludChiLCAxMCk7XG4gICAgICByZXR1cm4gbnVtQSAtIG51bUI7XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFxuICAgICAgc29ydGVkRmRzLm1hcChhc3luYyAoZmQpID0+IHtcbiAgICAgICAgY29uc3QgbGluayA9IGF3YWl0IHJlYWRsaW5rKGAke2ZkUGF0aH0vJHtmZH1gKTtcbiAgICAgICAgLy8gU29ja2V0IGxpbmtzIGxvb2sgbGlrZTogc29ja2V0OlsxMjM0NV1cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBsaW5rLm1hdGNoKC9ec29ja2V0OlxcWyhcXGQrKVxcXSQvKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoPy5bMV0gPz8gbnVsbDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSAnZnVsZmlsbGVkJyAmJiByZXN1bHQudmFsdWUpIHtcbiAgICAgICAgc29ja2V0SW5vZGVzLnB1c2gocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgc29ja2V0SW5vZGVzU2V0LmFkZChyZXN1bHQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgLy8gUHJvY2VzcyBtaWdodCBub3QgZXhpc3Qgb3Igbm8gcGVybWlzc2lvblxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGlmIChzb2NrZXRJbm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLy8gU3RlcCAyOiBSZWFkIC9wcm9jL25ldC90Y3AgYW5kIC9wcm9jL25ldC90Y3A2IHRvIGZpbmQgbGlzdGVuaW5nIHNvY2tldHNcbiAgLy8gRm9ybWF0OiBzbCBsb2NhbF9hZGRyZXNzIHJlbV9hZGRyZXNzIHN0IC4uLiBpbm9kZVxuICAvLyBsb2NhbF9hZGRyZXNzIGlzIGhleCBJUDpwb3J0LCBzdD0wQSBtZWFucyBMSVNURU5cbiAgY29uc3QgaW5vZGVUb1BvcnQgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gIGZvciAoY29uc3QgdGNwRmlsZSBvZiB0Y3BGaWxlcykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUodGNwRmlsZSwgJ3V0ZjgnKTtcbiAgICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJykuc2xpY2UoMSk7IC8vIFNraXAgaGVhZGVyXG5cbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBpZiAoIWxpbmUudHJpbSgpKSBjb250aW51ZTsgLy8gU2tpcCBlbXB0eSBsaW5lc1xuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gbGluZS50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA8IDEwKSBjb250aW51ZTtcblxuICAgICAgICBjb25zdCBsb2NhbEFkZHIgPSBwYXJ0c1sxXTsgLy8gZS5nLiwgXCIwMDAwMDAwMDowQkI4XCIgKDAuMC4wLjA6MzAwMClcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBwYXJ0c1szXTsgLy8gXCIwQVwiID0gTElTVEVOXG4gICAgICAgIGNvbnN0IGlub2RlID0gcGFydHNbOV07XG5cbiAgICAgICAgaWYgKCFsb2NhbEFkZHIgfHwgc3RhdGUgIT09IGxpc3RlblN0YXRlIHx8ICFpbm9kZSkgY29udGludWU7XG4gICAgICAgIGlmICghc29ja2V0SW5vZGVzU2V0Lmhhcyhpbm9kZSkpIGNvbnRpbnVlO1xuXG4gICAgICAgIC8vIEV4dHJhY3QgcG9ydCBmcm9tIGhleCBmb3JtYXQgKGUuZy4sIFwiMEJCOFwiIC0+IDMwMDApXG4gICAgICAgIGNvbnN0IGNvbG9uSW5kZXggPSBsb2NhbEFkZHIuaW5kZXhPZignOicpO1xuICAgICAgICBpZiAoY29sb25JbmRleCA9PT0gLTEpIGNvbnRpbnVlO1xuXG4gICAgICAgIGNvbnN0IHBvcnRIZXggPSBsb2NhbEFkZHIuc2xpY2UoY29sb25JbmRleCArIDEpO1xuICAgICAgICBpZiAoIXBvcnRIZXgpIGNvbnRpbnVlO1xuXG4gICAgICAgIGNvbnN0IHBvcnQgPSBwYXJzZVBvcnQocG9ydEhleCwgMTYpO1xuICAgICAgICBpZiAocG9ydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaW5vZGVUb1BvcnQuc2V0KGlub2RlLCBwb3J0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2gge31cbiAgfVxuXG4gIC8vIFJldHVybiBhbGwgcG9ydHMgaW4gc29ja2V0IGlub2RlIG9yZGVyIChkZXRlcm1pbmlzdGljKVxuICBjb25zdCBwb3J0czogbnVtYmVyW10gPSBbXTtcbiAgZm9yIChjb25zdCBpbm9kZSBvZiBzb2NrZXRJbm9kZXMpIHtcbiAgICBjb25zdCBwb3J0ID0gaW5vZGVUb1BvcnQuZ2V0KGlub2RlKTtcbiAgICBpZiAocG9ydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwb3J0cy5wdXNoKHBvcnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwb3J0cztcbn1cblxuLyoqXG4gKiBHZXRzIEFMTCBsaXN0ZW5pbmcgcG9ydHMgZm9yIHRoZSBjdXJyZW50IHByb2Nlc3Mgb24gbWFjT1MgdXNpbmcgbHNvZi5cbiAqIFJldHVybnMgcG9ydHMgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGluIGxzb2Ygb3V0cHV0LlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXREYXJ3aW5Qb3J0cyhwaWQ6IG51bWJlcik6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IHN0ZG91dCB9ID0gYXdhaXQgZXhlY0ZpbGVBc3luYygnbHNvZicsIFtcbiAgICAgICctYScsXG4gICAgICAnLWknLFxuICAgICAgJy1QJyxcbiAgICAgICctbicsXG4gICAgICAnLXAnLFxuICAgICAgcGlkLnRvU3RyaW5nKCksXG4gICAgXSk7XG5cbiAgICBjb25zdCBwb3J0czogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBsaW5lcyA9IHN0ZG91dC5zcGxpdCgnXFxuJyk7XG5cbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCdMSVNURU4nKSkge1xuICAgICAgICAvLyBDb2x1bW4gOSAoMC1pbmRleGVkOiA4KSBjb250YWlucyB0aGUgYWRkcmVzcyBsaWtlIFwiKjozMDAwXCIgb3IgXCIxMjcuMC4wLjE6MzAwMFwiXG4gICAgICAgIGNvbnN0IHBhcnRzID0gbGluZS50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgICAgICAgY29uc3QgYWRkciA9IHBhcnRzWzhdO1xuICAgICAgICBpZiAoYWRkcikge1xuICAgICAgICAgIGNvbnN0IGNvbG9uSW5kZXggPSBhZGRyLmxhc3RJbmRleE9mKCc6Jyk7XG4gICAgICAgICAgaWYgKGNvbG9uSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBwb3J0ID0gcGFyc2VQb3J0KGFkZHIuc2xpY2UoY29sb25JbmRleCArIDEpKTtcbiAgICAgICAgICAgIGlmIChwb3J0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgcG9ydHMucHVzaChwb3J0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcG9ydHM7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgQUxMIGxpc3RlbmluZyBwb3J0cyBmb3IgdGhlIGN1cnJlbnQgcHJvY2VzcyBvbiBXaW5kb3dzIHVzaW5nIG5ldHN0YXQuXG4gKiBSZXR1cm5zIHBvcnRzIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhciBpbiBuZXRzdGF0IG91dHB1dC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0V2luZG93c1BvcnRzKHBpZDogbnVtYmVyKTogUHJvbWlzZTxudW1iZXJbXT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBleGVjRmlsZUFzeW5jKCdjbWQnLCBbXG4gICAgICAnL2MnLFxuICAgICAgYG5ldHN0YXQgLWFubyB8IGZpbmRzdHIgJHtwaWR9IHwgZmluZHN0ciBMSVNURU5JTkdgLFxuICAgIF0pO1xuXG4gICAgY29uc3QgcG9ydHM6IG51bWJlcltdID0gW107XG4gICAgY29uc3QgdHJpbW1lZE91dHB1dCA9IHN0ZG91dC50cmltKCk7XG5cbiAgICBpZiAodHJpbW1lZE91dHB1dCkge1xuICAgICAgY29uc3QgbGluZXMgPSB0cmltbWVkT3V0cHV0LnNwbGl0KCdcXG4nKTtcbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAvLyBFeHRyYWN0IHBvcnQgZnJvbSB0aGUgbG9jYWwgYWRkcmVzcyBjb2x1bW5cbiAgICAgICAgLy8gTWF0Y2hlcyBib3RoIElQdjQgKGUuZy4sIFwiMTI3LjAuMC4xOjMwMDBcIikgYW5kIElQdjYgYnJhY2tldCBub3RhdGlvbiAoZS5nLiwgXCJbOjoxXTozMDAwXCIpXG4gICAgICAgIGNvbnN0IG1hdGNoID0gbGluZVxuICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAubWF0Y2goL15cXHMqVENQXFxzKyg/OlxcW1tcXGRhLWY6XStcXF18W1xcZC5dKyk6KFxcZCspXFxzKy9pKTtcbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgY29uc3QgcG9ydCA9IHBhcnNlUG9ydChtYXRjaFsxXSk7XG4gICAgICAgICAgaWYgKHBvcnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcG9ydHMucHVzaChwb3J0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcG9ydHM7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgYWxsIGxpc3RlbmluZyBwb3J0cyBmb3IgdGhlIGN1cnJlbnQgcHJvY2Vzcy5cbiAqIEByZXR1cm5zIEFycmF5IG9mIHBvcnQgbnVtYmVycyB0aGUgcHJvY2VzcyBpcyBsaXN0ZW5pbmcgb24sIGluIGRldGVybWluaXN0aWMgb3JkZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBbGxQb3J0cygpOiBQcm9taXNlPG51bWJlcltdPiB7XG4gIGNvbnN0IHsgcGlkLCBwbGF0Zm9ybSB9ID0gcHJvY2VzcztcblxuICB0cnkge1xuICAgIGNvbnN0IHJlcG9ydGVkUG9ydHMgPSBnZXRSZXBvcnRlZFBvcnRzKCk7XG4gICAgaWYgKHJlcG9ydGVkUG9ydHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHJlcG9ydGVkUG9ydHM7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwbGF0Zm9ybSkge1xuICAgICAgY2FzZSAnbGludXgnOlxuICAgICAgICByZXR1cm4gYXdhaXQgZ2V0TGludXhQb3J0cyhwaWQpO1xuICAgICAgY2FzZSAnZGFyd2luJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdldERhcndpblBvcnRzKHBpZCk7XG4gICAgICBjYXNlICd3aW4zMic6XG4gICAgICAgIHJldHVybiBhd2FpdCBnZXRXaW5kb3dzUG9ydHMocGlkKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKCdbZ2V0QWxsUG9ydHNdIERldGVjdGlvbiBmYWlsZWQ6JywgZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBwb3J0IG51bWJlciB0aGF0IHRoZSBwcm9jZXNzIGlzIGxpc3RlbmluZyBvbi5cbiAqIEByZXR1cm5zIFRoZSBwb3J0IG51bWJlciB0aGF0IHRoZSBwcm9jZXNzIGlzIGxpc3RlbmluZyBvbiwgb3IgdW5kZWZpbmVkIGlmIHRoZSBwcm9jZXNzIGlzIG5vdCBsaXN0ZW5pbmcgb24gYW55IHBvcnQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQb3J0KCk6IFByb21pc2U8bnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IHBvcnRzID0gYXdhaXQgZ2V0QWxsUG9ydHMoKTtcbiAgcmV0dXJuIHBvcnRzWzBdO1xufVxuXG4vLyBDb25maWd1cmF0aW9uIGZvciBIVFRQIHByb2JpbmdcbmNvbnN0IFBST0JFX1RJTUVPVVRfTVMgPSA1MDA7XG5jb25zdCBQUk9CRV9FTkRQT0lOVCA9ICcvLndlbGwta25vd24vd29ya2Zsb3cvdjEvZmxvdz9fX2hlYWx0aCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvYmVPcHRpb25zIHtcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvYmVzIGEgcG9ydCB0byBjaGVjayBpZiBpdCdzIHNlcnZpbmcgdGhlIHdvcmtmbG93IEhUVFAgc2VydmVyLlxuICogVXNlcyBIRUFEIHJlcXVlc3QgdG8gbWluaW1pemUgb3ZlcmhlYWQuXG4gKlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgcG9ydCByZXNwb25kcyB3aXRoIGEgMjAwIHN0YXR1cyBmcm9tIHRoZSBoZWFsdGggY2hlY2sgZW5kcG9pbnRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvYmVQb3J0KFxuICBwb3J0OiBudW1iZXIsXG4gIG9wdGlvbnM6IFByb2JlT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyBlbmRwb2ludCA9IFBST0JFX0VORFBPSU5ULCB0aW1lb3V0ID0gUFJPQkVfVElNRU9VVF9NUyB9ID0gb3B0aW9ucztcblxuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgdGltZW91dCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGBodHRwOi8vbG9jYWxob3N0OiR7cG9ydH0ke2VuZHBvaW50fWAsIHtcbiAgICAgIG1ldGhvZDogJ0hFQUQnLFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIFRoZSB3b3JrZmxvdyBoZWFsdGggZW5kcG9pbnQgcmV0dXJucyAyMDAgZm9yIGhlYWx0aHlcbiAgICByZXR1cm4gcmVzcG9uc2Uuc3RhdHVzID09PSAyMDA7XG4gIH0gY2F0Y2gge1xuICAgIC8vIENvbm5lY3Rpb24gcmVmdXNlZCwgdGltZW91dCwgb3Igb3RoZXIgZXJyb3JcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZmluYWxseSB7XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB3b3JrZmxvdyBzZXJ2ZXIgcG9ydCBieSBwcm9iaW5nIGFsbCBsaXN0ZW5pbmcgcG9ydHMuXG4gKiBUaGlzIGlzIG1vcmUgcmVsaWFibGUgdGhhbiBnZXRQb3J0KCkgd2hlbiBvdGhlciBzZXJ2aWNlcyAobGlrZSBOb2RlLmpzIGluc3BlY3RvcilcbiAqIG1heSBhbHNvIGJlIGxpc3RlbmluZyBvbiBwb3J0cy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHByb2JpbmdcbiAqIEByZXR1cm5zIFRoZSBwb3J0IG51bWJlciBvZiB0aGUgd29ya2Zsb3cgc2VydmVyLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXb3JrZmxvd1BvcnQoXG4gIG9wdGlvbnM/OiBQcm9iZU9wdGlvbnNcbik6IFByb21pc2U8bnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IHBvcnRzID0gYXdhaXQgZ2V0QWxsUG9ydHMoKTtcblxuICBpZiAocG9ydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChwb3J0cy5sZW5ndGggPT09IDEpIHtcbiAgICAvLyBPbmx5IG9uZSBwb3J0LCBubyBuZWVkIHRvIHByb2JlXG4gICAgcmV0dXJuIHBvcnRzWzBdO1xuICB9XG5cbiAgLy8gUHJvYmUgYWxsIHBvcnRzIGluIHBhcmFsbGVsXG4gIGNvbnN0IHByb2JlUmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIHBvcnRzLm1hcChhc3luYyAocG9ydCkgPT4gKHtcbiAgICAgIHBvcnQsXG4gICAgICBpc1dvcmtmbG93OiBhd2FpdCBwcm9iZVBvcnQocG9ydCwgb3B0aW9ucyksXG4gICAgfSkpXG4gICk7XG5cbiAgLy8gUmV0dXJuIGZpcnN0IHBvcnQgdGhhdCByZXNwb25kZWQgYXMgd29ya2Zsb3cgc2VydmVyXG4gIGNvbnN0IHdvcmtmbG93UG9ydCA9IHByb2JlUmVzdWx0cy5maW5kKChyKSA9PiByLmlzV29ya2Zsb3cpO1xuICBpZiAod29ya2Zsb3dQb3J0KSB7XG4gICAgcmV0dXJuIHdvcmtmbG93UG9ydC5wb3J0O1xuICB9XG5cbiAgLy8gRmFsbGJhY2sgdG8gZmlyc3QgcG9ydCBpZiBwcm9iaW5nIGRvZXNuJ3QgaWRlbnRpZnkgd29ya2Zsb3cgc2VydmVyXG4gIC8vIFRoaXMgaGFuZGxlcyBjYXNlcyB3aGVyZTpcbiAgLy8gLSBTZXJ2ZXIgaGFzbid0IHN0YXJ0ZWQgd29ya2Zsb3cgcm91dGVzIHlldFxuICAvLyAtIE5ldHdvcmsgaXNzdWVzIGR1cmluZyBwcm9iaW5nXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAnW2dldFdvcmtmbG93UG9ydF0gUHJvYmluZyBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBmaXJzdCBwb3J0OicsXG4gICAgICBwb3J0c1swXVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHBvcnRzWzBdO1xufVxuIl19
|
package/dist/index.js
CHANGED
|
@@ -3,4 +3,4 @@ export { parseClassName, parseStepName, parseWorkflowName, } from './parse-name.
|
|
|
3
3
|
export { once, withResolvers } from './promise.js';
|
|
4
4
|
export { parseDurationToDate } from './time.js';
|
|
5
5
|
export { isVercelWorldTarget, resolveWorkflowTargetWorld, usesVercelWorld, } from './world-target.js';
|
|
6
|
-
//# sourceMappingURL=
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxJQUFJLEVBQTZCLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsZUFBZSxHQUNoQixNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcGx1cmFsaXplIH0gZnJvbSAnLi9wbHVyYWxpemUuanMnO1xuZXhwb3J0IHtcbiAgcGFyc2VDbGFzc05hbWUsXG4gIHBhcnNlU3RlcE5hbWUsXG4gIHBhcnNlV29ya2Zsb3dOYW1lLFxufSBmcm9tICcuL3BhcnNlLW5hbWUuanMnO1xuZXhwb3J0IHsgb25jZSwgdHlwZSBQcm9taXNlV2l0aFJlc29sdmVycywgd2l0aFJlc29sdmVycyB9IGZyb20gJy4vcHJvbWlzZS5qcyc7XG5leHBvcnQgeyBwYXJzZUR1cmF0aW9uVG9EYXRlIH0gZnJvbSAnLi90aW1lLmpzJztcbmV4cG9ydCB7XG4gIGlzVmVyY2VsV29ybGRUYXJnZXQsXG4gIHJlc29sdmVXb3JrZmxvd1RhcmdldFdvcmxkLFxuICB1c2VzVmVyY2VsV29ybGQsXG59IGZyb20gJy4vd29ybGQtdGFyZ2V0LmpzJztcbiJdfQ==
|
package/dist/parse-name.js
CHANGED
|
@@ -77,4 +77,4 @@ export function parseStepName(name) {
|
|
|
77
77
|
export function parseClassName(name) {
|
|
78
78
|
return parseName('class', name);
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxTQUFTLFNBQVMsQ0FDaEIsR0FBVyxFQUNYLElBQVk7SUFFWixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELDJEQUEyRDtJQUMzRCxTQUFTO0lBQ1Qsc0RBQXNEO0lBQ3RELGlDQUFpQztJQUNqQyxzR0FBc0c7SUFDdEcsa0dBQWtHO0lBQ2xHLDZGQUE2RjtJQUM3RixNQUFNLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCwyRUFBMkU7SUFDM0UsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFckQsZ0RBQWdEO0lBQ2hELHlFQUF5RTtJQUN6RSwyRUFBMkU7SUFDM0UsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JDLDJDQUEyQztRQUMzQyxlQUFlLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQztTQUFNLENBQUM7UUFDTixtRUFBbUU7UUFDbkUsb0VBQW9FO1FBQ3BFLE1BQU0sY0FBYyxHQUNsQixlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2pELGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsZUFBZSxHQUFHLGNBQWMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsZ0ZBQWdGO0lBQ2hGLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BFLFNBQVMsR0FBRyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxTQUFTO1FBQ1QsZUFBZTtRQUNmLFlBQVk7S0FDYixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE9BQU8sU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJzZSBhIG1hY2hpbmUgcmVhZGFibGUgbmFtZS5cbiAqXG4gKiBAc2VlIHtAbGluayAuLi8uLi9zd2MtcGx1Z2luLXdvcmtmbG93L3RyYW5zZm9ybS9zcmMvbmFtaW5nLnJzfSBmb3IgdGhlIG5hbWluZyBzY2hlbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlTmFtZShcbiAgdGFnOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZ1xuKTogeyBzaG9ydE5hbWU6IHN0cmluZzsgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7IGZ1bmN0aW9uTmFtZTogc3RyaW5nIH0gfCBudWxsIHtcbiAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIExvb2tzIGxpa2Uge3ByZWZpeH0vL3ttb2R1bGVTcGVjaWZpZXJ9Ly97ZnVuY3Rpb25fbmFtZX1cIlxuICAvLyBXaGVyZTpcbiAgLy8gLSB7cHJlZml4fSBpcyBlaXRoZXIgJ3dvcmtmbG93JywgJ3N0ZXAnLCBvciAnY2xhc3MnXG4gIC8vIC0ge21vZHVsZVNwZWNpZmllcn0gaXMgZWl0aGVyOlxuICAvLyAgIC0gQSBtb2R1bGUgc3BlY2lmaWVyIChlLmcuLCBgcG9pbnRAMC4wLjFgLCBgQG15b3JnL3NoYXJlZEAxLjIuM2ApIHdoZW4gcHJvdmlkZWQgdmlhIHBsdWdpbiBjb25maWdcbiAgLy8gICAtIEEgcmVsYXRpdmUgcGF0aCBwcmVmaXhlZCB3aXRoIGAuL2AgKGUuZy4sIGAuL3NyYy9qb2JzL29yZGVyYCkgd2hlbiBubyBzcGVjaWZpZXIgaXMgcHJvdmlkZWRcbiAgLy8gLSB7ZnVuY3Rpb25fbmFtZX0gaXMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uICh3aXRoIG5lc3RlZCBmdW5jdGlvbnMgdXNpbmcgYC9gIHNlcGFyYXRvcnMpXG4gIGNvbnN0IFtwcmVmaXgsIG1vZHVsZVNwZWNpZmllciwgLi4uZnVuY3Rpb25OYW1lUGFydHNdID0gbmFtZS5zcGxpdCgnLy8nKTtcbiAgaWYgKHByZWZpeCAhPT0gdGFnIHx8ICFtb2R1bGVTcGVjaWZpZXIgfHwgZnVuY3Rpb25OYW1lUGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBmdW5jdGlvbk5hbWUgPSBmdW5jdGlvbk5hbWVQYXJ0cy5qb2luKCcvLycpO1xuICAvLyBGb3IgbmVzdGVkIGZ1bmN0aW9ucyBsaWtlIFwicHJvY2Vzc09yZGVyL2lubmVyU3RlcFwiLCBnZXQganVzdCBcImlubmVyU3RlcFwiXG4gIGxldCBzaG9ydE5hbWUgPSBmdW5jdGlvbk5hbWUuc3BsaXQoJy8nKS5hdCgtMSkgPz8gJyc7XG5cbiAgLy8gRXh0cmFjdCBhIHJlYXNvbmFibGUgbmFtZSBmb3IgZGVmYXVsdCBleHBvcnRzXG4gIC8vIEZvciBtb2R1bGUgc3BlY2lmaWVycyBsaWtlIFwicG9pbnRAMC4wLjFcIiwgdXNlIHRoZSBwYWNrYWdlIG5hbWUgXCJwb2ludFwiXG4gIC8vIEZvciByZWxhdGl2ZSBwYXRocyBsaWtlIFwiLi9zcmMvam9icy9vcmRlclwiLCB1c2UgdGhlIGxhc3Qgc2VnbWVudCBcIm9yZGVyXCJcbiAgbGV0IG1vZHVsZVNob3J0TmFtZSA9ICcnO1xuICBpZiAobW9kdWxlU3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy4vJykpIHtcbiAgICAvLyBSZWxhdGl2ZSBwYXRoOiB1c2UgdGhlIGxhc3QgcGF0aCBzZWdtZW50XG4gICAgbW9kdWxlU2hvcnROYW1lID0gbW9kdWxlU3BlY2lmaWVyLnNwbGl0KCcvJykuYXQoLTEpID8/ICcnO1xuICB9IGVsc2Uge1xuICAgIC8vIE1vZHVsZSBzcGVjaWZpZXI6IGV4dHJhY3QgcGFja2FnZSBuYW1lIChzdHJpcCB2ZXJzaW9uIGFuZCBzY29wZSlcbiAgICAvLyBlLmcuLCBcIkBteW9yZy9zaGFyZWRAMS4yLjNcIiAtPiBcInNoYXJlZFwiLCBcInBvaW50QDAuMC4xXCIgLT4gXCJwb2ludFwiXG4gICAgY29uc3Qgd2l0aG91dFZlcnNpb24gPVxuICAgICAgbW9kdWxlU3BlY2lmaWVyLnNwbGl0KCdAJykuc2xpY2UoMCwgLTEpLmpvaW4oJ0AnKSB8fFxuICAgICAgbW9kdWxlU3BlY2lmaWVyLnNwbGl0KCdAJylbMF07XG4gICAgbW9kdWxlU2hvcnROYW1lID0gd2l0aG91dFZlcnNpb24/LnNwbGl0KCcvJykuYXQoLTEpID8/ICcnO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBleHBvcnRzIHdpbGwgdXNlIHRoZSBtb2R1bGUgc2hvcnQgbmFtZS4gXCJfX2RlZmF1bHRcIiB3YXMgb25seVxuICAvLyB1c2VkIGZvciBvbmUgcGFja2FnZSB2ZXJzaW9uLCBzbyB0aGlzIGlzIGEgbWlub3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZml4LlxuICBpZiAoWydkZWZhdWx0JywgJ19fZGVmYXVsdCddLmluY2x1ZGVzKHNob3J0TmFtZSkgJiYgbW9kdWxlU2hvcnROYW1lKSB7XG4gICAgc2hvcnROYW1lID0gbW9kdWxlU2hvcnROYW1lO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzaG9ydE5hbWUsXG4gICAgbW9kdWxlU3BlY2lmaWVyLFxuICAgIGZ1bmN0aW9uTmFtZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIHdvcmtmbG93IG5hbWUgaW50byBpdHMgY29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSB3b3JrZmxvdyBuYW1lIHRvIHBhcnNlIChlLmcuLCBcIndvcmtmbG93Ly8uL3NyYy9qb2JzL29yZGVyLy9wcm9jZXNzT3JkZXJcIiBvciBcIndvcmtmbG93Ly9teXBhY2thZ2VAMS4wLjAvL3Byb2Nlc3NPcmRlclwiKS5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGBzaG9ydE5hbWVgLCBgbW9kdWxlU3BlY2lmaWVyYCwgYW5kIGBmdW5jdGlvbk5hbWVgIHByb3BlcnRpZXMuXG4gKiBXaGVuIHRoZSBuYW1lIGlzIGludmFsaWQsIHJldHVybnMgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXb3JrZmxvd05hbWUobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYXJzZU5hbWUoJ3dvcmtmbG93JywgbmFtZSk7XG59XG5cbi8qKlxuICogUGFyc2UgYSBzdGVwIG5hbWUgaW50byBpdHMgY29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBzdGVwIG5hbWUgdG8gcGFyc2UgKGUuZy4sIFwic3RlcC8vLi9zcmMvam9icy9vcmRlci8vZmV0Y2hEYXRhXCIgb3IgXCJzdGVwLy9AbXlvcmcvdGFza3NAMi4wLjAvL3Byb2Nlc3NPcmRlclwiKS5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGBzaG9ydE5hbWVgLCBgbW9kdWxlU3BlY2lmaWVyYCwgYW5kIGBmdW5jdGlvbk5hbWVgIHByb3BlcnRpZXMuXG4gKiBXaGVuIHRoZSBuYW1lIGlzIGludmFsaWQsIHJldHVybnMgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdGVwTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHBhcnNlTmFtZSgnc3RlcCcsIG5hbWUpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgY2xhc3MgSUQgaW50byBpdHMgY29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBjbGFzcyBJRCB0byBwYXJzZSAoZS5nLiwgXCJjbGFzcy8vLi9zcmMvbW9kZWxzL1BvaW50Ly9Qb2ludFwiIG9yIFwiY2xhc3MvL3BvaW50QDAuMC4xLy9Qb2ludFwiKS5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGBzaG9ydE5hbWVgLCBgbW9kdWxlU3BlY2lmaWVyYCwgYW5kIGBmdW5jdGlvbk5hbWVgIChjbGFzc05hbWUpIHByb3BlcnRpZXMuXG4gKiBXaGVuIHRoZSBuYW1lIGlzIGludmFsaWQsIHJldHVybnMgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDbGFzc05hbWUobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYXJzZU5hbWUoJ2NsYXNzJywgbmFtZSk7XG59XG4iXX0=
|
package/dist/pluralize.js
CHANGED
|
@@ -14,4 +14,4 @@
|
|
|
14
14
|
export function pluralize(singular, plural, count) {
|
|
15
15
|
return count === 1 ? singular : plural;
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1cmFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdXJhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixRQUFnQixFQUNoQixNQUFjLEVBQ2QsS0FBYTtJQUViLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgc2luZ3VsYXIgb3IgcGx1cmFsIGZvcm0gb2YgYSB3b3JkIGJhc2VkIG9uIGNvdW50LlxuICpcbiAqIEBwYXJhbSBzaW5ndWxhciAtIFRoZSBzaW5ndWxhciBmb3JtIG9mIHRoZSB3b3JkXG4gKiBAcGFyYW0gcGx1cmFsIC0gVGhlIHBsdXJhbCBmb3JtIG9mIHRoZSB3b3JkXG4gKiBAcGFyYW0gY291bnQgLSBUaGUgY291bnQgdG8gZGV0ZXJtaW5lIHdoaWNoIGZvcm0gdG8gdXNlXG4gKiBAcmV0dXJucyBUaGUgc2luZ3VsYXIgZm9ybSBpZiBjb3VudCBpcyAxLCBvdGhlcndpc2UgdGhlIHBsdXJhbCBmb3JtXG4gKlxuICogQGV4YW1wbGVcbiAqIHBsdXJhbGl6ZSgnc3RlcCcsICdzdGVwcycsIDEpIC8vICdzdGVwJ1xuICogcGx1cmFsaXplKCdzdGVwJywgJ3N0ZXBzJywgMykgLy8gJ3N0ZXBzJ1xuICogcGx1cmFsaXplKCdyZXRyeScsICdyZXRyaWVzJywgMCkgLy8gJ3JldHJpZXMnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVyYWxpemUoXG4gIHNpbmd1bGFyOiBzdHJpbmcsXG4gIHBsdXJhbDogc3RyaW5nLFxuICBjb3VudDogbnVtYmVyXG4pOiBzdHJpbmcge1xuICByZXR1cm4gY291bnQgPT09IDEgPyBzaW5ndWxhciA6IHBsdXJhbDtcbn1cbiJdfQ==
|
package/dist/promise.js
CHANGED
|
@@ -32,4 +32,4 @@ export function once(fn) {
|
|
|
32
32
|
};
|
|
33
33
|
return result;
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9taXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYTtJQUMzQixJQUFJLE9BQTRCLENBQUM7SUFDakMsSUFBSSxNQUErQixDQUFDO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ25ELE9BQU8sR0FBRyxRQUFRLENBQUM7UUFDbkIsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFJLEVBQVc7SUFDakMsTUFBTSxNQUFNLEdBQUc7UUFDYixJQUFJLEtBQUs7WUFDUCxNQUFNLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQcm9taXNlV2l0aFJlc29sdmVyczxUPiB7XG4gIHByb21pc2U6IFByb21pc2U8VD47XG4gIHJlc29sdmU6ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFBvbHlmaWxsIGZvciBgUHJvbWlzZS53aXRoUmVzb2x2ZXJzKClgLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvUHJvbWlzZS93aXRoUmVzb2x2ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUmVzb2x2ZXJzPFQ+KCk6IFByb21pc2VXaXRoUmVzb2x2ZXJzPFQ+IHtcbiAgbGV0IHJlc29sdmUhOiAodmFsdWU6IFQpID0+IHZvaWQ7XG4gIGxldCByZWplY3QhOiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8VD4oKF9yZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgcmVzb2x2ZSA9IF9yZXNvbHZlO1xuICAgIHJlamVjdCA9IF9yZWplY3Q7XG4gIH0pO1xuICByZXR1cm4geyBwcm9taXNlLCByZXNvbHZlLCByZWplY3QgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbGF6aWx5LWV2YWx1YXRlZCwgbWVtb2l6ZWQgdmVyc2lvbiBvZiB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uXG4gKlxuICogVGhlIHJldHVybmVkIG9iamVjdCBleHBvc2VzIGEgYHZhbHVlYCBnZXR0ZXIgdGhhdCBjYWxscyBgZm5gIG9ubHkgb25jZSxcbiAqIGNhY2hlcyBpdHMgcmVzdWx0LCBhbmQgcmV0dXJucyB0aGUgY2FjaGVkIHZhbHVlIG9uIHN1YnNlcXVlbnQgYWNjZXNzZXMuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHJldHVybiB0eXBlIG9mIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgb25jZSBhbmQgd2hvc2UgcmVzdWx0IHdpbGwgYmUgY2FjaGVkLlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggYSBgdmFsdWVgIHByb3BlcnR5IHRoYXQgcmV0dXJucyB0aGUgbWVtb2l6ZWQgcmVzdWx0IG9mIGBmbmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbmNlPFQ+KGZuOiAoKSA9PiBUKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBnZXQgdmFsdWUoKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGZuKCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzdWx0LCAndmFsdWUnLCB7IHZhbHVlIH0pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gIH07XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
package/dist/time.js
CHANGED
|
@@ -36,4 +36,4 @@ export function parseDurationToDate(param) {
|
|
|
36
36
|
throw new Error(`Invalid duration parameter. Expected a duration string, number (milliseconds), or Date object.`);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFrQztJQUNwRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckQsTUFBTSxJQUFJLEtBQUssQ0FDYixzQkFBc0IsS0FBSyxpRUFBaUUsQ0FDN0YsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxJQUFJLEtBQUssQ0FDYixxQkFBcUIsS0FBSywwREFBMEQsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO1NBQU0sSUFDTCxLQUFLLFlBQVksSUFBSTtRQUNyQixDQUFDLEtBQUs7WUFDSixPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLE9BQVEsS0FBYSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUMsRUFDL0MsQ0FBQztRQUNELDBFQUEwRTtRQUMxRSxPQUFPLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUUsS0FBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUNiLGdHQUFnRyxDQUNqRyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0cmluZ1ZhbHVlIH0gZnJvbSAnbXMnO1xuaW1wb3J0IG1zIGZyb20gJ21zJztcblxuLyoqXG4gKiBQYXJzZXMgYSBkdXJhdGlvbiBwYXJhbWV0ZXIgKHN0cmluZywgbnVtYmVyLCBvciBEYXRlKSBhbmQgcmV0dXJucyBhIERhdGUgb2JqZWN0XG4gKiByZXByZXNlbnRpbmcgd2hlbiB0aGUgZHVyYXRpb24gc2hvdWxkIGVsYXBzZS5cbiAqXG4gKiAtIEZvciBzdHJpbmdzOiBQYXJzZXMgZHVyYXRpb24gc3RyaW5ncyBsaWtlIFwiMXNcIiwgXCI1bVwiLCBcIjFoXCIsIGV0Yy4gdXNpbmcgdGhlIGBtc2AgbGlicmFyeVxuICogLSBGb3IgbnVtYmVyczogVHJlYXRzIGFzIG1pbGxpc2Vjb25kcyBmcm9tIG5vd1xuICogLSBGb3IgRGF0ZSBvYmplY3RzOiBSZXR1cm5zIHRoZSBkYXRlIGRpcmVjdGx5IChoYW5kbGVzIGJvdGggRGF0ZSBpbnN0YW5jZXMgYW5kIGRhdGUtbGlrZSBvYmplY3RzIGZyb20gZGVzZXJpYWxpemF0aW9uKVxuICpcbiAqIEBwYXJhbSBwYXJhbSAtIFRoZSBkdXJhdGlvbiBwYXJhbWV0ZXIgKFN0cmluZ1ZhbHVlLCBEYXRlLCBvciBudW1iZXIgb2YgbWlsbGlzZWNvbmRzKVxuICogQHJldHVybnMgQSBEYXRlIG9iamVjdCByZXByZXNlbnRpbmcgd2hlbiB0aGUgZHVyYXRpb24gc2hvdWxkIGVsYXBzZVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwYXJhbWV0ZXIgaXMgaW52YWxpZCBvciBjYW5ub3QgYmUgcGFyc2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUR1cmF0aW9uVG9EYXRlKHBhcmFtOiBTdHJpbmdWYWx1ZSB8IERhdGUgfCBudW1iZXIpOiBEYXRlIHtcbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBkdXJhdGlvbk1zID0gbXMocGFyYW0pO1xuICAgIGlmICh0eXBlb2YgZHVyYXRpb25NcyAhPT0gJ251bWJlcicgfHwgZHVyYXRpb25NcyA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgZHVyYXRpb246IFwiJHtwYXJhbX1cIi4gRXhwZWN0ZWQgYSB2YWxpZCBkdXJhdGlvbiBzdHJpbmcgbGlrZSBcIjFzXCIsIFwiMW1cIiwgXCIxaFwiLCBldGMuYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkgKyBkdXJhdGlvbk1zKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcGFyYW0gPT09ICdudW1iZXInKSB7XG4gICAgaWYgKHBhcmFtIDwgMCB8fCAhTnVtYmVyLmlzRmluaXRlKHBhcmFtKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBkdXJhdGlvbjogJHtwYXJhbX0uIEV4cGVjdGVkIGEgbm9uLW5lZ2F0aXZlIGZpbml0ZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpICsgcGFyYW0pO1xuICB9IGVsc2UgaWYgKFxuICAgIHBhcmFtIGluc3RhbmNlb2YgRGF0ZSB8fFxuICAgIChwYXJhbSAmJlxuICAgICAgdHlwZW9mIHBhcmFtID09PSAnb2JqZWN0JyAmJlxuICAgICAgdHlwZW9mIChwYXJhbSBhcyBhbnkpLmdldFRpbWUgPT09ICdmdW5jdGlvbicpXG4gICkge1xuICAgIC8vIEhhbmRsZSBib3RoIERhdGUgaW5zdGFuY2VzIGFuZCBkYXRlLWxpa2Ugb2JqZWN0cyAoZnJvbSBkZXNlcmlhbGl6YXRpb24pXG4gICAgcmV0dXJuIHBhcmFtIGluc3RhbmNlb2YgRGF0ZSA/IHBhcmFtIDogbmV3IERhdGUoKHBhcmFtIGFzIGFueSkuZ2V0VGltZSgpKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBkdXJhdGlvbiBwYXJhbWV0ZXIuIEV4cGVjdGVkIGEgZHVyYXRpb24gc3RyaW5nLCBudW1iZXIgKG1pbGxpc2Vjb25kcyksIG9yIERhdGUgb2JqZWN0LmBcbiAgICApO1xuICB9XG59XG4iXX0=
|
package/dist/world-target.js
CHANGED
|
@@ -11,4 +11,4 @@ export function isVercelWorldTarget(targetWorld) {
|
|
|
11
11
|
export function usesVercelWorld(env = process.env) {
|
|
12
12
|
return isVercelWorldTarget(resolveWorkflowTargetWorld(env));
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ybGQtdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dvcmxkLXRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLE1BQTJCLE9BQU8sQ0FBQyxHQUFHO0lBRXRDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztJQUNsRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxXQUFtQjtJQUNyRCxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksV0FBVyxLQUFLLHdCQUF3QixDQUFDO0FBQzlFLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixNQUEyQixPQUFPLENBQUMsR0FBRztJQUV0QyxPQUFPLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFdvcmtmbG93RW52aXJvbm1lbnQgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdvcmtmbG93VGFyZ2V0V29ybGQoXG4gIGVudjogV29ya2Zsb3dFbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52XG4pOiBzdHJpbmcge1xuICBjb25zdCBjb25maWd1cmVkV29ybGQgPSBlbnYuV09SS0ZMT1dfVEFSR0VUX1dPUkxEO1xuICBpZiAoY29uZmlndXJlZFdvcmxkKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3VyZWRXb3JsZDtcbiAgfVxuXG4gIHJldHVybiBlbnYuVkVSQ0VMX0RFUExPWU1FTlRfSUQgPyAndmVyY2VsJyA6ICdsb2NhbCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlcmNlbFdvcmxkVGFyZ2V0KHRhcmdldFdvcmxkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHRhcmdldFdvcmxkID09PSAndmVyY2VsJyB8fCB0YXJnZXRXb3JsZCA9PT0gJ0B3b3JrZmxvdy93b3JsZC12ZXJjZWwnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlc1ZlcmNlbFdvcmxkKFxuICBlbnY6IFdvcmtmbG93RW52aXJvbm1lbnQgPSBwcm9jZXNzLmVudlxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1ZlcmNlbFdvcmxkVGFyZ2V0KHJlc29sdmVXb3JrZmxvd1RhcmdldFdvcmxkKGVudikpO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-data-dir.js","sourceRoot":"","sources":["../src/check-data-dir.ts"],"names":[],"mappings":"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","sourcesContent":["import { access } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport { dirname, isAbsolute, join, resolve, sep } from 'node:path';\n\n/**\n * Known paths where workflow data might be stored, relative to the project root.\n */\nexport const possibleWorkflowDataPaths = [\n '.next/workflow-data',\n '.workflow-data',\n 'workflow-data',\n] as const;\n\nexport interface WorkflowDataDirInfo {\n /** Absolute path to the workflow data directory, if found. Absence indicates that the folder does not point to a project or folder within a valid local world. */\n dataDir?: string;\n /** Absolute path to the project root (parent of the workflow data folder) */\n projectDir: string;\n /** Short name for display: up to last two folder names of projectDir */\n shortName: string;\n /** Error message if the given path couldn't be accessed (doesn't exist or is not readable) */\n error?: string;\n}\n\n/**\n * Expands a path that starts with ~ to use the user's home directory.\n */\nfunction expandTilde(path: string): string {\n if (path.startsWith('~')) {\n return join(homedir(), path.slice(1));\n }\n return path;\n}\n\n/**\n * Normalizes a path to an absolute path.\n */\nfunction toAbsolutePath(path: string, basePath?: string): string {\n const expanded = expandTilde(path);\n if (isAbsolute(expanded)) {\n return resolve(expanded);\n }\n return resolve(basePath || process.cwd(), expanded);\n}\n\n/**\n * Extracts up to the last two folder names from a path for a short display name.\n *\n * Examples:\n * - `/Users/peter/code/myproject` → `code/myproject`\n * - `/myproject` → `myproject`\n * - `/` → `/`\n */\nexport function getDirShortName(projectDir: string): string {\n const parts = projectDir.split(sep).filter(Boolean);\n if (parts.length === 0) {\n return '/';\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return parts.slice(-2).join('/');\n}\n\n/**\n * Checks if a directory exists.\n */\nasync function directoryExists(path: string): Promise<boolean> {\n try {\n await access(path);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Checks if the given path is itself a workflow data directory\n * (ends with one of the possibleWorkflowDataPaths).\n *\n * Returns the matching suffix and the projectDir if found.\n */\nfunction checkIfPathIsWorkflowDataDir(\n absolutePath: string\n): { suffix: string; projectDir: string } | null {\n for (const suffix of possibleWorkflowDataPaths) {\n // Handle both forward slashes and the platform's separator\n const normalizedSuffix = suffix.split('/').join(sep);\n if (absolutePath.endsWith(normalizedSuffix)) {\n // Calculate how many directories up we need to go\n const suffixParts = suffix.split('/').length;\n let projectDir = absolutePath;\n for (let i = 0; i < suffixParts; i++) {\n projectDir = dirname(projectDir);\n }\n return { suffix, projectDir };\n }\n }\n return null;\n}\n\n/**\n * Finds the workflow data directory starting from the given path.\n *\n * This function handles several cases:\n * 1. The path itself is a workflow data directory\n * 2. The path contains one of the known workflow data directories\n * 3. The path is somewhere inside a project with workflow data\n *\n * @param cwd - The directory to start searching from (can be relative, absolute, or use ~)\n * @returns Information about the found workflow data directory, or null if not found\n */\nexport async function findWorkflowDataDir(\n cwd: string\n): Promise<WorkflowDataDirInfo> {\n const absoluteCwd = toAbsolutePath(cwd);\n\n // Pre-check if the passed path is valid at all\n if (!(await directoryExists(absoluteCwd))) {\n return {\n projectDir: absoluteCwd,\n dataDir: undefined,\n shortName: getDirShortName(absoluteCwd),\n error: 'Folder does not exist',\n };\n }\n\n // Case 1: Check if the path itself is already a workflow data directory\n const isDataDir = checkIfPathIsWorkflowDataDir(absoluteCwd);\n if (isDataDir && (await directoryExists(absoluteCwd))) {\n return {\n projectDir: isDataDir.projectDir,\n dataDir: absoluteCwd,\n shortName: getDirShortName(isDataDir.projectDir),\n };\n }\n\n // Case 2: Check if cwd contains one of the workflow data directories\n for (const path of possibleWorkflowDataPaths) {\n const fullPath = join(absoluteCwd, path);\n if (await directoryExists(fullPath)) {\n return {\n projectDir: absoluteCwd,\n dataDir: resolve(fullPath),\n shortName: getDirShortName(absoluteCwd),\n };\n }\n }\n\n // Case 3: Walk up the directory tree to find the project root\n let currentDir = absoluteCwd;\n const root = resolve('/');\n\n while (currentDir !== root) {\n // Check if any workflow data path exists here\n for (const path of possibleWorkflowDataPaths) {\n const fullPath = join(currentDir, path);\n if (await directoryExists(fullPath)) {\n return {\n projectDir: currentDir,\n dataDir: resolve(fullPath),\n shortName: getDirShortName(currentDir),\n };\n }\n }\n\n const parentDir = dirname(currentDir);\n if (parentDir === currentDir) {\n break; // Reached the filesystem root\n }\n currentDir = parentDir;\n }\n\n // If we get here, we didn't find a workflow data directory\n\n return {\n projectDir: absoluteCwd,\n dataDir: undefined,\n shortName: getDirShortName(absoluteCwd),\n };\n}\n"]}
|
package/dist/get-port.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-port.js","sourceRoot":"","sources":["../src/get-port.ts"],"names":[],"mappings":"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","sourcesContent":["import { execFile } from 'node:child_process';\nimport { readdir, readFile, readlink } from 'node:fs/promises';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\n/**\n * Parses a port string and returns it if valid (0-65535), otherwise undefined.\n */\nfunction parsePort(value: string, radix = 10): number | undefined {\n const port = parseInt(value, radix);\n if (!Number.isNaN(port) && port >= 0 && port <= 65535) {\n return port;\n }\n return undefined;\n}\n\n// NOTE: We build /proc paths dynamically to prevent @vercel/nft from tracing them.\n// NFT's static analysis tries to bundle any file path literal it finds (e.g., '/proc/net/tcp').\n// Since /proc is a virtual Linux filesystem, this causes build failures in @sveltejs/adapter-vercel.\nconst join = (arr: string[], sep: string) => arr.join(sep);\nconst PROC_ROOT = join(['', 'proc'], '/');\n\n/**\n * Gets ALL listening ports for the current process on Linux by reading /proc filesystem.\n * Returns ports in order of file descriptor (deterministic ordering).\n */\nasync function getLinuxPorts(pid: number): Promise<number[]> {\n const listenState = '0A'; // TCP LISTEN state in /proc/net/tcp\n const tcpFiles = [`${PROC_ROOT}/net/tcp`, `${PROC_ROOT}/net/tcp6`] as const;\n\n // Step 1: Get socket inodes from /proc/<pid>/fd/ in order\n // We preserve order to maintain deterministic behavior\n // Use both array (for order) and Set (for O(1) lookup)\n const socketInodes: string[] = [];\n const socketInodesSet = new Set<string>();\n const fdPath = `${PROC_ROOT}/${pid}/fd`;\n\n try {\n const fds = await readdir(fdPath);\n // Sort FDs numerically to ensure deterministic order (FDs are always numeric strings)\n const sortedFds = fds.sort((a, b) => {\n const numA = Number.parseInt(a, 10);\n const numB = Number.parseInt(b, 10);\n return numA - numB;\n });\n\n const results = await Promise.allSettled(\n sortedFds.map(async (fd) => {\n const link = await readlink(`${fdPath}/${fd}`);\n // Socket links look like: socket:[12345]\n const match = link.match(/^socket:\\[(\\d+)\\]$/);\n return match?.[1] ?? null;\n })\n );\n\n for (const result of results) {\n if (result.status === 'fulfilled' && result.value) {\n socketInodes.push(result.value);\n socketInodesSet.add(result.value);\n }\n }\n } catch {\n // Process might not exist or no permission\n return [];\n }\n\n if (socketInodes.length === 0) {\n return [];\n }\n\n // Step 2: Read /proc/net/tcp and /proc/net/tcp6 to find listening sockets\n // Format: sl local_address rem_address st ... inode\n // local_address is hex IP:port, st=0A means LISTEN\n const inodeToPort = new Map<string, number>();\n\n for (const tcpFile of tcpFiles) {\n try {\n const content = await readFile(tcpFile, 'utf8');\n const lines = content.split('\\n').slice(1); // Skip header\n\n for (const line of lines) {\n if (!line.trim()) continue; // Skip empty lines\n\n const parts = line.trim().split(/\\s+/);\n if (parts.length < 10) continue;\n\n const localAddr = parts[1]; // e.g., \"00000000:0BB8\" (0.0.0.0:3000)\n const state = parts[3]; // \"0A\" = LISTEN\n const inode = parts[9];\n\n if (!localAddr || state !== listenState || !inode) continue;\n if (!socketInodesSet.has(inode)) continue;\n\n // Extract port from hex format (e.g., \"0BB8\" -> 3000)\n const colonIndex = localAddr.indexOf(':');\n if (colonIndex === -1) continue;\n\n const portHex = localAddr.slice(colonIndex + 1);\n if (!portHex) continue;\n\n const port = parsePort(portHex, 16);\n if (port !== undefined) {\n inodeToPort.set(inode, port);\n }\n }\n } catch {}\n }\n\n // Return all ports in socket inode order (deterministic)\n const ports: number[] = [];\n for (const inode of socketInodes) {\n const port = inodeToPort.get(inode);\n if (port !== undefined) {\n ports.push(port);\n }\n }\n\n return ports;\n}\n\n/**\n * Gets ALL listening ports for the current process on macOS using lsof.\n * Returns ports in the order they appear in lsof output.\n */\nasync function getDarwinPorts(pid: number): Promise<number[]> {\n try {\n const { stdout } = await execFileAsync('lsof', [\n '-a',\n '-i',\n '-P',\n '-n',\n '-p',\n pid.toString(),\n ]);\n\n const ports: number[] = [];\n const lines = stdout.split('\\n');\n\n for (const line of lines) {\n if (line.includes('LISTEN')) {\n // Column 9 (0-indexed: 8) contains the address like \"*:3000\" or \"127.0.0.1:3000\"\n const parts = line.trim().split(/\\s+/);\n const addr = parts[8];\n if (addr) {\n const colonIndex = addr.lastIndexOf(':');\n if (colonIndex !== -1) {\n const port = parsePort(addr.slice(colonIndex + 1));\n if (port !== undefined) {\n ports.push(port);\n }\n }\n }\n }\n }\n\n return ports;\n } catch {\n return [];\n }\n}\n\n/**\n * Gets ALL listening ports for the current process on Windows using netstat.\n * Returns ports in the order they appear in netstat output.\n */\nasync function getWindowsPorts(pid: number): Promise<number[]> {\n try {\n const { stdout } = await execFileAsync('cmd', [\n '/c',\n `netstat -ano | findstr ${pid} | findstr LISTENING`,\n ]);\n\n const ports: number[] = [];\n const trimmedOutput = stdout.trim();\n\n if (trimmedOutput) {\n const lines = trimmedOutput.split('\\n');\n for (const line of lines) {\n // Extract port from the local address column\n // Matches both IPv4 (e.g., \"127.0.0.1:3000\") and IPv6 bracket notation (e.g., \"[::1]:3000\")\n const match = line\n .trim()\n .match(/^\\s*TCP\\s+(?:\\[[\\da-f:]+\\]|[\\d.]+):(\\d+)\\s+/i);\n if (match) {\n const port = parsePort(match[1]);\n if (port !== undefined) {\n ports.push(port);\n }\n }\n }\n }\n\n return ports;\n } catch {\n return [];\n }\n}\n\n/**\n * Gets all listening ports for the current process.\n * @returns Array of port numbers the process is listening on, in deterministic order.\n */\nexport async function getAllPorts(): Promise<number[]> {\n const { pid, platform } = process;\n\n try {\n switch (platform) {\n case 'linux':\n return await getLinuxPorts(pid);\n case 'darwin':\n return await getDarwinPorts(pid);\n case 'win32':\n return await getWindowsPorts(pid);\n default:\n return [];\n }\n } catch (error) {\n if (process.env.NODE_ENV === 'development') {\n console.debug('[getAllPorts] Detection failed:', error);\n }\n return [];\n }\n}\n\n/**\n * Gets the port number that the process is listening on.\n * @returns The port number that the process is listening on, or undefined if the process is not listening on any port.\n */\nexport async function getPort(): Promise<number | undefined> {\n const ports = await getAllPorts();\n return ports[0];\n}\n\n// Configuration for HTTP probing\nconst PROBE_TIMEOUT_MS = 500;\nconst PROBE_ENDPOINT = '/.well-known/workflow/v1/flow?__health';\n\nexport interface ProbeOptions {\n endpoint?: string;\n timeout?: number;\n}\n\n/**\n * Probes a port to check if it's serving the workflow HTTP server.\n * Uses HEAD request to minimize overhead.\n *\n * @returns true if the port responds with a 200 status from the health check endpoint\n */\nasync function probePort(\n port: number,\n options: ProbeOptions = {}\n): Promise<boolean> {\n const { endpoint = PROBE_ENDPOINT, timeout = PROBE_TIMEOUT_MS } = options;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetch(`http://localhost:${port}${endpoint}`, {\n method: 'HEAD',\n signal: controller.signal,\n });\n\n // The workflow health endpoint returns 200 for healthy\n return response.status === 200;\n } catch {\n // Connection refused, timeout, or other error\n return false;\n } finally {\n clearTimeout(timeoutId);\n }\n}\n\n/**\n * Gets the workflow server port by probing all listening ports.\n * This is more reliable than getPort() when other services (like Node.js inspector)\n * may also be listening on ports.\n *\n * @param options - Optional configuration for probing\n * @returns The port number of the workflow server, or undefined if not found\n */\nexport async function getWorkflowPort(\n options?: ProbeOptions\n): Promise<number | undefined> {\n const ports = await getAllPorts();\n\n if (ports.length === 0) {\n return undefined;\n }\n\n if (ports.length === 1) {\n // Only one port, no need to probe\n return ports[0];\n }\n\n // Probe all ports in parallel\n const probeResults = await Promise.all(\n ports.map(async (port) => ({\n port,\n isWorkflow: await probePort(port, options),\n }))\n );\n\n // Return first port that responded as workflow server\n const workflowPort = probeResults.find((r) => r.isWorkflow);\n if (workflowPort) {\n return workflowPort.port;\n }\n\n // Fallback to first port if probing doesn't identify workflow server\n // This handles cases where:\n // - Server hasn't started workflow routes yet\n // - Network issues during probing\n if (process.env.NODE_ENV === 'development') {\n console.debug(\n '[getWorkflowPort] Probing failed, falling back to first port:',\n ports[0]\n );\n }\n return ports[0];\n}\n"]}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,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","sourcesContent":["export { pluralize } from './pluralize.js';\nexport {\n parseClassName,\n parseStepName,\n parseWorkflowName,\n} from './parse-name.js';\nexport { once, type PromiseWithResolvers, withResolvers } from './promise.js';\nexport { parseDurationToDate } from './time.js';\nexport {\n isVercelWorldTarget,\n resolveWorkflowTargetWorld,\n usesVercelWorld,\n} from './world-target.js';\n"]}
|
package/dist/parse-name.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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","sourcesContent":["/**\n * Parse a machine readable name.\n *\n * @see {@link ../../swc-plugin-workflow/transform/src/naming.rs} for the naming scheme.\n */\nfunction parseName(\n tag: string,\n name: string\n): { shortName: string; moduleSpecifier: string; functionName: string } | null {\n if (typeof name !== 'string') {\n return null;\n }\n // Looks like {prefix}//{moduleSpecifier}//{function_name}\"\n // Where:\n // - {prefix} is either 'workflow', 'step', or 'class'\n // - {moduleSpecifier} is either:\n // - A module specifier (e.g., `point@0.0.1`, `@myorg/shared@1.2.3`) when provided via plugin config\n // - A relative path prefixed with `./` (e.g., `./src/jobs/order`) when no specifier is provided\n // - {function_name} is the name of the function (with nested functions using `/` separators)\n const [prefix, moduleSpecifier, ...functionNameParts] = name.split('//');\n if (prefix !== tag || !moduleSpecifier || functionNameParts.length === 0) {\n return null;\n }\n\n const functionName = functionNameParts.join('//');\n // For nested functions like \"processOrder/innerStep\", get just \"innerStep\"\n let shortName = functionName.split('/').at(-1) ?? '';\n\n // Extract a reasonable name for default exports\n // For module specifiers like \"point@0.0.1\", use the package name \"point\"\n // For relative paths like \"./src/jobs/order\", use the last segment \"order\"\n let moduleShortName = '';\n if (moduleSpecifier.startsWith('./')) {\n // Relative path: use the last path segment\n moduleShortName = moduleSpecifier.split('/').at(-1) ?? '';\n } else {\n // Module specifier: extract package name (strip version and scope)\n // e.g., \"@myorg/shared@1.2.3\" -> \"shared\", \"point@0.0.1\" -> \"point\"\n const withoutVersion =\n moduleSpecifier.split('@').slice(0, -1).join('@') ||\n moduleSpecifier.split('@')[0];\n moduleShortName = withoutVersion?.split('/').at(-1) ?? '';\n }\n\n // Default exports will use the module short name. \"__default\" was only\n // used for one package version, so this is a minor backwards compatibility fix.\n if (['default', '__default'].includes(shortName) && moduleShortName) {\n shortName = moduleShortName;\n }\n\n return {\n shortName,\n moduleSpecifier,\n functionName,\n };\n}\n\n/**\n * Parse a workflow name into its components.\n *\n * @param name - The workflow name to parse (e.g., \"workflow//./src/jobs/order//processOrder\" or \"workflow//mypackage@1.0.0//processOrder\").\n * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` properties.\n * When the name is invalid, returns `null`.\n */\nexport function parseWorkflowName(name: string) {\n return parseName('workflow', name);\n}\n\n/**\n * Parse a step name into its components.\n *\n * @param name - The step name to parse (e.g., \"step//./src/jobs/order//fetchData\" or \"step//@myorg/tasks@2.0.0//processOrder\").\n * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` properties.\n * When the name is invalid, returns `null`.\n */\nexport function parseStepName(name: string) {\n return parseName('step', name);\n}\n\n/**\n * Parse a class ID into its components.\n *\n * @param name - The class ID to parse (e.g., \"class//./src/models/Point//Point\" or \"class//point@0.0.1//Point\").\n * @returns An object with `shortName`, `moduleSpecifier`, and `functionName` (className) properties.\n * When the name is invalid, returns `null`.\n */\nexport function parseClassName(name: string) {\n return parseName('class', name);\n}\n"]}
|
package/dist/pluralize.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pluralize.js","sourceRoot":"","sources":["../src/pluralize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CACvB,QAAgB,EAChB,MAAc,EACd,KAAa;IAEb,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC","sourcesContent":["/**\n * Returns the singular or plural form of a word based on count.\n *\n * @param singular - The singular form of the word\n * @param plural - The plural form of the word\n * @param count - The count to determine which form to use\n * @returns The singular form if count is 1, otherwise the plural form\n *\n * @example\n * pluralize('step', 'steps', 1) // 'step'\n * pluralize('step', 'steps', 3) // 'steps'\n * pluralize('retry', 'retries', 0) // 'retries'\n */\nexport function pluralize(\n singular: string,\n plural: string,\n count: number\n): string {\n return count === 1 ? singular : plural;\n}\n"]}
|
package/dist/promise.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,OAA4B,CAAC;IACjC,IAAI,MAA+B,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACnD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,IAAI,CAAI,EAAW;IACjC,MAAM,MAAM,GAAG;QACb,IAAI,KAAK;YACP,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["export interface PromiseWithResolvers<T> {\n promise: Promise<T>;\n resolve: (value: T) => void;\n reject: (reason?: any) => void;\n}\n\n/**\n * Polyfill for `Promise.withResolvers()`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers\n */\nexport function withResolvers<T>(): PromiseWithResolvers<T> {\n let resolve!: (value: T) => void;\n let reject!: (reason?: any) => void;\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n return { promise, resolve, reject };\n}\n\n/**\n * Creates a lazily-evaluated, memoized version of the provided function.\n *\n * The returned object exposes a `value` getter that calls `fn` only once,\n * caches its result, and returns the cached value on subsequent accesses.\n *\n * @typeParam T - The return type of the provided function.\n * @param fn - The function to be called once and whose result will be cached.\n * @returns An object with a `value` property that returns the memoized result of `fn`.\n */\nexport function once<T>(fn: () => T) {\n const result = {\n get value() {\n const value = fn();\n Object.defineProperty(result, 'value', { value });\n return value;\n },\n };\n return result;\n}\n"]}
|
package/dist/time.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkC;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,iEAAiE,CAC7F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,qBAAqB,KAAK,0DAA0D,CACrF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACtC,CAAC;SAAM,IACL,KAAK,YAAY,IAAI;QACrB,CAAC,KAAK;YACJ,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAQ,KAAa,CAAC,OAAO,KAAK,UAAU,CAAC,EAC/C,CAAC;QACD,0EAA0E;QAC1E,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAE,KAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import type { StringValue } from 'ms';\nimport ms from 'ms';\n\n/**\n * Parses a duration parameter (string, number, or Date) and returns a Date object\n * representing when the duration should elapse.\n *\n * - For strings: Parses duration strings like \"1s\", \"5m\", \"1h\", etc. using the `ms` library\n * - For numbers: Treats as milliseconds from now\n * - For Date objects: Returns the date directly (handles both Date instances and date-like objects from deserialization)\n *\n * @param param - The duration parameter (StringValue, Date, or number of milliseconds)\n * @returns A Date object representing when the duration should elapse\n * @throws {Error} If the parameter is invalid or cannot be parsed\n */\nexport function parseDurationToDate(param: StringValue | Date | number): Date {\n if (typeof param === 'string') {\n const durationMs = ms(param);\n if (typeof durationMs !== 'number' || durationMs < 0) {\n throw new Error(\n `Invalid duration: \"${param}\". Expected a valid duration string like \"1s\", \"1m\", \"1h\", etc.`\n );\n }\n return new Date(Date.now() + durationMs);\n } else if (typeof param === 'number') {\n if (param < 0 || !Number.isFinite(param)) {\n throw new Error(\n `Invalid duration: ${param}. Expected a non-negative finite number of milliseconds.`\n );\n }\n return new Date(Date.now() + param);\n } else if (\n param instanceof Date ||\n (param &&\n typeof param === 'object' &&\n typeof (param as any).getTime === 'function')\n ) {\n // Handle both Date instances and date-like objects (from deserialization)\n return param instanceof Date ? param : new Date((param as any).getTime());\n } else {\n throw new Error(\n `Invalid duration parameter. Expected a duration string, number (milliseconds), or Date object.`\n );\n }\n}\n"]}
|
package/dist/world-target.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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","sourcesContent":["export type WorkflowEnvironment = Record<string, string | undefined>;\n\nexport function resolveWorkflowTargetWorld(\n env: WorkflowEnvironment = process.env\n): string {\n const configuredWorld = env.WORKFLOW_TARGET_WORLD;\n if (configuredWorld) {\n return configuredWorld;\n }\n\n return env.VERCEL_DEPLOYMENT_ID ? 'vercel' : 'local';\n}\n\nexport function isVercelWorldTarget(targetWorld: string): boolean {\n return targetWorld === 'vercel' || targetWorld === '@workflow/world-vercel';\n}\n\nexport function usesVercelWorld(\n env: WorkflowEnvironment = process.env\n): boolean {\n return isVercelWorldTarget(resolveWorkflowTargetWorld(env));\n}\n"]}
|