pbiplint 0.1.2 → 0.2.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/NOTICE +27 -0
- package/README.md +35 -10
- package/dist/pbiplint.mjs +13680 -2838
- package/package.json +5 -3
- package/sample/Messy Sales Demo.Report/.platform +11 -0
- package/sample/Messy Sales Demo.Report/definition/bookmarks/bookmarks.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/bookmarks/f56cd9f5f68d30c0e4e3.bookmark.json +41 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3130cf9463309528054d/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3e7724efa859ff7b9701/visual.json +130 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/3fe8e6907656325b8e86/visual.json +187 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/51bb4f6f5f7f71ed0a3c/visual.json +69 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d2995ea3e9b9d9244bf6/visual.json +31 -0
- package/sample/Messy Sales Demo.Report/definition/pages/00e055aa522743f28a39/visuals/d307b6575ca81d163aac/visual.json +186 -0
- package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/27f668864829019f9251/visuals/1e7f28bf49e435b68c50/visual.json +156 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6c96585893b6f603b9ac/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/6e99982d842b0d962e16/visual.json +189 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/8081f5bb7075e7b008bc/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3485dcffc49d1608c370/visuals/c5147d97ff0b18a24336/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/page.json +48 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3b33a1ae720bb93d48b9/visuals/e32acaa3eb3e6dd81dca/visual.json +195 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/23f7a6962538ec0c0ff4/visual.json +155 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/2b5386e9de3e1fbb1afa/visual.json +147 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/307e834045a168e7a394/visual.json +305 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/4457e97e02f61c8f609b/visual.json +176 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/49158e1e7dce5e8d37fd/visual.json +68 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6500e9c3f9d74f2958c7/visual.json +312 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/6edcdc464f4016c0264c/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/88530bc0f64114317e2e/visual.json +155 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/a75a96eee1fd0cf4cef7/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/bda61916a7b1efdee3fe/visual.json +145 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/d93ac3d110ff0a347497/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/3cea48e58036b1654474/visuals/db47426e580241dac6b8/visual.json +104 -0
- package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/52db6f0b218c638f8761/visuals/8edac00805f721edc1c1/visual.json +196 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/598cfda00746e83f4896/visual.json +162 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/6c71af13bcdb4c28cce8/visual.json +133 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/8aa02d4e168b39268df4/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/5fbcb07dde4e4fada3f6/visuals/ab6166569dd355894dc2/visual.json +192 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/05d453611bc204914797/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/0dcfd84094ee2cfe485b/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/11146719bd576271e11a/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/338338c16a0d509bdaf5/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/3ee96306fb282e5dfe38/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/404c49f853ea8dde3b6c/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/55ddee811456e2b049cf/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/5bf9a67d54ba75bb7be1/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/63f71d3b642fb6c8a9ba/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/80873270a475b81ef0fb/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/838ab6226a66fdfb13dc/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/9b12811305cdd50a97c4/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/a1a8f953ebef2d733956/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b7e7f7c15ff9284e72d3/visual.json +291 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/b9229ce2b277de70e402/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/cf88d237300a7d6a6709/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d66ccf48cfa017d01124/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/d8ab941db2b7bd34c19e/visual.json +238 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/daadba18a786c3e25d97/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/e1552553ac4f0856010e/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/9f2ae77d3572304756ae/visuals/f108285d5ebc6bcdba77/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/page.json +9 -0
- package/sample/Messy Sales Demo.Report/definition/pages/b52832c4d9f487868953/visuals/2a7e16428070011e60ec/visual.json +55 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/3fa0fc35d2dd20b9b1f2/visual.json +186 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/55b04f4555a4615ecd32/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/94c00b0b84a51b0e0b39/visual.json +140 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/acc24e8136085a985f3f/visual.json +32 -0
- package/sample/Messy Sales Demo.Report/definition/pages/bb1ea3ba2a1defa1979b/visuals/de6a17691cc952e6d7dd/visual.json +120 -0
- package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/page.json +8 -0
- package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/27e669b1ee2de2c3ac9d/visual.json +96 -0
- package/sample/Messy Sales Demo.Report/definition/pages/fa72b934a72314dcf1b1/visuals/b230f06615cf87ee455f/visual.json +185 -0
- package/sample/Messy Sales Demo.Report/definition/pages/pages.json +17 -0
- package/sample/Messy Sales Demo.Report/definition/report.json +66 -0
- package/sample/Messy Sales Demo.Report/definition/reportExtensions.json +46 -0
- package/sample/Messy Sales Demo.Report/definition/version.json +4 -0
- package/sample/Messy Sales Demo.Report/definition.pbir +9 -0
- package/sample/{.platform → Messy Sales Demo.SemanticModel/.platform } +1 -1
- package/sample/Messy Sales Demo.SemanticModel/definition/cultures/en-US.tmdl +32 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/database.tmdl +3 -0
- package/sample/{definition/model.tmdl → Messy Sales Demo.SemanticModel/definition/model.tmdl } +3 -0
- package/sample/{definition/relationships.tmdl → Messy Sales Demo.SemanticModel/definition/relationships.tmdl } +6 -0
- package/sample/{definition/tables/Customer.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Customer.tmdl } +5 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/tables/DateTableTemplate_96ead6f8-eef3-4336-a020-6641aa278e92.tmdl +118 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/tables/Employee Grouping.tmdl +49 -0
- package/sample/Messy Sales Demo.SemanticModel/definition/tables/LocalDateTable_b6c07c62-ecbc-4f14-b072-2fb027697b1d.tmdl +116 -0
- package/sample/{definition/tables/Sales.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Sales.tmdl } +42 -42
- package/sample/{definition/tables/Store.tmdl → Messy Sales Demo.SemanticModel/definition/tables/Store.tmdl } +15 -0
- package/sample/Messy Sales Demo.pbip +14 -0
- package/sample/pbiplint.config.json +7 -0
- package/sample/.pbi/editorSettings.json +0 -8
- package/sample/definition/cultures/en-US.tmdl +0 -2
- package/sample/definition/database.tmdl +0 -3
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Date.tmdl +0 -0
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Employee.tmdl +0 -0
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Product.tmdl +0 -0
- /package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Promotion.tmdl +0 -0
- /package/sample/{definition.pbism → Messy Sales Demo.SemanticModel/definition.pbism} +0 -0
|
@@ -1,6 +1,48 @@
|
|
|
1
1
|
table Sales
|
|
2
2
|
lineageTag: e5dd0f16-ac53-567e-9fd5-189bf2d92f14
|
|
3
3
|
|
|
4
|
+
measure 'Total Sales' = SUM ( 'Sales'[Total Amount] )
|
|
5
|
+
lineageTag: ca8c39c8-04a5-56b1-898d-0a73736c3cca
|
|
6
|
+
|
|
7
|
+
measure 'Total Quantity' = SUM ( [Quantity] )
|
|
8
|
+
lineageTag: 3ac4e158-858b-5e1b-8289-78d12ceb80e2
|
|
9
|
+
|
|
10
|
+
measure 'Average Unit Price' = AVERAGE ( 'Sales'[Unit Price] )
|
|
11
|
+
lineageTag: 2b5680cc-3046-5e41-bc7f-f5ff360370b2
|
|
12
|
+
|
|
13
|
+
measure 'Total Cost' = SUM ( 'Sales'[Unit Cost] )
|
|
14
|
+
lineageTag: aef7aa67-b06e-5e59-ac93-136e4a872346
|
|
15
|
+
|
|
16
|
+
measure 'Total Discount' = SUM ( 'Sales'[Discount Amount] )
|
|
17
|
+
lineageTag: 6f6edc54-d408-5aea-a787-b48f4126590a
|
|
18
|
+
|
|
19
|
+
measure 'Net Sales' = [Total Sales] - [Total Discount]
|
|
20
|
+
lineageTag: e4e79507-12c0-5c58-8e25-12963846b787
|
|
21
|
+
|
|
22
|
+
measure 'Total Margin' = [Total Sales] - [Total Cost]
|
|
23
|
+
lineageTag: b9913bc2-aa66-55c0-8965-911b688f87dd
|
|
24
|
+
|
|
25
|
+
measure 'Margin %' = [Total Margin] / [Total Sales]
|
|
26
|
+
lineageTag: f9ffc38c-cd44-5852-b85a-0f7cbc8753f4
|
|
27
|
+
|
|
28
|
+
measure 'Order Count' = DISTINCTCOUNT ( 'Sales'[Sale ID] )
|
|
29
|
+
lineageTag: e8120ffb-3d8e-5701-a3b7-6c5e283a59a3
|
|
30
|
+
|
|
31
|
+
measure 'Average Order Value' = [Total Sales] / [Order Count]
|
|
32
|
+
lineageTag: df423b46-4a20-5b0c-8e7d-a87a163b2f7a
|
|
33
|
+
|
|
34
|
+
measure 'Distinct Customers' = DISTINCTCOUNT ( [Customer ID] )
|
|
35
|
+
lineageTag: ad0bf4d6-42d5-53d9-a887-1483c9167c06
|
|
36
|
+
|
|
37
|
+
measure 'Sales YTD' = TOTALYTD ( [Total Sales], 'Date'[Date] )
|
|
38
|
+
lineageTag: e501d2df-a69b-570d-a31d-d1bbfc8694a8
|
|
39
|
+
|
|
40
|
+
measure 'Sales LY' = CALCULATE ( [Total Sales], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
|
|
41
|
+
lineageTag: 5d4245d8-0c72-584f-bcd5-efbd492fc3a7
|
|
42
|
+
|
|
43
|
+
measure 'Sales YoY %' = ( [Total Sales] - [Sales LY] ) / [Sales LY]
|
|
44
|
+
lineageTag: 0f9d5832-20e8-584c-a5b3-fd670931d428
|
|
45
|
+
|
|
4
46
|
column 'Sale ID'
|
|
5
47
|
dataType: int64
|
|
6
48
|
isKey
|
|
@@ -109,48 +151,6 @@ table Sales
|
|
|
109
151
|
|
|
110
152
|
annotation SummarizationSetBy = Automatic
|
|
111
153
|
|
|
112
|
-
measure 'Total Sales' = SUM ( 'Sales'[Total Amount] )
|
|
113
|
-
lineageTag: ca8c39c8-04a5-56b1-898d-0a73736c3cca
|
|
114
|
-
|
|
115
|
-
measure 'Total Quantity' = SUM ( [Quantity] )
|
|
116
|
-
lineageTag: 3ac4e158-858b-5e1b-8289-78d12ceb80e2
|
|
117
|
-
|
|
118
|
-
measure 'Average Unit Price' = AVERAGE ( 'Sales'[Unit Price] )
|
|
119
|
-
lineageTag: 2b5680cc-3046-5e41-bc7f-f5ff360370b2
|
|
120
|
-
|
|
121
|
-
measure 'Total Cost' = SUM ( 'Sales'[Unit Cost] )
|
|
122
|
-
lineageTag: aef7aa67-b06e-5e59-ac93-136e4a872346
|
|
123
|
-
|
|
124
|
-
measure 'Total Discount' = SUM ( 'Sales'[Discount Amount] )
|
|
125
|
-
lineageTag: 6f6edc54-d408-5aea-a787-b48f4126590a
|
|
126
|
-
|
|
127
|
-
measure 'Net Sales' = [Total Sales] - [Total Discount]
|
|
128
|
-
lineageTag: e4e79507-12c0-5c58-8e25-12963846b787
|
|
129
|
-
|
|
130
|
-
measure 'Total Margin' = [Total Sales] - [Total Cost]
|
|
131
|
-
lineageTag: b9913bc2-aa66-55c0-8965-911b688f87dd
|
|
132
|
-
|
|
133
|
-
measure 'Margin %' = [Total Margin] / [Total Sales]
|
|
134
|
-
lineageTag: f9ffc38c-cd44-5852-b85a-0f7cbc8753f4
|
|
135
|
-
|
|
136
|
-
measure 'Order Count' = DISTINCTCOUNT ( 'Sales'[Sale ID] )
|
|
137
|
-
lineageTag: e8120ffb-3d8e-5701-a3b7-6c5e283a59a3
|
|
138
|
-
|
|
139
|
-
measure 'Average Order Value' = [Total Sales] / [Order Count]
|
|
140
|
-
lineageTag: df423b46-4a20-5b0c-8e7d-a87a163b2f7a
|
|
141
|
-
|
|
142
|
-
measure 'Distinct Customers' = DISTINCTCOUNT ( [Customer ID] )
|
|
143
|
-
lineageTag: ad0bf4d6-42d5-53d9-a887-1483c9167c06
|
|
144
|
-
|
|
145
|
-
measure 'Sales YTD' = TOTALYTD ( [Total Sales], 'Date'[Date] )
|
|
146
|
-
lineageTag: e501d2df-a69b-570d-a31d-d1bbfc8694a8
|
|
147
|
-
|
|
148
|
-
measure 'Sales LY' = CALCULATE ( [Total Sales], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
|
|
149
|
-
lineageTag: 5d4245d8-0c72-584f-bcd5-efbd492fc3a7
|
|
150
|
-
|
|
151
|
-
measure 'Sales YoY %' = ( [Total Sales] - [Sales LY] ) / [Sales LY]
|
|
152
|
-
lineageTag: 0f9d5832-20e8-584c-a5b3-fd670931d428
|
|
153
|
-
|
|
154
154
|
partition Sales = m
|
|
155
155
|
mode: import
|
|
156
156
|
source =
|
|
@@ -93,6 +93,21 @@ table Store
|
|
|
93
93
|
|
|
94
94
|
annotation SummarizationSetBy = Automatic
|
|
95
95
|
|
|
96
|
+
hierarchy Geography
|
|
97
|
+
lineageTag: 9ab56f94-f99e-4596-a2fd-369f95ecc191
|
|
98
|
+
|
|
99
|
+
level Country
|
|
100
|
+
lineageTag: 5bf46aba-afcc-42cc-b0c4-bf07c23a706c
|
|
101
|
+
column: Country
|
|
102
|
+
|
|
103
|
+
level State
|
|
104
|
+
lineageTag: bb36069f-7132-4327-926e-ae06fe92ccae
|
|
105
|
+
column: State
|
|
106
|
+
|
|
107
|
+
level City
|
|
108
|
+
lineageTag: c112895e-4034-438f-bac3-5fcab2e46f2c
|
|
109
|
+
column: City
|
|
110
|
+
|
|
96
111
|
partition Store = m
|
|
97
112
|
mode: import
|
|
98
113
|
source =
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/fabric/pbip/pbipProperties/1.0.0/schema.json",
|
|
3
|
+
"version": "1.0",
|
|
4
|
+
"artifacts": [
|
|
5
|
+
{
|
|
6
|
+
"report": {
|
|
7
|
+
"path": "Messy Sales Demo.Report"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"settings": {
|
|
12
|
+
"enableAutoRecovery": true
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/semanticModel/editorSettings/1.0.0/schema.json",
|
|
3
|
-
"autodetectRelationships": false,
|
|
4
|
-
"parallelQueryLoading": true,
|
|
5
|
-
"typeDetectionEnabled": true,
|
|
6
|
-
"relationshipImportEnabled": false,
|
|
7
|
-
"shouldNotifyUserOfNameConflictResolution": true
|
|
8
|
-
}
|
|
File without changes
|
/package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Employee.tmdl
RENAMED
|
File without changes
|
/package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Product.tmdl
RENAMED
|
File without changes
|
/package/sample/{definition → Messy Sales Demo.SemanticModel/definition}/tables/Promotion.tmdl
RENAMED
|
File without changes
|
|
File without changes
|