@absolutejs/absolute 0.20.0-beta.4 → 0.20.0-beta.41
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/README.md +203 -0
- package/dist/angular/browser.js +15 -1
- package/dist/angular/browser.js.map +3 -3
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +361 -30
- package/dist/angular/index.js.map +9 -6
- package/dist/angular/server.js +361 -30
- package/dist/angular/server.js.map +9 -6
- package/dist/build.js +2097 -1114
- package/dist/build.js.map +20 -16
- package/dist/cli/config/server.js +4 -0
- package/dist/cli/index.js +6986 -1561
- package/dist/dev/client/cssUtils.ts +16 -2
- package/dist/dev/client/handlers/rebuild.ts +11 -1
- package/dist/dev/client/hmrClient.ts +35 -3
- package/dist/dev/client/hmrTiming.ts +20 -7
- package/dist/dev/client/syncDevtools.ts +237 -0
- package/dist/dev/serverBootstrap.js +28 -0
- package/dist/index.js +2947 -1670
- package/dist/index.js.map +37 -31
- package/dist/mobile/browser.js +123 -1
- package/dist/mobile/browser.js.map +6 -4
- package/dist/mobile/index.js +4579 -375
- package/dist/mobile/index.js.map +39 -18
- package/dist/mobile/remoteMacAgentEntry.js +14 -14
- package/dist/mobile/shellAuth.js +36 -0
- package/dist/mobile/shellBootstrap.js +837 -0
- package/dist/mobile/shellExpoDevices.js +99 -0
- package/dist/mobile/shellSync.js +173 -0
- package/dist/react/index.js +5 -1
- package/dist/react/index.js.map +3 -3
- package/dist/react/server.js +5 -1
- package/dist/react/server.js.map +3 -3
- package/dist/src/angular/pageHandler.d.ts +3 -0
- package/dist/src/build/pwa.d.ts +16 -0
- package/dist/src/cli/config/server.d.ts +1 -1
- package/dist/src/cli/instanceStatus.d.ts +1 -0
- package/dist/src/cli/scripts/dev.d.ts +2 -0
- package/dist/src/core/devBuild.d.ts +1 -0
- package/dist/src/core/pageHandlers.d.ts +11 -2
- package/dist/src/core/prepare.d.ts +376 -0
- package/dist/src/dev/clientManager.d.ts +1 -0
- package/dist/src/dev/devCert.d.ts +6 -4
- package/dist/src/dev/serverEntryCopies.d.ts +3 -0
- package/dist/src/mobile/androidEmulatorController.d.ts +14 -2
- package/dist/src/mobile/androidRelease.d.ts +6 -0
- package/dist/src/mobile/androidTestReport.d.ts +14 -0
- package/dist/src/mobile/androidUpgradeConformance.d.ts +47 -0
- package/dist/src/mobile/androidWebView.d.ts +1 -0
- package/dist/src/mobile/browser.d.ts +1 -0
- package/dist/src/mobile/buildPipeline.d.ts +1 -0
- package/dist/src/mobile/capacitorBundle.d.ts +22 -1
- package/dist/src/mobile/ciWorkflow.d.ts +26 -0
- package/dist/src/mobile/client.d.ts +4 -0
- package/dist/src/mobile/config.d.ts +4 -1
- package/dist/src/mobile/devDeviceAdapter.d.ts +3 -0
- package/dist/src/mobile/deviceCapabilities.d.ts +46 -0
- package/dist/src/mobile/expoBridge.d.ts +91 -0
- package/dist/src/mobile/expoDevController.d.ts +49 -0
- package/dist/src/mobile/expoProject.d.ts +16 -0
- package/dist/src/mobile/index.d.ts +14 -0
- package/dist/src/mobile/iosDeviceAcceptance.d.ts +32 -0
- package/dist/src/mobile/iosPhysicalDeviceTransport.d.ts +16 -0
- package/dist/src/mobile/iosRelease.d.ts +4 -1
- package/dist/src/mobile/iosSimulatorController.d.ts +20 -2
- package/dist/src/mobile/iosTestReport.d.ts +24 -0
- package/dist/src/mobile/mobileBundleInspection.d.ts +55 -0
- package/dist/src/mobile/mobileInspect.d.ts +136 -0
- package/dist/src/mobile/mobilePreview.d.ts +174 -0
- package/dist/src/mobile/mobilePreviewClient.d.ts +1 -0
- package/dist/src/mobile/nativeAuth.d.ts +17 -0
- package/dist/src/mobile/nativeBackgroundSync.d.ts +4 -0
- package/dist/src/mobile/nativeDeviceCapabilities.d.ts +6 -0
- package/dist/src/mobile/nativeTestReport.d.ts +91 -0
- package/dist/src/mobile/releaseArtifact.d.ts +2 -0
- package/dist/src/mobile/releaseDoctor.d.ts +23 -1
- package/dist/src/mobile/remoteMacProtocol.d.ts +11 -0
- package/dist/src/mobile/shellAuth.d.ts +15 -0
- package/dist/src/mobile/shellBootstrap.d.ts +23 -1
- package/dist/src/mobile/shellExpoDevices.d.ts +3 -0
- package/dist/src/mobile/shellHttp.d.ts +2 -0
- package/dist/src/mobile/shellPush.d.ts +11 -0
- package/dist/src/mobile/shellSync.d.ts +47 -0
- package/dist/src/mobile/staticDocument.d.ts +5 -0
- package/dist/src/mobile/syncRemediation.d.ts +10 -0
- package/dist/src/mobile/syncSchema.d.ts +9 -0
- package/dist/src/mobile/transport.d.ts +16 -1
- package/dist/src/plugins/hmr.d.ts +3 -0
- package/dist/src/plugins/imageOptimizer.d.ts +1 -1
- package/dist/src/react/hooks/useMediaQuery.d.ts +1 -1
- package/dist/src/svelte/pageHandler.d.ts +3 -0
- package/dist/src/utils/imageProcessing.d.ts +3 -0
- package/dist/src/utils/loadConfig.d.ts +1 -0
- package/dist/src/utils/logger.d.ts +1 -0
- package/dist/src/utils/startupBanner.d.ts +1 -0
- package/dist/src/utils/userAgentFunctions.d.ts +1 -1
- package/dist/src/vue/pageHandler.d.ts +3 -0
- package/dist/svelte/index.js +316 -23
- package/dist/svelte/index.js.map +8 -5
- package/dist/svelte/server.js +311 -18
- package/dist/svelte/server.js.map +8 -5
- package/dist/types/build.d.ts +50 -3
- package/dist/types/cli.d.ts +1 -0
- package/dist/types/messages.d.ts +1 -1
- package/dist/vue/index.js +316 -23
- package/dist/vue/index.js.map +8 -5
- package/dist/vue/server.js +311 -18
- package/dist/vue/server.js.map +8 -5
- package/package.json +41 -11
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// src/mobile/shellExpoDevices.ts
|
|
2
|
+
import { createWebDeviceAdapter } from "@absolutejs/devices/web";
|
|
3
|
+
import { installDeviceAdapter } from "@absolutejs/devices/runtime";
|
|
4
|
+
var bridge = () => {
|
|
5
|
+
const value = Reflect.get(globalThis, "__absoluteExpoBridge");
|
|
6
|
+
if (typeof value !== "object" || value === null || typeof Reflect.get(value, "request") !== "function") {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
request: (method, params) => Promise.resolve(Reflect.apply(Reflect.get(value, "request"), value, [
|
|
11
|
+
method,
|
|
12
|
+
params
|
|
13
|
+
]))
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
var parseFetchResult = (value) => {
|
|
17
|
+
if (!value || typeof value !== "object")
|
|
18
|
+
throw new TypeError("The Expo HTTP bridge returned an invalid response.");
|
|
19
|
+
const body = Reflect.get(value, "body");
|
|
20
|
+
const headers = Reflect.get(value, "headers");
|
|
21
|
+
const status = Reflect.get(value, "status");
|
|
22
|
+
if (typeof body !== "string" || typeof status !== "number" || !Number.isInteger(status) || !headers || typeof headers !== "object") {
|
|
23
|
+
throw new TypeError("The Expo HTTP bridge returned an invalid response.");
|
|
24
|
+
}
|
|
25
|
+
const entries = Object.entries(headers);
|
|
26
|
+
if (!entries.every(([, header]) => typeof header === "string")) {
|
|
27
|
+
throw new TypeError("The Expo HTTP bridge returned invalid headers.");
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
body,
|
|
31
|
+
headers: Object.fromEntries(entries.map(([name, header]) => [name, String(header)])),
|
|
32
|
+
status
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
var requireBridge = () => {
|
|
36
|
+
const provider = bridge();
|
|
37
|
+
if (!provider)
|
|
38
|
+
throw new TypeError("The Expo WebView bridge is unavailable.");
|
|
39
|
+
return provider;
|
|
40
|
+
};
|
|
41
|
+
var createAbsoluteExpoBridgeFetch = () => async (input, init) => {
|
|
42
|
+
const request = new Request(input, init);
|
|
43
|
+
if (request.method !== "GET") {
|
|
44
|
+
throw new TypeError("The experimental Expo envelope bridge currently supports GET only.");
|
|
45
|
+
}
|
|
46
|
+
const headers = Object.fromEntries(request.headers);
|
|
47
|
+
const result = parseFetchResult(await requireBridge().request("http.fetch", {
|
|
48
|
+
headers,
|
|
49
|
+
method: request.method,
|
|
50
|
+
url: request.url
|
|
51
|
+
}));
|
|
52
|
+
return new Response(result.body, {
|
|
53
|
+
headers: result.headers,
|
|
54
|
+
status: result.status
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
var installAbsoluteExpoWebDeviceAdapter = () => {
|
|
58
|
+
const web = createWebDeviceAdapter();
|
|
59
|
+
return installDeviceAdapter({
|
|
60
|
+
...web,
|
|
61
|
+
haptics: {
|
|
62
|
+
capability: async () => bridge() ? {
|
|
63
|
+
available: true,
|
|
64
|
+
fidelity: "native",
|
|
65
|
+
native: true
|
|
66
|
+
} : {
|
|
67
|
+
available: false,
|
|
68
|
+
message: "The Expo WebView bridge is unavailable.",
|
|
69
|
+
reason: "unavailable"
|
|
70
|
+
},
|
|
71
|
+
impact: async (style) => {
|
|
72
|
+
await requireBridge().request("devices.haptics.impact", {
|
|
73
|
+
style
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
notification: async (style) => {
|
|
77
|
+
await requireBridge().request("devices.haptics.impact", {
|
|
78
|
+
style
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
selectionChanged: async () => {
|
|
82
|
+
await requireBridge().request("devices.haptics.impact", {
|
|
83
|
+
style: "selection"
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
vibrate: async (durationMs) => {
|
|
87
|
+
await requireBridge().request("devices.haptics.impact", {
|
|
88
|
+
durationMs,
|
|
89
|
+
style: "vibrate"
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
runtime: "expo"
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
export {
|
|
97
|
+
installAbsoluteExpoWebDeviceAdapter,
|
|
98
|
+
createAbsoluteExpoBridgeFetch
|
|
99
|
+
};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// src/mobile/shellSync.ts
|
|
2
|
+
import { lifecycle, network } from "@absolutejs/devices";
|
|
3
|
+
import {
|
|
4
|
+
createCapacitorSyncLocalStore,
|
|
5
|
+
createCapacitorSyncProtection,
|
|
6
|
+
AbsoluteBackgroundSync,
|
|
7
|
+
configureCapacitorBackgroundSync,
|
|
8
|
+
installCapacitorSyncLifecycle
|
|
9
|
+
} from "@absolutejs/sync-capacitor";
|
|
10
|
+
import { installSyncClientRuntimeTransport } from "@absolutejs/sync/client/runtime";
|
|
11
|
+
|
|
12
|
+
// src/mobile/syncRemediation.ts
|
|
13
|
+
import {
|
|
14
|
+
discardSyncRuntimeDeadLetter,
|
|
15
|
+
inspectSyncRuntime,
|
|
16
|
+
rebaseSyncRuntimeDeadLetter,
|
|
17
|
+
retrySyncRuntimeDeadLetter
|
|
18
|
+
} from "@absolutejs/sync/client/runtime";
|
|
19
|
+
var REMEDIATION_REGISTRY = Symbol.for("@absolutejs/mobile-sync-remediation");
|
|
20
|
+
var isRegistry = (value) => typeof value === "object" && value !== null && Array.isArray(Reflect.get(value, "installations"));
|
|
21
|
+
var resolveRegistry = () => {
|
|
22
|
+
const existing = Reflect.get(globalThis, REMEDIATION_REGISTRY);
|
|
23
|
+
if (isRegistry(existing))
|
|
24
|
+
return existing;
|
|
25
|
+
const created = { installations: [] };
|
|
26
|
+
Object.defineProperty(globalThis, REMEDIATION_REGISTRY, {
|
|
27
|
+
configurable: false,
|
|
28
|
+
enumerable: false,
|
|
29
|
+
value: created,
|
|
30
|
+
writable: false
|
|
31
|
+
});
|
|
32
|
+
return created;
|
|
33
|
+
};
|
|
34
|
+
var registry = resolveRegistry();
|
|
35
|
+
var installAbsoluteMobileSyncRemediation = (bridge = {
|
|
36
|
+
discard: discardSyncRuntimeDeadLetter,
|
|
37
|
+
inspect: inspectSyncRuntime,
|
|
38
|
+
rebase: rebaseSyncRuntimeDeadLetter,
|
|
39
|
+
retry: retrySyncRuntimeDeadLetter
|
|
40
|
+
}) => {
|
|
41
|
+
const installation = { bridge };
|
|
42
|
+
registry.installations.push(installation);
|
|
43
|
+
return () => {
|
|
44
|
+
const index = registry.installations.indexOf(installation);
|
|
45
|
+
if (index >= 0)
|
|
46
|
+
registry.installations.splice(index, 1);
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// src/mobile/shellSync.ts
|
|
51
|
+
var reloadShell = () => globalThis.location.reload();
|
|
52
|
+
var ABSOLUTE_MOBILE_SYNC_SCHEMA_EVENT = "absolute:sync-schema";
|
|
53
|
+
var ABSOLUTE_MOBILE_SYNC_SCHEMA_STATE_KEY = "absolutejs.mobile.sync.schema-state";
|
|
54
|
+
var ABSOLUTE_MOBILE_SYNC_STATUS_EVENT = "absolute:sync-status";
|
|
55
|
+
var schemaStateSymbol = () => Symbol.for(ABSOLUTE_MOBILE_SYNC_SCHEMA_STATE_KEY);
|
|
56
|
+
var readAbsoluteMobileSyncSchemaState = () => {
|
|
57
|
+
const value = Reflect.get(globalThis, schemaStateSymbol());
|
|
58
|
+
if (typeof value !== "object" || value === null)
|
|
59
|
+
return;
|
|
60
|
+
const state = Reflect.get(value, "state");
|
|
61
|
+
if (state === "preparing")
|
|
62
|
+
return { state };
|
|
63
|
+
if (state === "failed")
|
|
64
|
+
return schemaFailureState(value);
|
|
65
|
+
const minimumCompatibleVersion = Reflect.get(value, "minimumCompatibleVersion");
|
|
66
|
+
const storedVersion = Reflect.get(value, "storedVersion");
|
|
67
|
+
const targetVersion = Reflect.get(value, "targetVersion");
|
|
68
|
+
if (state !== "ready" || typeof minimumCompatibleVersion !== "number" || typeof storedVersion !== "number" || typeof targetVersion !== "number")
|
|
69
|
+
return;
|
|
70
|
+
return {
|
|
71
|
+
minimumCompatibleVersion,
|
|
72
|
+
state,
|
|
73
|
+
storedVersion,
|
|
74
|
+
targetVersion
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
var reportShellSchemaState = (state) => {
|
|
78
|
+
Reflect.set(globalThis, schemaStateSymbol(), state);
|
|
79
|
+
globalThis.dispatchEvent(new CustomEvent(ABSOLUTE_MOBILE_SYNC_SCHEMA_EVENT, { detail: state }));
|
|
80
|
+
};
|
|
81
|
+
var schemaFailureState = (error) => {
|
|
82
|
+
if (typeof error !== "object" || error === null)
|
|
83
|
+
return { code: "UNKNOWN", state: "failed" };
|
|
84
|
+
const rawCode = Reflect.get(error, "code");
|
|
85
|
+
const code = rawCode === "INVALID_PLAN" || rawCode === "MIGRATION_MISSING" || rawCode === "SCHEMA_TOO_NEW" || rawCode === "SCHEMA_TOO_OLD" ? rawCode : "UNKNOWN";
|
|
86
|
+
const storedVersion = Reflect.get(error, "storedVersion");
|
|
87
|
+
const targetVersion = Reflect.get(error, "targetVersion");
|
|
88
|
+
return {
|
|
89
|
+
code,
|
|
90
|
+
state: "failed",
|
|
91
|
+
...typeof storedVersion === "number" ? { storedVersion } : {},
|
|
92
|
+
...typeof targetVersion === "number" ? { targetVersion } : {}
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
var reportShellStatus = (status) => globalThis.dispatchEvent(new CustomEvent(ABSOLUTE_MOBILE_SYNC_STATUS_EVENT, { detail: status }));
|
|
96
|
+
var installAbsoluteMobileShellSync = (auth, config, options = {}) => {
|
|
97
|
+
const namespace = auth.principal?.namespace;
|
|
98
|
+
const store = namespace ? options.createStore?.({
|
|
99
|
+
protection: createCapacitorSyncProtection(),
|
|
100
|
+
storageSchema: config?.storageSchema
|
|
101
|
+
}) ?? createCapacitorSyncLocalStore({
|
|
102
|
+
protection: createCapacitorSyncProtection(),
|
|
103
|
+
storageSchema: config?.storageSchema
|
|
104
|
+
}) : undefined;
|
|
105
|
+
const installLifecycle = options.installLifecycle ?? installCapacitorSyncLifecycle;
|
|
106
|
+
const reportStatus = options.reportStatus ?? reportShellStatus;
|
|
107
|
+
const reportSchemaState = options.reportSchemaState ?? reportShellSchemaState;
|
|
108
|
+
const configureBackground = options.configureBackground ?? configureCapacitorBackgroundSync;
|
|
109
|
+
const clearBackground = options.clearBackground ?? (() => AbsoluteBackgroundSync.clear());
|
|
110
|
+
if (store?.getSchemaStatus) {
|
|
111
|
+
reportSchemaState({ state: "preparing" });
|
|
112
|
+
store.getSchemaStatus().then(reportSchemaState).catch((error) => reportSchemaState(schemaFailureState(error)));
|
|
113
|
+
}
|
|
114
|
+
if (namespace && config) {
|
|
115
|
+
configureBackground({
|
|
116
|
+
clientId: auth.clientId,
|
|
117
|
+
endpoint: config.background.endpoint,
|
|
118
|
+
intervalMinutes: config.background.intervalMinutes,
|
|
119
|
+
issuer: auth.issuer,
|
|
120
|
+
namespace
|
|
121
|
+
}).catch((error) => console.error("[Absolute Mobile] Background Sync configuration failed:", error));
|
|
122
|
+
} else {
|
|
123
|
+
clearBackground().catch(() => {
|
|
124
|
+
return;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
const removeTransport = installSyncClientRuntimeTransport({
|
|
128
|
+
...namespace && store ? { durable: { namespace, store } } : {},
|
|
129
|
+
socketTicket: auth.socketTicket,
|
|
130
|
+
registerClient: (client) => {
|
|
131
|
+
let active2 = true;
|
|
132
|
+
const removeStatus = client.subscribeStatus(reportStatus);
|
|
133
|
+
const reportLifecycleFailure = (error) => console.error("[Absolute Mobile] Sync lifecycle installation failed:", error);
|
|
134
|
+
const removal = installLifecycle({
|
|
135
|
+
client,
|
|
136
|
+
lifecycle,
|
|
137
|
+
network
|
|
138
|
+
}).catch((error) => {
|
|
139
|
+
reportLifecycleFailure(error);
|
|
140
|
+
return;
|
|
141
|
+
});
|
|
142
|
+
return () => {
|
|
143
|
+
if (!active2)
|
|
144
|
+
return;
|
|
145
|
+
active2 = false;
|
|
146
|
+
removeStatus();
|
|
147
|
+
removal.then((remove) => remove?.());
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
const removeRemediation = installAbsoluteMobileSyncRemediation();
|
|
152
|
+
const reload = options.reload ?? reloadShell;
|
|
153
|
+
const removePrincipalListener = auth.onPrincipalChange((principal) => {
|
|
154
|
+
if (principal?.namespace !== namespace)
|
|
155
|
+
reload();
|
|
156
|
+
});
|
|
157
|
+
let active = true;
|
|
158
|
+
return () => {
|
|
159
|
+
if (!active)
|
|
160
|
+
return;
|
|
161
|
+
active = false;
|
|
162
|
+
removePrincipalListener();
|
|
163
|
+
removeRemediation();
|
|
164
|
+
removeTransport();
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
export {
|
|
168
|
+
readAbsoluteMobileSyncSchemaState,
|
|
169
|
+
installAbsoluteMobileShellSync,
|
|
170
|
+
ABSOLUTE_MOBILE_SYNC_STATUS_EVENT,
|
|
171
|
+
ABSOLUTE_MOBILE_SYNC_SCHEMA_STATE_KEY,
|
|
172
|
+
ABSOLUTE_MOBILE_SYNC_SCHEMA_EVENT
|
|
173
|
+
};
|
package/dist/react/index.js
CHANGED
|
@@ -941,6 +941,7 @@ var colors, MONTHS, formatTimestamp = () => {
|
|
|
941
941
|
port,
|
|
942
942
|
host,
|
|
943
943
|
networkUrl,
|
|
944
|
+
mobilePreviewUrl,
|
|
944
945
|
protocol = "http"
|
|
945
946
|
} = options;
|
|
946
947
|
const name = `${colors.cyan}${colors.bold}ABSOLUTEJS${colors.reset}`;
|
|
@@ -954,6 +955,9 @@ var colors, MONTHS, formatTimestamp = () => {
|
|
|
954
955
|
if (networkUrl) {
|
|
955
956
|
console.log(` ${colors.green}\u279C${colors.reset} ${colors.bold}Network:${colors.reset} ${networkUrl}`);
|
|
956
957
|
}
|
|
958
|
+
if (mobilePreviewUrl) {
|
|
959
|
+
console.log(` ${colors.green}\u279C${colors.reset} ${colors.bold}Mobile:${colors.reset} ${mobilePreviewUrl}`);
|
|
960
|
+
}
|
|
957
961
|
console.log("");
|
|
958
962
|
};
|
|
959
963
|
var init_startupBanner = __esm(() => {
|
|
@@ -4910,5 +4914,5 @@ export {
|
|
|
4910
4914
|
Island
|
|
4911
4915
|
};
|
|
4912
4916
|
|
|
4913
|
-
//# debugId=
|
|
4917
|
+
//# debugId=D93F1B4F7925234C64756E2164756E21
|
|
4914
4918
|
//# sourceMappingURL=index.js.map
|