fireemu 0.14.0 → 0.15.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.
Files changed (2) hide show
  1. package/README.md +14 -14
  2. package/package.json +6 -6
package/README.md CHANGED
@@ -14,7 +14,7 @@ Fireemu is being developed to close these gaps. For example, it provides:
14
14
 
15
15
  Fireemu is still in development and does not yet reproduce every feature and behavior of production Firebase. Before relying on Fireemu’s test results in CI or other automated workflows, we recommend differential testing against production Firebase services for the features and critical workflows your application uses. Run the same tests against Fireemu and a dedicated Firebase test project, and check for differences in results and behavior that could affect your application. Use a dedicated test project, not your live production project.
16
16
 
17
- See the [capability manifest](https://github.com/t-k/fireemu/blob/v0.14.0/crates/fireemu/src/capabilities.json) and [compatibility documentation](https://github.com/t-k/fireemu/blob/v0.14.0/docs/compatibility-contract.md) for supported features, known differences, and the status of compatibility verification.
17
+ See the [capability manifest](https://github.com/t-k/fireemu/blob/v0.15.0/crates/fireemu/src/capabilities.json) and [compatibility documentation](https://github.com/t-k/fireemu/blob/v0.15.0/docs/compatibility-contract.md) for supported features, known differences, and the status of compatibility verification.
18
18
 
19
19
  ## Quick start
20
20
 
@@ -66,13 +66,13 @@ Fireemu supports Cloud Firestore, Firebase Authentication (Identity Platform), C
66
66
  | Cloud Pub/Sub | Schemas, BigQuery and Cloud Storage subscription delivery, and some APIs such as `UpdateTopic` are not supported. |
67
67
  | Firebase App Check | Local testing with debug tokens is supported. Real attestation through Play Integrity, App Attest, DeviceCheck, or reCAPTCHA, and replay protection using limited-use tokens, are not supported. |
68
68
 
69
- This table highlights key limitations; it is not exhaustive. Check individual API support and conditions with the following command or the [capability manifest](https://github.com/t-k/fireemu/blob/v0.14.0/crates/fireemu/src/capabilities.json).
69
+ This table highlights key limitations; it is not exhaustive. Check individual API support and conditions with the following command or the [capability manifest](https://github.com/t-k/fireemu/blob/v0.15.0/crates/fireemu/src/capabilities.json).
70
70
 
71
71
  ```sh
72
72
  npx fireemu capabilities
73
73
  ```
74
74
 
75
- See the [Functions support inventory](https://github.com/t-k/fireemu/blob/v0.14.0/docs/functions-export-inventory.md) for support by trigger type.
75
+ See the [Functions support inventory](https://github.com/t-k/fireemu/blob/v0.15.0/docs/functions-export-inventory.md) for support by trigger type.
76
76
 
77
77
  ### Unsupported products
78
78
 
@@ -131,7 +131,7 @@ Use `--ui-port 0` to disable the UI. When automatic UI startup cannot bind the d
131
131
 
132
132
  When a Functions codebase is loaded, the Functions page shows registered functions, triggers, invocation results, and logs. You can run scheduled functions immediately or advance the virtual clock to their next scheduled execution.
133
133
 
134
- For clock-sensitive and parallel integration tests, [test clocks and independent worlds](https://github.com/t-k/fireemu/blob/v0.14.0/docs/test-worlds.md) describes explicit Node Date/timer/Cloud Tasks policies and the `fireemu/testing` helper. Separate worlds isolate their clocks, Rules, Functions and service state, including when they use the same project ID.
134
+ For clock-sensitive and parallel integration tests, [test clocks and independent worlds](https://github.com/t-k/fireemu/blob/v0.15.0/docs/test-worlds.md) describes explicit Node Date/timer/Cloud Tasks policies and the `fireemu/testing` helper. Separate worlds isolate their clocks, Rules, Functions and service state, including when they use the same project ID.
135
135
 
136
136
  ### Export data
137
137
 
@@ -206,7 +206,7 @@ You can specify the configuration file with `--config`.
206
206
  npx fireemu up --config ./fireemu.json
207
207
  ```
208
208
 
209
- Keep Fireemu-specific settings in a Fireemu configuration file containing `"schemaVersion": 1`, rather than in `firebase.json`. See the [configuration schema](https://github.com/t-k/fireemu/blob/v0.14.0/spec/config/fireemu.schema.json) for all available settings.
209
+ Keep Fireemu-specific settings in a Fireemu configuration file containing `"schemaVersion": 1`, rather than in `firebase.json`. See the [configuration schema](https://github.com/t-k/fireemu/blob/v0.15.0/spec/config/fireemu.schema.json) for all available settings.
210
210
 
211
211
  ### Firebase Authentication (Identity Platform) configuration
212
212
 
@@ -230,9 +230,9 @@ The `auth` section of `fireemu.json` lets you configure sign-in methods, passwor
230
230
  | Public keys for verifying custom tokens and OIDC ID tokens | `auth.customTokenSigners`, `auth.idpSigners` |
231
231
  | Sign-up quota configuration and local quota-exceeded simulation | `auth.quota`, `auth.quotaSimulation` |
232
232
 
233
- See the [configuration schema](https://github.com/t-k/fireemu/blob/v0.14.0/spec/config/fireemu.schema.json) for the format and accepted values of each setting.
233
+ See the [configuration schema](https://github.com/t-k/fireemu/blob/v0.15.0/spec/config/fireemu.schema.json) for the format and accepted values of each setting.
234
234
 
235
- Declare `auth.authorizedDomains`, for example `["localhost", "app.test"]`, to set the initial project-wide list in either profile. The list replaces the defaults, so include `localhost` if your tests use it. An empty list authorizes no host under `strict`; an absent or `null` setting keeps the existing defaults (`localhost` and the project's `firebaseapp.com` and `web.app` domains). Validation uses the Admin API's rules for the selected profile, including its conversion of numeric and boolean entries to strings and omission of `null` entries; use strings when writing the list. Fireemu intentionally keeps `localhost` in its defaults for development. The [recorded production sandbox baseline](https://github.com/t-k/fireemu/blob/v0.14.0/conformance/auth-action-production.json) does not include it; new production projects may also omit it. This default is a Fireemu-only convenience, and declaring the list replaces it. Tenant-scoped strict action links currently check the tenant's default domains rather than this project declaration; support for the parent project's live list is pending.
235
+ Declare `auth.authorizedDomains`, for example `["localhost", "app.test"]`, to set the initial project-wide list in either profile. The list replaces the defaults, so include `localhost` if your tests use it. An empty list authorizes no host under `strict`; an absent or `null` setting keeps the existing defaults (`localhost` and the project's `firebaseapp.com` and `web.app` domains). Validation uses the Admin API's rules for the selected profile, including its conversion of numeric and boolean entries to strings and omission of `null` entries; use strings when writing the list. Fireemu intentionally keeps `localhost` in its defaults for development. The [recorded production sandbox baseline](https://github.com/t-k/fireemu/blob/v0.15.0/conformance/auth-action-production.json) does not include it; new production projects may also omit it. This default is a Fireemu-only convenience, and declaring the list replaces it. Tenant-scoped strict action links currently check the tenant's default domains rather than this project declaration; support for the parent project's live list is pending.
236
236
 
237
237
  An Admin update changes the live list. A session reset restores the declared list, when present, and preserves an Admin-written list when no initial list was declared. Projects created later receive the declaration word for word, independently of the default project's live list; listing a particular project's `firebaseapp.com` or `web.app` domain therefore gives later projects that same domain. Clearing accounts leaves the live list alone. Auth export/import carries accounts without the domain list or its declaration. The `emulator` profile accepts the setting and exposes the list, while continuing to allow action-link continue URLs outside it.
238
238
 
@@ -326,7 +326,7 @@ Under the `strict` profile, TOTP is enabled only through the project's MFA confi
326
326
 
327
327
  #### Enable multi-tenancy
328
328
 
329
- Under the `strict` profile, enable `multiTenant.allowTenants` before using multi-tenancy: through the Admin API, or with `auth.multiTenant` in the file (see "Start with tenants" below). See the [compatibility documentation](https://github.com/t-k/fireemu/blob/v0.14.0/docs/compatibility-contract.md) for the supported Admin API scope.
329
+ Under the `strict` profile, enable `multiTenant.allowTenants` before using multi-tenancy: through the Admin API, or with `auth.multiTenant` in the file (see "Start with tenants" below). See the [compatibility documentation](https://github.com/t-k/fireemu/blob/v0.15.0/docs/compatibility-contract.md) for the supported Admin API scope.
330
330
 
331
331
  #### Start with tenants
332
332
 
@@ -377,7 +377,7 @@ A schedule is driven by the virtual clock alone: real time passing runs nothing.
377
377
 
378
378
  A manual run (`POST /v1/sessions/{session}/functions/{name}:run`) enqueues one run of a scheduled function stamped with the current virtual time. It does not consume the next occurrence, which still comes due and is subject to `scheduler.overlap` like any run. It answers `400 INVALID_ARGUMENT` for an unknown function, a function that is not scheduled, an overlap policy refusal, or a runtime that is shutting down, and `429 RESOURCE_EXHAUSTED` when the event queue is full. This is fireemu's own control, not a claim about production's run-now.
379
379
 
380
- See the [configuration schema](https://github.com/t-k/fireemu/blob/v0.14.0/spec/config/fireemu.schema.json) for available settings and values.
380
+ See the [configuration schema](https://github.com/t-k/fireemu/blob/v0.15.0/spec/config/fireemu.schema.json) for available settings and values.
381
381
 
382
382
  ### Firestore history limits
383
383
 
@@ -455,7 +455,7 @@ Fireemu is compatible with the listed Local Emulator Suite products as shipped b
455
455
 
456
456
  The `strict` and `emulator` profiles differ in some behaviors to serve their respective purposes. Where the official emulator and production Firebase disagree, Fireemu also adopts production behavior in some cases and records the difference.
457
457
 
458
- Check support for the specific APIs and conditions your application uses, rather than relying on product names alone. The [compatibility contract](https://github.com/t-k/fireemu/blob/v0.14.0/spec/compatibility/contract.json) records scope and known differences. The [compatibility documentation](https://github.com/t-k/fireemu/blob/v0.14.0/docs/compatibility-contract.md) explains the verification process and how to interpret its records.
458
+ Check support for the specific APIs and conditions your application uses, rather than relying on product names alone. The [compatibility contract](https://github.com/t-k/fireemu/blob/v0.15.0/spec/compatibility/contract.json) records scope and known differences. The [compatibility documentation](https://github.com/t-k/fireemu/blob/v0.15.0/docs/compatibility-contract.md) explains the verification process and how to interpret its records.
459
459
 
460
460
  ### Network exposure of the Storage port
461
461
 
@@ -463,7 +463,7 @@ Like the official emulator, the Storage port reflects the requested object name
463
463
 
464
464
  ### Changes between versions
465
465
 
466
- Configuration and behavior may change between releases. See the [CHANGELOG](https://github.com/t-k/fireemu/blob/v0.14.0/CHANGELOG.md) for release changes.
466
+ Configuration and behavior may change between releases. See the [CHANGELOG](https://github.com/t-k/fireemu/blob/v0.15.0/CHANGELOG.md) for release changes.
467
467
 
468
468
  ## Performance
469
469
 
@@ -480,7 +480,7 @@ The following results come from one `standard` run at commit `f3b942c`. Ratios a
480
480
 
481
481
  The 95% confidence interval for the startup-time ratio is `[21.4, 21.8]`. For the peak-memory ratio, calculated as official emulator divided by Fireemu, it is `[10.2, 11.1]`.
482
482
 
483
- See [benchmark.yml](https://github.com/t-k/fireemu/blob/v0.14.0/.github/workflows/benchmark.yml) for the workflow and [`tools/bench/`](https://github.com/t-k/fireemu/tree/v0.14.0/tools/bench/) for the benchmark implementation.
483
+ See [benchmark.yml](https://github.com/t-k/fireemu/blob/v0.15.0/.github/workflows/benchmark.yml) for the workflow and [`tools/bench/`](https://github.com/t-k/fireemu/tree/v0.15.0/tools/bench/) for the benchmark implementation.
484
484
 
485
485
  ## Reporting issues and contributing
486
486
 
@@ -488,8 +488,8 @@ When reporting an issue, include the Fireemu and Firebase SDK versions, the prof
488
488
 
489
489
  For compatibility issues, also state whether you are comparing against the actual Firebase service or the official emulator, along with the expected and actual results. Remove credentials and personal information before sharing configuration files or logs.
490
490
 
491
- See the [development guide](https://github.com/t-k/fireemu/blob/v0.14.0/docs/development.md) for build and test instructions.
491
+ See the [development guide](https://github.com/t-k/fireemu/blob/v0.15.0/docs/development.md) for build and test instructions.
492
492
 
493
493
  ## License
494
494
 
495
- Fireemu is licensed under the [Apache License 2.0](https://github.com/t-k/fireemu/blob/v0.14.0/LICENSE). Third-party notices are listed in [THIRD_PARTY_LICENSES.txt](https://github.com/t-k/fireemu/blob/v0.14.0/THIRD_PARTY_LICENSES.txt).
495
+ Fireemu is licensed under the [Apache License 2.0](https://github.com/t-k/fireemu/blob/v0.15.0/LICENSE). Third-party notices are listed in [THIRD_PARTY_LICENSES.txt](https://github.com/t-k/fireemu/blob/v0.15.0/THIRD_PARTY_LICENSES.txt).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fireemu",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "A local runtime for testing Firebase SDK and Functions code, checked against production Firebase behavior",
5
5
  "keywords": [
6
6
  "emulator",
@@ -31,11 +31,11 @@
31
31
  ],
32
32
  "type": "module",
33
33
  "optionalDependencies": {
34
- "@fireemu/darwin-arm64": "0.14.0",
35
- "@fireemu/darwin-x64": "0.14.0",
36
- "@fireemu/linux-x64": "0.14.0",
37
- "@fireemu/linux-arm64": "0.14.0",
38
- "@fireemu/win32-x64": "0.14.0"
34
+ "@fireemu/darwin-arm64": "0.15.0",
35
+ "@fireemu/darwin-x64": "0.15.0",
36
+ "@fireemu/linux-x64": "0.15.0",
37
+ "@fireemu/linux-arm64": "0.15.0",
38
+ "@fireemu/win32-x64": "0.15.0"
39
39
  },
40
40
  "engines": {
41
41
  "node": ">=20"