@ocap/message 1.28.8 → 1.29.0

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.
@@ -0,0 +1,87 @@
1
+ import { __commonJSMin } from "./_virtual/rolldown_runtime.mjs";
2
+
3
+ //#region package.json
4
+ var require_package = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5
+ module.exports = {
6
+ "name": "@ocap/message",
7
+ "description": "Utility functions to encode and decode message that can send to forge",
8
+ "version": "1.20.2",
9
+ "author": {
10
+ "name": "wangshijun",
11
+ "email": "shijun@arcblock.io",
12
+ "url": "https://github.com/wangshijun"
13
+ },
14
+ "contributors": ["wangshijun <shijun@arcblock.io> (https://github.com/wangshijun)"],
15
+ "bugs": {
16
+ "url": "https://github.com/ArcBlock/blockchain/issues",
17
+ "email": "shijun@arcblock.io"
18
+ },
19
+ "publishConfig": { "access": "public" },
20
+ "dependencies": {
21
+ "@ocap/proto": "workspace:*",
22
+ "@ocap/util": "workspace:*",
23
+ "debug": "^4.4.3",
24
+ "google-protobuf": "3.21.0",
25
+ "lodash": "^4.17.23"
26
+ },
27
+ "devDependencies": {
28
+ "@types/google-protobuf": "^3.15.12",
29
+ "jsdoc-to-markdown": "^7.1.1",
30
+ "remark-cli": "^10.0.1",
31
+ "remark-preset-github": "^4.0.4"
32
+ },
33
+ "remarkConfig": { "plugins": ["preset-github", [{ "repository": "ArcBlock/blockchain" }]] },
34
+ "homepage": "https://github.com/ArcBlock/blockchain/tree/master/core/forge-message",
35
+ "keywords": [
36
+ "blockchain",
37
+ "arcblock",
38
+ "sdk",
39
+ "nodejs"
40
+ ],
41
+ "license": "Apache-2.0",
42
+ "type": "module",
43
+ "main": "./lib/index.cjs",
44
+ "module": "./esm/index.mjs",
45
+ "types": "./esm/index.d.mts",
46
+ "exports": {
47
+ ".": {
48
+ "types": "./esm/index.d.mts",
49
+ "import": "./esm/index.mjs",
50
+ "default": "./lib/index.cjs"
51
+ },
52
+ "./lib/*.js": {
53
+ "types": "./esm/*.d.mts",
54
+ "import": "./esm/*.mjs",
55
+ "default": "./lib/*.cjs"
56
+ },
57
+ "./lib/*": {
58
+ "types": "./esm/*.d.mts",
59
+ "import": "./esm/*.mjs",
60
+ "default": "./lib/*.cjs"
61
+ }
62
+ },
63
+ "files": ["lib", "esm"],
64
+ "repository": {
65
+ "type": "git",
66
+ "url": "https://github.com/ArcBlock/blockchain/tree/master/core/forge-message"
67
+ },
68
+ "scripts": {
69
+ "build": "tsdown",
70
+ "prebuild": "rm -rf lib esm",
71
+ "lint": "biome check",
72
+ "lint:fix": "biome check --write",
73
+ "docs": "bun run gen-docs && bun run cleanup-docs && bun run format-docs",
74
+ "cleanup-docs": "node ../../scripts/cleanup-docs.js docs/README.md $npm_package_name",
75
+ "gen-docs": "jsdoc2md lib/message.js > docs/README.md",
76
+ "format-docs": "remark . -o",
77
+ "test": "bun test",
78
+ "coverage": "npm run test -- --coverage"
79
+ },
80
+ "gitHead": "87990c8b5e215107fc587c1ced0d6b3e2cd2483e"
81
+ };
82
+ }));
83
+
84
+ //#endregion
85
+ export default require_package();
86
+
87
+ export { require_package };
@@ -0,0 +1 @@
1
+ export { };
package/esm/patch.mjs ADDED
@@ -0,0 +1,40 @@
1
+ import { __require } from "./_virtual/rolldown_runtime.mjs";
2
+ import { require_package } from "./package.mjs";
3
+ import assert from "assert";
4
+ import createDebug from "debug";
5
+
6
+ //#region src/patch.ts
7
+ /**
8
+ * This patch fixes an issue in `google-protobuf` package
9
+ * After this patch is applied: The deserialize of `map` fields can accept empty values
10
+ */
11
+ const jspb = __require("google-protobuf");
12
+ const debug = createDebug(`${require_package().name}:Map`);
13
+ if (typeof jspb.Map.deserializeBinary === "function" && !jspb.Map.deserializeBinary.__patched__) {
14
+ jspb.Map.deserializeBinary = (map, reader, keyReaderFn, valueReaderFn, opt_valueReaderCallback, opt_defaultKey = 0) => {
15
+ let key = opt_defaultKey;
16
+ let value;
17
+ while (reader.nextField()) {
18
+ if (reader.isEndGroup()) break;
19
+ const field = reader.getFieldNumber();
20
+ debug("deserializeBinary.field", field);
21
+ if (field === 1) {
22
+ key = keyReaderFn.call(reader);
23
+ debug("deserializeBinary.key", key);
24
+ } else if (field === 2) {
25
+ debug("deserializeBinary.map", map);
26
+ if (map.valueCtor_) {
27
+ assert(opt_valueReaderCallback, "opt_valueReaderCallback");
28
+ value = new map.valueCtor_();
29
+ valueReaderFn.call(reader, value, opt_valueReaderCallback);
30
+ } else value = valueReaderFn.call(reader);
31
+ debug("deserializeBinary.value", typeof value?.toObject === "function" ? value.toObject() : value);
32
+ }
33
+ }
34
+ if (typeof key !== "undefined" && typeof value !== "undefined") map.set(key, value);
35
+ };
36
+ jspb.Map.deserializeBinary.__patched__ = true;
37
+ }
38
+
39
+ //#endregion
40
+ export { };
@@ -0,0 +1,27 @@
1
+ //#region src/provider.d.ts
2
+ interface MessageTypeResult {
3
+ fn?: new () => unknown;
4
+ fields?: Record<string, unknown>;
5
+ oneofs?: Record<string, unknown>;
6
+ }
7
+ interface ProtoProvider {
8
+ getMessageType(type: string): MessageTypeResult;
9
+ toTypeUrl(type: string): string;
10
+ fromTypeUrl(url: string): string;
11
+ enums?: Record<string, Record<string | number, string | number>>;
12
+ messages?: Record<string, Record<string | number, string>>;
13
+ }
14
+ declare const enums: Record<string, Record<string | number, string | number>>;
15
+ declare const messages: Record<string, Record<string | number, string>>;
16
+ declare function getMessageType(type: string): MessageTypeResult;
17
+ declare function toTypeUrl(type: string): string;
18
+ declare function fromTypeUrl(url: string): string;
19
+ /**
20
+ * Add type provider that can be used to format/create messages
21
+ *
22
+ * @param provider - proto generated from @ocap/proto
23
+ */
24
+ declare function addProvider(provider: ProtoProvider): void;
25
+ declare function resetProviders(): void;
26
+ //#endregion
27
+ export { type MessageTypeResult, type ProtoProvider, addProvider, enums, fromTypeUrl, getMessageType, messages, resetProviders, toTypeUrl };
@@ -0,0 +1,42 @@
1
+ //#region src/provider.ts
2
+ const providers = [];
3
+ const enums = {};
4
+ const messages = {};
5
+ function getMessageType(type) {
6
+ const provider = providers.find((x) => x.getMessageType(type).fn);
7
+ if (provider) return provider.getMessageType(type);
8
+ return {};
9
+ }
10
+ function toTypeUrl(type) {
11
+ const provider = providers.find((x) => x.toTypeUrl(type) !== type);
12
+ if (provider) return provider.toTypeUrl(type);
13
+ return type;
14
+ }
15
+ function fromTypeUrl(url) {
16
+ const provider = providers.find((x) => x.fromTypeUrl(url) !== url);
17
+ if (provider) return provider.fromTypeUrl(url);
18
+ return url;
19
+ }
20
+ /**
21
+ * Add type provider that can be used to format/create messages
22
+ *
23
+ * @param provider - proto generated from @ocap/proto
24
+ */
25
+ function addProvider(provider) {
26
+ if ([
27
+ "getMessageType",
28
+ "toTypeUrl",
29
+ "fromTypeUrl"
30
+ ].some((x) => typeof provider[x] !== "function")) throw new Error("addProvider requires a valid proto provider");
31
+ if (providers.includes(provider) === false) {
32
+ providers.push(provider);
33
+ if (provider.enums) Object.assign(enums, provider.enums);
34
+ if (provider.messages) Object.assign(messages, provider.messages);
35
+ }
36
+ }
37
+ function resetProviders() {
38
+ while (providers.length) providers.pop();
39
+ }
40
+
41
+ //#endregion
42
+ export { addProvider, enums, fromTypeUrl, getMessageType, messages, resetProviders, toTypeUrl };
@@ -0,0 +1,31 @@
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
+ key = keys[i];
13
+ if (!__hasOwnProp.call(to, key) && key !== except) {
14
+ __defProp(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ }
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+
28
+ //#endregion
29
+
30
+ exports.__commonJSMin = __commonJSMin;
31
+ exports.__toESM = __toESM;
package/lib/index.cjs ADDED
@@ -0,0 +1,26 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
2
+ require('./patch.cjs');
3
+ const require_provider = require('./provider.cjs');
4
+ const require_message = require('./message.cjs');
5
+ let _ocap_proto = require("@ocap/proto");
6
+ _ocap_proto = require_rolldown_runtime.__toESM(_ocap_proto);
7
+
8
+ //#region src/index.ts
9
+ require_provider.addProvider(_ocap_proto.default);
10
+
11
+ //#endregion
12
+ exports.addProvider = require_provider.addProvider;
13
+ exports.attachExampleFn = require_message.attachExampleFn;
14
+ exports.attachFormatFn = require_message.attachFormatFn;
15
+ exports.createMessage = require_message.createMessage;
16
+ exports.decodeAny = require_message.decodeAny;
17
+ exports.decodeBigInt = require_message.decodeBigInt;
18
+ exports.decodeTimestamp = require_message.decodeTimestamp;
19
+ exports.encodeAny = require_message.encodeAny;
20
+ exports.encodeBigInt = require_message.encodeBigInt;
21
+ exports.encodeTimestamp = require_message.encodeTimestamp;
22
+ exports.fakeMessage = require_message.fakeMessage;
23
+ exports.formatMessage = require_message.formatMessage;
24
+ exports.fromTypeUrl = require_provider.fromTypeUrl;
25
+ exports.getMessageType = require_provider.getMessageType;
26
+ exports.toTypeUrl = require_provider.toTypeUrl;
@@ -0,0 +1,3 @@
1
+ import { addProvider, fromTypeUrl, getMessageType, toTypeUrl } from "./provider.cjs";
2
+ import { AnyData, attachExampleFn, attachFormatFn, createMessage, decodeAny, decodeBigInt, decodeTimestamp, encodeAny, encodeBigInt, encodeTimestamp, fakeMessage, formatMessage } from "./message.cjs";
3
+ export { type AnyData, addProvider, attachExampleFn, attachFormatFn, createMessage, decodeAny, decodeBigInt, decodeTimestamp, encodeAny, encodeBigInt, encodeTimestamp, fakeMessage, formatMessage, fromTypeUrl, getMessageType, toTypeUrl };