@viceme-ai/sdk-poc 0.1.7-poc.1
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 +71 -0
- package/dist/bootstrap.min.js +2 -0
- package/dist/bootstrap.min.js.map +1 -0
- package/dist/chunks/client-DgGpWHrf.js +959 -0
- package/dist/chunks/client-DgGpWHrf.js.map +1 -0
- package/dist/chunks/version-mxCwx8AO.js +51 -0
- package/dist/chunks/version-mxCwx8AO.js.map +1 -0
- package/dist/core/build-endpoints.d.ts +9 -0
- package/dist/core/build-endpoints.d.ts.map +1 -0
- package/dist/core/capabilities.d.ts +63 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/client.d.ts +65 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/config.d.ts +32 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/errors.d.ts +37 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/lifecycle.d.ts +25 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/presentation.d.ts +32 -0
- package/dist/core/presentation.d.ts.map +1 -0
- package/dist/danmaku/anchor.d.ts +14 -0
- package/dist/danmaku/anchor.d.ts.map +1 -0
- package/dist/danmaku/index.d.ts +8 -0
- package/dist/danmaku/index.d.ts.map +1 -0
- package/dist/danmaku/mount.d.ts +4 -0
- package/dist/danmaku/mount.d.ts.map +1 -0
- package/dist/danmaku.js +143 -0
- package/dist/danmaku.js.map +1 -0
- package/dist/generated/public-contract.d.ts +700 -0
- package/dist/generated/public-contract.d.ts.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/attributes.d.ts +21 -0
- package/dist/loader/attributes.d.ts.map +1 -0
- package/dist/loader/auto-loader.d.ts +51 -0
- package/dist/loader/auto-loader.d.ts.map +1 -0
- package/dist/loader/bootstrap.d.ts +1 -0
- package/dist/loader/bootstrap.d.ts.map +1 -0
- package/dist/loader/events.d.ts +45 -0
- package/dist/loader/events.d.ts.map +1 -0
- package/dist/loader/main.d.ts +11 -0
- package/dist/loader/main.d.ts.map +1 -0
- package/dist/loader/mount-handle.d.ts +25 -0
- package/dist/loader/mount-handle.d.ts.map +1 -0
- package/dist/loader/registry.d.ts +42 -0
- package/dist/loader/registry.d.ts.map +1 -0
- package/dist/manifest.json +52 -0
- package/dist/session/session.d.ts +67 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/testing/test-adapter.d.ts +59 -0
- package/dist/testing/test-adapter.d.ts.map +1 -0
- package/dist/testing.d.ts +9 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +75 -0
- package/dist/testing.js.map +1 -0
- package/dist/transport/transport.d.ts +44 -0
- package/dist/transport/transport.d.ts.map +1 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/viceme.min.js +2 -0
- package/dist/viceme.min.js.map +1 -0
- package/package.json +63 -0
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# @viceme-ai/sdk
|
|
2
|
+
|
|
3
|
+
Public ViceMe browser SDK: headless core, public session, and capability
|
|
4
|
+
subpaths for static HTML, browser-native ESM, React/Next.js, and
|
|
5
|
+
Agent-generated sites.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm add @viceme-ai/sdk
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { createViceMe } from '@viceme-ai/sdk';
|
|
17
|
+
|
|
18
|
+
const client = createViceMe({ workKey: 'wrk_public_xxx', region: 'cn' });
|
|
19
|
+
await client.ready();
|
|
20
|
+
|
|
21
|
+
if (client.hasCapability('danmaku')) {
|
|
22
|
+
const { mountDanmaku } = await import('@viceme-ai/sdk/danmaku');
|
|
23
|
+
await mountDanmaku(client, {
|
|
24
|
+
target: document.body,
|
|
25
|
+
theme: 'auto',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const access = await client.access.checkMany(['dingdong', 'emperor']);
|
|
30
|
+
if (access.dingdong.allowed) enableDingdong();
|
|
31
|
+
if (access.emperor.allowed) enableEmperor();
|
|
32
|
+
|
|
33
|
+
// Call from a user gesture. A denied decision opens the ViceMe
|
|
34
|
+
// bottom-sheet/in-page Web Component. It never silently follows.
|
|
35
|
+
const decision = await client.access.require('emperor');
|
|
36
|
+
if (decision.allowed) enableEmperor();
|
|
37
|
+
|
|
38
|
+
client.destroy();
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The SDK registers and mounts `<viceme-access-layer>` with isolated ViceMe-owned
|
|
42
|
+
styles. Login and checkout remain inside its iframe area and complete through
|
|
43
|
+
an origin- and channel-validated message; no browser popup, page navigation,
|
|
44
|
+
`confirm`, or `alert` is used. Custom site presenters and style inference are
|
|
45
|
+
not part of the current public contract.
|
|
46
|
+
|
|
47
|
+
Static HTML sites can use the CDN auto-loader instead — see the
|
|
48
|
+
[repository README](https://github.com/ViceMe-AI/sdk).
|
|
49
|
+
|
|
50
|
+
## Testing your integration
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
import { createTestViceMe, createMemoryTransport } from '@viceme-ai/sdk/testing';
|
|
54
|
+
|
|
55
|
+
const client = createTestViceMe({
|
|
56
|
+
workKey: 'wrk_test',
|
|
57
|
+
region: 'cn',
|
|
58
|
+
transport: createMemoryTransport({
|
|
59
|
+
work: { key: 'wrk_test', capabilities: ['fixture'] },
|
|
60
|
+
}),
|
|
61
|
+
});
|
|
62
|
+
await client.ready();
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Static HTML uses the four-line CDN loader shown in the repository README. The
|
|
66
|
+
danmaku capability automatically hashes the canonical page URL and combines it
|
|
67
|
+
with a 10% scroll bucket; the full host URL is not sent to the hosted iframe.
|
|
68
|
+
|
|
69
|
+
Consumers branch on stable `ViceMeError.code` values only — never on error
|
|
70
|
+
messages. Work-session tokens and work-scoped users remain in memory only;
|
|
71
|
+
additional capability subpaths land as their public API contracts go live.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(function(){"use strict";(()=>{const t=document.currentScript;if(!(t instanceof HTMLScriptElement)||!t.src)return;const c=typeof AbortSignal<"u"&&typeof AbortSignal.timeout=="function"?AbortSignal.timeout(8e3):void 0;fetch(new URL("/viceme-sdk/-/aliases/v1",t.src),{credentials:"omit",signal:c}).then(e=>{if(!e.ok)throw new Error(`pointer HTTP ${e.status}`);return e.text()}).then(e=>{const i=e.trim();if(!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(i))throw new Error("invalid pointer");const r=document.createElement("script");for(const n of t.getAttributeNames())n==="src"||n==="integrity"||r.setAttribute(n,t.getAttribute(n)??"");r.src=new URL(`/viceme-sdk/${i}/viceme.min.js`,t.src).href,(document.head??document.documentElement).append(r)}).catch(()=>{document.dispatchEvent(new CustomEvent("viceme:error",{detail:{code:"CONFIG_INVALID",retryable:!1},bubbles:!0,composed:!0}))})})()})();
|
|
2
|
+
//# sourceMappingURL=bootstrap.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.min.js","sources":["../src/loader/bootstrap.ts"],"sourcesContent":["/**\n * FIXED alias bootstrap — the ONLY object under /viceme-sdk/v1/.\n *\n * Byte-stable for the whole API major (this file must not grow feature\n * logic): it reads the version pointer at /viceme-sdk/-/aliases/v1 and\n * injects the full versioned auto-loader at\n * /viceme-sdk/<version>/viceme.min.js with the same data-viceme-*\n * attributes. The full loader (and every future fix to it) lives in the\n * immutable exact-version directory, so the alias bytes never need to\n * change when releases ship.\n */\n(() => {\n const script = document.currentScript;\n if (!(script instanceof HTMLScriptElement) || !script.src) return;\n\n const signal =\n typeof AbortSignal !== 'undefined' && typeof AbortSignal.timeout === 'function'\n ? AbortSignal.timeout(8_000)\n : undefined;\n\n fetch(new URL('/viceme-sdk/-/aliases/v1', script.src), {\n credentials: 'omit',\n signal,\n })\n .then((response) => {\n if (!response.ok) throw new Error(`pointer HTTP ${response.status}`);\n return response.text();\n })\n .then((text) => {\n const version = text.trim();\n if (!/^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$/.test(version)) {\n throw new Error('invalid pointer');\n }\n const loader = document.createElement('script');\n for (const name of script.getAttributeNames()) {\n // The loader gets its own src; integrity pins are not transferable.\n if (name === 'src' || name === 'integrity') continue;\n loader.setAttribute(name, script.getAttribute(name) ?? '');\n }\n loader.src = new URL(`/viceme-sdk/${version}/viceme.min.js`, script.src).href;\n (document.head ?? document.documentElement).append(loader);\n })\n .catch(() => {\n document.dispatchEvent(\n new CustomEvent('viceme:error', {\n detail: { code: 'CONFIG_INVALID', retryable: false },\n bubbles: true,\n composed: true,\n }),\n );\n });\n})();\n"],"names":["script","signal","response","text","version","loader","name"],"mappings":"0BAWC,IAAM,CACL,MAAMA,EAAS,SAAS,cACxB,GAAI,EAAEA,aAAkB,oBAAsB,CAACA,EAAO,IAAK,OAE3D,MAAMC,EACJ,OAAO,YAAgB,KAAe,OAAO,YAAY,SAAY,WACjE,YAAY,QAAQ,GAAK,EACzB,OAEN,MAAM,IAAI,IAAI,2BAA4BD,EAAO,GAAG,EAAG,CACrD,YAAa,OACb,OAAAC,CAAA,CACD,EACE,KAAMC,GAAa,CAClB,GAAI,CAACA,EAAS,GAAI,MAAM,IAAI,MAAM,gBAAgBA,EAAS,MAAM,EAAE,EACnE,OAAOA,EAAS,KAAA,CAClB,CAAC,EACA,KAAMC,GAAS,CACd,MAAMC,EAAUD,EAAK,KAAA,EACrB,GAAI,CAAC,sCAAsC,KAAKC,CAAO,EACrD,MAAM,IAAI,MAAM,iBAAiB,EAEnC,MAAMC,EAAS,SAAS,cAAc,QAAQ,EAC9C,UAAWC,KAAQN,EAAO,oBAEpBM,IAAS,OAASA,IAAS,aAC/BD,EAAO,aAAaC,EAAMN,EAAO,aAAaM,CAAI,GAAK,EAAE,EAE3DD,EAAO,IAAM,IAAI,IAAI,eAAeD,CAAO,iBAAkBJ,EAAO,GAAG,EAAE,MACxE,SAAS,MAAQ,SAAS,iBAAiB,OAAOK,CAAM,CAC3D,CAAC,EACA,MAAM,IAAM,CACX,SAAS,cACP,IAAI,YAAY,eAAgB,CAC9B,OAAQ,CAAE,KAAM,iBAAkB,UAAW,EAAA,EAC7C,QAAS,GACT,SAAU,EAAA,CACX,CAAA,CAEL,CAAC,CACL,GAAA"}
|