@vibes.diy/identity 3.0.2 → 3.0.4

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 (45) hide show
  1. package/dash-api/clerk-token.js +1 -1
  2. package/dash-api/clerk-token.js.map +1 -1
  3. package/dash-api/token.js +2 -1
  4. package/dash-api/token.js.map +1 -1
  5. package/device-id/ca.js +1 -1
  6. package/device-id/ca.js.map +1 -1
  7. package/device-id/certor.js +1 -1
  8. package/device-id/certor.js.map +1 -1
  9. package/device-id/key.js +1 -1
  10. package/device-id/key.js.map +1 -1
  11. package/device-id/validator.js +1 -1
  12. package/device-id/validator.js.map +1 -1
  13. package/device-id/verify.js +1 -1
  14. package/device-id/verify.js.map +1 -1
  15. package/golden-fixtures.d.ts +21 -0
  16. package/golden-fixtures.js +48 -0
  17. package/golden-fixtures.js.map +1 -0
  18. package/index.d.ts +3 -1
  19. package/index.js +3 -1
  20. package/index.js.map +1 -1
  21. package/keybag/key-bag.js +1 -1
  22. package/keybag/key-bag.js.map +1 -1
  23. package/keybag/keybag-golden.test.js +14 -2
  24. package/keybag/keybag-golden.test.js.map +1 -1
  25. package/package.json +2 -2
  26. package/runtime/hashing.d.ts +11 -0
  27. package/runtime/hashing.js +106 -0
  28. package/runtime/hashing.js.map +1 -0
  29. package/runtime/superthis.d.ts +10 -0
  30. package/runtime/superthis.js +276 -0
  31. package/runtime/superthis.js.map +1 -0
  32. package/runtime/superthis.test.d.ts +1 -0
  33. package/runtime/superthis.test.js +47 -0
  34. package/runtime/superthis.test.js.map +1 -0
  35. package/runtime-context.js +1 -1
  36. package/runtime-context.js.map +1 -1
  37. package/sts/index.d.ts +52 -0
  38. package/sts/index.js +312 -0
  39. package/sts/index.js.map +1 -0
  40. package/sts/sts-golden.test.d.ts +1 -0
  41. package/sts/sts-golden.test.js +63 -0
  42. package/sts/sts-golden.test.js.map +1 -0
  43. package/sts/text-blocks.d.ts +10 -0
  44. package/sts/text-blocks.js +90 -0
  45. package/sts/text-blocks.js.map +1 -0
@@ -0,0 +1,276 @@
1
+ import { AppContext, IsLogger, JSONFormatter, LoggerImpl, ResolveOnce, Result, YAMLFormatter, envFactory, isURL, runtimeFn, toCryptoRuntime, } from "@adviser/cement";
2
+ import { base58btc } from "multiformats/bases/base58";
3
+ export { runtimeFn };
4
+ const _globalLogger = new ResolveOnce();
5
+ function globalLogger() {
6
+ return _globalLogger.once(() => new LoggerImpl());
7
+ }
8
+ const registerFP_DEBUG = new ResolveOnce();
9
+ class SuperThisImpl {
10
+ logger;
11
+ env;
12
+ pathOps;
13
+ ctx;
14
+ txt;
15
+ crypto;
16
+ constructor(opts) {
17
+ this.logger = opts.logger;
18
+ this.env = opts.env;
19
+ this.crypto = opts.crypto;
20
+ this.pathOps = opts.pathOps;
21
+ this.txt = opts.txt;
22
+ this.ctx = opts.ctx;
23
+ }
24
+ nextId(bytes = 6) {
25
+ const bin = this.crypto.randomBytes(bytes);
26
+ return {
27
+ str: base58btc.encode(bin),
28
+ bin,
29
+ };
30
+ }
31
+ timeOrderedNextId(now) {
32
+ now = typeof now === "number" ? now : new Date().getTime();
33
+ const t = (0x1000000000000 + now).toString(16).replace(/^1/, "");
34
+ const bin = this.crypto.randomBytes(10);
35
+ bin[1] = (bin[1] & 0xf0) | 0x0b;
36
+ const hex = Array.from(bin)
37
+ .map((i) => i.toString(16).padStart(2, "0"))
38
+ .join("");
39
+ return {
40
+ str: `${t.slice(0, 8)}-${t.slice(8)}-7${hex.slice(0, 3)}-${hex.slice(3, 7)}-${hex.slice(7, 19)}`,
41
+ };
42
+ }
43
+ start() {
44
+ return Promise.resolve();
45
+ }
46
+ clone(override) {
47
+ return new SuperThisImpl({
48
+ logger: override.logger || this.logger,
49
+ env: envFactory(override.env) || this.env,
50
+ crypto: override.crypto || this.crypto,
51
+ pathOps: override.pathOps || this.pathOps,
52
+ txt: override.txt || this.txt,
53
+ ctx: AppContext.merge(this.ctx, override.ctx),
54
+ });
55
+ }
56
+ }
57
+ function presetEnv(ipreset) {
58
+ let preset = {};
59
+ if (ipreset instanceof Map) {
60
+ preset = Object.fromEntries(ipreset.entries());
61
+ }
62
+ else if (typeof ipreset === "object" && ipreset !== null) {
63
+ preset = ipreset;
64
+ }
65
+ const penv = new Map([
66
+ ...Array.from(Object.entries({
67
+ ...setPresetEnv({}),
68
+ ...preset,
69
+ })),
70
+ ]);
71
+ return penv;
72
+ }
73
+ class pathOpsImpl {
74
+ join(...paths) {
75
+ return paths.map((i) => i.replace(/\/+$/, "")).join("/");
76
+ }
77
+ dirname(path) {
78
+ return path.split("/").slice(0, -1).join("/");
79
+ }
80
+ basename(path) {
81
+ return path.split("/").pop() || "";
82
+ }
83
+ }
84
+ const pathOps = new pathOpsImpl();
85
+ const txtOps = ((txtEncoder, txtDecoder) => ({
86
+ id: () => "fp-txtOps",
87
+ encode: (input) => txtEncoder.encode(input),
88
+ decode: (input) => txtDecoder.decode(coerceIntoUint8(input).Ok()),
89
+ base64: {
90
+ encode: (input) => {
91
+ if (typeof input === "string") {
92
+ const data = txtEncoder.encode(input);
93
+ return btoa(String.fromCharCode(...data));
94
+ }
95
+ let charStr = "";
96
+ for (const i of coerceIntoUint8(input).Ok()) {
97
+ charStr += String.fromCharCode(i);
98
+ }
99
+ return btoa(charStr);
100
+ },
101
+ decodeUint8: (input) => {
102
+ const data = atob(input.replace(/\s+/g, ""));
103
+ return new Uint8Array(data.split("").map((c) => c.charCodeAt(0)));
104
+ },
105
+ decode: (input) => {
106
+ const data = atob(input.replace(/\s+/g, ""));
107
+ const uint8 = new Uint8Array(data.split("").map((c) => c.charCodeAt(0)));
108
+ return txtDecoder.decode(uint8);
109
+ },
110
+ },
111
+ base58: {
112
+ encode: (input) => {
113
+ if (typeof input === "string") {
114
+ const data = txtEncoder.encode(input);
115
+ return base58btc.encode(data);
116
+ }
117
+ return base58btc.encode(coerceIntoUint8(input).Ok());
118
+ },
119
+ decodeUint8: (input) => {
120
+ return base58btc.decode(input.replace(/\s+/g, ""));
121
+ },
122
+ decode: (input) => {
123
+ const data = base58btc.decode(input.replace(/\s+/g, ""));
124
+ return txtDecoder.decode(data);
125
+ },
126
+ },
127
+ }))(new TextEncoder(), new TextDecoder());
128
+ export function coerceIntoUint8(raw) {
129
+ if (raw instanceof Uint8Array) {
130
+ return Result.Ok(raw);
131
+ }
132
+ if (Result.Is(raw)) {
133
+ return raw;
134
+ }
135
+ return Result.Err("Not a Uint8Array");
136
+ }
137
+ const _onSuperThis = new Map();
138
+ export function onSuperThis(fn) {
139
+ const key = `onSuperThis-${Math.random().toString(36).slice(2)}`;
140
+ _onSuperThis.set(key, fn);
141
+ return () => {
142
+ _onSuperThis.delete(key);
143
+ };
144
+ }
145
+ export function setPresetEnv(o, symbol = "FP_PRESET_ENV") {
146
+ const key = Symbol.for(symbol);
147
+ const g = globalThis;
148
+ const env = g[key] ?? {};
149
+ for (const [k, v] of Object.entries(o)) {
150
+ env[k] = v;
151
+ }
152
+ g[key] = env;
153
+ return env;
154
+ }
155
+ export function ensureSuperThis(osthis) {
156
+ const env = envFactory({
157
+ symbol: osthis?.env?.symbol || "FP_ENV",
158
+ presetEnv: presetEnv(osthis?.env?.presetEnv),
159
+ });
160
+ const ret = new SuperThisImpl({
161
+ logger: osthis?.logger || globalLogger(),
162
+ env,
163
+ crypto: osthis?.crypto || toCryptoRuntime(),
164
+ ctx: AppContext.merge(osthis?.ctx),
165
+ pathOps,
166
+ txt: osthis?.txt || txtOps,
167
+ });
168
+ _onSuperThis.forEach((fn) => fn(ret));
169
+ return ret;
170
+ }
171
+ export function ensureSuperLog(sthis, componentName, ctx) {
172
+ return sthis.clone({
173
+ logger: ensureLogger(sthis, componentName, ctx),
174
+ });
175
+ }
176
+ export function ensureLogger(sthis, componentName, ctx) {
177
+ let logger;
178
+ if (sthis && IsLogger(sthis.logger)) {
179
+ logger = sthis.logger;
180
+ }
181
+ else {
182
+ logger = globalLogger();
183
+ }
184
+ const cLogger = logger.With().Module(componentName);
185
+ const debug = [];
186
+ let exposeStack = false;
187
+ if (ctx) {
188
+ if ("debug" in ctx) {
189
+ if (typeof ctx.debug === "string" && ctx.debug.length > 0) {
190
+ debug.push(ctx.debug);
191
+ }
192
+ else {
193
+ debug.push(componentName);
194
+ }
195
+ delete ctx.debug;
196
+ }
197
+ if ("exposeStack" in ctx) {
198
+ exposeStack = true;
199
+ delete ctx.exposeStack;
200
+ }
201
+ if ("exposeStack" in ctx) {
202
+ exposeStack = true;
203
+ delete ctx.exposeStack;
204
+ }
205
+ if ("this" in ctx) {
206
+ cLogger.Str("this", sthis.nextId(4).str);
207
+ delete ctx.this;
208
+ }
209
+ for (const [key, value] of Object.entries(ctx)) {
210
+ switch (typeof value) {
211
+ case "string":
212
+ cLogger.Str(key, value);
213
+ break;
214
+ case "number":
215
+ cLogger.Uint64(key, value);
216
+ break;
217
+ default:
218
+ if (value instanceof Date) {
219
+ cLogger.Str(key, value.toISOString());
220
+ }
221
+ else if (isURL(value)) {
222
+ cLogger.Str(key, value.toString());
223
+ }
224
+ else if (typeof value === "function") {
225
+ cLogger.Ref(key, value);
226
+ }
227
+ else {
228
+ cLogger.Any(key, value);
229
+ }
230
+ break;
231
+ }
232
+ }
233
+ }
234
+ registerFP_DEBUG
235
+ .once(async () => {
236
+ sthis.env.onSet((key, value) => {
237
+ switch (key) {
238
+ case "FP_FORMAT": {
239
+ switch (value) {
240
+ case "jsonice":
241
+ logger.SetFormatter(new JSONFormatter(logger.TxtEnDe(), 2));
242
+ break;
243
+ case "yaml":
244
+ logger.SetFormatter(new YAMLFormatter(logger.TxtEnDe(), 2));
245
+ break;
246
+ case "json":
247
+ default:
248
+ logger.SetFormatter(new JSONFormatter(logger.TxtEnDe()));
249
+ break;
250
+ }
251
+ break;
252
+ }
253
+ case "FP_DEBUG":
254
+ logger.SetDebug(value || []);
255
+ break;
256
+ case "FP_STACK":
257
+ logger.SetExposeStack(!!value);
258
+ break;
259
+ }
260
+ }, "FP_FORMAT", "FP_DEBUG", "FP_STACK");
261
+ })
262
+ .finally(() => {
263
+ });
264
+ if (debug.length > 0) {
265
+ logger.SetDebug(debug);
266
+ }
267
+ if (exposeStack) {
268
+ logger.SetExposeStack(true);
269
+ }
270
+ const out = cLogger.Logger();
271
+ if (sthis.env.get("FP_CONSTRUCTOR_DEBUG")) {
272
+ out.Debug().Msg("constructor");
273
+ }
274
+ return out;
275
+ }
276
+ //# sourceMappingURL=superthis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superthis.js","sourceRoot":"","sources":["../../jsr/runtime/superthis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,47 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { runtimeFn as cementRuntimeFn } from "@adviser/cement";
3
+ import { ensureSuperThis as exEnsure, runtimeFn as exRuntimeFn } from "./superthis.js";
4
+ import { TXT_BASE64, TXT_BASE58, TXT_ENCODE_UTF8, TIME_ORDERED_PREFIX } from "../golden-fixtures.js";
5
+ const ex = exEnsure();
6
+ describe("SuperThis lift — byte-compat against the frozen fireproof contract", () => {
7
+ it("txt codecs match the frozen fireproof outputs (base64 / base58 / utf8) and round-trip", () => {
8
+ for (const s of Object.keys(TXT_BASE64)) {
9
+ expect(ex.txt.base64.encode(s)).toBe(TXT_BASE64[s]);
10
+ expect(ex.txt.base58.encode(s)).toBe(TXT_BASE58[s]);
11
+ expect(ex.txt.base64.decode(ex.txt.base64.encode(s))).toBe(s);
12
+ expect(ex.txt.base58.decode(ex.txt.base58.encode(s))).toBe(s);
13
+ }
14
+ for (const s of Object.keys(TXT_ENCODE_UTF8)) {
15
+ expect([...ex.txt.encode(s)]).toEqual(TXT_ENCODE_UTF8[s]);
16
+ }
17
+ });
18
+ it("nextId: 6-byte default, str is the base58 of bin", () => {
19
+ const a = ex.nextId();
20
+ expect(a.bin.length).toBe(6);
21
+ expect(a.str).toBe(ex.txt.base58.encode(a.bin));
22
+ expect(ex.nextId(10).bin.length).toBe(10);
23
+ });
24
+ it("timeOrderedNextId: UUIDv7-ish shape + frozen time-prefix for a fixed clock", () => {
25
+ const a = ex.timeOrderedNextId(1_700_000_000_000);
26
+ expect(a.str).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/);
27
+ expect(a.str.slice(0, 13)).toBe(TIME_ORDERED_PREFIX);
28
+ });
29
+ it("timeOrderedNextId: the variant nibble is always 'b' (the bin[1] transform; Codex #2854)", () => {
30
+ for (let i = 0; i < 256; i++) {
31
+ expect(ex.timeOrderedNextId(1_700_000_000_000 + i).str.split("-")[3][0]).toBe("b");
32
+ }
33
+ });
34
+ it("env get / set / sets / delete round-trip (the full mutation surface consumers use)", () => {
35
+ ex.env.set("BUCKET_E_T5", "x");
36
+ expect(ex.env.get("BUCKET_E_T5")).toBe("x");
37
+ ex.env.sets({ BUCKET_E_T5_A: "1", BUCKET_E_T5_B: "2" });
38
+ expect(ex.env.get("BUCKET_E_T5_A")).toBe("1");
39
+ expect(ex.env.get("BUCKET_E_T5_B")).toBe("2");
40
+ ex.env.delete("BUCKET_E_T5");
41
+ expect(ex.env.get("BUCKET_E_T5")).toBeFalsy();
42
+ });
43
+ it("runtimeFn re-export is the identical cement function", () => {
44
+ expect(exRuntimeFn).toBe(cementRuntimeFn);
45
+ });
46
+ });
47
+ //# sourceMappingURL=superthis.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superthis.test.js","sourceRoot":"","sources":["../../jsr/runtime/superthis.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ensureSuperThis } from "@fireproof/core-runtime";
1
+ import { ensureSuperThis } from "./runtime/superthis.js";
2
2
  let singleton;
3
3
  export function ensureRuntimeContext() {
4
4
  return (singleton ??= ensureSuperThis());
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-context.js","sourceRoot":"","sources":["../jsr/runtime-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAe1D,IAAI,SAAqC,CAAC;AAE1C,MAAM,UAAU,oBAAoB;IAClC,OAAO,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"runtime-context.js","sourceRoot":"","sources":["../jsr/runtime-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAezD,IAAI,SAAqC,CAAC;AAE1C,MAAM,UAAU,oBAAoB;IAClC,OAAO,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC,CAAC;AAC3C,CAAC"}
package/sts/index.d.ts ADDED
@@ -0,0 +1,52 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { importJWK as joseImportJWK } from "jose";
3
+ import type { JWK } from "jose";
4
+ import { z } from "zod";
5
+ import type { SuperThis, JWKPublic, JWKPrivate } from "@fireproof/core-types-base";
6
+ type JoseKey = Awaited<ReturnType<typeof joseImportJWK>>;
7
+ export declare const envKeyDefaults: {
8
+ SECRET: string;
9
+ PUBLIC: string;
10
+ };
11
+ export declare function importJWK(jwk: JWK, alg?: string, options?: {
12
+ extractable?: boolean;
13
+ }): Promise<Result<{
14
+ key: JoseKey;
15
+ alg: string;
16
+ }>>;
17
+ export declare function jwk2env(jwk: CryptoKey | JWK, sthis?: SuperThis): Promise<string>;
18
+ export declare function env2jwk(env: string, alg?: string, sthis?: SuperThis): Promise<JoseKey[]>;
19
+ export declare function coerceJWKWithSchema(sthis: SuperThis, validator: z.ZodTypeAny, ...inputs: unknown[]): Promise<Result<unknown>[]>;
20
+ export declare function coerceJWK(sthis: SuperThis, ...i: unknown[]): Promise<unknown[]>;
21
+ export declare function coerceJWKPublic(sthis: SuperThis, ...i: unknown[]): Promise<JWKPublic[]>;
22
+ export declare function coerceJWKPrivate(sthis: SuperThis, ...i: unknown[]): Promise<JWKPrivate[]>;
23
+ interface VerifyTokenOptions {
24
+ fetchTimeoutMs: number;
25
+ parseSchema: (payload: unknown) => Result<unknown>;
26
+ fetch: typeof globalThis.fetch;
27
+ verifyToken: (token: string, pubKey: JWK) => Promise<Result<{
28
+ payload: unknown;
29
+ }>>;
30
+ sthis: SuperThis;
31
+ }
32
+ export declare function verifyToken(token: string, presetPubKey: readonly (JWK | string)[], wellKnownUrls: readonly string[], iopts?: Partial<VerifyTokenOptions>): Promise<Result<unknown>>;
33
+ interface FetchWellKnownJwksResultOk {
34
+ readonly type: "ok";
35
+ readonly keys: JWKPublic[];
36
+ readonly url: string;
37
+ }
38
+ interface FetchWellKnownJwksResultErr {
39
+ readonly type: "error";
40
+ readonly error: unknown;
41
+ readonly url: string;
42
+ }
43
+ interface FetchWellKnownJwksResultTimeout {
44
+ readonly type: "timeout";
45
+ readonly url: string;
46
+ }
47
+ type FetchWellKnownJwksResult = FetchWellKnownJwksResultOk | FetchWellKnownJwksResultErr | FetchWellKnownJwksResultTimeout;
48
+ export declare function isFetchWellKnownJwksResultOk(r: FetchWellKnownJwksResult): r is FetchWellKnownJwksResultOk;
49
+ export declare function isFetchWellKnownJwksResultErr(r: FetchWellKnownJwksResult): r is FetchWellKnownJwksResultErr;
50
+ export declare function isFetchWellKnownJwksResultTimeout(r: FetchWellKnownJwksResult): r is FetchWellKnownJwksResultTimeout;
51
+ export declare function fetchWellKnownJwks(urls: string | (string | undefined)[], iopts?: Partial<Pick<VerifyTokenOptions, "fetchTimeoutMs" | "fetch">>): Promise<FetchWellKnownJwksResult[]>;
52
+ export {};