@barchart/portfolio-api-common 7.2.0 → 7.3.0

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.
@@ -171,10 +171,13 @@ module.exports = (() => {
171
171
  };
172
172
 
173
173
  const buySellFormatter = (t, f) => {
174
+ const ambiguous = is.object(t.snaptrade) && is.boolean(t.snaptrade.ambiguous) && t.snaptrade.ambiguous;
175
+
174
176
  f.boughtSold = t.quantity;
175
177
  f.price = t.trade.price;
176
178
  f.fee = t.fee;
177
179
  f.total = t.amount;
180
+ f.ambiguous = ambiguous;
178
181
 
179
182
  if (t.description) {
180
183
  f.description = t.description;
@@ -183,6 +186,7 @@ module.exports = (() => {
183
186
  f.raw.total = getRawForDecimal(f.total);
184
187
  f.raw.price = getRawForDecimal(f.price);
185
188
  f.raw.boughtSold = getRawForDecimal(f.boughtSold);
189
+ f.raw.ambiguous = ambiguous;
186
190
  };
187
191
 
188
192
  const dividendFormatter = (t, f) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barchart/portfolio-api-common",
3
- "version": "7.2.0",
3
+ "version": "7.3.0",
4
4
  "description": "Common JavaScript code used by Barchart's Portfolio Service",
5
5
  "author": {
6
6
  "name": "Bryan Ingle",
@@ -1,74 +0,0 @@
1
- ---
2
- apply: always
3
- ---
4
-
5
- # Univerzalna pravila pisanja koda (važe za svaki projekat)
6
-
7
- Piši novi i izmenjeni kod tako da izgleda kao da je pisan u istom stilu kao postojeći kod oko njega.
8
-
9
- ## 1) Prioritet pravila
10
-
11
- - Pre bilo kakve izmene pročitaj bar 80-120 linija fajla koji menjaš.
12
- - Ako projekat ima linter/formatter/config (`eslint`, `prettier`, `tsconfig`, `editorconfig`, `ruff`, `black`, `gofmt`, itd.), to ima prioritet nad ličnim stilom.
13
- - Zadrži isti stil uvlačenja koji fajl već koristi (`tab` ili razmaci).
14
- - Ne radi globalni reformat fajla i ne menjaj linije koje nisu deo zadatka.
15
- - Ako je stil neujednačen, prati dominantan stil najbližeg koda koji dodaješ.
16
-
17
- ## 2) Kvalitet i organizacija
18
-
19
- - Kod piši maksimalno profesionalno, organizovano i čitljivo, sa jasnim granicama odgovornosti.
20
- - Kod obavezno odvajaj u logičke celine praznim redom (deklaracije, validacije, transformacije, side-effect delovi, return).
21
- - Menjaj minimalan broj linija potreban za zadatak.
22
- - Ne diraj postojeće whitespace-only razlike van opsega izmene.
23
- - Ne menjaj formatiranje, whitespace, imenovanje promenljivih i stil postojećih metoda van direktnog opsega zadatka.
24
- - Ako u postojećem kodu primetiš nejasnoće ili stilsku nekonzistentnost, predloži izmene, ali ih ne primenjuj automatski.
25
- - Novi kod strukturiraj tako da kasnije dodavanje feature-a i izmene budu jednostavni i bezbedni.
26
-
27
- ## 3) Arhitektura i patterni
28
-
29
- - Koristi design pattern-e gde imaju smisla (`Singleton`, `Factory`, `Builder`), samo kada realno poboljšavaju čitljivost, testabilnost i proširivost.
30
- - Pre uvođenja pattern-a proveri da li već postoji isti ili sličan obrazac u projektu i prati taj postojeći pristup.
31
- - Ne uvodi pattern formalno ako donosi nepotrebnu kompleksnost.
32
-
33
- ## 4) Imenovanje
34
-
35
- - Poštuj naming konvencije projekta i jezika u kome radiš.
36
- - Za boolean promenljive nikada ne koristi prefiks `is` (`isValid`, `isActive`, itd.); koristi nazive tipa `valid`, `active`, `enabled`, `exists`.
37
-
38
- ## 5) JS/TS specifično (primeni samo u JS/TS fajlovima)
39
-
40
- - Koristi `;` na kraju izraza.
41
- - Preferiraj `'single quotes'` za stringove (osim template stringova).
42
- - Zadrži postojeći razmak u objektima/nizovima/destrukturiranju ako je tako u fajlu.
43
- - Uvek koristi `async/await` pattern umesto Promise lanaca (`.then/.catch`) gde god je to moguće i smisleno.
44
- - Ako fajl koristi `require`, nastavi sa `require` (ne prebacuj na `import` bez jasnog razloga).
45
- - `import`/`require` izraze grupiši u logičke celine i odvajaj svaku celinu praznim redom.
46
- - Unutar svake celine sortiraj alfabetski (npr. `AccountController` pre `BookController`).
47
- - Za React/TS zadrži postojeći obrazac komponenti, hook-ova i tipova koji projekat već koristi.
48
- - Za sve `public` metode obavezno piši kompletan JSDoc komentar iznad metode.
49
- - JSDoc za `public` metodu treba da sadrži najmanje: `@public`, `@param` (za svaki parametar), `@returns` (osim kada metoda zaista ništa ne vraća), i `@static` kada je metoda statička.
50
- - Po potrebi dodaj i ostale relevantne tagove (`@throws`, `@async`, `@deprecated`, `@example`) da dokumentacija bude kompletna i korisna.
51
-
52
- ## 6) Fajlovi i struktura
53
-
54
- - Novi fajl imenuj po konvenciji foldera/projekta u koji dodaješ.
55
- - Ne premeštaj fajlove i ne menjaj naming konvenciju bez eksplicitnog zahteva.
56
- - Ako postoji konflikt stilova između različitih delova repoa, prati stil ciljanog paketa/fajla.
57
-
58
- ## 7) Proaktivni predlozi i approval gate
59
-
60
- - Ako primetiš bug, potencijalni problem performansi ili efikasnije rešenje, obavezno ga predloži.
61
- - Svaki predlog napiši jasno: koji deo koda/fajl je problem i zašto je korisno to popraviti (stabilnost, brzina, održavanje, čitljivost).
62
- - Ako primetiš da postojeći kod ne prati SOLID principe, da je previše kompleksan ili teško razumljiv, obavezno predloži refaktor korake.
63
- - Za ovakve proaktivne izmene važi approval gate: ne izvršavaj ih automatski, već tek nakon moje eksplicitne potvrde.
64
-
65
- ## 8) Commit poruke (Conventional Commits)
66
-
67
- - Koristi Conventional Commits standard za commit poruke (npr. `feat: ...`, `fix: ...`, `refactor: ...`, `chore: ...`) i piši predlog poruke profesionalno, jasno i u tom formatu.
68
- - Kada tražim da napišeš commit message za prethodne izmene, obavezno napiši poruku koja jasno obuhvata šta je sve izmenjeno.
69
-
70
- ## 9) Release notes (`.releases`)
71
-
72
- - Kada tražim release, obavezno dodaj novi fajl u `.releases` folder koristeći postojeću strukturu release fajlova tog projekta.
73
- - Release fajl piši u Markdown formatu sa podebljanim sekcijama i listama, u stilu postojećih fajlova (npr. `**Sekcija**` + `* stavka`).
74
- - Koristi sledeće ključne sekcije kada su primenljive: `**Bug Fixes**`, `**New Features**`, `**Technical Enhancements**`, `**Other**`, `**Configuration Changes**`.
package/AGENTS.md DELETED
@@ -1,70 +0,0 @@
1
- # Univerzalna pravila pisanja koda (važe za svaki projekat)
2
-
3
- Piši novi i izmenjeni kod tako da izgleda kao da je pisan u istom stilu kao postojeći kod oko njega.
4
-
5
- ## 1) Prioritet pravila
6
-
7
- - Pre bilo kakve izmene pročitaj bar 80-120 linija fajla koji menjaš.
8
- - Ako projekat ima linter/formatter/config (`eslint`, `prettier`, `tsconfig`, `editorconfig`, `ruff`, `black`, `gofmt`, itd.), to ima prioritet nad ličnim stilom.
9
- - Zadrži isti stil uvlačenja koji fajl već koristi (`tab` ili razmaci).
10
- - Ne radi globalni reformat fajla i ne menjaj linije koje nisu deo zadatka.
11
- - Ako je stil neujednačen, prati dominantan stil najbližeg koda koji dodaješ.
12
-
13
- ## 2) Kvalitet i organizacija
14
-
15
- - Kod piši maksimalno profesionalno, organizovano i čitljivo, sa jasnim granicama odgovornosti.
16
- - Kod obavezno odvajaj u logičke celine praznim redom (deklaracije, validacije, transformacije, side-effect delovi, return).
17
- - Menjaj minimalan broj linija potreban za zadatak.
18
- - Ne diraj postojeće whitespace-only razlike van opsega izmene.
19
- - Ne menjaj formatiranje, whitespace, imenovanje promenljivih i stil postojećih metoda van direktnog opsega zadatka.
20
- - Ako u postojećem kodu primetiš nejasnoće ili stilsku nekonzistentnost, predloži izmene, ali ih ne primenjuj automatski.
21
- - Novi kod strukturiraj tako da kasnije dodavanje feature-a i izmene budu jednostavni i bezbedni.
22
-
23
- ## 3) Arhitektura i patterni
24
-
25
- - Koristi design pattern-e gde imaju smisla (`Singleton`, `Factory`, `Builder`), samo kada realno poboljšavaju čitljivost, testabilnost i proširivost.
26
- - Pre uvođenja pattern-a proveri da li već postoji isti ili sličan obrazac u projektu i prati taj postojeći pristup.
27
- - Ne uvodi pattern formalno ako donosi nepotrebnu kompleksnost.
28
-
29
- ## 4) Imenovanje
30
-
31
- - Poštuj naming konvencije projekta i jezika u kome radiš.
32
- - Za boolean promenljive nikada ne koristi prefiks `is` (`isValid`, `isActive`, itd.); koristi nazive tipa `valid`, `active`, `enabled`, `exists`.
33
-
34
- ## 5) JS/TS specifično (primeni samo u JS/TS fajlovima)
35
-
36
- - Koristi `;` na kraju izraza.
37
- - Preferiraj `'single quotes'` za stringove (osim template stringova).
38
- - Zadrži postojeći razmak u objektima/nizovima/destrukturiranju ako je tako u fajlu.
39
- - Uvek koristi `async/await` pattern umesto Promise lanaca (`.then/.catch`) gde god je to moguće i smisleno.
40
- - Ako fajl koristi `require`, nastavi sa `require` (ne prebacuj na `import` bez jasnog razloga).
41
- - `import`/`require` izraze grupiši u logičke celine i odvajaj svaku celinu praznim redom.
42
- - Unutar svake celine sortiraj alfabetski (npr. `AccountController` pre `BookController`).
43
- - Za React/TS zadrži postojeći obrazac komponenti, hook-ova i tipova koji projekat već koristi.
44
- - Za sve `public` metode obavezno piši kompletan JSDoc komentar iznad metode.
45
- - JSDoc za `public` metodu treba da sadrži najmanje: `@public`, `@param` (za svaki parametar), `@returns` (osim kada metoda zaista ništa ne vraća), i `@static` kada je metoda statička.
46
- - Po potrebi dodaj i ostale relevantne tagove (`@throws`, `@async`, `@deprecated`, `@example`) da dokumentacija bude kompletna i korisna.
47
-
48
- ## 6) Fajlovi i struktura
49
-
50
- - Novi fajl imenuj po konvenciji foldera/projekta u koji dodaješ.
51
- - Ne premeštaj fajlove i ne menjaj naming konvenciju bez eksplicitnog zahteva.
52
- - Ako postoji konflikt stilova između različitih delova repoa, prati stil ciljanog paketa/fajla.
53
-
54
- ## 7) Proaktivni predlozi i approval gate
55
-
56
- - Ako primetiš bug, potencijalni problem performansi ili efikasnije rešenje, obavezno ga predloži.
57
- - Svaki predlog napiši jasno: koji deo koda/fajl je problem i zašto je korisno to popraviti (stabilnost, brzina, održavanje, čitljivost).
58
- - Ako primetiš da postojeći kod ne prati SOLID principe, da je previše kompleksan ili teško razumljiv, obavezno predloži refaktor korake.
59
- - Za ovakve proaktivne izmene važi approval gate: ne izvršavaj ih automatski, već tek nakon moje eksplicitne potvrde.
60
-
61
- ## 8) Commit poruke (Conventional Commits)
62
-
63
- - Koristi Conventional Commits standard za commit poruke (npr. `feat: ...`, `fix: ...`, `refactor: ...`, `chore: ...`) i piši predlog poruke profesionalno, jasno i u tom formatu.
64
- - Kada tražim da napišeš commit message za prethodne izmene, obavezno napiši poruku koja jasno obuhvata šta je sve izmenjeno.
65
-
66
- ## 9) Release notes (`.releases`)
67
-
68
- - Kada tražim release, obavezno dodaj novi fajl u `.releases` folder koristeći postojeću strukturu release fajlova tog projekta.
69
- - Release fajl piši u Markdown formatu sa podebljanim sekcijama i listama, u stilu postojećih fajlova (npr. `**Sekcija**` + `* stavka`).
70
- - Koristi sledeće ključne sekcije kada su primenljive: `**Bug Fixes**`, `**New Features**`, `**Technical Enhancements**`, `**Other**`, `**Configuration Changes**`.