@fluidframework/debugger 2.91.0 → 2.93.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.
- package/CHANGELOG.md +8 -0
- package/README.md +1 -1
- package/dist/fluidDebugger.d.ts +1 -1
- package/dist/fluidDebugger.d.ts.map +1 -1
- package/dist/fluidDebugger.js.map +1 -1
- package/dist/fluidDebuggerController.d.ts +4 -3
- package/dist/fluidDebuggerController.d.ts.map +1 -1
- package/dist/fluidDebuggerController.js +4 -4
- package/dist/fluidDebuggerController.js.map +1 -1
- package/dist/fluidDebuggerUi.d.ts +1 -1
- package/dist/fluidDebuggerUi.d.ts.map +1 -1
- package/dist/fluidDebuggerUi.js +25 -25
- package/dist/fluidDebuggerUi.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +1 -1
- package/dist/messageSchema.d.ts +1 -1
- package/dist/messageSchema.d.ts.map +1 -1
- package/dist/messageSchema.js.map +1 -1
- package/dist/public.d.ts +1 -1
- package/dist/sanitize.js.map +1 -1
- package/dist/sanitizer.d.ts +1 -1
- package/dist/sanitizer.d.ts.map +1 -1
- package/dist/sanitizer.js +52 -50
- package/dist/sanitizer.js.map +1 -1
- package/eslint.config.mts +13 -4
- package/internal.d.ts +1 -1
- package/legacy.d.ts +1 -1
- package/lib/fluidDebugger.d.ts +1 -1
- package/lib/fluidDebugger.d.ts.map +1 -1
- package/lib/fluidDebugger.js.map +1 -1
- package/lib/fluidDebuggerController.d.ts +4 -3
- package/lib/fluidDebuggerController.d.ts.map +1 -1
- package/lib/fluidDebuggerController.js +4 -4
- package/lib/fluidDebuggerController.js.map +1 -1
- package/lib/fluidDebuggerUi.d.ts +1 -1
- package/lib/fluidDebuggerUi.d.ts.map +1 -1
- package/lib/fluidDebuggerUi.js +25 -25
- package/lib/fluidDebuggerUi.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/messageSchema.d.ts +1 -1
- package/lib/messageSchema.d.ts.map +1 -1
- package/lib/messageSchema.js.map +1 -1
- package/lib/public.d.ts +1 -1
- package/lib/sanitize.js.map +1 -1
- package/lib/sanitizer.d.ts +1 -1
- package/lib/sanitizer.d.ts.map +1 -1
- package/lib/sanitizer.js +52 -50
- package/lib/sanitizer.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +16 -26
- package/src/fluidDebugger.ts +1 -1
- package/src/fluidDebuggerController.ts +10 -8
- package/src/fluidDebuggerUi.ts +26 -26
- package/src/index.ts +2 -2
- package/src/messageSchema.ts +1 -1
- package/src/sanitize.ts +1 -1
- package/src/sanitizer.ts +49 -47
- package/tsconfig.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageSchema.js","sourceRoot":"","sources":["../src/messageSchema.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Schema } from \"jsonschema\";\n\nexport const joinContentsSchema = {\n\ttype: \"null\",\n};\n\nexport const joinDataSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tclientId: { type: \"string\" },\n\t\tdetail: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tdetails: { type: \"object\" },\n\t\t\t\tmode: { type: \"string\" },\n\t\t\t\tpermission: { type: \"array\" },\n\t\t\t\tscopes: { type: \"array\" },\n\t\t\t\ttype: { type: \"string\" },\n\t\t\t\tuser: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tid: { type: \"string\" },\n\t\t\t\t\t\tname: { type: \"string\" },\n\t\t\t\t\t\temail: { type: \"string\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"id\", \"name\", \"email\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: [\"user\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"clientId\", \"detail\"],\n\tadditionalProperties: false,\n};\n\nexport const proposeContentsSchema = {\n\ttype: [\"string\", \"object\"],\n\tproperties: {\n\t\tkey: { type: \"string\" },\n\t\tvalue: { type: \"string\" },\n\t},\n\trequired: [\"key\"],\n\tadditionalProperties: false,\n};\n\n// The parsed json of a propose message's contents value\nexport const proposeCodeSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tkey: { type: \"string\" },\n\t\tvalue: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tpackage: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tname: { type: \"string\" },\n\t\t\t\t\t\tversion: { type: \"string\" },\n\t\t\t\t\t\tfluid: { type: \"object\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"name\"],\n\t\t\t\t},\n\t\t\t\tconfig: { type: \"object\" },\n\t\t\t},\n\t\t\trequired: [\"package\", \"config\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"key\", \"value\"],\n\tadditionalProperties: false,\n};\n\n// This also needs to be in the root \"definitions\" key as \"entries\" to be used\nconst attachSnapshotEntriesSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tmode: { type: \"string\" },\n\t\tpath: { type: \"string\" },\n\t\ttype: { enum: [\"Blob\", \"Tree\"] },\n\t\tvalue: {\n\t\t\ttype: \"object\",\n\t\t\toneOf: [\n\t\t\t\t// type Blob\n\t\t\t\t{\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tcontents: { type: \"string\" },\n\t\t\t\t\t\tencoding: { type: \"string\" },\n\t\t\t\t\t\t// Verify this\n\t\t\t\t\t\tid: { type: \"null\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"contents\", \"encoding\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t\t// type Tree\n\t\t\t\t{\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\titems: { $ref: \"#/definitions/entries\" },\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Verify this\n\t\t\t\t\t\tid: { type: \"null\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"entries\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\trequired: [\"mode\", \"path\", \"type\", \"value\"],\n\tadditionalProperties: false,\n};\n\nexport const attachContentsSchema = {\n\tdefinitions: {\n\t\tentries: attachSnapshotEntriesSchema,\n\t},\n\ttype: \"object\",\n\tproperties: {\n\t\tid: { type: \"string\" },\n\t\tsnapshot: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tentries: {\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\titems: { $ref: \"#/definitions/entries\" },\n\t\t\t\t},\n\t\t\t\t// Verify this\n\t\t\t\tid: { type: \"null\" },\n\t\t\t},\n\t\t\trequired: [\"entries\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\ttype: { type: \"string\" },\n\t},\n\trequired: [\"id\", \"snapshot\", \"type\"],\n\tadditionalProperties: false,\n};\n\n// can exist at the root level or within an op\nexport const chunkedOpContentsSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tchunkId: { type: \"number\" },\n\t\tcontents: { type: \"string\" },\n\t\ttotalChunks: { type: \"number\" },\n\t},\n\trequired: [\"chunkId\", \"contents\", \"totalChunks\"],\n\tadditionalProperties: false,\n};\n\nconst contentsSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tcontent: { type: \"object\" },\n\t\t\t\ttype: { type: \"string\" },\n\t\t\t},\n\t\t\trequired: [\"content\", \"type\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\n// special contents formats from containerRuntime.ts's ContainerMessageType\nexport const opContentsSchema = {\n\tdefinitions: {\n\t\tcontent: contentsSchema,\n\t\tentries: attachSnapshotEntriesSchema,\n\t\tattachContents: attachContentsSchema,\n\t\tchunkedOpContents: chunkedOpContentsSchema,\n\t},\n\ttype: \"object\",\n\toneOf: [\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [\"component\"] },\n\t\t\t\tcontents: { $ref: \"#/definitions/content\" },\n\t\t\t},\n\t\t\trequired: [\"type\", \"contents\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [\"attach\"] },\n\t\t\t\tcontents: { $ref: \"#/definitions/attachContents\" },\n\t\t\t},\n\t\t\trequired: [\"type\", \"contents\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [\"chunkedOp\"] },\n\t\t\t\tcontents: { $ref: \"#/definitions/chunkedOpContents\" },\n\t\t\t},\n\t\t\trequired: [\"type\", \"contents\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\t$ref: \"#/definitions/content\",\n\t\t},\n\t],\n};\n\n// \"op\" message's contents.contents.content schemas\n\nexport const opContentsAttachSchema = attachContentsSchema;\n\n// Ops from dds/register-collection's consensusRegisterCollection\nexport const opContentsRegisterCollectionSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tkey: { type: \"string\" },\n\t\t\t\trefSeq: { type: \"number\" },\n\t\t\t\tserializedValue: { type: \"string\" },\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\ttype: { type: \"string\" },\n\t\t\t\t\t\tvalue: {},\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"type\", \"value\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tenum: [\"write\"],\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: [\"key\", \"type\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\n// Ops from dds/map's directory.ts\nexport const opContentsMapSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tkey: { type: \"string\" },\n\t\t\t\tpath: { type: \"string\" },\n\t\t\t\tsubdirName: { type: \"string\" },\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\ttype: { type: \"string\" },\n\t\t\t\t\t\tvalue: {},\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"type\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tenum: [\"act\", \"set\", \"delete\", \"clear\", \"createSubDirectory\", \"deleteSubDirectory\"],\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: [\"type\"],\n\t\t\tadditionalProperties: false,\n\t\t\t// specific property combinations based on type value\n\t\t\toneOf: [\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"act\"] } },\n\t\t\t\t\trequired: [\"key\", \"path\", \"value\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"set\"] } },\n\t\t\t\t\trequired: [\"key\", \"value\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"delete\"] } },\n\t\t\t\t\trequired: [\"key\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"clear\"] } },\n\t\t\t\t\trequired: [\"path\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"createSubDirectory\", \"deleteSubDirectory\"] } },\n\t\t\t\t\trequired: [\"path\", \"subdirName\"],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\n// from dds/merge-tree's ops.ts and opBuilder.ts\n// Note: written op objects in opBuilder.ts are more restrictive than their\n// corresponding interface definitions in ops.ts, and the more restrictive\n// schema are used here\nconst mergeTreeRelativePosSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tid: { type: \"string\" },\n\t\tbefore: { type: \"boolean\" },\n\t\toffset: { type: \"number\" },\n\t},\n\tadditionalProperties: false,\n};\n\nconst mergeTreeDeltaOpSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\ttype: {\n\t\t\ttype: \"number\",\n\t\t\tminimum: 0 /* MergeTreeDeltaType.INSERT */,\n\t\t\tmaximum: 2 /* MergeTreeDeltaType.ANNOTATE */,\n\t\t},\n\t},\n\trequired: [\"type\"],\n\toneOf: [\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [0] },\n\t\t\t\tseg: { type: [\"string\", \"object\"] },\n\t\t\t\tpos1: { type: \"number\" },\n\t\t\t},\n\t\t\trequired: [\"pos1\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [1] },\n\t\t\t\tregister: { type: \"string\" },\n\t\t\t\tpos1: { type: \"number\" },\n\t\t\t\tpos2: { type: \"number\" },\n\t\t\t},\n\t\t\trequired: [\"pos1\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [2] },\n\t\t\t\tpos1: { type: \"number\" },\n\t\t\t\tpos2: { type: \"number\" },\n\t\t\t\tprops: { type: \"object\" },\n\t\t\t\tregister: { type: \"string\" },\n\t\t\t\trelativePos1: { $ref: \"#/definitions/relativePos\" },\n\t\t\t\trelativePos2: { $ref: \"#/definitions/relativePos\" },\n\t\t\t},\n\t\t\trequired: [\"props\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t// There's something weird with the typings/settings here where this doesn't get\n\t\t// recognized as a valid Schema array if more than 1 item has \"properties\" defined\n\t] as Schema[],\n};\n\nconst mergeTreeGroupOpSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tops: {\n\t\t\ttype: \"array\",\n\t\t\titems: { $ref: \"#/definitions/deltaOp\" },\n\t\t},\n\t\ttype: {\n\t\t\ttype: \"number\",\n\t\t\tminimum: 3 /* MergeTreeDeltaType.GROUP */,\n\t\t\tmaximum: 3 /* MergeTreeDeltaType.GROUP */,\n\t\t},\n\t},\n\trequired: [\"ops\", \"type\"],\n\tadditionalProperties: false,\n};\n\nexport const opContentsMergeTreeDeltaOpSchema = {\n\tdefinitions: {\n\t\trelativePos: mergeTreeRelativePosSchema,\n\t\tdeltaOp: mergeTreeDeltaOpSchema,\n\t},\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: { $ref: \"#/definitions/deltaOp\" },\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\nexport const opContentsMergeTreeGroupOpSchema = {\n\tdefinitions: {\n\t\trelativePos: mergeTreeRelativePosSchema,\n\t\tdeltaOp: mergeTreeDeltaOpSchema,\n\t\tgroupOp: mergeTreeGroupOpSchema,\n\t},\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: { $ref: \"#/definitions/groupOp\" },\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"messageSchema.js","sourceRoot":"","sources":["../src/messageSchema.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { Schema } from \"jsonschema\";\n\nexport const joinContentsSchema = {\n\ttype: \"null\",\n};\n\nexport const joinDataSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tclientId: { type: \"string\" },\n\t\tdetail: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tdetails: { type: \"object\" },\n\t\t\t\tmode: { type: \"string\" },\n\t\t\t\tpermission: { type: \"array\" },\n\t\t\t\tscopes: { type: \"array\" },\n\t\t\t\ttype: { type: \"string\" },\n\t\t\t\tuser: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tid: { type: \"string\" },\n\t\t\t\t\t\tname: { type: \"string\" },\n\t\t\t\t\t\temail: { type: \"string\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"id\", \"name\", \"email\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: [\"user\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"clientId\", \"detail\"],\n\tadditionalProperties: false,\n};\n\nexport const proposeContentsSchema = {\n\ttype: [\"string\", \"object\"],\n\tproperties: {\n\t\tkey: { type: \"string\" },\n\t\tvalue: { type: \"string\" },\n\t},\n\trequired: [\"key\"],\n\tadditionalProperties: false,\n};\n\n// The parsed json of a propose message's contents value\nexport const proposeCodeSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tkey: { type: \"string\" },\n\t\tvalue: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tpackage: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tname: { type: \"string\" },\n\t\t\t\t\t\tversion: { type: \"string\" },\n\t\t\t\t\t\tfluid: { type: \"object\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"name\"],\n\t\t\t\t},\n\t\t\t\tconfig: { type: \"object\" },\n\t\t\t},\n\t\t\trequired: [\"package\", \"config\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"key\", \"value\"],\n\tadditionalProperties: false,\n};\n\n// This also needs to be in the root \"definitions\" key as \"entries\" to be used\nconst attachSnapshotEntriesSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tmode: { type: \"string\" },\n\t\tpath: { type: \"string\" },\n\t\ttype: { enum: [\"Blob\", \"Tree\"] },\n\t\tvalue: {\n\t\t\ttype: \"object\",\n\t\t\toneOf: [\n\t\t\t\t// type Blob\n\t\t\t\t{\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tcontents: { type: \"string\" },\n\t\t\t\t\t\tencoding: { type: \"string\" },\n\t\t\t\t\t\t// Verify this\n\t\t\t\t\t\tid: { type: \"null\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"contents\", \"encoding\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t\t// type Tree\n\t\t\t\t{\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\titems: { $ref: \"#/definitions/entries\" },\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Verify this\n\t\t\t\t\t\tid: { type: \"null\" },\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"entries\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\trequired: [\"mode\", \"path\", \"type\", \"value\"],\n\tadditionalProperties: false,\n};\n\nexport const attachContentsSchema = {\n\tdefinitions: {\n\t\tentries: attachSnapshotEntriesSchema,\n\t},\n\ttype: \"object\",\n\tproperties: {\n\t\tid: { type: \"string\" },\n\t\tsnapshot: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tentries: {\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\titems: { $ref: \"#/definitions/entries\" },\n\t\t\t\t},\n\t\t\t\t// Verify this\n\t\t\t\tid: { type: \"null\" },\n\t\t\t},\n\t\t\trequired: [\"entries\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\ttype: { type: \"string\" },\n\t},\n\trequired: [\"id\", \"snapshot\", \"type\"],\n\tadditionalProperties: false,\n};\n\n// can exist at the root level or within an op\nexport const chunkedOpContentsSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tchunkId: { type: \"number\" },\n\t\tcontents: { type: \"string\" },\n\t\ttotalChunks: { type: \"number\" },\n\t},\n\trequired: [\"chunkId\", \"contents\", \"totalChunks\"],\n\tadditionalProperties: false,\n};\n\nconst contentsSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tcontent: { type: \"object\" },\n\t\t\t\ttype: { type: \"string\" },\n\t\t\t},\n\t\t\trequired: [\"content\", \"type\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\n// special contents formats from containerRuntime.ts's ContainerMessageType\nexport const opContentsSchema = {\n\tdefinitions: {\n\t\tcontent: contentsSchema,\n\t\tentries: attachSnapshotEntriesSchema,\n\t\tattachContents: attachContentsSchema,\n\t\tchunkedOpContents: chunkedOpContentsSchema,\n\t},\n\ttype: \"object\",\n\toneOf: [\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [\"component\"] },\n\t\t\t\tcontents: { $ref: \"#/definitions/content\" },\n\t\t\t},\n\t\t\trequired: [\"type\", \"contents\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [\"attach\"] },\n\t\t\t\tcontents: { $ref: \"#/definitions/attachContents\" },\n\t\t\t},\n\t\t\trequired: [\"type\", \"contents\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [\"chunkedOp\"] },\n\t\t\t\tcontents: { $ref: \"#/definitions/chunkedOpContents\" },\n\t\t\t},\n\t\t\trequired: [\"type\", \"contents\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\t$ref: \"#/definitions/content\",\n\t\t},\n\t],\n};\n\n// \"op\" message's contents.contents.content schemas\n\nexport const opContentsAttachSchema = attachContentsSchema;\n\n// Ops from dds/register-collection's consensusRegisterCollection\nexport const opContentsRegisterCollectionSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tkey: { type: \"string\" },\n\t\t\t\trefSeq: { type: \"number\" },\n\t\t\t\tserializedValue: { type: \"string\" },\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\ttype: { type: \"string\" },\n\t\t\t\t\t\tvalue: {},\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"type\", \"value\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tenum: [\"write\"],\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: [\"key\", \"type\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\n// Ops from dds/map's directory.ts\nexport const opContentsMapSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tkey: { type: \"string\" },\n\t\t\t\tpath: { type: \"string\" },\n\t\t\t\tsubdirName: { type: \"string\" },\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: \"object\",\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\ttype: { type: \"string\" },\n\t\t\t\t\t\tvalue: {},\n\t\t\t\t\t},\n\t\t\t\t\trequired: [\"type\"],\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tenum: [\"act\", \"set\", \"delete\", \"clear\", \"createSubDirectory\", \"deleteSubDirectory\"],\n\t\t\t\t},\n\t\t\t},\n\t\t\trequired: [\"type\"],\n\t\t\tadditionalProperties: false,\n\t\t\t// specific property combinations based on type value\n\t\t\toneOf: [\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"act\"] } },\n\t\t\t\t\trequired: [\"key\", \"path\", \"value\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"set\"] } },\n\t\t\t\t\trequired: [\"key\", \"value\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"delete\"] } },\n\t\t\t\t\trequired: [\"key\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"clear\"] } },\n\t\t\t\t\trequired: [\"path\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: { type: { enum: [\"createSubDirectory\", \"deleteSubDirectory\"] } },\n\t\t\t\t\trequired: [\"path\", \"subdirName\"],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\n// from dds/merge-tree's ops.ts and opBuilder.ts\n// Note: written op objects in opBuilder.ts are more restrictive than their\n// corresponding interface definitions in ops.ts, and the more restrictive\n// schema are used here\nconst mergeTreeRelativePosSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tid: { type: \"string\" },\n\t\tbefore: { type: \"boolean\" },\n\t\toffset: { type: \"number\" },\n\t},\n\tadditionalProperties: false,\n};\n\nconst mergeTreeDeltaOpSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\ttype: {\n\t\t\ttype: \"number\",\n\t\t\tminimum: 0 /* MergeTreeDeltaType.INSERT */,\n\t\t\tmaximum: 2 /* MergeTreeDeltaType.ANNOTATE */,\n\t\t},\n\t},\n\trequired: [\"type\"],\n\toneOf: [\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [0] },\n\t\t\t\tseg: { type: [\"string\", \"object\"] },\n\t\t\t\tpos1: { type: \"number\" },\n\t\t\t},\n\t\t\trequired: [\"pos1\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [1] },\n\t\t\t\tregister: { type: \"string\" },\n\t\t\t\tpos1: { type: \"number\" },\n\t\t\t\tpos2: { type: \"number\" },\n\t\t\t},\n\t\t\trequired: [\"pos1\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t{\n\t\t\tproperties: {\n\t\t\t\ttype: { enum: [2] },\n\t\t\t\tpos1: { type: \"number\" },\n\t\t\t\tpos2: { type: \"number\" },\n\t\t\t\tprops: { type: \"object\" },\n\t\t\t\tregister: { type: \"string\" },\n\t\t\t\trelativePos1: { $ref: \"#/definitions/relativePos\" },\n\t\t\t\trelativePos2: { $ref: \"#/definitions/relativePos\" },\n\t\t\t},\n\t\t\trequired: [\"props\"],\n\t\t\tadditionalProperties: false,\n\t\t},\n\t\t// There's something weird with the typings/settings here where this doesn't get\n\t\t// recognized as a valid Schema array if more than 1 item has \"properties\" defined\n\t] as Schema[],\n};\n\nconst mergeTreeGroupOpSchema = {\n\ttype: \"object\",\n\tproperties: {\n\t\tops: {\n\t\t\ttype: \"array\",\n\t\t\titems: { $ref: \"#/definitions/deltaOp\" },\n\t\t},\n\t\ttype: {\n\t\t\ttype: \"number\",\n\t\t\tminimum: 3 /* MergeTreeDeltaType.GROUP */,\n\t\t\tmaximum: 3 /* MergeTreeDeltaType.GROUP */,\n\t\t},\n\t},\n\trequired: [\"ops\", \"type\"],\n\tadditionalProperties: false,\n};\n\nexport const opContentsMergeTreeDeltaOpSchema = {\n\tdefinitions: {\n\t\trelativePos: mergeTreeRelativePosSchema,\n\t\tdeltaOp: mergeTreeDeltaOpSchema,\n\t},\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: { $ref: \"#/definitions/deltaOp\" },\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n\nexport const opContentsMergeTreeGroupOpSchema = {\n\tdefinitions: {\n\t\trelativePos: mergeTreeRelativePosSchema,\n\t\tdeltaOp: mergeTreeDeltaOpSchema,\n\t\tgroupOp: mergeTreeGroupOpSchema,\n\t},\n\ttype: \"object\",\n\tproperties: {\n\t\taddress: { type: \"string\" },\n\t\tcontents: { $ref: \"#/definitions/groupOp\" },\n\t},\n\trequired: [\"address\", \"contents\"],\n\tadditionalProperties: false,\n};\n"]}
|
package/dist/public.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
/*
|
|
7
7
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
8
|
-
* Generated by "flub generate entrypoints" in @fluid-tools/build-cli.
|
|
8
|
+
* Generated by "flub generate entrypoints --resolutionConditions require --outFileLegacyBeta legacy --outDir ./dist" in @fluid-tools/build-cli.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
export {}
|
package/dist/sanitize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH;;;;;;;;;;;;;GAaG;AAEH,sDAAyB;AACzB,gEAAmC;AAInC,iDAA2C;AAE3C,SAAS,UAAU;IAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CACV,iGAAiG,CACjG,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,SAAkB,EAAE,MAAe;IACrE,MAAM,KAAK,GAAG,iBAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAgC,CAAC;IAElE,MAAM,SAAS,GAAG,IAAI,wBAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAE3C,iBAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,IAAI;IACZ,IAAI,sBAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,4DAA4D;QAC5D,OAAO,QAAQ,CAAC,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,sBAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,4DAA4D;QAC5D,IAAI,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,QAAQ,CAAC,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YACpC,4DAA4D;YAC5D,OAAO,QAAQ,CAAC,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IACD,UAAU,EAAE,CAAC;AACd,CAAC;AAED,IAAI,EAAE,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * This tool cleans up a message.json file downloaded through fluid-fetch to remove\n * user content and user identifying information. Enough information can be retained\n * to allow loading through Fluid Preview, or everything can be scrubbed so that only\n * replay-tool can read the result. Anonymous identifying information such as client\n * IDs are always retained. Object keys are NOT scrubbed, including those that are\n * nested within values (only leaf values are scrubbed).\n *\n * Note: While user content/information is scrubbed, it should not be assumed to be\n * fully anonymized because certain meta-information (such as word lengths and\n * consistent replacement) are preserved.\n *\n * Messages must match known structures when scrubbing for Fluid Preview.\n */\n\nimport fs from \"node:fs\";\nimport process from \"node:process\";\n\nimport { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions/internal\";\n\nimport { Sanitizer } from \"./sanitizer.js\";\n\nfunction printUsage(): void {\n\tconsole.log(\"Usage:\");\n\tconsole.log(\" node sanitize [--full | --noBail] <input>\");\n\tconsole.log(\"Where\");\n\tconsole.log(\" [--full] - scrub fully (result cannot be loaded in Fluid Preview)\");\n\tconsole.log(\n\t\t\" [--noBail] - don't bail out when encountering an unknown message format (it won't be scrubbed\",\n\t);\n\tconsole.log(\" <input> - file path to message.json - file downloaded by FluidFetch tool\");\n\tconsole.log(\"Note: <input> is sanitized in place\");\n\tprocess.exit(-1);\n}\n\nfunction Sanitize(msgPath: string, fullScrub: boolean, noBail: boolean): void {\n\tconst input = fs.readFileSync(msgPath, { encoding: \"utf-8\" });\n\tconst messages = JSON.parse(input) as ISequencedDocumentMessage[];\n\n\tconst sanitizer = new Sanitizer(messages, fullScrub, noBail, true);\n\tconst cleanMessages = sanitizer.sanitize();\n\n\tfs.writeFileSync(msgPath, JSON.stringify(cleanMessages, undefined, 2));\n\n\tconsole.log(\"Done.\");\n}\n\nfunction main(): void {\n\tif (process.argv.length === 3) {\n\t\t// Non null asserting here because of the length check above\n\t\treturn Sanitize(process.argv[2]!, false, false);\n\t}\n\tif (process.argv.length === 4) {\n\t\t// Non null asserting here because of the length check above\n\t\tif (process.argv[2] === \"--full\") {\n\t\t\treturn Sanitize(process.argv[3]!, true, false);\n\t\t}\n\t\tif (process.argv[2] === \"--noBail\") {\n\t\t\t// Non null asserting here because of the length check above\n\t\t\treturn Sanitize(process.argv[3]!, false, true);\n\t\t}\n\t}\n\tprintUsage();\n}\n\nmain();\n"]}
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH;;;;;;;;;;;;;GAaG;AAEH,sDAAyB;AACzB,gEAAmC;AAInC,iDAA2C;AAE3C,SAAS,UAAU;IAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CACV,iGAAiG,CACjG,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,SAAkB,EAAE,MAAe;IACrE,MAAM,KAAK,GAAG,iBAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAgC,CAAC;IAElE,MAAM,SAAS,GAAG,IAAI,wBAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAE3C,iBAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,IAAI;IACZ,IAAI,sBAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,4DAA4D;QAC5D,OAAO,QAAQ,CAAC,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,sBAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,4DAA4D;QAC5D,IAAI,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,QAAQ,CAAC,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YACpC,4DAA4D;YAC5D,OAAO,QAAQ,CAAC,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IACD,UAAU,EAAE,CAAC;AACd,CAAC;AAED,IAAI,EAAE,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * This tool cleans up a message.json file downloaded through fluid-fetch to remove\n * user content and user identifying information. Enough information can be retained\n * to allow loading through Fluid Preview, or everything can be scrubbed so that only\n * replay-tool can read the result. Anonymous identifying information such as client\n * IDs are always retained. Object keys are NOT scrubbed, including those that are\n * nested within values (only leaf values are scrubbed).\n *\n * Note: While user content/information is scrubbed, it should not be assumed to be\n * fully anonymized because certain meta-information (such as word lengths and\n * consistent replacement) are preserved.\n *\n * Messages must match known structures when scrubbing for Fluid Preview.\n */\n\nimport fs from \"node:fs\";\nimport process from \"node:process\";\n\nimport type { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions/internal\";\n\nimport { Sanitizer } from \"./sanitizer.js\";\n\nfunction printUsage(): void {\n\tconsole.log(\"Usage:\");\n\tconsole.log(\" node sanitize [--full | --noBail] <input>\");\n\tconsole.log(\"Where\");\n\tconsole.log(\" [--full] - scrub fully (result cannot be loaded in Fluid Preview)\");\n\tconsole.log(\n\t\t\" [--noBail] - don't bail out when encountering an unknown message format (it won't be scrubbed\",\n\t);\n\tconsole.log(\" <input> - file path to message.json - file downloaded by FluidFetch tool\");\n\tconsole.log(\"Note: <input> is sanitized in place\");\n\tprocess.exit(-1);\n}\n\nfunction Sanitize(msgPath: string, fullScrub: boolean, noBail: boolean): void {\n\tconst input = fs.readFileSync(msgPath, { encoding: \"utf-8\" });\n\tconst messages = JSON.parse(input) as ISequencedDocumentMessage[];\n\n\tconst sanitizer = new Sanitizer(messages, fullScrub, noBail, true);\n\tconst cleanMessages = sanitizer.sanitize();\n\n\tfs.writeFileSync(msgPath, JSON.stringify(cleanMessages, undefined, 2));\n\n\tconsole.log(\"Done.\");\n}\n\nfunction main(): void {\n\tif (process.argv.length === 3) {\n\t\t// Non null asserting here because of the length check above\n\t\treturn Sanitize(process.argv[2]!, false, false);\n\t}\n\tif (process.argv.length === 4) {\n\t\t// Non null asserting here because of the length check above\n\t\tif (process.argv[2] === \"--full\") {\n\t\t\treturn Sanitize(process.argv[3]!, true, false);\n\t\t}\n\t\tif (process.argv[2] === \"--noBail\") {\n\t\t\t// Non null asserting here because of the length check above\n\t\t\treturn Sanitize(process.argv[3]!, false, true);\n\t\t}\n\t}\n\tprintUsage();\n}\n\nmain();\n"]}
|
package/dist/sanitizer.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
5
|
+
import type { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
6
6
|
import * as Validator from "jsonschema";
|
|
7
7
|
declare enum TextType {
|
|
8
8
|
Generic = 0,
|
package/dist/sanitizer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../src/sanitizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../src/sanitizer.ts"],"names":[],"mappings":"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"}
|
package/dist/sanitizer.js
CHANGED
|
@@ -106,8 +106,8 @@ class ChunkedOpProcessor {
|
|
|
106
106
|
parsed = parsed.contents;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
catch (
|
|
110
|
-
this.debugMsg(
|
|
109
|
+
catch (error) {
|
|
110
|
+
this.debugMsg(error);
|
|
111
111
|
this.debugMsg(message.contents);
|
|
112
112
|
}
|
|
113
113
|
this.validateSchemaFn(parsed, messageSchema_js_1.chunkedOpContentsSchema);
|
|
@@ -129,9 +129,9 @@ class ChunkedOpProcessor {
|
|
|
129
129
|
try {
|
|
130
130
|
return JSON.parse(contentsString);
|
|
131
131
|
}
|
|
132
|
-
catch (
|
|
132
|
+
catch (error) {
|
|
133
133
|
this.debugMsg(contentsString);
|
|
134
|
-
this.debugMsg(
|
|
134
|
+
this.debugMsg(error);
|
|
135
135
|
return undefined;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -149,9 +149,9 @@ class ChunkedOpProcessor {
|
|
|
149
149
|
stringified = JSON.stringify(contents);
|
|
150
150
|
(0, internal_1.assert)(stringified.length <= this.concatenatedLength, 0x089 /* "Stringified length of chunk contents > total starting length" */);
|
|
151
151
|
}
|
|
152
|
-
catch (
|
|
153
|
-
this.debugMsg(
|
|
154
|
-
throw
|
|
152
|
+
catch (error) {
|
|
153
|
+
this.debugMsg(error);
|
|
154
|
+
throw error;
|
|
155
155
|
}
|
|
156
156
|
for (let i = 0; i < this.messages.length; i++) {
|
|
157
157
|
const substring = stringified.substring(i * chunkSize, (i + 1) * chunkSize);
|
|
@@ -173,8 +173,8 @@ class ChunkedOpProcessor {
|
|
|
173
173
|
stringifiedParsedContents = JSON.stringify(parsedContents);
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
catch (
|
|
177
|
-
this.debugMsg(
|
|
176
|
+
catch (error) {
|
|
177
|
+
this.debugMsg(error);
|
|
178
178
|
}
|
|
179
179
|
message.contents = stringifiedParsedContents;
|
|
180
180
|
}
|
|
@@ -188,7 +188,7 @@ class ChunkedOpProcessor {
|
|
|
188
188
|
this.concatenatedLength = 0;
|
|
189
189
|
}
|
|
190
190
|
isPendingProcessing() {
|
|
191
|
-
return this.messages.length
|
|
191
|
+
return this.messages.length > 0;
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
class Sanitizer {
|
|
@@ -255,9 +255,9 @@ class Sanitizer {
|
|
|
255
255
|
getRandomText(len) {
|
|
256
256
|
let str = "";
|
|
257
257
|
while (str.length < len) {
|
|
258
|
-
str = str + Math.random().toString(36).
|
|
258
|
+
str = str + Math.random().toString(36).slice(2);
|
|
259
259
|
}
|
|
260
|
-
return str.
|
|
260
|
+
return str.slice(0, Math.max(0, len));
|
|
261
261
|
}
|
|
262
262
|
/**
|
|
263
263
|
* Replace text with garbage. FluidObject types are not replaced when not under
|
|
@@ -306,7 +306,7 @@ class Sanitizer {
|
|
|
306
306
|
return input;
|
|
307
307
|
}
|
|
308
308
|
const keys = Object.keys(input);
|
|
309
|
-
|
|
309
|
+
for (const key of keys) {
|
|
310
310
|
if (this.fullScrub || !excludedKeys.has(key)) {
|
|
311
311
|
const value = input[key];
|
|
312
312
|
if (typeof value === "string") {
|
|
@@ -319,7 +319,7 @@ class Sanitizer {
|
|
|
319
319
|
input[key] = this.replaceObject(value, excludedKeys);
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
-
}
|
|
322
|
+
}
|
|
323
323
|
return input;
|
|
324
324
|
}
|
|
325
325
|
/**
|
|
@@ -350,26 +350,23 @@ class Sanitizer {
|
|
|
350
350
|
}
|
|
351
351
|
try {
|
|
352
352
|
let data = JSON.parse(message.data);
|
|
353
|
-
if (
|
|
354
|
-
data = this.replaceAny(data);
|
|
355
|
-
}
|
|
356
|
-
else {
|
|
353
|
+
if (this.objectMatchesSchema(data, messageSchema_js_1.joinDataSchema)) {
|
|
357
354
|
const user = data.detail.user;
|
|
358
355
|
user.id = this.replaceText(user.id, TextType.Email);
|
|
359
356
|
user.email = this.replaceText(user.email, TextType.Email);
|
|
360
357
|
user.name = this.replaceText(user.name, TextType.Name);
|
|
361
358
|
}
|
|
359
|
+
else {
|
|
360
|
+
data = this.replaceAny(data);
|
|
361
|
+
}
|
|
362
362
|
message.data = JSON.stringify(data);
|
|
363
363
|
}
|
|
364
|
-
catch (
|
|
365
|
-
this.debugMsg(
|
|
364
|
+
catch (error) {
|
|
365
|
+
this.debugMsg(error);
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
368
|
fixPropose(message) {
|
|
369
|
-
if (
|
|
370
|
-
message.contents = this.replaceAny(message.contents);
|
|
371
|
-
}
|
|
372
|
-
else {
|
|
369
|
+
if (this.objectMatchesSchema(message.contents, messageSchema_js_1.proposeContentsSchema)) {
|
|
373
370
|
if (typeof message.contents === "string") {
|
|
374
371
|
try {
|
|
375
372
|
const data = JSON.parse(message.contents);
|
|
@@ -383,8 +380,8 @@ class Sanitizer {
|
|
|
383
380
|
}
|
|
384
381
|
}
|
|
385
382
|
}
|
|
386
|
-
catch (
|
|
387
|
-
this.debugMsg(
|
|
383
|
+
catch (error) {
|
|
384
|
+
this.debugMsg(error);
|
|
388
385
|
}
|
|
389
386
|
}
|
|
390
387
|
else {
|
|
@@ -393,9 +390,12 @@ class Sanitizer {
|
|
|
393
390
|
}
|
|
394
391
|
}
|
|
395
392
|
}
|
|
393
|
+
else {
|
|
394
|
+
message.contents = this.replaceAny(message.contents);
|
|
395
|
+
}
|
|
396
396
|
}
|
|
397
397
|
fixAttachEntries(entries) {
|
|
398
|
-
|
|
398
|
+
for (const element of entries) {
|
|
399
399
|
// Tree type
|
|
400
400
|
if (element.value.entries) {
|
|
401
401
|
this.fixAttachEntries(element.value.entries);
|
|
@@ -409,11 +409,11 @@ class Sanitizer {
|
|
|
409
409
|
element.value.contents = JSON.stringify(data);
|
|
410
410
|
}
|
|
411
411
|
}
|
|
412
|
-
catch (
|
|
413
|
-
this.debugMsg(
|
|
412
|
+
catch (error) {
|
|
413
|
+
this.debugMsg(error);
|
|
414
414
|
}
|
|
415
415
|
}
|
|
416
|
-
}
|
|
416
|
+
}
|
|
417
417
|
}
|
|
418
418
|
/**
|
|
419
419
|
* Fix the content of an attach in place
|
|
@@ -421,16 +421,16 @@ class Sanitizer {
|
|
|
421
421
|
*/
|
|
422
422
|
fixAttachContents(contents) {
|
|
423
423
|
(0, internal_1.assert)(typeof contents === "object", 0x08b /* "Unexpected type on contents for fix of an attach!" */);
|
|
424
|
-
if (
|
|
425
|
-
this.replaceObject(contents);
|
|
426
|
-
}
|
|
427
|
-
else {
|
|
424
|
+
if (this.objectMatchesSchema(contents, messageSchema_js_1.attachContentsSchema)) {
|
|
428
425
|
if (this.fullScrub) {
|
|
429
426
|
contents.id = this.replaceText(contents.id, TextType.FluidObject);
|
|
430
427
|
contents.type = this.replaceText(contents.type, TextType.FluidObject);
|
|
431
428
|
}
|
|
432
429
|
this.fixAttachEntries(contents.snapshot.entries);
|
|
433
430
|
}
|
|
431
|
+
else {
|
|
432
|
+
this.replaceObject(contents);
|
|
433
|
+
}
|
|
434
434
|
}
|
|
435
435
|
/**
|
|
436
436
|
* Fix an attach message at the root level or a ContainerMessageType attach. Attach
|
|
@@ -450,8 +450,8 @@ class Sanitizer {
|
|
|
450
450
|
this.fixAttachContents(data);
|
|
451
451
|
message.contents = JSON.stringify(data);
|
|
452
452
|
}
|
|
453
|
-
catch (
|
|
454
|
-
this.debugMsg(
|
|
453
|
+
catch (error) {
|
|
454
|
+
this.debugMsg(error);
|
|
455
455
|
return;
|
|
456
456
|
}
|
|
457
457
|
}
|
|
@@ -474,10 +474,7 @@ class Sanitizer {
|
|
|
474
474
|
*/
|
|
475
475
|
fixOpContentsObject(contents) {
|
|
476
476
|
// do replacement
|
|
477
|
-
if (
|
|
478
|
-
this.replaceAny(contents);
|
|
479
|
-
}
|
|
480
|
-
else {
|
|
477
|
+
if (this.objectMatchesSchema(contents, messageSchema_js_1.opContentsSchema)) {
|
|
481
478
|
if (this.fullScrub) {
|
|
482
479
|
contents.address = this.replaceText(contents.address, TextType.FluidObject);
|
|
483
480
|
}
|
|
@@ -492,8 +489,8 @@ class Sanitizer {
|
|
|
492
489
|
this.fixAttachContents(data);
|
|
493
490
|
contents.contents.content = JSON.stringify(data);
|
|
494
491
|
}
|
|
495
|
-
catch (
|
|
496
|
-
this.debugMsg(
|
|
492
|
+
catch (error) {
|
|
493
|
+
this.debugMsg(error);
|
|
497
494
|
}
|
|
498
495
|
}
|
|
499
496
|
else {
|
|
@@ -515,9 +512,9 @@ class Sanitizer {
|
|
|
515
512
|
if (this.fullScrub) {
|
|
516
513
|
innerContent.address = this.replaceText(innerContent.address, TextType.FluidObject);
|
|
517
514
|
}
|
|
518
|
-
innerContent.contents.ops
|
|
515
|
+
for (const deltaOp of innerContent.contents.ops) {
|
|
519
516
|
this.fixDeltaOp(deltaOp);
|
|
520
|
-
}
|
|
517
|
+
}
|
|
521
518
|
}
|
|
522
519
|
else if (this.validator.validate(innerContent, messageSchema_js_1.opContentsMergeTreeDeltaOpSchema).valid) {
|
|
523
520
|
// merge tree delta op
|
|
@@ -541,6 +538,9 @@ class Sanitizer {
|
|
|
541
538
|
this.objectMatchesSchema(contents, false);
|
|
542
539
|
}
|
|
543
540
|
}
|
|
541
|
+
else {
|
|
542
|
+
this.replaceAny(contents);
|
|
543
|
+
}
|
|
544
544
|
}
|
|
545
545
|
fixOp(message) {
|
|
546
546
|
// handle case where contents is stringified json
|
|
@@ -549,8 +549,8 @@ class Sanitizer {
|
|
|
549
549
|
try {
|
|
550
550
|
msgContents = JSON.parse(message.contents);
|
|
551
551
|
}
|
|
552
|
-
catch (
|
|
553
|
-
this.debugMsg(
|
|
552
|
+
catch (error) {
|
|
553
|
+
this.debugMsg(error);
|
|
554
554
|
return;
|
|
555
555
|
}
|
|
556
556
|
}
|
|
@@ -595,8 +595,8 @@ class Sanitizer {
|
|
|
595
595
|
try {
|
|
596
596
|
message.contents = JSON.stringify(msgContents);
|
|
597
597
|
}
|
|
598
|
-
catch (
|
|
599
|
-
this.debugMsg(
|
|
598
|
+
catch (error) {
|
|
599
|
+
this.debugMsg(error);
|
|
600
600
|
return;
|
|
601
601
|
}
|
|
602
602
|
}
|
|
@@ -649,10 +649,12 @@ class Sanitizer {
|
|
|
649
649
|
case "noClient":
|
|
650
650
|
case "summarize":
|
|
651
651
|
case "summaryAck":
|
|
652
|
-
case "summaryNack":
|
|
652
|
+
case "summaryNack": {
|
|
653
653
|
break;
|
|
654
|
-
|
|
654
|
+
}
|
|
655
|
+
default: {
|
|
655
656
|
this.debugMsg(`Unexpected op type ${message.type}`);
|
|
657
|
+
}
|
|
656
658
|
}
|
|
657
659
|
});
|
|
658
660
|
// make sure we don't miss an incomplete chunked op at the end
|