mustardscript 0.1.0 → 0.1.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 +62 -20
- package/SECURITY.md +1 -1
- package/dist/index.js +2 -0
- package/dist/lib/executor.js +16 -1
- package/dist/lib/policy.js +301 -22
- package/dist/lib/progress.js +499 -113
- package/dist/lib/runtime.js +109 -40
- package/dist/lib/structured.js +327 -11
- package/dist/native-loader.js +11 -12
- package/index.d.ts +54 -6
- package/mustard.d.ts +23 -1
- package/package.json +34 -25
- package/Cargo.lock +0 -1579
- package/Cargo.toml +0 -40
- package/crates/mustard/Cargo.toml +0 -31
- package/crates/mustard/src/cancellation.rs +0 -28
- package/crates/mustard/src/diagnostic.rs +0 -145
- package/crates/mustard/src/ir.rs +0 -435
- package/crates/mustard/src/lib.rs +0 -21
- package/crates/mustard/src/limits.rs +0 -22
- package/crates/mustard/src/parser/expressions.rs +0 -723
- package/crates/mustard/src/parser/mod.rs +0 -115
- package/crates/mustard/src/parser/operators.rs +0 -105
- package/crates/mustard/src/parser/patterns.rs +0 -123
- package/crates/mustard/src/parser/scope.rs +0 -107
- package/crates/mustard/src/parser/statements.rs +0 -298
- package/crates/mustard/src/parser/tests/acceptance.rs +0 -339
- package/crates/mustard/src/parser/tests/mod.rs +0 -2
- package/crates/mustard/src/parser/tests/rejections.rs +0 -107
- package/crates/mustard/src/runtime/accounting.rs +0 -613
- package/crates/mustard/src/runtime/api.rs +0 -192
- package/crates/mustard/src/runtime/async_runtime/mod.rs +0 -5
- package/crates/mustard/src/runtime/async_runtime/promises.rs +0 -246
- package/crates/mustard/src/runtime/async_runtime/reactions.rs +0 -400
- package/crates/mustard/src/runtime/async_runtime/scheduler.rs +0 -224
- package/crates/mustard/src/runtime/builtins/arrays.rs +0 -1205
- package/crates/mustard/src/runtime/builtins/collections.rs +0 -573
- package/crates/mustard/src/runtime/builtins/install.rs +0 -501
- package/crates/mustard/src/runtime/builtins/intl.rs +0 -553
- package/crates/mustard/src/runtime/builtins/mod.rs +0 -25
- package/crates/mustard/src/runtime/builtins/objects.rs +0 -405
- package/crates/mustard/src/runtime/builtins/primitives.rs +0 -859
- package/crates/mustard/src/runtime/builtins/promises.rs +0 -335
- package/crates/mustard/src/runtime/builtins/regexp.rs +0 -356
- package/crates/mustard/src/runtime/builtins/strings.rs +0 -803
- package/crates/mustard/src/runtime/builtins/support.rs +0 -561
- package/crates/mustard/src/runtime/bytecode.rs +0 -123
- package/crates/mustard/src/runtime/compiler/assignments.rs +0 -690
- package/crates/mustard/src/runtime/compiler/bindings.rs +0 -92
- package/crates/mustard/src/runtime/compiler/context.rs +0 -46
- package/crates/mustard/src/runtime/compiler/control.rs +0 -342
- package/crates/mustard/src/runtime/compiler/expressions.rs +0 -372
- package/crates/mustard/src/runtime/compiler/mod.rs +0 -173
- package/crates/mustard/src/runtime/compiler/statements.rs +0 -459
- package/crates/mustard/src/runtime/conversions/boundary.rs +0 -293
- package/crates/mustard/src/runtime/conversions/coercions.rs +0 -217
- package/crates/mustard/src/runtime/conversions/errors.rs +0 -118
- package/crates/mustard/src/runtime/conversions/mod.rs +0 -14
- package/crates/mustard/src/runtime/conversions/operators.rs +0 -334
- package/crates/mustard/src/runtime/env.rs +0 -355
- package/crates/mustard/src/runtime/exceptions.rs +0 -377
- package/crates/mustard/src/runtime/gc.rs +0 -595
- package/crates/mustard/src/runtime/mod.rs +0 -318
- package/crates/mustard/src/runtime/properties.rs +0 -1762
- package/crates/mustard/src/runtime/serialization.rs +0 -127
- package/crates/mustard/src/runtime/shared.rs +0 -108
- package/crates/mustard/src/runtime/snapshot_validation_tests.rs +0 -93
- package/crates/mustard/src/runtime/state.rs +0 -652
- package/crates/mustard/src/runtime/tests/async_host.rs +0 -104
- package/crates/mustard/src/runtime/tests/collections.rs +0 -50
- package/crates/mustard/src/runtime/tests/diagnostics.rs +0 -36
- package/crates/mustard/src/runtime/tests/exceptions.rs +0 -122
- package/crates/mustard/src/runtime/tests/execution.rs +0 -553
- package/crates/mustard/src/runtime/tests/gc.rs +0 -533
- package/crates/mustard/src/runtime/tests/mod.rs +0 -56
- package/crates/mustard/src/runtime/tests/serialization.rs +0 -170
- package/crates/mustard/src/runtime/validation/bytecode.rs +0 -484
- package/crates/mustard/src/runtime/validation/mod.rs +0 -14
- package/crates/mustard/src/runtime/validation/policy.rs +0 -94
- package/crates/mustard/src/runtime/validation/snapshot.rs +0 -406
- package/crates/mustard/src/runtime/validation/walk.rs +0 -206
- package/crates/mustard/src/runtime/vm.rs +0 -1016
- package/crates/mustard/src/span.rs +0 -22
- package/crates/mustard/src/structured.rs +0 -107
- package/crates/mustard-bridge/Cargo.toml +0 -17
- package/crates/mustard-bridge/src/codec.rs +0 -46
- package/crates/mustard-bridge/src/dto.rs +0 -99
- package/crates/mustard-bridge/src/lib.rs +0 -12
- package/crates/mustard-bridge/src/operations.rs +0 -142
- package/crates/mustard-node/Cargo.toml +0 -24
- package/crates/mustard-node/build.rs +0 -3
- package/crates/mustard-node/src/lib.rs +0 -236
- package/crates/mustard-sidecar/Cargo.toml +0 -21
- package/crates/mustard-sidecar/src/lib.rs +0 -134
- package/crates/mustard-sidecar/src/main.rs +0 -36
- package/dist/install.js +0 -117
package/index.d.ts
CHANGED
|
@@ -2,22 +2,70 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export declare function cancelCancellationToken(tokenId: string): void
|
|
4
4
|
|
|
5
|
-
export declare function
|
|
6
|
-
|
|
7
|
-
export declare function compileProgram(source: string): Buffer
|
|
5
|
+
export declare function compileProgram(source: string): string
|
|
8
6
|
|
|
9
7
|
export declare function createCancellationToken(): string
|
|
10
8
|
|
|
9
|
+
export declare function createExecutionContext(policyJson: string): string
|
|
10
|
+
|
|
11
|
+
export declare function dumpProgram(programHandle: string): Buffer
|
|
12
|
+
|
|
13
|
+
export declare function dumpSnapshotHandle(snapshotHandle: string): Buffer
|
|
14
|
+
|
|
15
|
+
export declare function inspectDetachedSnapshot(programHandle: string, snapshot: Buffer, policyJson: string): string
|
|
16
|
+
|
|
11
17
|
export declare function inspectSnapshot(snapshot: Buffer, policyJson: string): string
|
|
12
18
|
|
|
13
|
-
export declare function
|
|
19
|
+
export declare function inspectSnapshotHandle(snapshotHandle: string): string
|
|
20
|
+
|
|
21
|
+
export declare function loadDetachedSnapshotHandle(programHandle: string, snapshot: Buffer, policyJson: string): string
|
|
22
|
+
|
|
23
|
+
export declare function loadDetachedSnapshotHandleWithExecutionContext(programHandle: string, contextHandle: string, snapshot: Buffer, snapshotId: string, snapshotKeyBase64: string, snapshotKeyDigest: string, snapshotToken: string): string
|
|
24
|
+
|
|
25
|
+
export declare function loadProgram(program: Buffer): string
|
|
26
|
+
|
|
27
|
+
export declare function loadSnapshotHandle(snapshot: Buffer, policyJson: string): string
|
|
28
|
+
|
|
29
|
+
export declare function loadSnapshotHandleWithExecutionContext(contextHandle: string, snapshot: Buffer, snapshotId: string, snapshotKeyBase64: string, snapshotKeyDigest: string, snapshotToken: string): string
|
|
30
|
+
|
|
31
|
+
export declare function profileResumeSnapshotHandle(snapshotHandle: string, payloadJson: string, cancellationTokenId?: string | undefined | null): string
|
|
32
|
+
|
|
33
|
+
export declare function profileResumeSnapshotHandleBuffer(snapshotHandle: string, payloadBuffer: Buffer, cancellationTokenId?: string | undefined | null): string
|
|
34
|
+
|
|
35
|
+
export declare function profileStartProgramWithExecutionContextHandle(programHandle: string, contextHandle: string, inputsJson: string, cancellationTokenId?: string | undefined | null): string
|
|
36
|
+
|
|
37
|
+
export declare function profileStartProgramWithExecutionContextHandleBuffer(programHandle: string, contextHandle: string, inputsBuffer: Buffer, cancellationTokenId?: string | undefined | null): string
|
|
38
|
+
|
|
39
|
+
export declare function profileStartProgramWithSnapshotHandle(programHandle: string, optionsJson: string, cancellationTokenId?: string | undefined | null): string
|
|
40
|
+
|
|
41
|
+
export declare function profileStartProgramWithSnapshotHandleBuffer(programHandle: string, optionsBuffer: Buffer, cancellationTokenId?: string | undefined | null): string
|
|
14
42
|
|
|
15
43
|
export declare function releaseCancellationToken(tokenId: string): void
|
|
16
44
|
|
|
17
|
-
export declare function
|
|
45
|
+
export declare function releaseExecutionContext(contextHandle: string): void
|
|
46
|
+
|
|
47
|
+
export declare function releaseProgram(programHandle: string): void
|
|
48
|
+
|
|
49
|
+
export declare function releaseSnapshotHandle(snapshotHandle: string): void
|
|
50
|
+
|
|
51
|
+
export declare function resumeDetachedProgram(programHandle: string, snapshot: Buffer, payloadJson: string, policyJson: string, cancellationTokenId?: string | undefined | null): string
|
|
18
52
|
|
|
19
53
|
export declare function resumeProgram(snapshot: Buffer, payloadJson: string, policyJson: string, cancellationTokenId?: string | undefined | null): string
|
|
20
54
|
|
|
55
|
+
export declare function resumeSnapshotHandle(snapshotHandle: string, payloadJson: string, cancellationTokenId?: string | undefined | null): string
|
|
56
|
+
|
|
57
|
+
export declare function resumeSnapshotHandleBuffer(snapshotHandle: string, payloadBuffer: Buffer, cancellationTokenId?: string | undefined | null): string
|
|
58
|
+
|
|
59
|
+
export declare function retainProgram(programHandle: string): string
|
|
60
|
+
|
|
21
61
|
export declare function snapshotIdentity(snapshot: Buffer): string
|
|
22
62
|
|
|
23
|
-
export declare function startProgram(
|
|
63
|
+
export declare function startProgram(programHandle: string, optionsJson: string, cancellationTokenId?: string | undefined | null): string
|
|
64
|
+
|
|
65
|
+
export declare function startProgramWithExecutionContextHandle(programHandle: string, contextHandle: string, inputsJson: string, cancellationTokenId?: string | undefined | null): string
|
|
66
|
+
|
|
67
|
+
export declare function startProgramWithExecutionContextHandleBuffer(programHandle: string, contextHandle: string, inputsBuffer: Buffer, cancellationTokenId?: string | undefined | null): string
|
|
68
|
+
|
|
69
|
+
export declare function startProgramWithSnapshotHandle(programHandle: string, optionsJson: string, cancellationTokenId?: string | undefined | null): string
|
|
70
|
+
|
|
71
|
+
export declare function startProgramWithSnapshotHandleBuffer(programHandle: string, optionsBuffer: Buffer, cancellationTokenId?: string | undefined | null): string
|
package/mustard.d.ts
CHANGED
|
@@ -28,8 +28,16 @@ export interface CompileOptions {
|
|
|
28
28
|
|
|
29
29
|
export type SnapshotKey = string | Buffer | Uint8Array;
|
|
30
30
|
|
|
31
|
+
export interface ExecutionContextOptions {
|
|
32
|
+
capabilities?: Record<string, Capability>;
|
|
33
|
+
console?: ConsoleCallbacks;
|
|
34
|
+
limits?: RuntimeLimits;
|
|
35
|
+
snapshotKey?: SnapshotKey;
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
export interface ExecutionOptions {
|
|
32
39
|
inputs?: Record<string, StructuredValue>;
|
|
40
|
+
context?: ExecutionContext;
|
|
33
41
|
capabilities?: Record<string, Capability>;
|
|
34
42
|
console?: ConsoleCallbacks;
|
|
35
43
|
limits?: RuntimeLimits;
|
|
@@ -46,7 +54,7 @@ export interface ProgressLoadOptionsBase {
|
|
|
46
54
|
snapshotKey: SnapshotKey;
|
|
47
55
|
}
|
|
48
56
|
|
|
49
|
-
export type
|
|
57
|
+
export type ProgressLoadOptionsExplicit =
|
|
50
58
|
| (ProgressLoadOptionsBase & {
|
|
51
59
|
capabilities: Record<string, Capability>;
|
|
52
60
|
console?: ConsoleCallbacks;
|
|
@@ -56,6 +64,12 @@ export type ProgressLoadOptions =
|
|
|
56
64
|
console: ConsoleCallbacks;
|
|
57
65
|
});
|
|
58
66
|
|
|
67
|
+
export interface ProgressLoadContextOptions {
|
|
68
|
+
context: ExecutionContext;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export type ProgressLoadOptions = ProgressLoadOptionsExplicit | ProgressLoadContextOptions;
|
|
72
|
+
|
|
59
73
|
export interface RuntimeLimits {
|
|
60
74
|
instructionBudget?: number;
|
|
61
75
|
heapLimitBytes?: number;
|
|
@@ -159,6 +173,10 @@ export interface SerializedProgress {
|
|
|
159
173
|
snapshot_id: string;
|
|
160
174
|
snapshot_key_digest: string;
|
|
161
175
|
token: string;
|
|
176
|
+
program?: Buffer;
|
|
177
|
+
program_id?: string;
|
|
178
|
+
suspended_manifest?: string;
|
|
179
|
+
suspended_manifest_token?: string;
|
|
162
180
|
}
|
|
163
181
|
|
|
164
182
|
export class Progress {
|
|
@@ -174,6 +192,10 @@ export class Progress {
|
|
|
174
192
|
static load(state: SerializedProgress, options: ProgressLoadOptions): Progress;
|
|
175
193
|
}
|
|
176
194
|
|
|
195
|
+
export class ExecutionContext {
|
|
196
|
+
constructor(options?: ExecutionContextOptions);
|
|
197
|
+
}
|
|
198
|
+
|
|
177
199
|
export class Mustard {
|
|
178
200
|
constructor(code: string, options?: CompileOptions);
|
|
179
201
|
|
package/package.json
CHANGED
|
@@ -1,26 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mustardscript",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Sandboxed, subset JavaScript runtime for Node services.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "mustard.d.ts",
|
|
7
7
|
"files": [
|
|
8
|
-
"Cargo.lock",
|
|
9
|
-
"Cargo.toml",
|
|
10
8
|
"LICENSE",
|
|
11
9
|
"SECURITY.md",
|
|
10
|
+
"README.md",
|
|
12
11
|
"dist",
|
|
13
12
|
"index.d.ts",
|
|
14
|
-
"mustard.d.ts"
|
|
15
|
-
"crates/mustard/Cargo.toml",
|
|
16
|
-
"crates/mustard/src/**",
|
|
17
|
-
"crates/mustard-bridge/Cargo.toml",
|
|
18
|
-
"crates/mustard-bridge/src/**",
|
|
19
|
-
"crates/mustard-node/Cargo.toml",
|
|
20
|
-
"crates/mustard-node/build.rs",
|
|
21
|
-
"crates/mustard-node/src/**",
|
|
22
|
-
"crates/mustard-sidecar/Cargo.toml",
|
|
23
|
-
"crates/mustard-sidecar/src/**"
|
|
13
|
+
"mustard.d.ts"
|
|
24
14
|
],
|
|
25
15
|
"directories": {
|
|
26
16
|
"doc": "docs",
|
|
@@ -38,13 +28,12 @@
|
|
|
38
28
|
]
|
|
39
29
|
},
|
|
40
30
|
"optionalDependencies": {
|
|
41
|
-
"mustardscript-darwin-arm64": "0.1.
|
|
42
|
-
"mustardscript-darwin-x64": "0.1.
|
|
43
|
-
"mustardscript-linux-x64-gnu": "0.1.
|
|
44
|
-
"mustardscript-win32-x64-msvc": "0.1.
|
|
31
|
+
"@mustardscript/binding-darwin-arm64": "0.1.1",
|
|
32
|
+
"@mustardscript/binding-darwin-x64": "0.1.1",
|
|
33
|
+
"@mustardscript/binding-linux-x64-gnu": "0.1.1",
|
|
34
|
+
"@mustardscript/binding-win32-x64-msvc": "0.1.1"
|
|
45
35
|
},
|
|
46
36
|
"scripts": {
|
|
47
|
-
"install": "node -e \"const fs=require('node:fs'); const cp=require('node:child_process'); if (!fs.existsSync('dist/install.js')) { cp.execFileSync(process.execPath, ['scripts/build-ts-dist.ts'], { stdio: 'inherit' }); } cp.execFileSync(process.execPath, ['dist/install.js'], { stdio: 'inherit' });\"",
|
|
48
37
|
"prepack": "node scripts/build-ts-dist.ts",
|
|
49
38
|
"build": "node scripts/build-ts-dist.ts && napi build --platform --manifest-path crates/mustard-node/Cargo.toml --js-package-name mustardscript --output-dir . --no-js",
|
|
50
39
|
"ralph-loop": "node scripts/ralph-loop.ts",
|
|
@@ -60,16 +49,35 @@
|
|
|
60
49
|
"test:hardening": "scripts/run-hardening.sh",
|
|
61
50
|
"test:mutation-guards": "npm run build && node --test tests/hardening/**/*.test.js",
|
|
62
51
|
"seed:fuzz-corpus": "node scripts/seed-fuzz-corpus.ts",
|
|
63
|
-
"bench:smoke": "npm run
|
|
64
|
-
"
|
|
52
|
+
"bench:smoke": "npm run bench:smoke:dev",
|
|
53
|
+
"bench:smoke:dev": "npm run build && node --expose-gc benchmarks/smoke.ts --profile dev",
|
|
54
|
+
"bench:smoke:release": "node scripts/build-ts-dist.ts && napi build --platform --release --manifest-path crates/mustard-node/Cargo.toml --js-package-name mustardscript --output-dir . --no-js && node --expose-gc benchmarks/smoke.ts --profile release",
|
|
55
|
+
"prebuilt:dirs": "node scripts/generate-prebuilt-packages.ts",
|
|
65
56
|
"prebuilt:artifacts": "napi artifacts --output-dir artifacts",
|
|
57
|
+
"bench:rust": "cargo bench -p mustard --bench runtime_core -- --noplot",
|
|
58
|
+
"bench:regress:workloads": "node scripts/benchmark-compare.ts --kind workloads --profile release --tracked-baseline --include-prefix addon. --max-regression-pct 10",
|
|
59
|
+
"bench:regress:smoke": "node scripts/benchmark-compare.ts --kind smoke --profile release --tracked-baseline --max-regression-pct 50",
|
|
60
|
+
"bench:regress:ptc": "npm run bench:regress:ptc:broad && npm run bench:regress:ptc:holdout",
|
|
61
|
+
"bench:regress:ptc:broad": "node scripts/benchmark-compare.ts --kind ptc_broad_release --profile release --tracked-baseline --include-prefix addon.ptc.phase2.scorecards.headlineScore.medium --include-prefix addon.ptc.phase2.scorecards.broadScore.medium --include-prefix addon.ptc.phase2.scorecards.p90LaneRatio.medium --include-prefix addon.ptc.phase2.scorecards.worstLaneRatio.medium --require-path addon.ptc.phase2.scorecards.headlineScore.medium --require-path addon.ptc.phase2.scorecards.broadScore.medium --require-path addon.ptc.phase2.scorecards.p90LaneRatio.medium --require-path addon.ptc.phase2.scorecards.worstLaneRatio.medium --max-regression-pct 10",
|
|
62
|
+
"bench:regress:ptc:holdout": "node scripts/benchmark-compare.ts --kind ptc_holdout_release --profile release --tracked-baseline --include-prefix addon.ptc.phase2.scorecards.holdoutScore.medium --require-path addon.ptc.phase2.scorecards.holdoutScore.medium --max-regression-pct 10",
|
|
66
63
|
"verify:prebuilt": "node scripts/verify-prebuilt.ts",
|
|
67
64
|
"verify:release": "node scripts/release-verify.ts",
|
|
68
|
-
"lint": "cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings"
|
|
65
|
+
"lint": "cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings",
|
|
66
|
+
"bench:workloads": "npm run bench:workloads:release",
|
|
67
|
+
"bench:workloads:dev": "node scripts/build-ts-dist.ts && napi build --platform --manifest-path crates/mustard-node/Cargo.toml --js-package-name mustardscript --output-dir . --no-js && cargo build -q -p mustard-sidecar && node --expose-gc benchmarks/workloads.ts --profile dev",
|
|
68
|
+
"bench:workloads:release": "node scripts/build-ts-dist.ts && napi build --platform --release --manifest-path crates/mustard-node/Cargo.toml --js-package-name mustardscript --output-dir . --no-js && cargo build -q --release -p mustard-sidecar && node --expose-gc benchmarks/workloads.ts --profile release",
|
|
69
|
+
"bench:ptc:release": "npm run bench:workloads:release",
|
|
70
|
+
"bench:ptc:public": "npm run bench:workloads:release -- --mode ptc_public",
|
|
71
|
+
"bench:ptc:headline": "npm run bench:workloads:release -- --mode ptc_headline_release",
|
|
72
|
+
"bench:ptc:broad": "npm run bench:workloads:release -- --mode ptc_broad_release",
|
|
73
|
+
"bench:ptc:holdout": "npm run bench:workloads:release -- --mode ptc_holdout_release",
|
|
74
|
+
"bench:ptc:gallery-canary": "npm run bench:workloads:release -- --mode ptc_gallery_canary",
|
|
75
|
+
"bench:ptc:sentinel": "npm run bench:workloads:release -- --mode ptc_sentinel_release",
|
|
76
|
+
"bench:compare": "node scripts/benchmark-compare.ts"
|
|
69
77
|
},
|
|
70
78
|
"repository": {
|
|
71
79
|
"type": "git",
|
|
72
|
-
"url": "git+https://github.com/
|
|
80
|
+
"url": "git+https://github.com/mustardscript/mustardscript.git"
|
|
73
81
|
},
|
|
74
82
|
"keywords": [
|
|
75
83
|
"javascript",
|
|
@@ -85,12 +93,13 @@
|
|
|
85
93
|
"@napi-rs/cli": "^3.3.0",
|
|
86
94
|
"@types/node": "^25.6.0",
|
|
87
95
|
"fast-check": "^4.6.0",
|
|
88
|
-
"typescript": "^6.0.2"
|
|
96
|
+
"typescript": "^6.0.2",
|
|
97
|
+
"isolated-vm": "^6.1.2"
|
|
89
98
|
},
|
|
90
99
|
"bugs": {
|
|
91
|
-
"url": "https://github.com/
|
|
100
|
+
"url": "https://github.com/mustardscript/mustardscript/issues"
|
|
92
101
|
},
|
|
93
|
-
"homepage": "https://github.com/
|
|
102
|
+
"homepage": "https://github.com/mustardscript/mustardscript#readme",
|
|
94
103
|
"publishConfig": {
|
|
95
104
|
"access": "public"
|
|
96
105
|
}
|