@kubohiroya/turbowarp-extension-data-editor 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +9 -6
  2. package/dist/build-info.json +3 -3
  3. package/dist/fixed-input-branches.d.ts +12 -0
  4. package/dist/fixed-input-branches.js +180 -0
  5. package/dist/fixed-input-editor.d.ts +39 -0
  6. package/dist/fixed-input-editor.js +538 -0
  7. package/dist/fixed-input-schema.d.ts +15 -0
  8. package/dist/fixed-input-schema.js +21 -0
  9. package/dist/fixed-input-snapshot.d.ts +7 -0
  10. package/dist/fixed-input-snapshot.js +180 -0
  11. package/dist/fixed-input-types.d.ts +138 -0
  12. package/dist/fixed-input-types.js +23 -0
  13. package/dist/fixed-input-view.d.ts +14 -0
  14. package/dist/fixed-input-view.js +168 -0
  15. package/dist/index.d.ts +6 -0
  16. package/dist/index.js +4 -0
  17. package/dist/react.css +168 -0
  18. package/dist/react.d.ts +8 -0
  19. package/dist/react.js +19 -2
  20. package/dist/registry.d.ts +4 -0
  21. package/dist/registry.js +45 -7
  22. package/dist/rjsf-templates.d.ts +11 -0
  23. package/dist/rjsf-templates.js +129 -0
  24. package/dist/rjsf.d.ts +24 -1
  25. package/dist/rjsf.js +35 -3
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.js +1 -0
  28. package/dist/session.d.ts +3 -1
  29. package/dist/session.js +205 -7
  30. package/dist/turbowarp/bridge.d.ts +2 -1
  31. package/dist/turbowarp/bridge.js +37 -5
  32. package/dist/turbowarp/fixed-fields.d.ts +82 -0
  33. package/dist/turbowarp/fixed-fields.js +311 -0
  34. package/dist/turbowarp/fixed-transaction.d.ts +18 -0
  35. package/dist/turbowarp/fixed-transaction.js +460 -0
  36. package/dist/turbowarp/host.d.ts +3 -8
  37. package/dist/turbowarp/host.js +68 -1
  38. package/dist/turbowarp.d.ts +4 -0
  39. package/dist/turbowarp.js +1 -1
  40. package/dist/types.d.ts +5 -0
  41. package/dist/view.js +4 -0
  42. package/dist/webpack4/index.js +22 -5
  43. package/dist/webpack4/metafile.json +592 -299
  44. package/dist/webpack4/react.js +20 -6
  45. package/dist/webpack4/react.js.map +2 -2
  46. package/dist/webpack4/rjsf.js +450 -60
  47. package/dist/webpack4/rjsf.js.map +4 -4
  48. package/dist/webpack4/schema.js +6 -3
  49. package/dist/webpack4/{shared-KQOUMWJ4.js → shared-75QIWLZY.js} +1129 -1244
  50. package/dist/webpack4/{shared-KQOUMWJ4.js.map → shared-75QIWLZY.js.map} +4 -4
  51. package/dist/webpack4/shared-FYUILHED.js +1 -0
  52. package/dist/webpack4/shared-GQLPPRT2.js +210 -0
  53. package/dist/webpack4/shared-GQLPPRT2.js.map +7 -0
  54. package/dist/webpack4/shared-P2JBRZFP.js +2206 -0
  55. package/dist/webpack4/shared-P2JBRZFP.js.map +7 -0
  56. package/dist/webpack4/turbowarp.js +913 -9
  57. package/dist/webpack4/turbowarp.js.map +4 -4
  58. package/docs/api.md +7 -0
  59. package/docs/fixed-input-contracts.md +77 -0
  60. package/docs/package-distribution.md +5 -0
  61. package/docs/stage-2-publication.ja.md +6 -0
  62. package/package.json +2 -1
  63. package/dist/webpack4/shared-CQB3NG2A.js +0 -1
  64. package/dist/webpack4/shared-MRPGBJIH.js +0 -75
  65. package/dist/webpack4/shared-MRPGBJIH.js.map +0 -7
  66. package/dist/webpack4/shared-N6YQE2X6.js +0 -1029
  67. package/dist/webpack4/shared-N6YQE2X6.js.map +0 -7
  68. /package/dist/webpack4/{shared-CQB3NG2A.js.map → shared-FYUILHED.js.map} +0 -0
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=shared-FYUILHED.js.map
@@ -0,0 +1,210 @@
1
+ import {
2
+ JsonSnapshotError,
3
+ isJsonRecord,
4
+ scopeFor,
5
+ snapshotJson
6
+ } from "./shared-75QIWLZY.js";
7
+
8
+ // dist/schema-compose.js
9
+ function deepFreeze(value) {
10
+ if (value !== null && typeof value === "object") {
11
+ Object.values(value).forEach(deepFreeze);
12
+ Object.freeze(value);
13
+ }
14
+ return value;
15
+ }
16
+ function ownerFailure(scope, code) {
17
+ return Object.freeze({ kind: "execution-error", diagnostics: Object.freeze([
18
+ Object.freeze({ scope, phase: "execution", operation: "semantic", code })
19
+ ]) });
20
+ }
21
+ function asyncResult(value) {
22
+ try {
23
+ void Promise.prototype.then.call(value, () => void 0, () => void 0);
24
+ return true;
25
+ } catch (_a) {
26
+ }
27
+ return "then" in value;
28
+ }
29
+ function validateSchemaInput(compiled, data, options) {
30
+ let scope = scopeFor(compiled);
31
+ let context;
32
+ let owner;
33
+ try {
34
+ if (!isJsonRecord(options))
35
+ return ownerFailure(scope, "owner-context-invalid");
36
+ const descriptor = Object.getOwnPropertyDescriptor(options, "context");
37
+ if (!descriptor || !("value" in descriptor))
38
+ return ownerFailure(scope, "owner-context-invalid");
39
+ const candidate = snapshotJson(descriptor.value);
40
+ if (!isJsonRecord(candidate) || typeof candidate.consumerId !== "string" || typeof candidate.nowMs !== "number" || !Number.isFinite(candidate.nowMs) || !Object.hasOwn(candidate, "settings")) {
41
+ return ownerFailure(scope, "owner-context-invalid");
42
+ }
43
+ context = deepFreeze(candidate);
44
+ scope = Object.freeze({ ...scope, consumerId: context.consumerId });
45
+ const ownerDescriptor = Object.getOwnPropertyDescriptor(options, "ownerValidate");
46
+ if (ownerDescriptor && !("value" in ownerDescriptor))
47
+ return ownerFailure(scope, "owner-result-invalid");
48
+ owner = ownerDescriptor === null || ownerDescriptor === void 0 ? void 0 : ownerDescriptor.value;
49
+ if (owner !== void 0 && typeof owner !== "function")
50
+ return ownerFailure(scope, "owner-result-invalid");
51
+ } catch (_a) {
52
+ return ownerFailure(scope, "owner-context-invalid");
53
+ }
54
+ let input;
55
+ try {
56
+ input = deepFreeze(snapshotJson(data));
57
+ const structural = compiled.validate(input, { consumerId: context.consumerId });
58
+ if (!isJsonRecord(structural) || !Array.isArray(structural.diagnostics) || (structural.kind === "valid" ? structural.diagnostics.length !== 0 : structural.diagnostics.length === 0) || !["valid", "invalid", "execution-error"].includes(structural.kind))
59
+ throw new Error();
60
+ if (structural.kind !== "valid")
61
+ return structural;
62
+ } catch (error) {
63
+ if (error instanceof JsonSnapshotError && error.kind === "invalid")
64
+ return Object.freeze({ kind: "invalid", diagnostics: Object.freeze([
65
+ Object.freeze({ scope, phase: "structure", code: "input-not-json", dataPath: error.dataPath })
66
+ ]) });
67
+ return Object.freeze({ kind: "execution-error", diagnostics: Object.freeze([Object.freeze({
68
+ scope,
69
+ phase: "execution",
70
+ operation: "structure",
71
+ code: error instanceof JsonSnapshotError && error.kind === "limit" || error instanceof RangeError ? "limit-exceeded" : "engine-failed"
72
+ })]) });
73
+ }
74
+ if (!owner)
75
+ return Object.freeze({ kind: "valid", diagnostics: Object.freeze([]) });
76
+ let result;
77
+ try {
78
+ result = owner(input, context);
79
+ } catch (_b) {
80
+ return ownerFailure(scope, "owner-validation-failed");
81
+ }
82
+ try {
83
+ if (result !== null && (typeof result === "object" || typeof result === "function") && asyncResult(result))
84
+ return ownerFailure(scope, "async-owner-unsupported");
85
+ const snapshot = snapshotJson(result);
86
+ if (!isJsonRecord(snapshot) || !Array.isArray(snapshot.issues))
87
+ return ownerFailure(scope, "owner-result-invalid");
88
+ if (snapshot.kind === "valid" && snapshot.issues.length === 0)
89
+ return Object.freeze({ kind: "valid", diagnostics: Object.freeze([]) });
90
+ if (snapshot.kind !== "invalid" || snapshot.issues.length === 0)
91
+ return ownerFailure(scope, "owner-result-invalid");
92
+ const diagnostics = [];
93
+ for (const issue of snapshot.issues) {
94
+ if (!isJsonRecord(issue) || typeof issue.dataPath !== "string" || issue.dataPath !== "" && !issue.dataPath.startsWith("/") || /~(?:[^01]|$)/u.test(issue.dataPath) || typeof issue.ruleId !== "string") {
95
+ return ownerFailure(scope, "owner-result-invalid");
96
+ }
97
+ diagnostics.push(Object.freeze({ scope, phase: "semantic", code: "owner-input-invalid", dataPath: issue.dataPath, ruleId: issue.ruleId }));
98
+ }
99
+ return Object.freeze({ kind: "invalid", diagnostics: Object.freeze(diagnostics) });
100
+ } catch (_c) {
101
+ return ownerFailure(scope, "owner-result-invalid");
102
+ }
103
+ }
104
+
105
+ // dist/json-value.js
106
+ var jsonValueSchema = true;
107
+ var source = {
108
+ repository: "https://github.com/kubohiroya/turbowarp-extension-data-editor",
109
+ path: "src/json-value.ts",
110
+ symbol: "jsonValueSchema"
111
+ };
112
+ var jsonValueSchemaBundle = Object.freeze({
113
+ identity: { ownerId: "@kubohiroya/turbowarp-extension-data-editor", contractId: "json-value", revision: "1", variantId: "json-value" },
114
+ dialect: "2020-12",
115
+ root: {
116
+ retrievalUri: "https://kubohiroya.github.io/turbowarp-extension-data-editor/schemas/json-value",
117
+ document: jsonValueSchema,
118
+ artifact: { role: "canonical-schema", source }
119
+ },
120
+ resources: [],
121
+ provenance: { canonicalSources: [source], generatedFiles: [], referenceSchemas: [], generationSources: [] }
122
+ });
123
+
124
+ // dist/schema.js
125
+ var messages = {
126
+ "input-format-invalid": "Input format is invalid.",
127
+ "variant-unrecognized": "Input variant is not recognized.",
128
+ "input-not-json": "Input must be a JSON-compatible value.",
129
+ "schema-data-invalid": "Value does not satisfy the schema.",
130
+ "owner-input-invalid": "Value does not satisfy the owner input rules."
131
+ };
132
+ function isRecord(value) {
133
+ return value !== null && typeof value === "object" && !Array.isArray(value);
134
+ }
135
+ function isPointer(value) {
136
+ return typeof value === "string" && (value === "" || value.startsWith("/")) && !/~(?:[^01]|$)/u.test(value);
137
+ }
138
+ function readValidationIssue(value) {
139
+ if (!isRecord(value))
140
+ throw new TypeError();
141
+ const scope = value.scope;
142
+ if (!isRecord(scope))
143
+ throw new TypeError();
144
+ const identity = scope.identity;
145
+ if (!isRecord(identity))
146
+ throw new TypeError();
147
+ if (["ownerId", "contractId", "revision", "variantId"].some((key) => typeof identity[key] !== "string")) {
148
+ throw new TypeError();
149
+ }
150
+ if ("consumerId" in scope && typeof scope.consumerId !== "string")
151
+ throw new TypeError();
152
+ if ("resourceUri" in value && typeof value.resourceUri !== "string")
153
+ throw new TypeError();
154
+ if ("schemaPath" in value && !isPointer(value.schemaPath))
155
+ throw new TypeError();
156
+ const dataPath = value.dataPath;
157
+ const phase = value.phase;
158
+ const code = value.code;
159
+ if (!isPointer(dataPath))
160
+ throw new TypeError();
161
+ switch (phase) {
162
+ case "decode":
163
+ if (code !== "input-format-invalid" && code !== "variant-unrecognized")
164
+ throw new TypeError();
165
+ break;
166
+ case "structure":
167
+ if (code !== "input-not-json" && code !== "schema-data-invalid")
168
+ throw new TypeError();
169
+ if ("keyword" in value && typeof value.keyword !== "string")
170
+ throw new TypeError();
171
+ break;
172
+ case "semantic":
173
+ if (code !== "owner-input-invalid" || typeof value.ruleId !== "string")
174
+ throw new TypeError();
175
+ break;
176
+ default:
177
+ throw new TypeError();
178
+ }
179
+ return Object.freeze({ message: messages[code], path: dataPath });
180
+ }
181
+ function toValidationIssues(diagnostics) {
182
+ try {
183
+ if (!Array.isArray(diagnostics))
184
+ throw new TypeError();
185
+ const length = diagnostics.length;
186
+ if (!Number.isSafeInteger(length) || length < 0)
187
+ throw new TypeError();
188
+ const snapshot = [];
189
+ for (let index = 0; index < length; index++) {
190
+ if (!Object.hasOwn(diagnostics, index))
191
+ throw new TypeError();
192
+ snapshot.push(diagnostics[index]);
193
+ }
194
+ const issues = [];
195
+ for (let index = 0; index < length; index++) {
196
+ issues.push(readValidationIssue(snapshot[index]));
197
+ }
198
+ return Object.freeze(issues);
199
+ } catch (_a) {
200
+ throw new TypeError("Invalid input diagnostic.");
201
+ }
202
+ }
203
+
204
+ export {
205
+ validateSchemaInput,
206
+ jsonValueSchema,
207
+ jsonValueSchemaBundle,
208
+ toValidationIssues
209
+ };
210
+ //# sourceMappingURL=shared-GQLPPRT2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../schema-compose.js", "../json-value.js", "../schema.js"],
4
+ "sourcesContent": ["import { scopeFor } from './schema-engine.js';\nimport { isJsonRecord, JsonSnapshotError, snapshotJson } from './schema-json.js';\nfunction deepFreeze(value) {\n if (value !== null && typeof value === 'object') {\n Object.values(value).forEach(deepFreeze);\n Object.freeze(value);\n }\n return value;\n}\nfunction ownerFailure(scope, code) {\n return Object.freeze({ kind: 'execution-error', diagnostics: Object.freeze([\n Object.freeze({ scope, phase: 'execution', operation: 'semantic', code })\n ]) });\n}\nfunction asyncResult(value) {\n // Handle rejected native/cross-realm promises without running a user-defined `then` getter.\n try {\n void Promise.prototype.then.call(value, () => undefined, () => undefined);\n return true;\n }\n catch ( /* Non-promises have no Promise internal slots. */_a) { /* Non-promises have no Promise internal slots. */ }\n return 'then' in value;\n}\n/** Validate one protected candidate/context snapshot, then invoke a synchronous owner at most once. */\nexport function validateSchemaInput(compiled, data, options) {\n let scope = scopeFor(compiled);\n let context;\n let owner;\n try {\n if (!isJsonRecord(options))\n return ownerFailure(scope, 'owner-context-invalid');\n const descriptor = Object.getOwnPropertyDescriptor(options, 'context');\n if (!descriptor || !('value' in descriptor))\n return ownerFailure(scope, 'owner-context-invalid');\n const candidate = snapshotJson(descriptor.value);\n if (!isJsonRecord(candidate) || typeof candidate.consumerId !== 'string' ||\n typeof candidate.nowMs !== 'number' || !Number.isFinite(candidate.nowMs) || !Object.hasOwn(candidate, 'settings')) {\n return ownerFailure(scope, 'owner-context-invalid');\n }\n context = deepFreeze(candidate);\n scope = Object.freeze({ ...scope, consumerId: context.consumerId });\n const ownerDescriptor = Object.getOwnPropertyDescriptor(options, 'ownerValidate');\n if (ownerDescriptor && !('value' in ownerDescriptor))\n return ownerFailure(scope, 'owner-result-invalid');\n owner = ownerDescriptor === null || ownerDescriptor === void 0 ? void 0 : ownerDescriptor.value;\n if (owner !== undefined && typeof owner !== 'function')\n return ownerFailure(scope, 'owner-result-invalid');\n }\n catch (_a) {\n return ownerFailure(scope, 'owner-context-invalid');\n }\n let input;\n try {\n input = deepFreeze(snapshotJson(data));\n const structural = compiled.validate(input, { consumerId: context.consumerId });\n if (!isJsonRecord(structural) || !Array.isArray(structural.diagnostics) ||\n (structural.kind === 'valid' ? structural.diagnostics.length !== 0 : structural.diagnostics.length === 0) ||\n !['valid', 'invalid', 'execution-error'].includes(structural.kind))\n throw new Error();\n if (structural.kind !== 'valid')\n return structural;\n }\n catch (error) {\n if (error instanceof JsonSnapshotError && error.kind === 'invalid')\n return Object.freeze({ kind: 'invalid', diagnostics: Object.freeze([\n Object.freeze({ scope, phase: 'structure', code: 'input-not-json', dataPath: error.dataPath })\n ]) });\n return Object.freeze({ kind: 'execution-error', diagnostics: Object.freeze([Object.freeze({ scope, phase: 'execution', operation: 'structure',\n code: error instanceof JsonSnapshotError && error.kind === 'limit' || error instanceof RangeError ? 'limit-exceeded' : 'engine-failed' })]) });\n }\n if (!owner)\n return Object.freeze({ kind: 'valid', diagnostics: Object.freeze([]) });\n let result;\n try {\n result = owner(input, context);\n }\n catch (_b) {\n return ownerFailure(scope, 'owner-validation-failed');\n }\n try {\n if (result !== null && (typeof result === 'object' || typeof result === 'function') && asyncResult(result))\n return ownerFailure(scope, 'async-owner-unsupported');\n const snapshot = snapshotJson(result);\n if (!isJsonRecord(snapshot) || !Array.isArray(snapshot.issues))\n return ownerFailure(scope, 'owner-result-invalid');\n if (snapshot.kind === 'valid' && snapshot.issues.length === 0)\n return Object.freeze({ kind: 'valid', diagnostics: Object.freeze([]) });\n if (snapshot.kind !== 'invalid' || snapshot.issues.length === 0)\n return ownerFailure(scope, 'owner-result-invalid');\n const diagnostics = [];\n for (const issue of snapshot.issues) {\n if (!isJsonRecord(issue) || typeof issue.dataPath !== 'string' ||\n (issue.dataPath !== '' && !issue.dataPath.startsWith('/')) || /~(?:[^01]|$)/u.test(issue.dataPath) || typeof issue.ruleId !== 'string') {\n return ownerFailure(scope, 'owner-result-invalid');\n }\n diagnostics.push(Object.freeze({ scope, phase: 'semantic', code: 'owner-input-invalid', dataPath: issue.dataPath, ruleId: issue.ruleId }));\n }\n return Object.freeze({ kind: 'invalid', diagnostics: Object.freeze(diagnostics) });\n }\n catch (_c) {\n return ownerFailure(scope, 'owner-result-invalid');\n }\n}\n", "/** Every finite JSON value is accepted. The shared snapshot guard enforces JSON safety. */\nexport const jsonValueSchema = true;\nconst source = { repository: 'https://github.com/kubohiroya/turbowarp-extension-data-editor',\n path: 'src/json-value.ts', symbol: 'jsonValueSchema' };\nexport const jsonValueSchemaBundle = Object.freeze({\n identity: { ownerId: '@kubohiroya/turbowarp-extension-data-editor', contractId: 'json-value', revision: '1', variantId: 'json-value' },\n dialect: '2020-12',\n root: { retrievalUri: 'https://kubohiroya.github.io/turbowarp-extension-data-editor/schemas/json-value',\n document: jsonValueSchema, artifact: { role: 'canonical-schema', source } },\n resources: [],\n provenance: { canonicalSources: [source], generatedFiles: [], referenceSchemas: [], generationSources: [] }\n});\n", "export { compileSchemaBundle } from './schema-engine.js';\nexport { validateSchemaInput } from './schema-compose.js';\nconst messages = {\n 'input-format-invalid': 'Input format is invalid.',\n 'variant-unrecognized': 'Input variant is not recognized.',\n 'input-not-json': 'Input must be a JSON-compatible value.',\n 'schema-data-invalid': 'Value does not satisfy the schema.',\n 'owner-input-invalid': 'Value does not satisfy the owner input rules.'\n};\nfunction isRecord(value) {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\nfunction isPointer(value) {\n return typeof value === 'string' && (value === '' || value.startsWith('/')) && !/~(?:[^01]|$)/u.test(value);\n}\nfunction readValidationIssue(value) {\n if (!isRecord(value))\n throw new TypeError();\n const scope = value.scope;\n if (!isRecord(scope))\n throw new TypeError();\n const identity = scope.identity;\n if (!isRecord(identity))\n throw new TypeError();\n if (['ownerId', 'contractId', 'revision', 'variantId'].some(key => typeof identity[key] !== 'string')) {\n throw new TypeError();\n }\n if ('consumerId' in scope && typeof scope.consumerId !== 'string')\n throw new TypeError();\n if ('resourceUri' in value && typeof value.resourceUri !== 'string')\n throw new TypeError();\n if ('schemaPath' in value && !isPointer(value.schemaPath))\n throw new TypeError();\n // Keep primitives locally so accessors cannot change them between validation and conversion.\n const dataPath = value.dataPath;\n const phase = value.phase;\n const code = value.code;\n if (!isPointer(dataPath))\n throw new TypeError();\n switch (phase) {\n case 'decode':\n if (code !== 'input-format-invalid' && code !== 'variant-unrecognized')\n throw new TypeError();\n break;\n case 'structure':\n if (code !== 'input-not-json' && code !== 'schema-data-invalid')\n throw new TypeError();\n if ('keyword' in value && typeof value.keyword !== 'string')\n throw new TypeError();\n break;\n case 'semantic':\n if (code !== 'owner-input-invalid' || typeof value.ruleId !== 'string')\n throw new TypeError();\n break;\n default:\n throw new TypeError();\n }\n return Object.freeze({ message: messages[code], path: dataPath });\n}\n/** Convert input diagnostics without copying raw data or changing JSON Pointer paths. */\nexport function toValidationIssues(diagnostics) {\n try {\n if (!Array.isArray(diagnostics))\n throw new TypeError();\n const length = diagnostics.length;\n if (!Number.isSafeInteger(length) || length < 0)\n throw new TypeError();\n // Snapshot indexed elements before invoking diagnostic getters. Ignore input iterators.\n const snapshot = [];\n for (let index = 0; index < length; index++) {\n if (!Object.hasOwn(diagnostics, index))\n throw new TypeError();\n snapshot.push(diagnostics[index]);\n }\n const issues = [];\n for (let index = 0; index < length; index++) {\n issues.push(readValidationIssue(snapshot[index]));\n }\n return Object.freeze(issues);\n }\n catch (_a) {\n // Never expose an external value or a getter's exception through this boundary.\n throw new TypeError('Invalid input diagnostic.');\n }\n}\nexport { jsonValueSchema, jsonValueSchemaBundle } from './json-value.js';\nexport { parseFixedNumberInput } from './fixed-input-schema.js';\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }