af360 0.1.15 → 0.1.16
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/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +141 -130
- package/dist/.next/app-path-routes-manifest.json +18 -18
- package/dist/.next/build-manifest.json +5 -5
- package/dist/.next/prerender-manifest.json +49 -49
- package/dist/.next/server/app/_not-found/page.js +2 -2
- package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.meta +8 -0
- package/dist/.next/server/app/_not-found.rsc +3 -3
- package/dist/.next/server/app/ahead/page.js +2 -2
- package/dist/.next/server/app/ahead/page.js.nft.json +1 -1
- package/dist/.next/server/app/ahead/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/ahead.html +1 -1
- package/dist/.next/server/app/ahead.meta +8 -0
- package/dist/.next/server/app/ahead.rsc +4 -4
- package/dist/.next/server/app/api/browse/route.js +1 -1
- package/dist/.next/server/app/api/browse/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/card/route.js +1 -1
- package/dist/.next/server/app/api/card/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/card/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/check/route.js +1 -1
- package/dist/.next/server/app/api/check/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/check/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/config/route.js +1 -1
- package/dist/.next/server/app/api/config/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/connections/route.js +3 -3
- package/dist/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/connectors/github/route.js +1 -1
- package/dist/.next/server/app/api/connectors/github/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/connectors/github/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/consent/route.js +1 -1
- package/dist/.next/server/app/api/consent/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/consent/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/context/route.js +3 -3
- package/dist/.next/server/app/api/context/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/context/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/discover/route.js +1 -1
- package/dist/.next/server/app/api/discover/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/discover/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/expiry/route.js +1 -1
- package/dist/.next/server/app/api/expiry/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/expiry/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/first-light/route.js +1 -1
- package/dist/.next/server/app/api/first-light/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/first-light/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/handoff/route.js +1 -1
- package/dist/.next/server/app/api/handoff/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/handoff/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/health/route.js +1 -1
- package/dist/.next/server/app/api/health/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/incidents/route.js +1 -1
- package/dist/.next/server/app/api/incidents/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/incidents/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/insights/route.js +1 -1
- package/dist/.next/server/app/api/insights/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/insights/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/log/route.js +1 -1
- package/dist/.next/server/app/api/log/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/log/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pulse/route.js +1 -1
- package/dist/.next/server/app/api/pulse/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/pulse/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/radar/route.js +1 -1
- package/dist/.next/server/app/api/radar/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/radar/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/report/route.js +1 -1
- package/dist/.next/server/app/api/report/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/report/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/services/route.js +1 -1
- package/dist/.next/server/app/api/services/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/services/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/status/route.js +1 -1
- package/dist/.next/server/app/api/status/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/status/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/connections/page.js +2 -2
- package/dist/.next/server/app/connections/page.js.nft.json +1 -1
- package/dist/.next/server/app/connections/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/connections.html +1 -1
- package/dist/.next/server/app/connections.meta +8 -0
- package/dist/.next/server/app/connections.rsc +4 -4
- package/dist/.next/server/app/dashboard/page.js +2 -2
- package/dist/.next/server/app/dashboard/page.js.nft.json +1 -1
- package/dist/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/dashboard.html +1 -1
- package/dist/.next/server/app/dashboard.meta +8 -0
- package/dist/.next/server/app/dashboard.rsc +3 -3
- package/dist/.next/server/app/discoveries/page.js +2 -2
- package/dist/.next/server/app/discoveries/page.js.nft.json +1 -1
- package/dist/.next/server/app/discoveries/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/discoveries.html +1 -1
- package/dist/.next/server/app/discoveries.meta +8 -0
- package/dist/.next/server/app/discoveries.rsc +4 -4
- package/dist/.next/server/app/expiry/page.js +2 -2
- package/dist/.next/server/app/expiry/page.js.nft.json +1 -1
- package/dist/.next/server/app/expiry/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/expiry.html +1 -1
- package/dist/.next/server/app/expiry.meta +8 -0
- package/dist/.next/server/app/expiry.rsc +3 -3
- package/dist/.next/server/app/fleet/page.js +2 -2
- package/dist/.next/server/app/fleet/page.js.nft.json +1 -1
- package/dist/.next/server/app/fleet/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/fleet.html +1 -1
- package/dist/.next/server/app/fleet.meta +8 -0
- package/dist/.next/server/app/fleet.rsc +3 -3
- package/dist/.next/server/app/home/page.js +2 -2
- package/dist/.next/server/app/home/page.js.nft.json +1 -1
- package/dist/.next/server/app/home/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/home.html +1 -1
- package/dist/.next/server/app/home.meta +8 -0
- package/dist/.next/server/app/home.rsc +3 -3
- package/dist/.next/server/app/legal/privacy/page.js +2 -2
- package/dist/.next/server/app/legal/privacy/page.js.nft.json +1 -1
- package/dist/.next/server/app/legal/privacy/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/legal/terms/page.js +2 -2
- package/dist/.next/server/app/legal/terms/page.js.nft.json +1 -1
- package/dist/.next/server/app/legal/terms/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/log/page.js +2 -2
- package/dist/.next/server/app/log/page.js.nft.json +1 -1
- package/dist/.next/server/app/log/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/log.html +1 -1
- package/dist/.next/server/app/log.meta +8 -0
- package/dist/.next/server/app/log.rsc +4 -4
- package/dist/.next/server/app/page.js +2 -2
- package/dist/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/projects/page.js +2 -2
- package/dist/.next/server/app/projects/page.js.nft.json +1 -1
- package/dist/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/projects.html +1 -1
- package/dist/.next/server/app/projects.meta +8 -0
- package/dist/.next/server/app/projects.rsc +4 -4
- package/dist/.next/server/app/radar/page.js +2 -2
- package/dist/.next/server/app/radar/page.js.nft.json +1 -1
- package/dist/.next/server/app/radar/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/radar.html +1 -1
- package/dist/.next/server/app/radar.meta +8 -0
- package/dist/.next/server/app/radar.rsc +4 -4
- package/dist/.next/server/app/report/page.js +2 -2
- package/dist/.next/server/app/report/page.js.nft.json +1 -1
- package/dist/.next/server/app/report/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/report.html +1 -1
- package/dist/.next/server/app/report.meta +8 -0
- package/dist/.next/server/app/report.rsc +4 -4
- package/dist/.next/server/app/settings/page.js +2 -2
- package/dist/.next/server/app/settings/page.js.nft.json +1 -1
- package/dist/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/settings.html +1 -1
- package/dist/.next/server/app/settings.meta +8 -0
- package/dist/.next/server/app/settings.rsc +4 -4
- package/dist/.next/server/app/sites/page.js +2 -2
- package/dist/.next/server/app/sites/page.js.nft.json +1 -1
- package/dist/.next/server/app/sites/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/sites.html +1 -1
- package/dist/.next/server/app/sites.meta +8 -0
- package/dist/.next/server/app/sites.rsc +4 -4
- package/dist/.next/server/app/welcome/page.js +2 -2
- package/dist/.next/server/app/welcome/page.js.nft.json +1 -1
- package/dist/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/welcome.html +1 -1
- package/dist/.next/server/app/welcome.meta +8 -0
- package/dist/.next/server/app/welcome.rsc +4 -4
- package/dist/.next/server/app-paths-manifest.json +18 -18
- package/dist/.next/server/chunks/1155.js +1 -0
- package/dist/.next/server/chunks/1232.js +1 -0
- package/dist/.next/server/chunks/2346.js +1 -1
- package/dist/.next/server/chunks/2465.js +20 -20
- package/dist/.next/server/chunks/2817.js +1 -1
- package/dist/.next/server/chunks/3897.js +22 -0
- package/dist/.next/server/chunks/4134.js +1 -1
- package/dist/.next/server/chunks/5277.js +1 -0
- package/dist/.next/server/chunks/5611.js +1 -1
- package/dist/.next/server/chunks/572.js +1 -1
- package/dist/.next/server/chunks/6992.js +1 -1
- package/dist/.next/server/chunks/7511.js +1 -1
- package/dist/.next/server/chunks/7719.js +1 -1
- package/dist/.next/server/chunks/8150.js +1 -1
- package/dist/.next/server/chunks/8549.js +1 -1
- package/dist/.next/server/chunks/9655.js +11 -0
- package/dist/.next/server/middleware-build-manifest.js +1 -1
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/pages/_document.js.nft.json +1 -1
- package/dist/.next/server/pages/_error.js +3 -3
- package/dist/.next/server/pages/_error.js.nft.json +1 -1
- package/dist/.next/server/pages-manifest.json +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/1255-5cd2fe06309409a0.js +1 -0
- package/dist/.next/static/chunks/2619-3c9e02e22d10480a.js +1 -0
- package/dist/.next/static/chunks/3192-7e153722ff079fc6.js +1 -0
- package/dist/.next/static/chunks/{7897-b9c15e8805df61ef.js → 7897-52f8a153c1970ef0.js} +1 -1
- package/dist/.next/static/chunks/8050-6c17ccfd85ac3208.js +1 -0
- package/dist/.next/static/chunks/app/ahead/{page-75602559f92be6c4.js → page-f5789a03967af6e1.js} +1 -1
- package/dist/.next/static/chunks/app/connections/{page-ff9d0b4e4fcf5ebe.js → page-5b833f9485623b92.js} +1 -1
- package/dist/.next/static/chunks/app/discoveries/{page-6b06c0c2a94f3b94.js → page-337bb60e4cbdcebb.js} +1 -1
- package/dist/.next/static/chunks/app/{error-c67c297ef2dd70de.js → error-b32d8c6d4bfa070e.js} +1 -1
- package/dist/.next/static/chunks/app/{layout-d14e087b541b48b1.js → layout-0f3f0098b5d1e6be.js} +1 -1
- package/dist/.next/static/chunks/app/log/{page-842048c36f071dd6.js → page-1711fe02581c58e8.js} +1 -1
- package/dist/.next/static/chunks/app/projects/page-b05c7b0c3284db79.js +1 -0
- package/dist/.next/static/chunks/app/radar/page-2c972e78ae153706.js +1 -0
- package/dist/.next/static/chunks/app/report/page-6bd98ca320f3730c.js +1 -0
- package/dist/.next/static/chunks/app/settings/{page-582279bf3fe509d4.js → page-d50e8193d000c9be.js} +1 -1
- package/dist/.next/static/chunks/app/sites/page-80cc0a08ae2339a8.js +1 -0
- package/dist/.next/static/chunks/app/welcome/{page-d26225bed7e1ad39.js → page-f2cd15c4b50942bc.js} +1 -1
- package/dist/.next/static/chunks/main-8e42304858de4a63.js +1 -0
- package/dist/.next/static/css/5ddef273a3ac3217.css +1 -0
- package/dist/build-id.json +225 -223
- package/dist/node_modules/@next/env/package.json +1 -1
- package/dist/node_modules/next/dist/build/swc/index.js +1 -1
- package/dist/node_modules/next/dist/build/webpack-config.js +2 -2
- package/dist/node_modules/next/dist/compiled/hash.js/sha256/256.js +1 -0
- package/dist/node_modules/next/dist/compiled/hash.js/sha256/package.json +1 -0
- package/dist/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +13 -13
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +13 -13
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +10 -10
- package/dist/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +11 -11
- package/dist/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
- package/dist/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
- package/dist/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +8 -8
- package/dist/node_modules/next/dist/server/base-server.js +2 -5
- package/dist/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/node_modules/next/dist/server/image-optimizer.js +46 -3
- package/dist/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/dist/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +180 -19
- package/dist/node_modules/next/dist/server/lib/incremental-cache/index.js +36 -17
- package/dist/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +3 -3
- package/dist/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +14 -6
- package/dist/node_modules/next/dist/server/lib/match-next-data-pathname.js +3 -1
- package/dist/node_modules/next/dist/server/lib/node-fs-methods.js +14 -0
- package/dist/node_modules/next/dist/server/lib/route-cache-key.js +77 -0
- package/dist/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/dist/node_modules/next/dist/server/next-server.js +8 -6
- package/dist/node_modules/next/dist/server/response-cache/index.js +31 -15
- package/dist/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +2 -2
- package/dist/node_modules/next/dist/server/route-modules/pages/pages-handler.js +6 -1
- package/dist/node_modules/next/dist/server/route-modules/route-module.js +9 -2
- package/dist/node_modules/next/dist/shared/lib/canary-only.js +1 -1
- package/dist/node_modules/next/dist/shared/lib/router/utils/app-paths.js +17 -1
- package/dist/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/dist/node_modules/next/package.json +11 -11
- package/dist/node_modules/source-map-js/lib/quick-sort.js +10 -1
- package/dist/node_modules/source-map-js/lib/source-map-consumer.js +51 -3
- package/dist/node_modules/source-map-js/lib/source-map-generator.js +6 -4
- package/dist/node_modules/source-map-js/lib/source-node.js +7 -0
- package/dist/node_modules/source-map-js/package.json +1 -1
- package/dist/package.json +3 -3
- package/dist/shell/bin/af360-bridge.exe +0 -0
- package/docs/legal/PRIVACY.md +1 -1
- package/lib/mask.mjs +21 -1
- package/package.json +3 -3
- package/scripts/mcp-server.mjs +19 -9
- package/shell/bin/af360-bridge.exe +0 -0
- package/dist/.next/server/chunks/1331.js +0 -22
- package/dist/.next/server/chunks/4825.js +0 -1
- package/dist/.next/server/chunks/8134.js +0 -11
- package/dist/.next/server/chunks/9946.js +0 -1
- package/dist/.next/static/chunks/1255-fc6c00ab2f765339.js +0 -1
- package/dist/.next/static/chunks/3192-40ade9877c89ec45.js +0 -1
- package/dist/.next/static/chunks/8050-a75457e83cd8be0f.js +0 -1
- package/dist/.next/static/chunks/app/projects/page-1d6b330842a2ff80.js +0 -1
- package/dist/.next/static/chunks/app/radar/page-584b42327baac21b.js +0 -1
- package/dist/.next/static/chunks/app/report/page-9dc52d7f76569e42.js +0 -1
- package/dist/.next/static/chunks/app/sites/page-3dcc5a0990fae677.js +0 -1
- package/dist/.next/static/chunks/main-574ae5bf2f2165c4.js +0 -1
- package/dist/.next/static/css/9b639a814d15c5ff.css +0 -1
- /package/dist/.next/static/{4602553707d90d0fadeba → be31a391928486d5659f1}/_buildManifest.js +0 -0
- /package/dist/.next/static/{4602553707d90d0fadeba → be31a391928486d5659f1}/_ssgManifest.js +0 -0
|
@@ -11,6 +11,14 @@ var ArraySet = require('./array-set').ArraySet;
|
|
|
11
11
|
var base64VLQ = require('./base64-vlq');
|
|
12
12
|
var quickSort = require('./quick-sort').quickSort;
|
|
13
13
|
|
|
14
|
+
// Upper bound for a section's `offset.line` in an indexed source map. A flat
|
|
15
|
+
// map spends one ';' per generated line, so a tiny indexed map with a huge
|
|
16
|
+
// offset.line turns into a huge amount of work and memory once its mappings
|
|
17
|
+
// are copied into a SourceMapGenerator (CVE-2026-93749). Ten million lines is
|
|
18
|
+
// far beyond any real generated file. Columns are VLQ-encoded as deltas and
|
|
19
|
+
// don't amplify, so they only need to be valid integers.
|
|
20
|
+
var MAX_SECTION_OFFSET_LINE = 1e7;
|
|
21
|
+
|
|
14
22
|
function SourceMapConsumer(aSourceMap, aSourceMapURL) {
|
|
15
23
|
var sourceMap = aSourceMap;
|
|
16
24
|
if (typeof aSourceMap === 'string') {
|
|
@@ -935,6 +943,7 @@ function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {
|
|
|
935
943
|
line: -1,
|
|
936
944
|
column: 0
|
|
937
945
|
};
|
|
946
|
+
var maxOffsetLine = 0;
|
|
938
947
|
this._sections = sections.map(function (s) {
|
|
939
948
|
if (s.url) {
|
|
940
949
|
// The url field will require support for asynchronicity.
|
|
@@ -945,12 +954,32 @@ function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {
|
|
|
945
954
|
var offsetLine = util.getArg(offset, 'line');
|
|
946
955
|
var offsetColumn = util.getArg(offset, 'column');
|
|
947
956
|
|
|
957
|
+
if (!isValidOffset(offsetLine) || !isValidOffset(offsetColumn)) {
|
|
958
|
+
throw new Error('Section offset line and column must be non-negative integers.');
|
|
959
|
+
}
|
|
960
|
+
if (offsetLine > MAX_SECTION_OFFSET_LINE) {
|
|
961
|
+
throw new Error('Section offset line must not exceed ' + MAX_SECTION_OFFSET_LINE + '.');
|
|
962
|
+
}
|
|
963
|
+
|
|
948
964
|
if (offsetLine < lastOffset.line ||
|
|
949
965
|
(offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
|
|
950
966
|
throw new Error('Section offsets must be ordered and non-overlapping.');
|
|
951
967
|
}
|
|
952
968
|
lastOffset = offset;
|
|
953
969
|
|
|
970
|
+
var consumer = new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL);
|
|
971
|
+
|
|
972
|
+
// Offsets of a nested indexed map add up with this one, so apply the
|
|
973
|
+
// bound to the total.
|
|
974
|
+
var totalOffsetLine = offsetLine + (consumer._maxOffsetLine || 0);
|
|
975
|
+
if (totalOffsetLine > MAX_SECTION_OFFSET_LINE) {
|
|
976
|
+
throw new Error('Section offset line must not exceed ' + MAX_SECTION_OFFSET_LINE +
|
|
977
|
+
', including offsets of nested sections.');
|
|
978
|
+
}
|
|
979
|
+
if (totalOffsetLine > maxOffsetLine) {
|
|
980
|
+
maxOffsetLine = totalOffsetLine;
|
|
981
|
+
}
|
|
982
|
+
|
|
954
983
|
return {
|
|
955
984
|
generatedOffset: {
|
|
956
985
|
// The offset fields are 0-based, but we use 1-based indices when
|
|
@@ -958,9 +987,24 @@ function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {
|
|
|
958
987
|
generatedLine: offsetLine + 1,
|
|
959
988
|
generatedColumn: offsetColumn + 1
|
|
960
989
|
},
|
|
961
|
-
consumer:
|
|
990
|
+
consumer: consumer
|
|
962
991
|
}
|
|
963
992
|
});
|
|
993
|
+
|
|
994
|
+
// The largest offset.line of any section, including nested sections.
|
|
995
|
+
this._maxOffsetLine = maxOffsetLine;
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
/**
|
|
999
|
+
* Section offsets come from untrusted input and are used as line/column
|
|
1000
|
+
* numbers, so only accept non-negative safe integers (rejects NaN, Infinity,
|
|
1001
|
+
* strings, fractions, etc).
|
|
1002
|
+
*/
|
|
1003
|
+
function isValidOffset(aValue) {
|
|
1004
|
+
return typeof aValue === 'number' &&
|
|
1005
|
+
aValue >= 0 &&
|
|
1006
|
+
aValue <= 9007199254740991 && // Number.MAX_SAFE_INTEGER
|
|
1007
|
+
Math.floor(aValue) === aValue;
|
|
964
1008
|
}
|
|
965
1009
|
|
|
966
1010
|
IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
|
|
@@ -978,8 +1022,12 @@ Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
|
|
|
978
1022
|
get: function () {
|
|
979
1023
|
var sources = [];
|
|
980
1024
|
for (var i = 0; i < this._sections.length; i++) {
|
|
981
|
-
|
|
982
|
-
|
|
1025
|
+
// Read the getter once per section: for a nested indexed map it is
|
|
1026
|
+
// itself this getter, and re-reading it per item is exponential in the
|
|
1027
|
+
// nesting depth (CVE-2026-93749).
|
|
1028
|
+
var sectionSources = this._sections[i].consumer.sources;
|
|
1029
|
+
for (var j = 0; j < sectionSources.length; j++) {
|
|
1030
|
+
sources.push(sectionSources[j]);
|
|
983
1031
|
}
|
|
984
1032
|
}
|
|
985
1033
|
return sources;
|
|
@@ -348,10 +348,12 @@ SourceMapGenerator.prototype._serializeMappings =
|
|
|
348
348
|
|
|
349
349
|
if (mapping.generatedLine !== previousGeneratedLine) {
|
|
350
350
|
previousGeneratedColumn = 0;
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
351
|
+
// One ';' per skipped line. Build large gaps with a single flat
|
|
352
|
+
// string: appending ';' one by one creates a rope node per line, which
|
|
353
|
+
// can exhaust the heap for a big gap (CVE-2026-93749).
|
|
354
|
+
var lineDelta = mapping.generatedLine - previousGeneratedLine;
|
|
355
|
+
next += lineDelta === 1 ? ';' : ';'.repeat(lineDelta);
|
|
356
|
+
previousGeneratedLine = mapping.generatedLine;
|
|
355
357
|
}
|
|
356
358
|
else {
|
|
357
359
|
if (i > 0) {
|
|
@@ -113,6 +113,13 @@ SourceNode.fromStringWithSourceMap =
|
|
|
113
113
|
// to the SourceNode without any mapping.
|
|
114
114
|
// Each line is added as separate string.
|
|
115
115
|
while (lastGeneratedLine < mapping.generatedLine) {
|
|
116
|
+
if (remainingLinesIndex >= remainingLines.length) {
|
|
117
|
+
// The generated code is exhausted. Skip the rest instead of adding
|
|
118
|
+
// empty lines one by one: a mapping may point far past the end of
|
|
119
|
+
// the code (e.g. an indexed map section with a huge offset.line).
|
|
120
|
+
lastGeneratedLine = mapping.generatedLine;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
116
123
|
node.add(shiftNextLine());
|
|
117
124
|
lastGeneratedLine++;
|
|
118
125
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "source-map-js",
|
|
3
3
|
"description": "Generates and consumes source maps",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.2",
|
|
5
5
|
"homepage": "https://github.com/7rulnik/source-map-js",
|
|
6
6
|
"author": "Valentin 7rulnik Semirulnik <v7rulnik@gmail.com>",
|
|
7
7
|
"contributors": [
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "af360",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "Watches the things you have built - folders, repos and sites - and tells you what needs you. Runs entirely on your own machine.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Afeleos LLC",
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
},
|
|
61
61
|
"overrides": {
|
|
62
62
|
"postcss": "^8.5.23",
|
|
63
|
-
"sharp": "^0.35.
|
|
63
|
+
"sharp": "^0.35.5"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/node": "^22.0.0",
|
|
67
67
|
"@types/react": "^19.0.0",
|
|
68
68
|
"@types/react-dom": "^19.2.4",
|
|
69
|
-
"next": "^15.5.
|
|
69
|
+
"next": "^15.5.27",
|
|
70
70
|
"react": "^19.0.0",
|
|
71
71
|
"react-dom": "^19.0.0",
|
|
72
72
|
"typescript": "^5.6.0"
|
|
Binary file
|
package/docs/legal/PRIVACY.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
af360 reads the folders you choose to watch and the websites you choose to watch. It reads them to tell you what is going on; it never changes anything inside them.
|
|
9
9
|
|
|
10
10
|
## What af360 keeps, and where
|
|
11
|
-
Everything af360 remembers lives in one folder on your machine: `C:\Users\<your name>\.af360`. That is your settings, your list of watched folders and sites, and af360's own log of what it looked at and when. The log covers the last seven days. Older entries stop being shown at once, and are deleted from the file within a day. af360 itself copies nothing off the machine.
|
|
11
|
+
Everything af360 remembers lives in one folder on your machine: `C:\Users\<your name>\.af360`. That is your settings, your list of watched folders and sites, and af360's own log of what it looked at and when. The log covers the last seven days. Older entries stop being shown at once, and are deleted from the file within a day. The same folder holds `launch.log`, which records only the steps of each start of af360 - when it started and how far it got - holds nothing from your folders or sites, and stays on your machine. af360 itself copies nothing off the machine.
|
|
12
12
|
|
|
13
13
|
## What af360 sends, and to whom
|
|
14
14
|
af360 makes no connection on its own. Each of these happens only because you turned it on, and each has its own switch in Settings:
|
package/lib/mask.mjs
CHANGED
|
@@ -92,6 +92,14 @@ export function looksLikeSettingName(name) {
|
|
|
92
92
|
* - then the shape-based rules (JWT, long hex, long base64), which are the
|
|
93
93
|
* catch-all for a key nobody has a pattern for yet.
|
|
94
94
|
*/
|
|
95
|
+
/** A slash-separated run of lowercase segments - an estate path, not a key.
|
|
96
|
+
* See the base64 rule in `mask` for why each condition is there. */
|
|
97
|
+
export function looksLikePath(run) {
|
|
98
|
+
if (!run.includes("/") || run.includes("+") || /[A-Z=]/.test(run)) return false;
|
|
99
|
+
const segs = run.split("/").filter(Boolean);
|
|
100
|
+
return segs.length >= 2 && segs.every((s) => /^[a-z0-9]+$/.test(s) && /[a-z]/.test(s));
|
|
101
|
+
}
|
|
102
|
+
|
|
95
103
|
export function mask(text) {
|
|
96
104
|
let t = text;
|
|
97
105
|
|
|
@@ -163,7 +171,19 @@ export function mask(text) {
|
|
|
163
171
|
t = t.replace(/(?<![A-Za-z0-9])[0-9a-f]{32,}(?![A-Za-z0-9])/gi, SECRET_MASK);
|
|
164
172
|
|
|
165
173
|
// a long unbroken base64-ish run is not a word anybody typed on purpose
|
|
166
|
-
|
|
174
|
+
/* ~~...EXCEPT WHEN IT IS A PATH.~~ **A PATH IS NOT A KEY** (sitting 52, step
|
|
175
|
+
3b, the owner's export: "[secret masked].csv/+server.ts"). Measured on his
|
|
176
|
+
own inventory: `src/routes/fabrication/consumables/export.csv/+server.ts`
|
|
177
|
+
- the run before `.csv` is 41 characters of letters and `/`, so this rule
|
|
178
|
+
ate a file-gone finding whose path IS the finding; its six siblings
|
|
179
|
+
survived only because a `[bracket]` broke their runs.
|
|
180
|
+
THE EXCEPTION IS NARROW ON PURPOSE: the run must contain `/`, no `+`, no
|
|
181
|
+
uppercase letter, and every `/` segment must be lowercase letters and
|
|
182
|
+
digits. Base64 key material is mixed-case by construction, so a run with
|
|
183
|
+
ONE uppercase letter or a `+` is still masked here, and every other rule
|
|
184
|
+
above and below is untouched - a secret in CONTENT stays masked. */
|
|
185
|
+
t = t.replace(/(?<![A-Za-z0-9])[A-Za-z0-9+/]{40,}={0,2}(?![A-Za-z0-9+/=])/g, (run) =>
|
|
186
|
+
looksLikePath(run) ? run : SECRET_MASK);
|
|
167
187
|
|
|
168
188
|
return t;
|
|
169
189
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "af360",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "Watches the things you have built - folders, repos and sites - and tells you what needs you. Runs entirely on your own machine.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Afeleos LLC",
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
},
|
|
61
61
|
"overrides": {
|
|
62
62
|
"postcss": "^8.5.23",
|
|
63
|
-
"sharp": "^0.35.
|
|
63
|
+
"sharp": "^0.35.5"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/node": "^22.0.0",
|
|
67
67
|
"@types/react": "^19.0.0",
|
|
68
68
|
"@types/react-dom": "^19.2.4",
|
|
69
|
-
"next": "^15.5.
|
|
69
|
+
"next": "^15.5.27",
|
|
70
70
|
"react": "^19.0.0",
|
|
71
71
|
"react-dom": "^19.0.0",
|
|
72
72
|
"typescript": "^5.6.0"
|
package/scripts/mcp-server.mjs
CHANGED
|
@@ -524,7 +524,9 @@ const TOOLS = [
|
|
|
524
524
|
...envelope(look, now),
|
|
525
525
|
empty: look.empty,
|
|
526
526
|
state: look.estate.state,
|
|
527
|
-
|
|
527
|
+
/* sitting 50 A2: the needs-you number (rows + safety). An older record
|
|
528
|
+
carries no `needs` and answers with the row count it always did. */
|
|
529
|
+
needsYou: look.estate.needs ?? look.estate.open,
|
|
528
530
|
headline: look.estate.line,
|
|
529
531
|
under: look.estate.under,
|
|
530
532
|
watching: look.estate.counts,
|
|
@@ -715,14 +717,22 @@ const TOOLS = [
|
|
|
715
717
|
"The sites af360 watches and the last confirmed reading for each: answering or down, the status code, and " +
|
|
716
718
|
"when that reading was taken. An unconfirmed miss is never reported as an outage. Read-only, from the last look.",
|
|
717
719
|
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
720
|
+
/* F1's amendment (owner ruling 2026-10-22): the room's own role travels in
|
|
721
|
+
each row, so an agent is never told a dependency is a site that is down. */
|
|
722
|
+
run: (look, now) => {
|
|
723
|
+
const role = (s) => (s && s.role === "dependency" ? "dependency" : "site");
|
|
724
|
+
return {
|
|
725
|
+
...envelope(look, now),
|
|
726
|
+
count: look.sites.filter((s) => role(s) === "site").length,
|
|
727
|
+
dependencies: look.sites.filter((s) => role(s) === "dependency").length,
|
|
728
|
+
sites: look.sites.map((s) => ({ ...s, role: role(s) })),
|
|
729
|
+
honesty:
|
|
730
|
+
"ok null means af360 has no confirmed reading for this site yet. One missed check is a hiccup, not an " +
|
|
731
|
+
"outage, so a single failure never appears here as down. A row with role \"dependency\" is an address " +
|
|
732
|
+
"the user's project uses rather than runs: for it ok means only asked and answered, and af360 makes no " +
|
|
733
|
+
"up or down judgment about it.",
|
|
734
|
+
};
|
|
735
|
+
},
|
|
726
736
|
},
|
|
727
737
|
{
|
|
728
738
|
name: "blast_radius",
|
|
Binary file
|