From af1dbcdbf363a12c448834dff031a698c8925e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Guimar=C3=A3es=20Cazaroto?= Date: Fri, 25 Oct 2024 11:11:46 -0300 Subject: [PATCH 1/5] feat(locale): add books on pt_br (#3218) --- src/locales/pt_BR/book/author.ts | 34 ++++++++++ src/locales/pt_BR/book/format.ts | 1 + src/locales/pt_BR/book/genre.ts | 26 ++++++++ src/locales/pt_BR/book/index.ts | 22 ++++++ src/locales/pt_BR/book/publisher.ts | 25 +++++++ src/locales/pt_BR/book/series.ts | 8 +++ src/locales/pt_BR/book/title.ts | 100 ++++++++++++++++++++++++++++ src/locales/pt_BR/index.ts | 2 + 8 files changed, 218 insertions(+) create mode 100644 src/locales/pt_BR/book/author.ts create mode 100644 src/locales/pt_BR/book/format.ts create mode 100644 src/locales/pt_BR/book/genre.ts create mode 100644 src/locales/pt_BR/book/index.ts create mode 100644 src/locales/pt_BR/book/publisher.ts create mode 100644 src/locales/pt_BR/book/series.ts create mode 100644 src/locales/pt_BR/book/title.ts diff --git a/src/locales/pt_BR/book/author.ts b/src/locales/pt_BR/book/author.ts new file mode 100644 index 00000000000..a87d014010b --- /dev/null +++ b/src/locales/pt_BR/book/author.ts @@ -0,0 +1,34 @@ +export default [ + 'Aluísio Azevedo', + 'Ariano Suassuna', + 'Bernardo Guimarães', + 'Caio Fernando Abreu', + 'Carlos Drummond de Andrade', + 'Carolina Maria de Jesus', + 'Castro Alves', + 'Cecília Meireles', + 'Clarice Lispector', + 'Conceição Evaristo', + 'Cora Coralina', + 'Cruz e Sousa', + 'Gonçalves Dias', + 'Gregório de Matos', + 'Jorge Amado', + 'José de Alencar', + 'João Guimarães Rosa', + 'Luis Fernando Verissimo', + 'Lygia Bojunga', + 'Machado de Assis', + 'Manoel de Barros', + 'Marina Colasanti', + 'Mario Quintana', + 'Mauricio de Sousa', + 'Monteiro Lobato', + 'Mário de Andrade', + 'Nelson Rodrigues', + 'Olavo Bilac', + 'Paulo Coelho', + 'Rubem Fonseca', + 'Ziraldo', + 'Álvares de Azevedo', +]; diff --git a/src/locales/pt_BR/book/format.ts b/src/locales/pt_BR/book/format.ts new file mode 100644 index 00000000000..4010e022230 --- /dev/null +++ b/src/locales/pt_BR/book/format.ts @@ -0,0 +1 @@ +export default ['Audiolivro', 'Capa dura', 'Capa mole', 'Ebook']; diff --git a/src/locales/pt_BR/book/genre.ts b/src/locales/pt_BR/book/genre.ts new file mode 100644 index 00000000000..f0b8fbf4e58 --- /dev/null +++ b/src/locales/pt_BR/book/genre.ts @@ -0,0 +1,26 @@ +export default [ + 'Aventura', + 'Biografia', + 'Clássico', + 'Comédia', + 'Detetive', + 'Drama', + 'Fantasia', + 'Faroeste', + 'Ficção Científica', + 'Ficção Histórica', + 'Filosofia', + 'Literatura Infantil', + 'Memórias', + 'Mistério', + 'Mitologia', + 'Negócios', + 'Poesia', + 'Psicologia', + 'Quadrinhos', + 'Religião', + 'Romance', + 'Romance Gráfico', + 'Suspense', + 'Terror', +]; diff --git a/src/locales/pt_BR/book/index.ts b/src/locales/pt_BR/book/index.ts new file mode 100644 index 00000000000..43ead3988d5 --- /dev/null +++ b/src/locales/pt_BR/book/index.ts @@ -0,0 +1,22 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { BookDefinition } from '../../..'; +import author from './author'; +import format from './format'; +import genre from './genre'; +import publisher from './publisher'; +import series from './series'; +import title from './title'; + +const book: BookDefinition = { + author, + format, + genre, + publisher, + series, + title, +}; + +export default book; diff --git a/src/locales/pt_BR/book/publisher.ts b/src/locales/pt_BR/book/publisher.ts new file mode 100644 index 00000000000..412e8d0c47b --- /dev/null +++ b/src/locales/pt_BR/book/publisher.ts @@ -0,0 +1,25 @@ +export default [ + 'Companhia das Letras', + 'Editora Abril', + 'Editora Aleph', + 'Editora Antofágica', + 'Editora Conrad', + 'Editora Darkside', + 'Editora FTD', + 'Editora Gente', + 'Editora HarperCollins Brasil', + 'Editora Intrínseca', + 'Editora L&PM', + 'Editora Martin Claret', + 'Editora Melhoramentos', + 'Editora Moderna', + 'Editora Panda Books', + 'Editora Pipoca & Nanquim', + 'Editora Planeta de Livros Brasil', + 'Editora Rocco', + 'Editora Saraiva', + 'Editora Sextante', + 'Editora Viseu', + 'Editora Voo', + 'Globo Livros', +]; diff --git a/src/locales/pt_BR/book/series.ts b/src/locales/pt_BR/book/series.ts new file mode 100644 index 00000000000..7862feed26c --- /dev/null +++ b/src/locales/pt_BR/book/series.ts @@ -0,0 +1,8 @@ +export default [ + 'Ed Mort', + 'O Tempo e o Vento', + 'Os Subterrâneos da Liberdade', + 'Série Vaga-Lume', + 'Sítio do Picapau Amarelo', + 'Trilogia do Descobrimento', +]; diff --git a/src/locales/pt_BR/book/title.ts b/src/locales/pt_BR/book/title.ts new file mode 100644 index 00000000000..44180a2d3d3 --- /dev/null +++ b/src/locales/pt_BR/book/title.ts @@ -0,0 +1,100 @@ +export default [ + 'A Estrela sobe', + 'A coleira do cão', + 'A escrava Isaura', + 'A hora da estrela', + 'A moreninha', + 'A mão e a luva', + 'A paixão segundo G.H.', + 'A rosa do povo', + 'A vida como ela é', + 'Angústia', + 'As meninas', + 'Baú de ossos', + 'Broquéis', + 'Brás, bexiga e barra funda', + 'Canaã', + 'Cartas chilenas', + 'Casa grande e senzala', + 'Cascalho', + 'Claro enigma', + 'Contos gauchescos', + 'Corpo de baile', + 'Crônica da casa assassinada', + 'Dom Casmurro', + 'Dona Flor e seus dois maridos', + 'Espumas flutuantes', + 'Estrela da manhã', + 'Eu', + 'Farda, fardão, camisola de dormir', + 'Fogo morto', + 'Fundador', + 'Gabriela, cravo e canela', + 'Gramática expositiva do chão', + 'Grande sertão: veredas', + 'Iaiá Garcia', + 'Inocência', + 'Invenção de Orfeu', + 'Iracema', + 'Jubiabá', + 'Lavoura arcaica', + 'Laços de família', + 'Libertinagem', + 'Lucíola', + 'Macunaíma', + 'Malagueta, Perus e Bacanaço', + 'Mar morto', + 'Marília de Dirceu', + 'Memorial de Aires', + 'Memórias do cárcere', + 'Memórias póstumas de Brás Cubas', + 'Memórias sentimentais de João Miramar', + 'Memórias sgto de milícias', + 'Minha formação', + 'Morte e vida severina', + 'Noite na taverna', + 'O ateneu', + 'O coronel e o lobisomem', + 'O cortiço', + 'O demônio familiar', + 'O encontro marcado', + 'O feijão e o sonho', + 'O guarani', + 'O mez da grippe', + 'O pagador de promessas', + 'O quinze', + 'O tempo e o vento', + 'O uraguai', + 'O vampiro de Curitiba', + 'Obra poética', + 'Os cavalinhos de platiplanto', + 'Os ratos', + 'Os sertões', + 'Papéis avulsos', + 'Paulicéia desvairada', + 'Pedra Bonita', + 'Poema sujo', + 'Poesias', + 'Primeiras estórias', + 'Primeiros Cantos', + 'Quarup', + 'Quincas Borba', + 'Raízes do Brasil', + 'Ritmo dissoluto', + 'Romance da Pedra do Reino', + 'Romanceiro da inconfidência', + 'Sagarana', + 'Senhora', + 'Sermões', + 'São Bernardo', + 'Tenda dos milagres', + 'Terras do sem fim', + 'Triste fim de Policarpo Quaresma', + 'Uma aprendizagem', + 'Veronika decide morrer', + 'Vestido de noiva', + 'Vidas secas', + 'Viva o povo brasileiro', + 'Zero', + 'Ópera dos mortos', +]; diff --git a/src/locales/pt_BR/index.ts b/src/locales/pt_BR/index.ts index 00236a9a4c8..683645317f8 100644 --- a/src/locales/pt_BR/index.ts +++ b/src/locales/pt_BR/index.ts @@ -3,6 +3,7 @@ * Run 'pnpm run generate:locales' to update. */ import type { LocaleDefinition } from '../..'; +import book from './book'; import color from './color'; import commerce from './commerce'; import company from './company'; @@ -21,6 +22,7 @@ import phone_number from './phone_number'; * - Endonym: Português (Brasil) */ const pt_BR: LocaleDefinition = { + book, color, commerce, company, From 8bceb5897744ce78c0f0c355bab0c4fa5c34075b Mon Sep 17 00:00:00 2001 From: DivisionByZero Date: Sat, 26 Oct 2024 15:26:25 +0200 Subject: [PATCH 2/5] docs: blog post v9.0 (#3056) Co-authored-by: ST-DDT --- docs/.vitepress/config.ts | 1 + docs/about/announcements/2024-10-26.md | 116 +++++++++++++++++++++++++ docs/guide/upgrading.md | 54 ++---------- 3 files changed, 122 insertions(+), 49 deletions(-) create mode 100644 docs/about/announcements/2024-10-26.md diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 4e46315fed5..2cb9301428b 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -61,6 +61,7 @@ function getSideBarWithExpandedEntry(entryToExpand: string): SidebarItem[] { text: 'Announcements', link: '/about/announcements', items: [ + { text: '2024-10-26', link: '/about/announcements/2024-10-26' }, { text: '2022-09-08', link: '/about/announcements/2022-09-08' }, { text: '2022-01-14', link: '/about/announcements/2022-01-14' }, ], diff --git a/docs/about/announcements/2024-10-26.md b/docs/about/announcements/2024-10-26.md new file mode 100644 index 00000000000..7c6eb9b4f1b --- /dev/null +++ b/docs/about/announcements/2024-10-26.md @@ -0,0 +1,116 @@ +# What's New In v9.0 + +::: info Looking for the migration guide? +This article highlights some of the new features and improvements in v9. \ +For details on migrating from v8 to v9, check out our [migration guide](https://v9.fakerjs.dev/guide/upgrading). +::: + +## Optimizing Bundle Size with Tree-Shaking + +In the v9 release of FakerJS, we've addressed an important issue related to bundle size. \ +The problem? Unnecessary modules were being included during tree-shaking, leading to bloated final bundles. \ +But fear not! We've implemented a solution. + +The root issue was in how locale imports and exports were handled. \ +Previously, the `allLocales` variable was defined using a named wildcard export (`export * as from ''`), which we've now refactored into a named variable export. \ +Additionally, we updated the `package.json` file to specify `"sideEffects": false`, signaling to bundlers that all files in this package are side-effect-free and can be safely tree-shaken. + +The results speak for themselves: + +| Version | File Size | +| ------- | --------- | +| v8.4.1 | 2.77 MiB | +| v9.0.0 | 438 KiB | + +This is a significant reduction by 84.5%! + +## Use High Precision RNG by Default + +In v9, we've switched from using a 32-bit random value to a 53-bit random value. \ +While the underlying algorithm hasn't changed much, we now consume two seed values per step instead of one. +This affects generated values in two ways: + +- **Improved distribution**: In large lists or long numbers, the values are more evenly spread, reducing the number of duplicates. For example, with `faker.number.int()`, the chance of duplicate values has dropped from `1 / 10,000` to less than `1 / 8,000,000`. +- **Subtle result differences**: If you start with the same initial seed, you may notice slight differences in generated values due to the higher precision. Additionally, since we now use two seed values per step, subsequent results may seem to skip a value each time. + +Example: + +```ts +import { + SimpleFaker, + generateMersenne32Randomizer, + generateMersenne53Randomizer, +} from '@faker-js/faker'; + +// < v9 default +const oldFaker = new SimpleFaker({ + randomizer: generateMersenne32Randomizer(), +}); +oldFaker.seed(123); +const oldValue = oldFaker.helpers.multiple(() => oldFaker.number.int(10), { + count: 10, +}); + +// > v9 default +const newFaker = new SimpleFaker({ + randomizer: generateMersenne53Randomizer(), +}); +newFaker.seed(123); +const newValue = newFaker.helpers.multiple(() => newFaker.number.int(10), { + count: 5, +}); + +diff(oldValue, newValue); +// [ +// 7, +// 7, // [!code --] +// 3, +// 4, // [!code --] +// 2, +// 7, // [!code --] +// 6, +// 7, // [!code --] +// 7, +// 5, // [!code --] +// ] +``` + +## New Modules + +We are excited to introduce a new addition to FakerJS – the [FoodModule](https://v9.fakerjs.dev/api/food.html)! \ +Whether you're building a restaurant app, a food blog, or just need some delicious data for testing, the Food Module has got you covered. +From spices to vegetables, meats, and fruits, you can generate a wide variety of ingredients to enrich your data or create engaging content with unique dish names and descriptions. +Whether you need a single ingredient or a full menu, the Food Module offers flexibility to meet your needs. + +Additionally, the [MusicModule](https://v9.fakerjs.dev/api/music.html) now features two brand-new methods: `album()` and `artist()`. +These new methods provide detailed and diverse data, enhancing your music-related projects with even more variety. +Get the update and enjoy the latest tunes! + +## Release Automation + +As part of our ongoing effort to improve the release process for FakerJS, we've implemented the first steps towards an automated release pipeline. \ +This new process improves efficiency, reduces manual errors, and ensures a smoother release cycle. In fact, this version was released using our new automated workflow. + +The new process includes four key steps: + +1. [Create a release Pull Request](https://github.com/faker-js/faker/pull/2981) +2. [Run an additional CI suite that tests against our playground](https://github.com/faker-js/faker/pull/2988) +3. [Draft a GitHub release](https://github.com/faker-js/faker/pull/2990) +4. [Publish the latest version to npm](https://github.com/faker-js/faker/pull/2991) + +We can now initiate the process with a single manual trigger of the release preparation job. +The resulting PR runs additional CI tests (in parallel with our standard tests) against our [playground repo](https://github.com/faker-js/playground). +If the PR is successfully merged, another job automatically drafts a GitHub release. +This draft allows us to edit and highlight key changes. +Once the GitHub release is published, the final job automatically publishes the release to npm. +Previously, maintainers performed all these steps manually, often leading to missed steps or errors. + +## Release Provenance + +We now publish provenance for our npm releases, providing an additional layer of security and trust. +This provenance acts like a digital certificate, ensuring that the code has not been tampered with at any stage during the release process. + +For example, it guarantees that no unauthorized changes were made to the code between tagging a version in the repository and publishing it on npm. +This safeguard enhances transparency and helps users verify the integrity of the code they are integrating into their projects. + +For more details, you can refer to the [npm provenance documentation](https://docs.npmjs.com/generating-provenance-statements). diff --git a/docs/guide/upgrading.md b/docs/guide/upgrading.md index 05b6c4881e6..83474ebf9fb 100644 --- a/docs/guide/upgrading.md +++ b/docs/guide/upgrading.md @@ -14,6 +14,10 @@ This is the migration guide for upgrading from v8 to v9. ::: +::: info Want to learn more about new features in v9? +Read our [release announcements](/about/announcements/2024-10-26.md) +::: + ## General Breaking Changes ### Requires Node v18+ @@ -54,58 +58,10 @@ While this is not a breaking change according to semantic versioning guidelines, ### Use High Precision RNG by Default -TLDR: Many Faker methods return a different result in v9 compared to v8 for the same seed. - In v9 we switch from a 32 bit random value to a 53 bit random value. We don't change the underlying algorithm much, but we now consume two seed values each step instead of one. -This affects generated values in two ways: - -- In large lists or long numbers the values are spread more evenly. - This also reduces the number of duplicates it generates. - For `faker.number.int()` this reduces the number of duplicates from `1 / 10_000` to less than `1 / 8_000_000`. -- If you start with the same initial seed to generate a value, you might see some changes in the results you get. - This is because we're now working with a higher precision, which affects how numbers are rounded off. - As a result, the methods we use might produce slightly different outcomes. - And since we are now using two seed values each time subsequent results appear to skip a value each time. - -```ts -import { - SimpleFaker, - generateMersenne32Randomizer, - generateMersenne53Randomizer, -} from '@faker-js/faker'; -// < v9 default -const oldFaker = new SimpleFaker({ - randomizer: generateMersenne32Randomizer(), -}); -oldFaker.seed(123); -const oldValue = oldFaker.helpers.multiple(() => oldFaker.number.int(10), { - count: 10, -}); -// > v9 default -const newFaker = new SimpleFaker({ - randomizer: generateMersenne53Randomizer(), -}); -newFaker.seed(123); -const newValue = newFaker.helpers.multiple(() => newFaker.number.int(10), { - count: 5, -}); - -diff(oldValue, newValue); -//[ -// 7, -// 7, // [!code --] -// 3, -// 4, // [!code --] -// 2, -// 7, // [!code --] -// 6, -// 7, // [!code --] -// 7, -// 5, // [!code --] -//] -``` +You can read more in out Blog Post: [What's New In v9.0](/about/announcements/2024-10-26#use-high-precision-rng-by-default) #### Adoption From 975098df986b803053a7f1b2638869792e56cb0f Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Sat, 26 Oct 2024 15:31:46 +0200 Subject: [PATCH 3/5] infra(renovate): reduce update frequency to monthly (#3217) --- .github/renovate.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 6d648daf587..fd93df80c45 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -2,7 +2,7 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:best-practices", - "schedule:earlyMondays", + "schedule:monthly", "group:allNonMajor", ":prHourlyLimitNone" ], From d57899f17ca8fa1d47a3c5242e9c7c69aac5cfd3 Mon Sep 17 00:00:00 2001 From: Matt Mayer <152770+matthewmayer@users.noreply.github.com> Date: Sat, 26 Oct 2024 20:57:13 +0700 Subject: [PATCH 4/5] test(animal): unroll animal test loop (#3198) --- test/modules/animal.spec.ts | 142 ++++++++++++++++++++++++++++++------ 1 file changed, 119 insertions(+), 23 deletions(-) diff --git a/test/modules/animal.spec.ts b/test/modules/animal.spec.ts index ed9aa8222de..7ac332cbd4b 100644 --- a/test/modules/animal.spec.ts +++ b/test/modules/animal.spec.ts @@ -5,36 +5,132 @@ import { times } from './../support/times'; const NON_SEEDED_BASED_RUN = 5; -const functionNames = [ - 'bear', - 'bird', - 'cat', - 'cetacean', - 'cow', - 'crocodilia', - 'dog', - 'fish', - 'horse', - 'insect', - 'lion', - 'rabbit', - 'rodent', - 'snake', - 'type', -] as const; - describe('animal', () => { seededTests(faker, 'animal', (t) => { - t.itEach(...functionNames); + t.itEach( + 'bear', + 'bird', + 'cat', + 'cetacean', + 'cow', + 'crocodilia', + 'dog', + 'fish', + 'horse', + 'insect', + 'lion', + 'rabbit', + 'rodent', + 'snake', + 'type' + ); }); describe.each(times(NON_SEEDED_BASED_RUN).map(() => faker.seed()))( 'random seeded tests for seed %i', () => { - describe.each(functionNames)('%s()', (functionName) => { - it(`should return random value from ${functionName} array`, () => { - const actual = faker.animal[functionName](); - expect(faker.definitions.animal[functionName]).toContain(actual); + describe('bear()', () => { + it('should return random value from bear array', () => { + const actual = faker.animal.bear(); + expect(faker.definitions.animal.bear).toContain(actual); + }); + }); + + describe('bird()', () => { + it('should return random value from bird array', () => { + const actual = faker.animal.bird(); + expect(faker.definitions.animal.bird).toContain(actual); + }); + }); + + describe('cat()', () => { + it('should return random value from cat array', () => { + const actual = faker.animal.cat(); + expect(faker.definitions.animal.cat).toContain(actual); + }); + }); + + describe('cetacean()', () => { + it('should return random value from cetacean array', () => { + const actual = faker.animal.cetacean(); + expect(faker.definitions.animal.cetacean).toContain(actual); + }); + }); + + describe('cow()', () => { + it('should return random value from cow array', () => { + const actual = faker.animal.cow(); + expect(faker.definitions.animal.cow).toContain(actual); + }); + }); + + describe('crocodilia()', () => { + it('should return random value from crocodilia array', () => { + const actual = faker.animal.crocodilia(); + expect(faker.definitions.animal.crocodilia).toContain(actual); + }); + }); + + describe('dog()', () => { + it('should return random value from dog array', () => { + const actual = faker.animal.dog(); + expect(faker.definitions.animal.dog).toContain(actual); + }); + }); + + describe('fish()', () => { + it('should return random value from fish array', () => { + const actual = faker.animal.fish(); + expect(faker.definitions.animal.fish).toContain(actual); + }); + }); + + describe('horse()', () => { + it('should return random value from horse array', () => { + const actual = faker.animal.horse(); + expect(faker.definitions.animal.horse).toContain(actual); + }); + }); + + describe('insect()', () => { + it('should return random value from insect array', () => { + const actual = faker.animal.insect(); + expect(faker.definitions.animal.insect).toContain(actual); + }); + }); + + describe('lion()', () => { + it('should return random value from lion array', () => { + const actual = faker.animal.lion(); + expect(faker.definitions.animal.lion).toContain(actual); + }); + }); + + describe('rabbit()', () => { + it('should return random value from rabbit array', () => { + const actual = faker.animal.rabbit(); + expect(faker.definitions.animal.rabbit).toContain(actual); + }); + }); + + describe('rodent()', () => { + it('should return random value from rodent array', () => { + const actual = faker.animal.rodent(); + expect(faker.definitions.animal.rodent).toContain(actual); + }); + }); + + describe('snake()', () => { + it('should return random value from snake array', () => { + const actual = faker.animal.snake(); + expect(faker.definitions.animal.snake).toContain(actual); + }); + }); + + describe('type()', () => { + it('should return random value from type array', () => { + const actual = faker.animal.type(); + expect(faker.definitions.animal.type).toContain(actual); }); }); } From 77ca5d79cad81ca22002fe3119c6e059bb6f9e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?FakerJS=20=F0=9F=A4=96?= Date: Sat, 26 Oct 2024 20:06:31 +0200 Subject: [PATCH 5/5] chore(release): 9.1.0 (#3225) Co-authored-by: ST-DDT --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ docs/guide/usage.md | 2 +- package.json | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3907ffcd35..f1337c125f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,39 @@ All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines. +## [9.1.0](https://github.com/faker-js/faker/compare/v9.0.3...v9.1.0) (2024-10-26) + + +### New Locales + +* **locale:** add books on pt_br ([#3218](https://github.com/faker-js/faker/issues/3218)) ([af1dbcd](https://github.com/faker-js/faker/commit/af1dbcdbf363a12c448834dff031a698c8925e2e)) +* **locale:** add Swedish(sv) counties ([#3154](https://github.com/faker-js/faker/issues/3154)) ([67569d9](https://github.com/faker-js/faker/commit/67569d93992e6388647118e9e9e319cfdd6721ed)) + + +### Features + +* add book module ([#2949](https://github.com/faker-js/faker/issues/2949)) ([2f93d9d](https://github.com/faker-js/faker/commit/2f93d9da383638b6d232ff8b3cae827ea4c80150)) +* **commerce:** more varied product descriptions ([#3174](https://github.com/faker-js/faker/issues/3174)) ([ba4ef9a](https://github.com/faker-js/faker/commit/ba4ef9a5a671ffc6ed10db7fed896dccda90dca1)) +* **internet:** add jwt method ([#2936](https://github.com/faker-js/faker/issues/2936)) ([e3858f2](https://github.com/faker-js/faker/commit/e3858f221bb3b6e1278933c0b8e0d98da6854e52)) +* **internet:** improve ipv4 method ([#2992](https://github.com/faker-js/faker/issues/2992)) ([a5a6c5b](https://github.com/faker-js/faker/commit/a5a6c5b4e1145b1e21e5d8e540bc6f55f97d3a84)) +* **location:** add `continent` method ([#3162](https://github.com/faker-js/faker/issues/3162)) ([4056ab0](https://github.com/faker-js/faker/commit/4056ab09c64be40d41562284ec64e7531fbaff41)) +* **string:** adds support for generating ULID ([#2524](https://github.com/faker-js/faker/issues/2524)) ([5b1c858](https://github.com/faker-js/faker/commit/5b1c8588f8a57be712e64434f7b17a8407a4f465)) + + +### Changed Locales + +* **locale:** enhance en vehicle manufacturers ([#3187](https://github.com/faker-js/faker/issues/3187)) ([858f8d0](https://github.com/faker-js/faker/commit/858f8d07b098418a7a2b7cb2e265eb9f4388ed3d)) +* **locale:** modernise buzz- and catch-phrases ([#2930](https://github.com/faker-js/faker/issues/2930)) ([247c86f](https://github.com/faker-js/faker/commit/247c86f5b40916957123cb3fa1bd4356d8fa7452)) +* **locale:** remove inaccessible files ([#3205](https://github.com/faker-js/faker/issues/3205)) ([89b695c](https://github.com/faker-js/faker/commit/89b695cbaf20206ebb4570d018af2fa99f720889)) +* **locale:** trim excessive Croatian last names ([#3204](https://github.com/faker-js/faker/issues/3204)) ([18e59aa](https://github.com/faker-js/faker/commit/18e59aa8805b3413b6f8058b1a00ff5bcbfbc935)) + + +### Bug Fixes + +* **food:** use arrayElement instead of fake for adjective ([#3178](https://github.com/faker-js/faker/issues/3178)) ([a8dfa2f](https://github.com/faker-js/faker/commit/a8dfa2fcde59a1ec9e5beb2e93c690a8ec532cdf)) +* **location:** fix US ZIP code anomalies for zipCode({state}) ([#3180](https://github.com/faker-js/faker/issues/3180)) ([df59724](https://github.com/faker-js/faker/commit/df597241003824279268c1dc9eae6c772c54760b)) +* **location:** update valid ZIP ranges for FL and VA ([#3167](https://github.com/faker-js/faker/issues/3167)) ([e271d4a](https://github.com/faker-js/faker/commit/e271d4a545dd48e57285019e4f412358c49cad0d)) + ## [9.0.3](https://github.com/faker-js/faker/compare/v9.0.2...v9.0.3) (2024-09-26) diff --git a/docs/guide/usage.md b/docs/guide/usage.md index 6d33655cd62..fe18b753de8 100644 --- a/docs/guide/usage.md +++ b/docs/guide/usage.md @@ -79,7 +79,7 @@ const randomEmail = faker.internet.email(); // Tomasa_Ferry14@hotmail.com ``` ::: info Note -It is highly recommended to use version tags when importing libraries in Deno, e.g: `import { faker } from "https://esm.sh/@faker-js/faker@v9.0.3"`. +It is highly recommended to use version tags when importing libraries in Deno, e.g: `import { faker } from "https://esm.sh/@faker-js/faker@v9.1.0"`. ::: ### Alternative CDN links diff --git a/package.json b/package.json index a4503fb370c..f35b6ed9ec2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@faker-js/faker", - "version": "9.0.3", + "version": "9.1.0", "description": "Generate massive amounts of fake contextual data", "scripts": { "clean": "rimraf coverage .eslintcache dist docs/.vitepress/cache docs/.vitepress/dist node_modules",