spec-copy-selection 1.0.7 → 1.0.8

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/cli/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readFileRange = exports.parseArgs = void 0;
3
+ exports.readFileRange = exports.parseArgs = exports.createLoadingIndicator = void 0;
4
+ var loadingIndicator_js_1 = require("./loadingIndicator.js");
5
+ Object.defineProperty(exports, "createLoadingIndicator", { enumerable: true, get: function () { return loadingIndicator_js_1.createLoadingIndicator; } });
4
6
  var parseArgs_js_1 = require("./parseArgs.js");
5
7
  Object.defineProperty(exports, "parseArgs", { enumerable: true, get: function () { return parseArgs_js_1.parseArgs; } });
6
8
  var readFileRange_js_1 = require("./readFileRange.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAQA,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAClB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAQA,6DAA+D;AAAtD,6HAAA,sBAAsB,OAAA;AAC/B,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAClB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createLoadingIndicator = createLoadingIndicator;
37
+ const WS_POPUP = 0x80000000;
38
+ const WS_VISIBLE = 0x10000000;
39
+ const WS_EX_TOPMOST = 0x00000008;
40
+ const WS_EX_TOOLWINDOW = 0x00000080;
41
+ const SWP_NOSIZE = 0x0001;
42
+ const SWP_NOZORDER = 0x0004;
43
+ const SWP_NOACTIVATE = 0x0010;
44
+ const DEFAULT_CONFIG = {
45
+ frames: ['...'],
46
+ interval: 33,
47
+ prefix: 'Copying ',
48
+ };
49
+ const noopIndicator = {
50
+ start: () => { },
51
+ stop: () => { },
52
+ };
53
+ async function createWindowsIndicator(config) {
54
+ let koffi;
55
+ try {
56
+ koffi = await Promise.resolve().then(() => __importStar(require('koffi')));
57
+ }
58
+ catch (_a) {
59
+ console.warn('Warning: Failed to load koffi, loading indicator disabled');
60
+ return noopIndicator;
61
+ }
62
+ const POINT = koffi.struct('POINT', {
63
+ x: 'int',
64
+ y: 'int',
65
+ });
66
+ let user32;
67
+ let GetCursorPos;
68
+ let CreateWindowExW;
69
+ let SetWindowPos;
70
+ let SetWindowTextW;
71
+ let DestroyWindow;
72
+ try {
73
+ user32 = koffi.load('user32.dll');
74
+ GetCursorPos = user32.func('GetCursorPos', 'bool', [koffi.out(koffi.pointer(POINT))]);
75
+ CreateWindowExW = user32.func('CreateWindowExW', 'void*', [
76
+ 'uint',
77
+ 'str16',
78
+ 'str16',
79
+ 'uint',
80
+ 'int',
81
+ 'int',
82
+ 'int',
83
+ 'int',
84
+ 'void*',
85
+ 'void*',
86
+ 'void*',
87
+ 'void*',
88
+ ]);
89
+ SetWindowPos = user32.func('SetWindowPos', 'bool', [
90
+ 'void*',
91
+ 'void*',
92
+ 'int',
93
+ 'int',
94
+ 'int',
95
+ 'int',
96
+ 'uint',
97
+ ]);
98
+ SetWindowTextW = user32.func('SetWindowTextW', 'bool', ['void*', 'str16']);
99
+ DestroyWindow = user32.func('DestroyWindow', 'bool', ['void*']);
100
+ }
101
+ catch (_b) {
102
+ console.warn('Warning: Failed to load User32.dll functions, loading indicator disabled');
103
+ return noopIndicator;
104
+ }
105
+ let hwnd = null;
106
+ let intervalId = null;
107
+ let frameIndex = 0;
108
+ return {
109
+ start() {
110
+ try {
111
+ const point = { x: 0, y: 0 };
112
+ GetCursorPos(point);
113
+ const windowStyle = WS_POPUP | WS_VISIBLE;
114
+ const extendedStyle = WS_EX_TOPMOST | WS_EX_TOOLWINDOW;
115
+ hwnd = CreateWindowExW(extendedStyle, 'STATIC', config.prefix + config.frames[0], windowStyle, point.x + 20, point.y + 20, 80, 20, null, null, null, null);
116
+ if (!hwnd) {
117
+ console.warn('Warning: Failed to create tooltip window');
118
+ return;
119
+ }
120
+ intervalId = setInterval(() => {
121
+ try {
122
+ if (!hwnd)
123
+ return;
124
+ GetCursorPos(point);
125
+ SetWindowPos(hwnd, null, point.x + 20, point.y + 20, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
126
+ frameIndex = (frameIndex + 1) % config.frames.length;
127
+ SetWindowTextW(hwnd, config.prefix + config.frames[frameIndex]);
128
+ }
129
+ catch (_a) {
130
+ }
131
+ }, config.interval);
132
+ }
133
+ catch (_a) {
134
+ console.warn('Warning: Failed to start loading indicator');
135
+ }
136
+ },
137
+ stop() {
138
+ try {
139
+ if (intervalId) {
140
+ clearInterval(intervalId);
141
+ intervalId = null;
142
+ }
143
+ if (hwnd) {
144
+ DestroyWindow(hwnd);
145
+ hwnd = null;
146
+ }
147
+ }
148
+ catch (_a) {
149
+ }
150
+ frameIndex = 0;
151
+ },
152
+ };
153
+ }
154
+ function createLoadingIndicator(config) {
155
+ if (process.platform !== 'win32') {
156
+ return noopIndicator;
157
+ }
158
+ const mergedConfig = Object.assign(Object.assign({}, DEFAULT_CONFIG), config);
159
+ let windowsIndicator = null;
160
+ let initPromise = null;
161
+ let started = false;
162
+ return {
163
+ start() {
164
+ started = true;
165
+ if (!initPromise) {
166
+ initPromise = createWindowsIndicator(mergedConfig);
167
+ }
168
+ initPromise
169
+ .then((indicator) => {
170
+ windowsIndicator = indicator;
171
+ if (started) {
172
+ indicator.start();
173
+ }
174
+ })
175
+ .catch(() => {
176
+ });
177
+ },
178
+ stop() {
179
+ started = false;
180
+ if (windowsIndicator) {
181
+ windowsIndicator.stop();
182
+ windowsIndicator = null;
183
+ }
184
+ else if (initPromise) {
185
+ initPromise
186
+ .then((indicator) => {
187
+ indicator.stop();
188
+ })
189
+ .catch(() => {
190
+ });
191
+ }
192
+ initPromise = null;
193
+ },
194
+ };
195
+ }
196
+ //# sourceMappingURL=loadingIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadingIndicator.js","sourceRoot":"","sources":["../../src/cli/loadingIndicator.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,8 +9,10 @@ const clipboardy_1 = __importDefault(require("clipboardy"));
9
9
  const index_js_1 = require("./cli/index.js");
10
10
  const transform_1 = require("./transform");
11
11
  async function main() {
12
+ const indicator = (0, index_js_1.createLoadingIndicator)();
12
13
  try {
13
14
  const args = (0, index_js_1.parseArgs)(process.argv.slice(2));
15
+ indicator.start();
14
16
  const { content, startLine: updatedStartLine, endLine: updatedEndLine, } = await (0, index_js_1.readFileRange)(args.filePath, args.startLine, args.endLine);
15
17
  const resolvedPath = node_path_1.default.resolve(process.cwd(), args.filePath);
16
18
  const metadata = {
@@ -22,9 +24,11 @@ async function main() {
22
24
  const transform = (0, transform_1.compose)(transform_1.formatOutput, transform_1.stripFrontmatter);
23
25
  const transformed = transform(content, metadata);
24
26
  await clipboardy_1.default.write(transformed);
27
+ indicator.stop();
25
28
  console.log(`✓ Copied lines ${updatedStartLine}-${updatedEndLine} from ${metadata.fileName} to clipboard`);
26
29
  }
27
30
  catch (error) {
31
+ indicator.stop();
28
32
  console.error('Error:', error instanceof Error ? error.message : String(error));
29
33
  process.exit(1);
30
34
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,0DAA6B;AAC7B,4DAAmC;AACnC,6CAA0D;AAE1D,2CAAsE;AAEtE,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QAEH,MAAM,IAAI,GAAG,IAAA,oBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAG9C,MAAM,EACJ,OAAO,EACP,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,cAAc,GACxB,GAAG,MAAM,IAAA,wBAAa,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAGrE,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAiB;YAC7B,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,mBAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,SAAS,EAAE,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACrC,SAAS,EAAE,GAAG,gBAAgB,IAAI,cAAc,EAAE;SACnD,CAAC;QAGF,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,wBAAY,EAAE,4BAAgB,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAGjD,MAAM,oBAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAGnC,OAAO,CAAC,GAAG,CACT,kBAAkB,gBAAgB,IAAI,cAAc,SAAS,QAAQ,CAAC,QAAQ,eAAe,CAC9F,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,0DAA6B;AAC7B,4DAAmC;AACnC,6CAAkF;AAElF,2CAAsE;AAEtE,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAA,iCAAsB,GAAE,CAAC;IAC3C,IAAI,CAAC;QAEH,MAAM,IAAI,GAAG,IAAA,oBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAG9C,SAAS,CAAC,KAAK,EAAE,CAAC;QAGlB,MAAM,EACJ,OAAO,EACP,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,cAAc,GACxB,GAAG,MAAM,IAAA,wBAAa,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAGrE,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAiB;YAC7B,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,mBAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,SAAS,EAAE,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACrC,SAAS,EAAE,GAAG,gBAAgB,IAAI,cAAc,EAAE;SACnD,CAAC;QAGF,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,wBAAY,EAAE,4BAAgB,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAGjD,MAAM,oBAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAGnC,SAAS,CAAC,IAAI,EAAE,CAAC;QAGjB,OAAO,CAAC,GAAG,CACT,kBAAkB,gBAAgB,IAAI,cAAc,SAAS,QAAQ,CAAC,QAAQ,eAAe,CAC9F,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-copy-selection",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "A CLI utility for copying text to clipboard",
5
5
  "main": "./dist/index.js",
6
6
  "bin": {
@@ -33,7 +33,8 @@
33
33
  "typescript": "^5"
34
34
  },
35
35
  "dependencies": {
36
- "clipboardy": "^5.1.0"
36
+ "clipboardy": "^5.1.0",
37
+ "koffi": "^2.15.1"
37
38
  },
38
39
  "scripts": {
39
40
  "dev": "bun run src/index.ts specs/cli-file-operations/backlog.md:69-70",