hledger-lsp 0.4.8 → 0.4.9

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.
@@ -3,5 +3,5 @@ import { Transaction } from '../../types';
3
3
  export declare function parseDate(dateStr: string): Date | null;
4
4
  export declare function validateDateOrdering(transactions: Transaction[], lines: string[], documentUri: string): Diagnostic[];
5
5
  export declare function validateDateFormat(transaction: Transaction, lines: string[]): Diagnostic[];
6
- export declare function validateFutureDate(transaction: Transaction, lines: string[]): Diagnostic[];
6
+ export declare function validateFutureDate(transaction: Transaction, lines: string[], now?: Date): Diagnostic[];
7
7
  //# sourceMappingURL=dates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../../src/features/validation/dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKtD;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,EAAE,CAsBpH;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CA2E1F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAuB1F"}
1
+ {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../../src/features/validation/dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKtD;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,EAAE,CAsBpH;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CA2E1F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,EAAE,CA0BtG"}
@@ -99,15 +99,18 @@ function validateDateFormat(transaction, lines) {
99
99
  }
100
100
  return diagnostics;
101
101
  }
102
- function validateFutureDate(transaction, lines) {
102
+ function validateFutureDate(transaction, lines, now) {
103
103
  const diagnostics = [];
104
104
  const parsedDate = parseDate(transaction.date);
105
105
  if (!parsedDate) {
106
106
  return diagnostics; // Already handled by validateDateFormat
107
107
  }
108
- // Use UTC for consistent date comparison regardless of timezone
109
- const today = new Date();
110
- today.setUTCHours(0, 0, 0, 0); // Reset time portion for date-only comparison
108
+ // Build "today" as UTC midnight using the local calendar date.
109
+ // parseDate() returns UTC midnight for "YYYY-MM-DD", so we need today
110
+ // as UTC midnight too for correct comparison but derived from the
111
+ // *local* date, since "today" is inherently a local concept (issue #11).
112
+ const currentTime = now ?? new Date();
113
+ const today = new Date(Date.UTC(currentTime.getFullYear(), currentTime.getMonth(), currentTime.getDate()));
111
114
  if (parsedDate > today) {
112
115
  const range = (0, utils_1.getTransactionRange)(transaction, lines);
113
116
  diagnostics.push({
@@ -1 +1 @@
1
- {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../../src/features/validation/dates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../../src/features/validation/dates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hledger-lsp",
3
- "version": "0.4.8",
3
+ "version": "0.4.9",
4
4
  "description": "Language Server Protocol implementation for hledger plain text accounting",
5
5
  "main": "./out/server.js",
6
6
  "bin": {