@amalgm/browser 0.1.1 → 0.1.2-preview.34176754339

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/PURPOSE.md CHANGED
@@ -50,6 +50,26 @@ public Browser ports. It does not own a second browser implementation.
50
50
 
51
51
  ## Axioms
52
52
 
53
+ Consumer assembly derives exact same-branch dependency pins from the declared
54
+ package manifests and registry candidate records. One pending composition per
55
+ branch preserves human edits; complete consumer checks for the exact merge tree govern its
56
+ merge, and publication never implies installed adoption.
57
+
58
+ Managed package delivery starts from a clean, exact main or preview source
59
+ commit. The workflow occurrence supplies only its generated version and source
60
+ record; tests run against those candidate inputs before packing. Every native
61
+ gate and publication use that same tarball and integrity. A candidate tag makes
62
+ bytes available to release assembly; it never promotes an installed runtime.
63
+ Release tooling remains available inside each owner repository so a developer
64
+ or CI job never needs access to another private product repository.
65
+ Registry credentials are available only to the final protected publication job,
66
+ after every native examination proves the exact candidate bytes.
67
+ Native consumers install the archive as a dependency, so SDK development
68
+ dependencies never become an end-user installation requirement.
69
+ The repository token creates only its own dependency proposals and explicitly
70
+ dispatches checks and delivery; every admitted gate proves the actual checkout,
71
+ including the exact two-parent merge commit that becomes managed source.
72
+
53
73
  Managed releases bind to one exact published Core version and build from the
54
74
  locked dependency graph on the supported Node toolchain.
55
75
 
package/README.md CHANGED
@@ -118,3 +118,30 @@ adapter contracts, migration fixtures, package installation, and tarball
118
118
  hygiene. The opt-in suites use real bundled Chromium and real Electron.
119
119
 
120
120
  The complete documentation index is [docs/README.md](./docs/README.md).
121
+
122
+ ## Managed package delivery
123
+
124
+ Managed npm delivery uses `.github/workflows/publish-package.yml` after the
125
+ exact main/preview owner checks pass. The occurrence generates a unique
126
+ prerelease version and records its source SHA; it reruns the owner suite, packs
127
+ once, and installs that tarball on Linux, macOS and Windows before publication.
128
+ The `candidate-main`/`candidate-preview` tags are release-assembly inputs and
129
+ never select installed runtimes. `package.json` declares this owner's gates,
130
+ CLI probes, peer-only exports and lifecycle permissions. The standalone runner
131
+ under `scripts/release/` is intentionally copied across owners to preserve
132
+ private repository access boundaries. The final publish step uses the `NPM_TOKEN`
133
+ secret in the `npm-release` environment. Where npm trusted publishing is
134
+ configured for this repository's `publish-package.yml` and that environment,
135
+ the token can be omitted. Authentication does not replace native certification,
136
+ exact source records or artifact integrity; private source repositories do not
137
+ receive npm's public-source provenance.
138
+
139
+ Managed dependency reconciliation reads this owner’s declared manifests and
140
+ updates exact same-branch registry candidates in one pending composition PR per
141
+ branch. The repository token explicitly dispatches the owner checks. Every declared gate must
142
+ pass for the exact merge tree; an atomic expected-base update prevents merging
143
+ with untested concurrent source. Human additions or amendments are preserved.
144
+ The half-hour CI reconciliation recovers missed dispatch hints. Assembly runs
145
+ no dependency code or lifecycle hooks, and repeated owner checks do not publish
146
+ another candidate for unchanged source. Repository policy must allow GitHub Actions to create pull requests; no
147
+ cross-repository credential or paid auto-merge feature is required.
@@ -6,7 +6,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
8
  var __commonJS = (cb, mod) => function __require() {
9
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ try {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ } catch (e) {
12
+ throw mod = 0, e;
13
+ }
10
14
  };
11
15
  var __export = (target, all) => {
12
16
  for (var name in all)
@@ -847,6 +851,8 @@ var BrowserError = class extends Error {
847
851
  this.code = code;
848
852
  this.details = details;
849
853
  }
854
+ code;
855
+ details;
850
856
  name = "BrowserError";
851
857
  };
852
858
 
@@ -867,6 +873,7 @@ var ElectronBrowserDriver = class {
867
873
  this.host = host;
868
874
  this.capabilities = [...host.capabilities];
869
875
  }
876
+ host;
870
877
  kind = "electron";
871
878
  capabilities;
872
879
  identities = /* @__PURE__ */ new Map();
@@ -973,6 +980,7 @@ var ElectronCookieAdapter = class {
973
980
  constructor(cookies) {
974
981
  this.cookies = cookies;
975
982
  }
983
+ cookies;
976
984
  id = ELECTRON_COOKIE_ADAPTER_ID;
977
985
  supportsPartitionedCookies = false;
978
986
  async read() {
@@ -11917,6 +11925,7 @@ var AdBlockAllowlist = class {
11917
11925
  this.file = file;
11918
11926
  this.paused = read(file);
11919
11927
  }
11928
+ file;
11920
11929
  paused;
11921
11930
  write = Promise.resolve();
11922
11931
  enabled(hostname) {
@@ -11967,6 +11976,7 @@ var NativeAdBlocker = class {
11967
11976
  this.loading = !this.disabled;
11968
11977
  this.allowlist = new AdBlockAllowlist(options.settingsPath);
11969
11978
  }
11979
+ options;
11970
11980
  engine = null;
11971
11981
  loading;
11972
11982
  installed;
@@ -12605,6 +12615,8 @@ var BrowserAdBlockIpc = class {
12605
12615
  import_electron6.ipcMain.handle(BROWSER_IPC.adBlockGetStatus, this.getStatus);
12606
12616
  import_electron6.ipcMain.handle(BROWSER_IPC.adBlockSetEnabled, this.setEnabled);
12607
12617
  }
12618
+ blocker;
12619
+ sites;
12608
12620
  dispose() {
12609
12621
  import_electron6.ipcMain.removeHandler(BROWSER_IPC.adBlockGetStatus);
12610
12622
  import_electron6.ipcMain.removeHandler(BROWSER_IPC.adBlockSetEnabled);
@@ -12684,6 +12696,7 @@ var BrowserContextMenuController = class {
12684
12696
  this.isDev = isDev;
12685
12697
  import_electron7.ipcMain.handle(BROWSER_IPC.contextAction, this.handleAction);
12686
12698
  }
12699
+ isDev;
12687
12700
  requests = /* @__PURE__ */ new Map();
12688
12701
  show(site, params) {
12689
12702
  if (site.contents.id !== site.rootGuestId) {
@@ -12817,6 +12830,8 @@ var BrowserDownloadController = class {
12817
12830
  browserSession2.on("will-download", this.started);
12818
12831
  import_electron8.ipcMain.handle(BROWSER_IPC.downloadAction, this.handleAction);
12819
12832
  }
12833
+ browserSession;
12834
+ sites;
12820
12835
  downloads = /* @__PURE__ */ new Map();
12821
12836
  dispose() {
12822
12837
  this.downloads.clear();
@@ -12916,6 +12931,9 @@ var BrowserPermissionController = class {
12916
12931
  browserSession2.setPermissionRequestHandler(this.request);
12917
12932
  import_electron9.ipcMain.on(BROWSER_IPC.permissionResponse, this.respond);
12918
12933
  }
12934
+ browserSession;
12935
+ sites;
12936
+ isTrustedAppUrl;
12919
12937
  pending = /* @__PURE__ */ new Map();
12920
12938
  decisions = /* @__PURE__ */ new Map();
12921
12939
  dispose() {
@@ -13011,6 +13029,7 @@ var BrowserSiteManager = class {
13011
13029
  constructor(options) {
13012
13030
  this.options = options;
13013
13031
  }
13032
+ options;
13014
13033
  sites = /* @__PURE__ */ new Map();
13015
13034
  automationEmbedders = /* @__PURE__ */ new Map();
13016
13035
  get(webContentsId) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amalgm/browser",
3
- "version": "0.1.1",
3
+ "version": "0.1.2-preview.34176754339",
4
4
  "description": "Safe persistent browser automation across headless Chromium and visible Electron surfaces.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -88,13 +88,19 @@
88
88
  "test:electron": "tsx scripts/run-electron-test.ts",
89
89
  "verify": "npm run check && npm run build && npm test && npm run verify:pack",
90
90
  "verify:pack": "tsx scripts/verify-package.ts",
91
- "prepack": "npm run build"
91
+ "prepack": "npm run build",
92
+ "release:admit": "node scripts/release/package.mjs admit",
93
+ "release:prepare": "node scripts/release/package.mjs prepare",
94
+ "release:examine": "node scripts/release/package.mjs examine",
95
+ "release:publish": "node scripts/release/package.mjs publish",
96
+ "release:compose": "node scripts/release/compose.mjs",
97
+ "test:release": "node --test scripts/release/*.test.mjs"
92
98
  },
93
99
  "engines": {
94
100
  "node": ">=24"
95
101
  },
96
102
  "dependencies": {
97
- "@amalgm/core": "0.4.7",
103
+ "@amalgm/core": "0.4.8-preview.34168975242",
98
104
  "@ghostery/adblocker": "^2.18.1",
99
105
  "agent-browser": "0.26.0",
100
106
  "better-sqlite3": "^12.10.1",
@@ -116,9 +122,46 @@
116
122
  "@types/node": "^20.19.43",
117
123
  "@types/ws": "^8.18.1",
118
124
  "cross-env": "^7.0.3",
119
- "electron": "41.7.1",
120
- "esbuild": "0.27.4",
125
+ "electron": "41.10.7",
126
+ "esbuild": "0.28.2",
121
127
  "tsx": "^4.23.1",
122
128
  "typescript": "^5.9.3"
129
+ },
130
+ "amalgmRelease": {
131
+ "schema": 1,
132
+ "workflow": "ci.yml",
133
+ "jobs": [
134
+ "verify",
135
+ "real-headless",
136
+ "real-electron"
137
+ ],
138
+ "verify": "verify",
139
+ "cli": [
140
+ "amalgm-browser"
141
+ ],
142
+ "peerExports": [
143
+ "./electron"
144
+ ]
145
+ },
146
+ "allowScripts": {
147
+ "agent-browser@0.26.0": true,
148
+ "better-sqlite3@12.11.1": true,
149
+ "ffmpeg-static@5.3.0": true,
150
+ "fsevents@2.3.3": false,
151
+ "esbuild@0.28.2": true,
152
+ "electron@41.10.7": true
153
+ },
154
+ "amalgmComposition": {
155
+ "schema": 1,
156
+ "manifests": [
157
+ "package.json"
158
+ ]
159
+ },
160
+ "gitHead": "f5b42292f912fcdf55bdf121fd553ffb1657b9db",
161
+ "amalgmSource": {
162
+ "repository": "amalgm-inc/amalgm-browser",
163
+ "branch": "preview",
164
+ "commit": "f5b42292f912fcdf55bdf121fd553ffb1657b9db",
165
+ "occurrence": "34176754339"
123
166
  }
124
167
  }