@rasputin-ai/browser 0.7.0 → 0.7.2-beta.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 CHANGED
@@ -1,5 +1,5 @@
1
- # Official Rasputin AI SDK for browsers
2
-
3
- Report frontend errors to Rasputin from Vite apps.
4
-
5
- See the [browser documentation](https://rasputinai.dev/docs/browser/installation).
1
+ # Official Rasputin AI SDK for browsers
2
+
3
+ Report frontend errors to Rasputin from Vite apps.
4
+
5
+ See the [browser documentation](https://rasputinai.dev/docs/browser/installation).
package/dist/index.js CHANGED
@@ -3444,7 +3444,7 @@ var mapBrowserRuntimeState = (snapshot, buildId) => {
3444
3444
 
3445
3445
  // src/sdk-meta.ts
3446
3446
  var SDK_NAME = "@rasputin-ai/browser";
3447
- var SDK_VERSION = "0.7.0";
3447
+ var SDK_VERSION = "0.7.2-beta.1";
3448
3448
 
3449
3449
  // src/rasputin-init.ts
3450
3450
  var DEFAULT_API_URL = "https://api.rasputinai.dev";
@@ -1,4 +1,4 @@
1
1
  /** Generated by scripts/generate-sdk-meta.ts — do not edit. */
2
2
  export declare const SDK_NAME = "@rasputin-ai/browser";
3
- export declare const SDK_VERSION = "0.7.0";
3
+ export declare const SDK_VERSION = "0.7.2-beta.1";
4
4
  //# sourceMappingURL=sdk-meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-meta.d.ts","sourceRoot":"","sources":["../src/sdk-meta.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,yBAAyB,CAAC;AAC/C,eAAO,MAAM,WAAW,UAAU,CAAC"}
1
+ {"version":3,"file":"sdk-meta.d.ts","sourceRoot":"","sources":["../src/sdk-meta.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,yBAAyB,CAAC;AAC/C,eAAO,MAAM,WAAW,iBAAiB,CAAC"}
@@ -97,6 +97,7 @@ export type LocalArtifacts = {
97
97
  };
98
98
  export declare const contentDebugId: (source: string) => string;
99
99
  export declare const contentHash: (value: unknown) => string;
100
+ export declare const omitSourceMapSourcesContent: (map: unknown) => unknown;
100
101
  export declare const summarizeClassification: (functions: ManifestFunction[], expressionSites: ExpressionSite[]) => ClassificationReport;
101
102
  export declare const writeLocalArtifacts: (directory: string, artifacts: LocalArtifacts) => void;
102
103
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/vite/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/vite/artifacts.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,168 @@ var compactRuntimeFunctionId = (moduleIndex, planIndex) => `${moduleIndex}.${pla
10
10
  // ../core/src/create-ingest-event/truncate-ingest-message.ts
11
11
  var MAX_MESSAGE_BYTES = 8 * 1024;
12
12
 
13
+ // ../core/src/derivation/sensitive-property-name.ts
14
+ var DEFAULT_SENSITIVE_PROPERTY_NAMES = [
15
+ "password",
16
+ "passwd",
17
+ "pwd",
18
+ "passphrase",
19
+ "token",
20
+ "accesstoken",
21
+ "refreshtoken",
22
+ "sessiontoken",
23
+ "authorization",
24
+ "auth",
25
+ "bearer",
26
+ "cookie",
27
+ "cookies",
28
+ "signedcookies",
29
+ "setcookie",
30
+ "secret",
31
+ "secrets",
32
+ "clientsecret",
33
+ "apikey",
34
+ "xapikey",
35
+ "credential",
36
+ "credentials",
37
+ "privatekey",
38
+ "privkey",
39
+ "pem",
40
+ "jwt",
41
+ "otp",
42
+ "totp",
43
+ "pin",
44
+ "mfacode",
45
+ "sessionid",
46
+ "sid",
47
+ "databaseurl",
48
+ "connectionstring",
49
+ "dsn",
50
+ "mongouri",
51
+ "redisurl",
52
+ "signingkey",
53
+ "encryptionkey",
54
+ "cvv",
55
+ "cvc",
56
+ "cardnumber",
57
+ "ssn",
58
+ "creditcard",
59
+ "securitycode",
60
+ "twofactorcode",
61
+ "masterkey",
62
+ "servicerolekey",
63
+ "stripekey",
64
+ "rawheaders"
65
+ ];
66
+ var DEFAULT_SENSITIVE_PROPERTY_NAME_SET = new Set(DEFAULT_SENSITIVE_PROPERTY_NAMES);
67
+ var SENSITIVE_SEGMENTS = /* @__PURE__ */ new Set([
68
+ "password",
69
+ "passwd",
70
+ "pwd",
71
+ "passphrase",
72
+ "token",
73
+ "secret",
74
+ "cookie",
75
+ "cookies",
76
+ "authorization",
77
+ "auth",
78
+ "bearer",
79
+ "credential",
80
+ "credentials",
81
+ "jwt",
82
+ "otp",
83
+ "totp",
84
+ "pin",
85
+ "sid",
86
+ "dsn",
87
+ "pem",
88
+ "privkey",
89
+ "cvv",
90
+ "cvc",
91
+ "ssn",
92
+ "secrets"
93
+ ]);
94
+ var SENSITIVE_SUFFIXES = [
95
+ "password",
96
+ "passwd",
97
+ "token",
98
+ "secret",
99
+ "apikey",
100
+ "privatekey",
101
+ "credential",
102
+ "credentials",
103
+ "cookie"
104
+ ];
105
+ var compactKey = (key) => {
106
+ let compacted = "";
107
+ for (let index = 0; index < key.length; index++) {
108
+ const code = key.charCodeAt(index);
109
+ if (code === 45 || code === 46 || code === 95) continue;
110
+ compacted += code >= 65 && code <= 90 ? String.fromCharCode(code + 32) : key[index];
111
+ }
112
+ return compacted;
113
+ };
114
+ var stripTrailingDigits = (value) => {
115
+ let end = value.length;
116
+ while (end > 0) {
117
+ const code = value.charCodeAt(end - 1);
118
+ if (code < 48 || code > 57) break;
119
+ end--;
120
+ }
121
+ return end === 0 ? value : value.slice(0, end);
122
+ };
123
+ var segmentsOf = (key) => {
124
+ const segments = [];
125
+ let current = "";
126
+ for (let index = 0; index < key.length; index++) {
127
+ const char = key[index] ?? "";
128
+ const code = key.charCodeAt(index);
129
+ if (code === 45 || code === 46 || code === 95) {
130
+ if (current) segments.push(current.toLowerCase());
131
+ current = "";
132
+ continue;
133
+ }
134
+ if (current && code >= 65 && code <= 90) {
135
+ const prev = current.charCodeAt(current.length - 1);
136
+ const prevIsLower = prev >= 97 && prev <= 122;
137
+ const next = key.charCodeAt(index + 1);
138
+ const nextIsLower = next >= 97 && next <= 122;
139
+ if (prevIsLower || nextIsLower) {
140
+ segments.push(current.toLowerCase());
141
+ current = char;
142
+ continue;
143
+ }
144
+ }
145
+ current += char;
146
+ }
147
+ if (current) segments.push(current.toLowerCase());
148
+ return segments;
149
+ };
150
+ var adjacentPairsSensitive = (left, right) => left === "api" && right === "key" || left === "private" && right === "key" || left === "client" && right === "secret" || left === "set" && right === "cookie" || left === "database" && right === "url" || left === "connection" && right === "string" || left === "mongo" && (right === "uri" || right === "url") || left === "mongodb" && (right === "uri" || right === "url") || left === "redis" && (right === "uri" || right === "url") || left === "postgres" && (right === "uri" || right === "url") || left === "database" && right === "uri" || left === "signing" && right === "key" || left === "master" && right === "key" || left === "stripe" && right === "key" || left === "service" && right === "role" || left === "security" && right === "code" || left === "two" && right === "factor" || left === "encryption" && right === "key" || left === "session" && (right === "id" || right === "key" || right === "token") || left === "card" && right === "number" || left === "mfa" && right === "code";
151
+ var propertyNameIsSensitive = (key) => {
152
+ const compacted = compactKey(key);
153
+ const compactForms = [compacted, stripTrailingDigits(compacted)].filter(
154
+ (value, index, values) => value.length > 0 && values.indexOf(value) === index
155
+ );
156
+ for (const form of compactForms) {
157
+ if (DEFAULT_SENSITIVE_PROPERTY_NAME_SET.has(form)) return true;
158
+ for (const suffix of SENSITIVE_SUFFIXES) {
159
+ if (form.endsWith(suffix)) return true;
160
+ }
161
+ if (form.includes("apikey") || form.includes("xapikey")) return true;
162
+ }
163
+ const segments = segmentsOf(key).map((segment) => stripTrailingDigits(segment) || segment);
164
+ for (const segment of segments) {
165
+ if (SENSITIVE_SEGMENTS.has(segment)) return true;
166
+ }
167
+ for (let index = 0; index < segments.length - 1; index++) {
168
+ const left = segments[index];
169
+ const right = segments[index + 1];
170
+ if (left && right && adjacentPairsSensitive(left, right)) return true;
171
+ }
172
+ return false;
173
+ };
174
+
13
175
  // ../core/src/source-identity/source-identity.ts
14
176
  import { createHash } from "node:crypto";
15
177
  import { existsSync, readFileSync } from "node:fs";
@@ -651,6 +813,20 @@ var onInt = tagListener(() => {
651
813
  handleSignal("SIGINT");
652
814
  });
653
815
 
816
+ // ../core/src/transport/encode-json-request-body.ts
817
+ import { gzipSync } from "node:zlib";
818
+ var GZIP_JSON_THRESHOLD_BYTES = 10 * 1024;
819
+ var encodeJsonRequestBody = (payload, gzipThresholdBytes = GZIP_JSON_THRESHOLD_BYTES) => {
820
+ const json = JSON.stringify(payload);
821
+ if (Buffer.byteLength(json, "utf8") < gzipThresholdBytes) {
822
+ return { body: json, gzip: false };
823
+ }
824
+ const compressed = gzipSync(json);
825
+ const body = new Uint8Array(compressed.byteLength);
826
+ body.set(compressed);
827
+ return { body, gzip: true };
828
+ };
829
+
654
830
  // ../core/src/transport/create-transport.ts
655
831
  var DEFAULTS = {
656
832
  enabled: true,
@@ -671,168 +847,6 @@ var runtimeStateUnavailable = Symbol.for(
671
847
  "rasputin.runtime-state.unavailable"
672
848
  );
673
849
 
674
- // ../core/src/derivation/sensitive-property-name.ts
675
- var DEFAULT_SENSITIVE_PROPERTY_NAMES = [
676
- "password",
677
- "passwd",
678
- "pwd",
679
- "passphrase",
680
- "token",
681
- "accesstoken",
682
- "refreshtoken",
683
- "sessiontoken",
684
- "authorization",
685
- "auth",
686
- "bearer",
687
- "cookie",
688
- "cookies",
689
- "signedcookies",
690
- "setcookie",
691
- "secret",
692
- "secrets",
693
- "clientsecret",
694
- "apikey",
695
- "xapikey",
696
- "credential",
697
- "credentials",
698
- "privatekey",
699
- "privkey",
700
- "pem",
701
- "jwt",
702
- "otp",
703
- "totp",
704
- "pin",
705
- "mfacode",
706
- "sessionid",
707
- "sid",
708
- "databaseurl",
709
- "connectionstring",
710
- "dsn",
711
- "mongouri",
712
- "redisurl",
713
- "signingkey",
714
- "encryptionkey",
715
- "cvv",
716
- "cvc",
717
- "cardnumber",
718
- "ssn",
719
- "creditcard",
720
- "securitycode",
721
- "twofactorcode",
722
- "masterkey",
723
- "servicerolekey",
724
- "stripekey",
725
- "rawheaders"
726
- ];
727
- var DEFAULT_SENSITIVE_PROPERTY_NAME_SET = new Set(DEFAULT_SENSITIVE_PROPERTY_NAMES);
728
- var SENSITIVE_SEGMENTS = /* @__PURE__ */ new Set([
729
- "password",
730
- "passwd",
731
- "pwd",
732
- "passphrase",
733
- "token",
734
- "secret",
735
- "cookie",
736
- "cookies",
737
- "authorization",
738
- "auth",
739
- "bearer",
740
- "credential",
741
- "credentials",
742
- "jwt",
743
- "otp",
744
- "totp",
745
- "pin",
746
- "sid",
747
- "dsn",
748
- "pem",
749
- "privkey",
750
- "cvv",
751
- "cvc",
752
- "ssn",
753
- "secrets"
754
- ]);
755
- var SENSITIVE_SUFFIXES = [
756
- "password",
757
- "passwd",
758
- "token",
759
- "secret",
760
- "apikey",
761
- "privatekey",
762
- "credential",
763
- "credentials",
764
- "cookie"
765
- ];
766
- var compactKey = (key) => {
767
- let compacted = "";
768
- for (let index = 0; index < key.length; index++) {
769
- const code = key.charCodeAt(index);
770
- if (code === 45 || code === 46 || code === 95) continue;
771
- compacted += code >= 65 && code <= 90 ? String.fromCharCode(code + 32) : key[index];
772
- }
773
- return compacted;
774
- };
775
- var stripTrailingDigits = (value) => {
776
- let end = value.length;
777
- while (end > 0) {
778
- const code = value.charCodeAt(end - 1);
779
- if (code < 48 || code > 57) break;
780
- end--;
781
- }
782
- return end === 0 ? value : value.slice(0, end);
783
- };
784
- var segmentsOf = (key) => {
785
- const segments = [];
786
- let current = "";
787
- for (let index = 0; index < key.length; index++) {
788
- const char = key[index] ?? "";
789
- const code = key.charCodeAt(index);
790
- if (code === 45 || code === 46 || code === 95) {
791
- if (current) segments.push(current.toLowerCase());
792
- current = "";
793
- continue;
794
- }
795
- if (current && code >= 65 && code <= 90) {
796
- const prev = current.charCodeAt(current.length - 1);
797
- const prevIsLower = prev >= 97 && prev <= 122;
798
- const next = key.charCodeAt(index + 1);
799
- const nextIsLower = next >= 97 && next <= 122;
800
- if (prevIsLower || nextIsLower) {
801
- segments.push(current.toLowerCase());
802
- current = char;
803
- continue;
804
- }
805
- }
806
- current += char;
807
- }
808
- if (current) segments.push(current.toLowerCase());
809
- return segments;
810
- };
811
- var adjacentPairsSensitive = (left, right) => left === "api" && right === "key" || left === "private" && right === "key" || left === "client" && right === "secret" || left === "set" && right === "cookie" || left === "database" && right === "url" || left === "connection" && right === "string" || left === "mongo" && (right === "uri" || right === "url") || left === "mongodb" && (right === "uri" || right === "url") || left === "redis" && (right === "uri" || right === "url") || left === "postgres" && (right === "uri" || right === "url") || left === "database" && right === "uri" || left === "signing" && right === "key" || left === "master" && right === "key" || left === "stripe" && right === "key" || left === "service" && right === "role" || left === "security" && right === "code" || left === "two" && right === "factor" || left === "encryption" && right === "key" || left === "session" && (right === "id" || right === "key" || right === "token") || left === "card" && right === "number" || left === "mfa" && right === "code";
812
- var propertyNameIsSensitive = (key) => {
813
- const compacted = compactKey(key);
814
- const compactForms = [compacted, stripTrailingDigits(compacted)].filter(
815
- (value, index, values) => value.length > 0 && values.indexOf(value) === index
816
- );
817
- for (const form of compactForms) {
818
- if (DEFAULT_SENSITIVE_PROPERTY_NAME_SET.has(form)) return true;
819
- for (const suffix of SENSITIVE_SUFFIXES) {
820
- if (form.endsWith(suffix)) return true;
821
- }
822
- if (form.includes("apikey") || form.includes("xapikey")) return true;
823
- }
824
- const segments = segmentsOf(key).map((segment) => stripTrailingDigits(segment) || segment);
825
- for (const segment of segments) {
826
- if (SENSITIVE_SEGMENTS.has(segment)) return true;
827
- }
828
- for (let index = 0; index < segments.length - 1; index++) {
829
- const left = segments[index];
830
- const right = segments[index + 1];
831
- if (left && right && adjacentPairsSensitive(left, right)) return true;
832
- }
833
- return false;
834
- };
835
-
836
850
  // ../recorder/src/function-plan.ts
837
851
  var encodeFunctionPlan = (source) => {
838
852
  const locator = sourceLocatorFromFile(source.filePath);
@@ -3944,6 +3958,13 @@ var contentDebugId = (source) => {
3944
3958
  return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
3945
3959
  };
3946
3960
  var contentHash = (value) => createHash3("sha256").update(JSON.stringify(value)).digest("hex");
3961
+ var omitSourceMapSourcesContent = (map) => {
3962
+ if (!map || typeof map !== "object" || Array.isArray(map)) return map;
3963
+ if (!("sourcesContent" in map)) return map;
3964
+ const next = { ...map };
3965
+ Reflect.deleteProperty(next, "sourcesContent");
3966
+ return next;
3967
+ };
3947
3968
  var summarizeClassification = (functions, expressionSites) => {
3948
3969
  const counts = {
3949
3970
  full: 0,
@@ -4009,24 +4030,26 @@ var uploadBrowserArtifacts = async (input) => {
4009
4030
  ""
4010
4031
  );
4011
4032
  try {
4033
+ const { body, gzip } = encodeJsonRequestBody({
4034
+ buildId: input.artifacts.buildId,
4035
+ release: input.release,
4036
+ contentHash: contentHash(input.artifacts),
4037
+ artifact: input.artifacts,
4038
+ ...input.replace === true ? { replace: true } : {}
4039
+ });
4012
4040
  const response = await fetch(`${apiUrl}/browserArtifacts`, {
4013
4041
  method: "POST",
4014
4042
  headers: {
4015
4043
  authorization: `Bearer ${key}`,
4016
- "content-type": "application/json"
4044
+ "content-type": "application/json",
4045
+ ...gzip ? { "content-encoding": "gzip" } : {}
4017
4046
  },
4018
- body: JSON.stringify({
4019
- buildId: input.artifacts.buildId,
4020
- release: input.release,
4021
- contentHash: contentHash(input.artifacts),
4022
- artifact: input.artifacts,
4023
- ...input.replace === true ? { replace: true } : {}
4024
- })
4047
+ body
4025
4048
  });
4026
4049
  if (response.status === 409) return "conflict";
4027
4050
  if (response.status === 200 || response.status === 201) {
4028
- const body = await response.json().catch(() => ({}));
4029
- if (body && typeof body === "object" && "duplicate" in body && body.duplicate === true) {
4051
+ const body2 = await response.json().catch(() => ({}));
4052
+ if (body2 && typeof body2 === "object" && "duplicate" in body2 && body2.duplicate === true) {
4030
4053
  return "duplicate";
4031
4054
  }
4032
4055
  return "uploaded";
@@ -4225,7 +4248,10 @@ var rasputin = (options) => {
4225
4248
  destructures: [...destructures.values()],
4226
4249
  expressionSites: sites,
4227
4250
  classification: summarizeClassification(manifestFunctions, sites),
4228
- debugImages,
4251
+ debugImages: debugImages.map((image) => ({
4252
+ ...image,
4253
+ map: omitSourceMapSourcesContent(image.map)
4254
+ })),
4229
4255
  verificationFailed: [...verificationFailed],
4230
4256
  provenance: { ...provenanceStats }
4231
4257
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACX,kBAAkB,EAOlB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAcnC,MAAM,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACxC,CAAC;AA2LF,eAAO,MAAM,QAAQ,GAAI,SAAS,mBAAmB,KAAG,MAAM,EA2Y7D,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACX,kBAAkB,EAOlB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAenC,MAAM,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACxC,CAAC;AA2LF,eAAO,MAAM,QAAQ,GAAI,SAAS,mBAAmB,KAAG,MAAM,EA8Y7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-browser-artifacts.d.ts","sourceRoot":"","sources":["../../src/vite/upload-browser-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAI/D,eAAO,MAAM,sBAAsB,GAAU,OAAO;IACnD,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,KAAG,OAAO,CAAC,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAsCvE,CAAC"}
1
+ {"version":3,"file":"upload-browser-artifacts.d.ts","sourceRoot":"","sources":["../../src/vite/upload-browser-artifacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAI/D,eAAO,MAAM,sBAAsB,GAAU,OAAO;IACnD,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,KAAG,OAAO,CAAC,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAyCvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasputin-ai/browser",
3
- "version": "0.7.0",
3
+ "version": "0.7.2-beta.1",
4
4
  "description": "Official Rasputin AI SDK for browser applications.",
5
5
  "type": "module",
6
6
  "exports": {